快速指南

1. SDK集成

集成的第一步是下载SDK,点击这里下载.

Tapjoy Unity Plugin zip包含了用于简便导入的Unity包文件,以及为那些想要通过自己拖放文件来更新集成的用户所准备的源文件。如果想要导入TapjoyUnityPlugin_vVERSION.unitypackage您需要:

  1. 打开您的Unity项目
  2. Assets -> Import Package -> Custom Package..
  3. 指向 TapjoyUnityPlugin_vVERSION.unitypackage文件
  4. 检阅一下文件导入列表确认没有冲突
  5. 点击”Import”按钮来加入文件

从12.8.0版本开始Tapjoy SD 由External Dependency Manager(EDM)通过Cocoapods管理。请确保您的Cocoapods版本为1.9.0或更高,而Xcode版本为11.0或更高。

A. 使用Unity5.4或者更高版本:

如果您在更新您的集成并使用Unity5.4或更高版本,您可以看见“Fix”按钮帮助您修复Google Play Services库被包含在iOS构建中这一错误。

请点击“Fix”按钮来确保Google Play Services库仅被包含在Android构建中。对于Unity5.4之前的版本,您需要手动确认google-play-services_lib仅被包含在Android构建中。

B. 添加应用的Permission(安卓)

ACCESS_WIFI_STATE permission可以作为可选添加到您的manifest:

<manifest ...>
  ...
  <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
  ...
</manifest>

2. 连接Tapjoy

您可以使用Tapjoy窗口来设置基本配置。 点击Window > Tapjoy 打开Tapjoy窗口。

image_title

  • 用于安卓和iOS的SDK Key
  • 安卓市场的商店名称 (Google, Amazon等)
  • 授权或者禁用Advertising ID, Persistent ID,以及IDFA
    • Disable Advertising Id: 此复选框与Android中的DISABLE_ADVERTISING_ID_CHECK连接标志具有相同的作用。 默认情况下,Tapjoy的Android SDK会检查是否存在Google Advertising Identifier,如果找不到,它将无法初始化。 通过选中此框,您可以禁用此检查,以便即使不存在Google Advertising Identifier也可以Tapjoy SDK初始化。 当应用中不存在Google Play服务时,例如在非Google Play应用商店中构建要发布的版本时,这很有用。
  • 授权或者禁用debug模式(包括控制台日志). 请确保当您发布新版本的时候这项功能被禁用

要使Tapjoy SDK工作,需要一个附有TapjoyComponent的TapjoyUnity的GameObject,在编辑窗口中,你可以看到一个“Fix”按钮,它会自动帮你添加和设置这个GameObject。请把Tapjoy GameObject添加到你应用的第一个scene中。

恭喜!您已经成功集成Tapjoy SDK!

Max User Level

您可以通知Tapjoy在您的应用中一共有多少级。您可以调用如下API。在connect前后都可以调用。

Tapjoy.SetMaxLevel(10); 

User Segment

您可以在通过调用setUserSegment来指定用户在某个群组。在connect前后都可以调用。

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

A. 手动连接

Unity SDK允许您通过代码控制连接步骤。 默认情况下,SDK将为您处理连接。 要使用手动控制,请首先在Tapjoy设置窗口(“window”>“ Tapjoy”)中取消选中“Auto-Connect”选项。

取消选中该选项后,SDK将不再为您自动处理连接。 您将需要使用代码来处理连接,这种行为和Native SDK一样。

当您的应用程序首次启动时,您必须调用Connect以使SDK连接到Tapjoy服务器。 连接功能有两个版本。 Connect的第一种形式是将SDK密钥作为字符串。 如果您的应用程序是多平台的,则需要为每个平台提供正确的SDK密钥。

#if UNITY_ANDROID
		Tapjoy.Connect("your_android_sdk_key");
#elif UNITY_IOS
		Tapjoy.Connect("your_ios_sdk_key");
#endif

Connect的另一个版本采用第二个参数,即字符串/字符串的字典数据类型。 该字典类型就是您的connectFlags,它们的行为与Native SDK中的相同。

Dictionary<string,object> connectFlags = new Dictionary<string,object>();
Tapjoy.Connect("sdk_key", connectFlags);
Dictionary<string,string> connectFlags = new Dictionary<string,string>();
connectFlags.Add("TJC_OPTION_USER_ID", "<USER_ID_HERE>");

#if UNITY_ANDROID
  Tapjoy.Connect("your_android_sdk_key", connectFlags);
#elif UNITY_IOS
  Tapjoy.Connect("your_ios_sdk_key", connectFlags);
#endif

您必须先完成SDK连接,然后才能对SDK执行其他操作(例如加载广告)。 连接事件触发了两个事件委托-OnConnectSuccess和OnConnectFailure。 您应该声明委托函数以侦听连接事件。 一旦触发了onConnectSuccess,就可以开始使用其他SDK函数。

如果SDK无法连接,则可以通过不带任何参数调用Connect()重新尝试连接。 这将使SDK使用上次尝试与其连接的SDK密钥重试其连接。

B. 回调

现在您的SDK已经运行起来了,那么下面我们看看代码还需要哪些工作。在使用Tapjoy SDK请求广告或者发送跟踪数据之前,我们还需要确保应用能够正确连接到我们的服务器上。SDK提供了一个delegate功能OnConnectSuccess,它在SDK成功连接Tapjoy之后被调用。你需要等到成功连接之后再去尝试其他的功能,诸如请求广告和跟踪数据。

Tapjoy.OnConnectSuccess += HandleConnectSuccess;
...

public void HandleConnectSuccess() {
    Debug.Log ("Connect Success");

    // Now that we are connected we can start preloading our placements
    TJPlacement p = TJPlacement.CreatePlacement("my_placement");
    p.RequestContent();
}

Tapjoy.OnConnectWarning += HandleConnectWarning;
...

void HandleConnectWarning(int code, string message)
{
    
}

Tapjoy.OnConnectFailed += HandleConnectFailed
...

public void HandleConnectFailed(int code, string message){

}

您可以通过查询Tapjoy.isConnected来检查SDK的连接状态