Skip to main content

TikTok Reward Account Binding

Important

Do not integrate on your own. The TikTok channel requires formal cooperation with TikTok before you can register an application and obtain the configuration required for integration. If you need to integrate, please consult your business contact first.

TikTok Reward Account Binding lets players open your game from a TikTok reward campaign, bind their game account to TikTok, and then return to TikTok so the reward can be fulfilled.

Supported platforms

Reward Account Binding is supported on:

  • iOS
  • Android

Configure the reward bind URI

Open the project INTLConfig.ini file and add the reward bind URI:

INTLConfig.ini
[TikTok]
TIKTOK_APP_ID = {INTL_TIKTOK_APP_ID}
TIKTOK_CLIENT_KEY = {INTL_TIKTOK_CLIENT_KEY}
TIKTOK_REDIRECT_URI = {INTL_TIKTOK_REDIRECT_URI}
TIKTOK_REWARD_BIND_URI = {INTL_TIKTOK_REWARD_BIND_URI}
  • Replace {INTL_TIKTOK_REWARD_BIND_URI} with the Reward Bind URI configured in the TikTok developer console. The path must end with /pnt/tiktok/rewardsbind, for example https://example.com/pnt/tiktok/rewardsbind.

On Android, the build pipeline also needs the host and path as manifest placeholders:

build.gradle
android {
defaultConfig {
manifestPlaceholders = [
"TIKTOK_REDIRECT_URI_HOST" : "{INTL_TIKTOK_REDIRECT_URI_HOST}",
"TIKTOK_REDIRECT_URI_PATH" : "{INTL_TIKTOK_REDIRECT_URI_PATH}",
"TIKTOK_REWARD_BIND_URI_HOST" : "{INTL_TIKTOK_REWARD_BIND_URI_HOST}",
"TIKTOK_REWARD_BIND_URI_PATH" : "{INTL_TIKTOK_REWARD_BIND_URI_PATH}",
]
}
}
  • Replace {INTL_TIKTOK_REWARD_BIND_URI_HOST} and {INTL_TIKTOK_REWARD_BIND_URI_PATH} with the host and path of TIKTOK_REWARD_BIND_URI. For example, if TIKTOK_REWARD_BIND_URI = https://example.com/pnt/tiktok/rewardsbind, use example.com and pnt/tiktok/rewardsbind.

Complete flow

The following diagram shows the full reward-account-binding flow:

TikTok Reward Account Binding flow

The SDK plugin declares a trampoline activity that catches the reward bind App Link.

Make sure the host app provides INTL_GAME_ACTIVITY_CLASS_NAME metadata so the SDK can return to the correct activity:

AndroidManifest.xml
<application ...>
<meta-data
android:name="INTL_GAME_ACTIVITY_CLASS_NAME"
android:value="com.yourgame.YourMainActivity" />
</application>

On iOS, the reward bind URI uses the same HTTPS scheme and domain as the login redirect URI. iOS routes the callback through Universal Link instead of a custom URL scheme.

Add the reward bind domain to your app's Associated Domains entitlement:

YourApp.entitlements
<key>com.apple.developer.associated-domains</key>
<array>
<string>applinks:{INTL_TIKTOK_REWARD_BIND_URI_HOST}</string>
</array>

Replace {INTL_TIKTOK_REWARD_BIND_URI_HOST} with the host of TIKTOK_REWARD_BIND_URI.

Already-logged-in TikTok path

If the player is already logged in through TikTok when the reward link arrives, the SDK skips the bind step entirely and queues a deferred jump back to TikTok. No extra game code is required.

Early termination and loop prevention

The SDK prevents the bind flow from running twice for the same reward link. If a bind is already in progress, duplicate deep-link arrivals are ignored.

The bind flow terminates automatically on any TikTok bind result — success, failure, or cancellation. No game code is required to handle termination.

Return-to-TikTok behavior

Once the bind flow terminates, the SDK automatically opens TikTok and returns the player to the campaign. You do not need to trigger the return manually. This applies to all outcomes — successful bind, failed bind, user cancellation, or the "already logged in with TikTok" fast-path.

Issuing bind rewards (optional)

TikTok Reward Account Binding only establishes the identity link between the game account and the TikTok account. If your game also uses the Level Infinite reward service to hand out in-game gift packs after the bind, call SendBindReward separately from your game code. This API is independent of the reward-bind return flow and does not affect when the user is sent back to TikTok.

Testing and troubleshooting

  1. Confirm that TIKTOK_REWARD_BIND_URI is set in INTLConfig.ini and matches the value in the TikTok developer console.
  2. On Android, verify that TIKTOK_REWARD_BIND_URI_HOST and TIKTOK_REWARD_BIND_URI_PATH are populated as manifest placeholders.
  3. On iOS, verify the Associated Domains entitlement and apple-app-site-association file for the reward bind path.
  4. Confirm that login or auto-login completes after the deep link arrives; the bind flow waits for a successful login event.
  5. Check native logs for messages from the TikTok reward bind module if the bind does not trigger or the return to TikTok fails.