文档

支持

快速入门

将 Tapjoy Unity 插件导入到项目中以启用 SDK 集成。快速入门指南将引导您完成导入 .unitypackage、配置 SDK 密钥以及添加所需的 Tapjoy 游戏对象等步骤。
阅读时间6 分钟最后更新于 5 天前

SDK 集成

为了与应用集成,第一步是下载 Unity SDK 本身。 Tapjoy Unity 插件的 zip 文件包含一个便于导入的 Unity 包文件,还有一些原始文件适合喜欢拖放文件进行 Tapjoy 升级的用户。要导入
TapjoyUnityPlugin_vVERSION.unitypackage
,请执行以下操作:
  1. 打开您的 Unity 项目。
  2. 转到 Assets(资源)> Import Package(导入包)> Custom Package(自定义包)
  3. 指向
    TapjoyUnityPlugin_vVERSION.unitypackage
    文件。
  4. 查看导入文件列表,检查是否存在任何冲突。
  5. 选择 Import(导入) 以接受这些文件。

在 Unity 5.4 或更高版本上更新

如果要更新集成且使用的是 Unity 5.4 或更高版本,则会显示“Fix(修复)”按钮以用于修复一个错误,这个错误会导致 Google Play 服务库被标记为包含在 iOS 构建中。 选择 Fix(修复) 可以确保 Google Play 服务仅包含在 Android 构建中。对于 Unity 5.4 之前的版本,您需要手动确保 google-play-services_lib 设置为仅包含在 Android 构建中。请注意,新集成不需要进行这种修复,也不会显示此按钮。

添加应用权限(适用于 Android)

(可选)将
ACCESS_WIFI_STATE
权限包含在清单中:
<manifest ...> ... <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> ...</manifest>

连接到 Tapjoy

您可以在 Tapjoy 窗口中开始配置 Tapjoy。转到
Window > Tapjoy
(窗口 > Tapjoy)打开 Tapjoy 窗口。
游戏中的 Unity Offerwall 窗口示例
在 Tapjoy 窗口中,可进行以下配置:
  • 设置 Android 和 iOS 的 SDK 密钥
  • 添加 Android 市场的商店名称(例如,Google 或 Amazon)
  • 启用或禁用广告 ID、持久 ID 和 IDFA
    • Disable Advertising Id(禁用广告 ID):此复选框与 Android 中的 DISABLE_ADVERTISING_ID_CHECK 连接标志具有相同的效果。默认情况下,Tapjoy 的 Android SDK 会检查是否存在 Google 广告标识符,如果没有找到,初始化将失败。选中此复选框可以禁用这一检查,使 Offerwall SDK 即使在没有 Google 广告标识符的情况下也能初始化。当应用中不存在 Google Play 服务时(例如,在非 Google Play 应用商店中构建发布版本时),此选项很有用。
    • Disable Persistent Ids(禁用持久 ID):此复选框与 Android 中的 DISABLE_PERSISTENT_IDS 连接标志具有相同的效果。Offerwall SDK 会将持久标识符(例如 MAC 地址和 Android 标识符)发送到 Tapjoy 服务器,以便在广告标识符不可用的情况下用作备用广告标识符(这是 Play Console 帮助文档关于广告 ID 的部分中建议的选项)。如果设置此标志,则仅当广告标识符在 SDK 中不可用时,才会将持久标识符发送到 Tapjoy 服务器来跟踪广告主。
    • 没有复选框等效于 DISABLE_ANDROID_ID_AS_ANALYTICS_ID 连接标志。(如果设置此标志,Tapjoy 用于分析目的的 ID 不再是 Android ID 的副本,而是随机生成的字符串。如果发布新的构建时更改了此标志的设置以使其不同于旧版本,则可能导致某些现有用户被 Tapjoy 的分析工具识别为新用户。)如果想要设置此标志,必须使用 Tapjoy Unity 手动连接并添加 DISABLE_ANDROID_ID_AS_ANALYTICS_ID 标志。
  • 设置日志记录级别
还可以检查集成的状态,包括 GCMReceiver Setting(GCMReceiver 设置)和 Install Referrer Receiver Setting(安装来源接收器设置)。 为了使 Offerwall SDK 正常工作,需要一个附加了 TapjoyComponent 的 TapjoyUnity 游戏对象 – 在编辑器窗口中将有一个“Fix(修复)”按钮,此按钮将自动为您添加和设置这个游戏对象。仅将 Tapjoy 游戏对象添加到游戏中首次出现的第一个场景。 完成 Tapjoy 的配置后,即可构建和运行您的应用程序。

最大用户等级

您可以告诉 Tapjoy 您的游戏中有多少关卡。此值可以在调用 connect 之前或之后设置。
Tapjoy.SetMaxLevel(10);

用户细分段

您可以通过调用
setUserSegment
将用户标识为某个细分段的一部分。此设置可以在调用 connect 之前或之后进行。
Tapjoy.SetUserSegment(TJSegment.VIP);Tapjoy.SetUserSegment(TJSegment.Payer);Tapjoy.SetUserSegment(TJSegment.NonPayer);Tapjoy.SetUserSegment(TJSegment.Unknown);

手动连接

Unity SDK 允许通过代码来控制连接步骤。默认情况下,SDK 将为您处理连接。要启用手动控制,请先在 Tapjoy Settings(Tapjoy 设置)窗口(Window(窗口)> Tapjoy)中取消选中“Auto-Connect(自动连接)”选项。 取消选中该选项后,SDK 将不再自动为您处理连接。您需要使用代码自行处理连接,这种行为与原生 SDK 中的行为类似。 当应用程序首次启动时,必须调用
Connect
使 SDK 连接到 Tapjoy 服务器。Connect 函数有两个版本。Connect 函数的第一个版本仅接受字符串形式的 SDK 密钥。如果您的应用程序面向多个平台,则需要为每个平台提供正确的 SDK 密钥。
#if UNITY_ANDROID Tapjoy.Connect("your_android_sdk_key");#elif UNITY_IOS Tapjoy.Connect("your_ios_sdk_key");#endif
Connect 函数的另一个版本接受第二个参数,即字符串/字符串值字典。此字典是您的 connectFlags,其行为与原生 SDK 中的行为相同。
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
还可以使用编程的方式获取和设置日志记录级别。
// Set logging levelTapjoy.SetLoggingLevel(LoggingLevel.Debug);// Get logging levelLoggingLevel loggingLevel = Tapjoy.GetLoggingLevel();
必须先完成 SDK 连接,然后才能使用 SDK 执行其他操作(例如,加载广告)。有两个在发生连接事件时触发的事件委托 – OnConnectSuccess 和 OnConnectFailure。应声明委托函数来监听连接事件。触发 onConnectSuccess 后,即可开始使用其他 SDK 函数。 如果 SDK 无法连接,可调用不带参数的 Connect() 来重新尝试连接。这样,SDK 将使用上次尝试连接时使用的 SDK 密钥重试连接。

回调

SDK 运行起来后,现在可以花点时间按照最佳实践编写代码了。Offerwall SDK 需要先成功连接到我们的服务器,然后才能请求广告或发送追踪数据。SDK 公开了一个委托函数
OnConnectSuccess
,这个函数将在 SDK 成功连接时触发。请等待 SDK 成功连接后再尝试使用其他函数(例如请求广告或追踪数据)。当连接过程中出现非阻塞问题时,
OnConnectWarning
回调将触发(
connectSuccess
也会在之后触发)。目前,这种检测功能仅在通过 ConnectFlags 发送 UserId 时才会检测 UserId 的问题。
OnConnectFailure
表示发生错误且 SDK 未连接。
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 连接状态。