Adjusting existing game for Link Game Platform

This guide will describe the main difference on Link Game Platform compared to other gaming platforms on super apps (e.g. Viber, Messenger).

Link app audience#

Currently, Link app can be used only by Rakuten Mobile subscribers (that also means that they should have a Rakuten account).

During activation of the app the user is asked to input their cellphone number, wait for SMS verification and then login via their Rakuten account.

Discoverability#

During the first phase several games will be published on the Games page and also the Discovery page of the Link app.

Playing with friends#

context.chooseAsync() behaviour#

Calling context.chooseAsync() will open native UI to select a friend to play with (group chats are not supported at the moment) and instantly send out an invitation message. At the moment only alphabetical sort is allowed in the list (same as native UI for selecting friends in other parts of the Link app), so filters, minsize and maxsize parameters are not supported.

In future there are plans to add filters and possibility to choose group chats in this list.

The invitation message will be set by default on the platform utilizing the creatives you've uploaded (e.g. game's icon). Optionally, you can specify a custom message payload alike shareAsync(). More details can be found from API docs.

Choosing non-playing user in context.chooseAsync() UI#

In the chooseAsync() UI there are friends that play this game and those who don't play it yet. If the user chooses non-playing friend, invitation message will be still sent, but after that the context won't be created and you won't be able to send subsequent messages via updateAsync(). If the friend is playing the game, the context will be created as usual and sending additional messages will be possible.

context.switchAsync() and context.create() behaviour#

Switching to the context will raise a popup requesting the user "Do you want to play with {friendName}?"

After successful confirmation the player will be switched to the context. There are no limits on how many messages can be sent to this context after that via updateAsync.

updateAsync() behaviour#

In updateAsync request you won't be able to specify strategies like LAST and IMMEDIATE_CLEAR. All messages will be sent immediately, as the strategy IMMEDIATE.

shareAsync() behaviour#

There is no timeline feature in Link at the moment. So shareAsync() will be sending individual messages to the users. The only difference from chooseAsync is the support of multiple selection UI.

Other UI layouts are planned to be added in future.

Differences in creatives formats#

Recommended image size for shareAsync() and updateAsync() is 1200x800 px currently.

Differences in entry points#

getEntryPointAsync() will be returning an entry point name that might be different from the entry points on other platforms (due to differences in discoverability and app UI). We will be sharing the information about each entry point later.

Advertising#

Google GMA/Admob is used for serving the ads. 2 formats will be available at the launch of the platform - fullscreen rewarded video ad and full screen interstitial banner.

Info about ad units will be listed on Developer Console but provisioned manually. Please contact your developer relationship representive about provisioning the ad units.

Unsupported features#

  • Only ad monetization will be supported during the platform launch. IAP feature for Android is in development and is planned to be released some time after the launch. There are no clear plan for IAP for iOS version.
  • Currently chatbot feature is not supported. It is in planning phase and we expect it to appear some time after the platform launch.
  • Sending messages to group chats is not available at the moment.
  • Contextual leaderboard feature is not supported, and we don't have plans to support it at the moment.
  • quit() is not supported and we don't have plans to support it.

Error handling#

SDK methods may throw error when they meet obstables that are preventing requested operation to be processed. And usually the errors will come with a human readable message telling how those obstables can be tackled.

But keep in mind that all those messages are only targeted to be read by developer audience, not to end users. As a game developer, please make sure you keep those error messages internally, and avoid showing them directly to end users.