快速指南

1. 控制面板集成指南

在Tapjoy控制面板中内置的集成指南,可以帮助您完成Tapjoy SDK 集成。如果愿意,可以使用此入门指南文档作为参考,也可以直接转到适用于您应用程序的集成指南

2. 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”按钮来加入文件

注意: 从版本11.10.1开始,Tapjoy Unity包不再包含Google Play Services。 如果您需要将其添加到项目中,则可以将其从Unity项目中的{unity-sdk}/Assets/Plugins/Android/google-play-services_lib/复制到Assets/Plugins/Android。 如果您的应用程序已包含Google Play服务,请确保其中包含“ com.google.android.gms.play-services-ads”,因为这是Tapjoy使用的Play服务的一部分。

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

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

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

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

您需要以下的权限:

  • INTERNET
  • ACCESS_NETWORK_STATE
  • ACCESS_WIFI_STATE(optional)
<manifest ...>
  ...
  <uses-permission android:name="android.permission.INTERNET"/>
  <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
  ...
</manifest>

如想要使用Tapjoy的所有功能,将这些activities添加到Application模块的AndroidManifest.xml文件中去:

<activity
  android:name="com.tapjoy.TJAdUnitActivity"
  android:configChanges="orientation|keyboardHidden|screenSize"
  android:hardwareAccelerated="true"
  android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" />
<activity
  android:name="com.tapjoy.TJContentActivity"
  android:configChanges="orientation|keyboardHidden|screenSize"
  android:theme="@android:style/Theme.Translucent.NoTitleBar"
  android:hardwareAccelerated="true" />

作为Google Play Service集成的一部分,您还需要添加:

<meta-data
  android:name="com.google.android.gms.version"
  android:value="@integer/google_play_services_version" />

3. 连接Tapjoy

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

image_title

  • 用于安卓和iOS的SDK Key
  • 在Android上 push notification的FCM发送者ID
  • 安卓市场的商店名称 (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控制面板中,如果您点击左边导航栏的”Real-time”标签,在您启动您的应用后应该就能看到一些活动日志。

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

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);

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

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

B. 回调

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

Tapjoy.OnConnectSuccess += HandleConnectSuccess;
...
// Connect success
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.isConnected来检查SDK的连接状态