文档

支持

快速入门

使用 CocoaPods 或 Swift Package Manager 将 Tapjoy Offerwall 集成到 iOS 应用中,快速启用 Offerwall 功能。
阅读时间4 分钟最后更新于 5 天前

SDK 集成

Cocoapods

CocoaPods 是 Objective-C 和 Swift 的依赖项管理器。 要使用 Tapjoy,请将其添加到 podfile:
platform :ios, '13.0'source 'https://github.com/CocoaPods/Specs.git'use_frameworks!target 'MyApp' do pod 'TapjoySDK'end
使用 Cocoapods 进行集成时,我们提供了静态或动态框架选项。默认为静态。要选择动态框架,您可以将以下代码添加到 podfile 中:
pod 'TapjoySDK/Dynamic'

Swift Package Manager

从 SDK v13.4.0 开始,我们支持 Swift Package Manager。 转到 File(文件)> Add Packages Dependancies(添加包依赖项)。在右上角搜索栏中,粘贴代码仓库
https://github.com/Tapjoy/swift-packages.git
,然后选择 Add Package(添加包)

请求应用追踪透明度授权

如果应用程序需要使用应用追踪透明度框架,为了显示 IDFA 访问权限请求对话框,请更新 Info.plist,在其中包含
NSUserTrackingUsageDescription
键以及自定义消息(描述在应用程序中需要此权限才能使用 IDFA)。
例如:
<key>NSUserTrackingUsageDescription</key><string>This allows us to deliver personalized ads for you.</string>
包含 NSUserTrackingUsageDescription 键的信息属性列表
此用途描述文本随后将显示在应用追踪透明度权限对话框中,如以下屏幕截图所示:
iOS 应用追踪透明度权限对话框
AppTrackingTransparency
框架添加到您的项目中,然后调用
requestTrackingAuthorizationWithCompletionHandler:
来显示授权提示。建议最好在连接到 Tapjoy 之前等待
requestTrackingAuthorization
完成处理程序,以便可以确定在所有请求中都使用了预期的 IDFA 值。
#import <AppTrackingTransparency/AppTrackingTransparency.h> ... - (void)fetchTrackingAuthorization { [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) { // Call the Offerwall connect function here. }]; }

连接到 Tapjoy

下一步是将 Tapjoy connect 代码添加到您的应用程序中。这段关键代码将在应用程序中“激活”Offerwall SDK。 为了实现 Tapjoy connect 调用,需要为要集成的应用程序提供 Offerwall SDK 密钥。要查找此密钥,请在 Tapjoy 后台中导航到您的应用程序,然后单击顶部导航栏上的“Settings(设置)”按钮。导航到“App Settings(应用设置)”,然后在页面底部找到 SDK 密钥。 现在,将以下代码片段放到应用程序的应用委托文件中的
application:didFinishLaunchingWithOptions
方法内:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tjcConnectSuccess:) name:TJC_CONNECT_SUCCESS object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tjcConnectFail:) name:TJC_CONNECT_FAILED object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(tjcConnectWarning:) name:TJC_CONNECT_WARNING object:nil]; //Turn on Tapjoy debug mode [Tapjoy setLoggingLevel:TJLoggerLevelDebug]; //Only enable debug mode for development.Disable it before publishing your app. //If you are using Self-Managed currency, you need to set a user ID using the connect flags. NSDictionary *connectFlags = @{TJC_OPTION_USER_ID : @"<USER_ID_HERE>"}; [Tapjoy connect:@"SDK_KEY_GOES_HERE" options:connectFlags]; //If you are not using connect flags, you can omit them [Tapjoy connect:@"SDK_KEY_GOES_HERE"]; return YES;}
应在 connect 调用之前定义
setLoggingLevel
方法。建议使用连接标志来设置用户 ID。这样,在调用时,AppLaunch 广告位可以获取到正确的用户 ID。
如需了解更多信息,请查看我们的 SDK 参考:Objective CC++

连接通知

为了在 Tapjoy 成功连接、已连接但有警告或连接失败时收到相关通知,您需要实现我们先前设置为选择器的方法。当连接过程中出现非阻塞问题时,
connectWarning
回调将触发(并且
connectSuccess
也会在之后触发)。目前,此功能仅用于检测在 ConnectFlags 中发送的 UserId 的相关问题。
- (void)tjcConnectSuccess:(NSNotification *)notifyObj { NSLog(@"Tapjoy connect succeeded");}- (void)tjcConnectFail:(NSNotification *)notifyObj { NSError *error = notifyObj.userInfo[TJC_CONNECT_USER_INFO_ERROR]; NSInteger code = error.code; NSString *message = error.localizedDescription; NSError *underlyingError = error.userInfo[NSUnderlyingErrorKey]; NSString *underlyingErrorMessage = underlyingError != nil ? [NSString stringWithFormat:@" - %li %@", underlyingError.code, underlyingError.localizedDescription] : @""; NSLog(@"%@", underlyingErrorMessage);}- (void)tjcConnectWarning:(NSNotification *)notifyObj { NSError *error = notifyObj.userInfo[TJC_CONNECT_USER_INFO_ERROR]; NSError *underlyingError = error.userInfo[NSUnderlyingErrorKey];}
现在编译并运行您的应用程序。如果您正确执行了所有操作,控制台日志中将显示类似以下内容的输出:
2020-01-29 16:01:55.422 App Name[25869:1433019] [TJLog level: 4] Connect success with type:0

最大用户等级

您可以告诉 Tapjoy 您的游戏中有多少关卡。此值可以在调用 connect 之前或之后设置。
[Tapjoy setMaxLevel:10];

用户细分段

您可以通过调用
setUserSegment
将用户标识为某个细分段的一部分。此设置可以在调用 connect 之前或之后进行。
[Tapjoy setUserSegment:TJSegmentVIP];[Tapjoy setUserSegment:TJSegmentPayer];[Tapjoy setUserSegment:TJSegmentNonPayer];[Tapjoy setUserSegment:TJSegmentUnknown];