Update Guide

本指南介绍了从一个Tapjoy SDK版本更新到另一个版本时所需的步骤,建议您执行所有步骤以防止出现任何问题或冲突。

13.4.0

Tapjoy SDK增加了connectWarning回调。当连接期间出现非阻塞问题时,此回调将触发,connectSuccess也会在之后触发。 目前,此功能仅检测在ConnectFlags中设置UserId的问题。

import {
  NativeEventEmitter,
  NativeModules,
} from 'react-native';

const TJ = NativeModules.TapjoyReactNativeSdk;
      const TapjoyEmitter = new NativeEventEmitter(TJ);
      const TapjoyEventType = 'Tapjoy';
      const subscription = TapjoyEmitter.addListener(
        TapjoyEventType,
        (event: TapjoyEvent) => {
          if (event.name === TJConnect.TJC_CONNECT_WARNING) {
            subscription.remove();
            setStatusLabelText(
              `Tapjoy SDK connected with Warning: ErrorCode: ${event.code} ${event.message} `
            );
          }
        }
      );

同时我们还支持User Tags.

Tapjoy.addUserTag('');
Tapjoy.removeUserTag('');
Tapjoy.clearUserTags();

13.2.0

Connect

我们在connectFailure回调中添加错误代码和相关信息。原有回调方法已经被弃用,但是仍然起作用。

try {
  await Tapjoy.connect(sdkKey, flags);
} catch (error: any) {
  let errorString = `Tapjoy SDK failed to connect. code: ${error.code}, message: ${error.message}`;
} 

Max User Level

您可以设置应用中的级别数目。在connect之前或之后都可以调用。

Tapjoy.setMaxLevel(10); 

User Segment

您可以在应用中设置用户的类型。在connect之前或之后都可以调用,在session中也可以调用。

Tapjoy.setUserSegment(TJSegment.VIP);
Tapjoy.setUserSegment(TJSegment.Payer);
Tapjoy.setUserSegment(TJSegment.NonPayer);
Tapjoy.setUserSegment(TJSegment.Unknown);

Entry Point

在调用_request connect_之前,您可以设置进入点。这个进入点表示广告展示位置在您应用中的位置。您可以从下面的预设值中选择。

let placement = new TJPlacement("myPlacement");
placement.setEntryPoint(TJEntryPoint.TJEntryPointMainMenu);
placement.requestContent(); 

// Available values
TJEntryPointUnknown
TJEntryPointOther
TJEntryPointMainMenu
TJEntryPointHud
TJEntryPointExit
TJEntryPointFail
TJEntryPointComplete
TJEntryPointInbox
TJEntryPointInit
TJEntryPointStore

Currency

  • Get/spend/earn不再支持负数。
  • 如果您使用的自管理虚拟货币,当您调用Tapjoy管理虚拟货币API时返回错误。

您可以在创建展示位置之前设置用户账号余额。必须要在_requestContent_之前设置。

let placement = new TJPlacement('placementName');
try {
  await placement?.setCurrencyBalance('1234', 100);
} catch (e: any) {
  let code = e.code;
  let message = e.message;
}

您也可以设置用户在每个展示位置中达到目标需要获得的虚拟货币数量。

let placement = new TJPlacement('placementName');
try {
await offerwallPlacement?.setRequiredAmount(100, '100');
} catch (e: any) {
  let code = e.code;
  let message = e.message;
} 

User Privacy

更新User Privacy相关接口,同时增加Android optOutAdvertisingId接口.

let privacyPolicy = new TJPrivacyPolicy();
privacyPolicy.setSubjectToGDPRStatus(TJStatus.True);
privacyPolicy.setBelowConsentAgeStatus(TJStatus.False);
privacyPolicy.setUserConsentStatus(TJStatus.Unknown);
privacyPolicy.setUSPrivacy('1---');
privacyPolicy.optOutAdvertisingID(false);