手工集成

1. 下载SDK

SDK集成的第一步是下载iOS SDK

2. 添加SDK到您的工程中

在下载并解压 Tapjoy SDK 之后,您应该可以看到以下文件夹和文件:

“TapjoyEasyApp”目录包含一个示例程序 sample projects ,它可以作为Tapjoy集成的一个参考。但要主意您无需把它集成到您的应用中去。

添加SDK到您的项目,在 Xcode 中右键单击项目浏览器内的项目图标,然后选择"Libraries"文件夹中Tapjoy.embeddedframework。请勾选‘copy items if needed’,然后点击‘Add’按钮添加到您的项目中

然后,在build settings中找到Other Linker Flags (OTHER_LDFLAGS)添加-ObjC.

A. 添加所需框架

接下来,您需要确保已在您的应用程序项目中添加了所需的框架。要这样做,请转到项目设置,选择“Build Phases”,展开“Link Binary With Libraries”,点击左下方“+”选择。

添加以下框架:

  • AdSupport
  • CFNetwork
  • CoreTelephony
  • StoreKit
  • SystemConfiguration
  • UIKit
  • WebKit
  • libc++
  • libz
  • PassKit (可以标记为“可选”以与旧版本的iOS兼容)

注意: 如果您正在使用12.8.0以前的版本,您还需要添加如下框架:

  • CoreGraphics
  • Foundation
  • ImageIO.framework
  • MediaPlayer
  • MobileCoreServices
  • QuartzCore
  • Security

B. Swift

如果您正在使用12.8.0及以上版本,当前步骤不是必须的。

如果您使用Swift,您需要创建一个bridging头文件

  1. 创建一个头文件并命名为: "[ProjectName]-Bridging-Header.h"
  2. 添加 #import "Tapjoy/Tapjoy.h 到都文件中.
  3. 到build settings, 找到"bridging header" 并设置文件路径。您也可以直接拖拽到您的工程中。

3. 请求App Tracking Transparency authorization

如果您的应用中使用了App Tracking Transparency, 为了在应用中展示请求授权对话框,您需要在您的Info.plist中添加 NSUserTrackingUsageDescription key并且添加描述请求使用IDFA的消息。

示例:

<key>NSUserTrackingUsageDescription</key>
<string>This allows us to deliver personalized ads for you.</string>

image_title

配置的消息将会出现在App Tracking Transparency权限请求对话框中, 如下所示:

image_title

添加 AppTrackingTransparency 框架到您的工程中, 并且调用requestTrackingAuthorizationWithCompletionHandler: 来展示权限请求对话框。通常我们推荐等到requestTrackingAuthorization回调之后再连接Tapjoy,这样可以保证我们可以正确使用IDFA。

Objective-C
Swift
#import <AppTrackingTransparency/AppTrackingTransparency.h>
...
- (void)fetchTrackingAuthorization {
  [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
    // Call Tapjoy's connect function here.
  }];
}

4. 连接Tapjoy

下一步是将Tapjoy connect代码添加到您的应用中。 这是在您应用中使用Tapjoy SDK的关键步骤。

Tapjoy connect 调用非常重要,如果实现不正确,Tapjoy的任何产品和功能都将不能使用。

为了实现Tapjoy connect 调用,您需要您要集成应用的Tapjoy SDK Key. 在您应用的Tapjoy 控制面板中,点击顶部导航栏的“设置”-“应用设置”,您可以在页面底部找到SDK key。

在您的应用的delegate文件didFinishLaunchingWithOptions: method中添加以下代码::

Objective-C
Swift
- (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];

    //Turn on Tapjoy debug mode
    [Tapjoy setDebugEnabled:YES]; //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;
}

用您的SDK Key替换"Your-SDK-Key-iOS-from-the-dashboard-here"。

“setDebugEnabled”方法应在connect调用之前定义。我们建议通过连接标志设置用户 ID。这样可以保证AppLaunch位置在调用时检索正确的用户ID。

我们SDK参考文档:Obective CC++

5. Connect Notifications

要在Tapjoy完成连接、连接时出现警告或连接失败时收到通知,您需要实现以下方法。 当连接期间出现非阻塞问题时,connectWarning回调将触发(并且connectSuccess也会在之后触发)。 目前,此功能仅检测在 ConnectFlags设置UserId的问题。

Objective-C
Swift
- (void)tjcConnectSuccess:(NSNotification *)notifyObj 
{
    NSLog(@"Tapjoy connect succeeded");
}

- (void)tjcConnectFail:(NSNotification *)notifyObj 
{
    NSLog(@"Tapjoy connect failed");
}

- (void)tjcConnectWarning:(NSNotification *)notifyObj 
{
    NSError *error = notifyObj.userInfo[TJC_CONNECT_USER_INFO_ERROR];
    NSError *underlyingError = error.userInfo[NSUnderlyingErrorKey];
}

现在可以编译并运行您的应用。如果Connect成功,可以看到以下Log:

2020-01-29 16:01:55.422 Storyteller Roller[25869:1433019] [TJLog level: 4] Connect success with type:0

在Tapjoy 控制面板中,在顶部导航栏里点击“分析” ,然后在左侧导航栏里点击“实时分析”,您可以在看到您应用的实时数据。

恭喜!Tapjoy SDK已经可以和您的应用正常工作。