菜单

集成

1. 前提准备

您可以前往AppStore中下载或更新Xcode,也可以登录苹果开发者资源中心进行指定版本的下载。

2. 导入 SDK 至项目工程

我们提供如下两种方式导入Taku iOS SDK :

  • CocoaPods(首选)
  • 手动下载并导入

要将 SDK 导入 iOS 项目,最简单的方法是使用 CocoaPods。如果您刚开始接触 CocoaPods,请参阅CocoaPods官方网站。

2.1 CocoaPods (首选)

请点击这里前往SDK下载中心,您可以参考以下图片步骤,按照您的需求选择并生成Podfile中的代码。

请您在生成完毕相关代码后不要离开SDK下载中心网页,后续对接流程还会使用其中的内容。

切换至podfile所在路径后,在终端执行pod install --repo-update执行安装

2.2 手动下载并导入

2.2.1 手动下载Taku iOS SDK

请点击这里前往SDK下载中心,您可以参考以下示例图片,按照您的需求选择广告平台然后下载Taku iOS SDK。

  • 请您在下载完毕SDK后不要离开SDK下载中心网页,后续对接流程还会使用其中的内容。
  • 在您点击”生成接入代码“后,系统将立即处理您的请求,在您的耐心等待后,下载链接将成功生成,并可点击”下载“按钮。

2.2.2 手动导入Taku iOS SDK

① 请将您在上一步中下载好的ZIP文件进行解压缩,之后将它们拖入您的Xcode项目工程中。

② Xcode工程Build Setting修改(请参考下图操作)。

③ 请回到SDK下载中心网页,查看"SDK引入提示"栏目,将栏目中列出的依赖项在Xcode工程中进行添加。

根据您勾选的广告平台的种类差异,可能会额外出现"SDK引入提示"栏目(如下图),若您勾选完毕广告平台,并点击"生成接入代码"后,未出现"SDK引入提示"栏目,则您可跳过此步骤,继续进行后续接入流程。

请您不要离开"SDK下载中心"网页,后续对接流程还会使用其中的内容。

3. 更新Info.plist

3.1 打开Info.plist

3.2 添加SKAdNetworkItems键

UnityAds的SKAdNetwork ID每个项目均不相同,若您选择了该广告平台,请以UnityAds后台生成为准,需要您前往UnityAds管理后台查看。

请您回到上文中打开的"SDK下载中心"网页,将"SKAdNetwork IDs代码"栏目中所列出的内容添加至您的Info.plist文件中,请参考下图:

3.3 添加LSApplicationQueriesSchemes键

请您再次回到上文中打开的"SDK下载中心"网页,或直接复制下方代码,将如下栏目中所列出的内容添加至您的Info.plist文件中,请参考下图:

3.4 添加NSUserTrackingUsageDescription键

从iOS14.5开始,只有在获得用户明确许可的前提下,应用才可以访问用户的IDFA数据并向用户投放定向广告。

在应用程序调用 App Tracking Transparency 框架向最终用户提出应用程序跟踪授权请求之前,IDFA将不可用。如果某个应用未提出此请求,则读取到的IDFA将返回全为0的字符串。

markup 复制代码
<key>NSUserTrackingUsageDescription</key>
<string>此处修改为您希望用户看到的权限请求描述,可本地化</string>

3.5 添加NSAppTransportSecurity键

iOS10之后,Allow Arbitrary Loads in Web Content键存在时会忽略Allow Arbitrary Loads的设置

markup 复制代码
<key>NSAppTransportSecurity</key>
<dict>
	<key>NSAllowsArbitraryLoads</key>
	<true/>
</dict>

3.6 AdMob平台添加GADApplicationIdentifier键

若您勾选使用了Admob平台才添加该键。关于更多信息,请前往此处。

markup 复制代码
<key>GADApplicationIdentifier</key>
<string>Your GADApplicationIdentifier </string>
<!-- 上述值格式例如:ca-app-pub-9488501426181082~7219780494 -->

4. 向用户请求应用程序跟踪权限以获取IDFA

在集成本部分内容之前,您应当悉知需详细向用户说明 Taku SDK 所需的系统权限与各业务功能间的关系,并说明权限申请时机。

对于 Taku iOS SDK 可选申请的系统权限,您可以参考相关如下表格的内容,详细了解相关权限与各业务功能的关系及其申请时机,因相关权限的不申请将会对其对应的功能造成影响,您可以结合业务实际需要进行合理配置。

iOS操作系统应用权限列表:

权限 功能 用途和目的 调用时机
NSUserTrackingUsageDescription 【可选】获取设备标识,以识别设备信息 进行广告投放及反作弊 开发者在调用需要该权限的SDK功能时进行调用。当开发者需要根据设备信息情况使用调整广告变现策略及数据分析服务时进行时申请。

了解上述内容后,您需要通过App Tracking Transparency来向用户申请获取应用程序跟踪权限。

  • 在您使用下面的方法之前,您需要在Info.plist文件中设置NSUserTrackingUsageDescription键值。点击此处查看详情。
  • 如果您项目中需要适配GDPR或Google UMP,请前往这里进行配置,无需添加以下代码。
objc 复制代码
//导入头文件
#import <AppTrackingTransparency/AppTrackingTransparency.h>
#import <AdSupport/AdSupport.h>
#import <AnyThinkSDK/AnyThinkSDK.h>

//若使用AppDelegate
@implementation AppDelegate
 
- (void)applicationDidBecomeActive:(UIApplication *)application {
    if (@available(iOS 14, *)) {
        //iOS 14
        [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {

        }];
    } else {
        // 可以直接获取
        NSString * idfaStr = [ASIdentifierManager sharedManager].advertisingIdentifier.UUIDString;
    }
}

@end

在iOS 15及以上版本时,只有在应用程序状态为`UIApplicationStateActive`时,调用此API才会提示授权。如果另一个权限请求正在等待用户确认,则不会显示授权提示。

5. 开启调试日志

objc 复制代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
    //....
    //开启日志
    [ATAPI setLogEnabled:YES];//Turn on debug logs
    //....
     
    return YES;
}

6. SDK集成验证

您可以根据本方法输出的日志,检查各个广告平台的SDK集成是否正常。

请注意,上架包需要移除掉本功能。

objc 复制代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
    //....
    //开启日志
    [ATAPI setLogEnabled:YES];//Turn on debug logs

    //开启日志后,调用检查集成情况方法
    [ATAPI integrationChecking];

    return YES;
}

输出示例:

7. 初始化 SDK

⚠️ 重要(合规必读)

初始化方法的调用必须同时满足以下三条,缺一不可:

  1. 在用户同意隐私政策之后调用。若您的应用需要在首次启动时展示隐私政策并请求用户同意,请参考 Taku 隐私政策 与 隐私合规。
  2. 不要在应用启动阶段提前调用。禁止放在 application:didFinishLaunchingWithOptions:、viewDidLoad 等启动路径上。
  3. 作为广告加载(load)的前置步骤。在同一次调用链里先完成初始化,再执行 load;初始化未成功时不要继续加载广告。

💡 提示

  • 可重复调用:初始化是幂等的,SDK 已初始化后再次调用会直接返回成功。因此把初始化放在每次加载广告之前是安全的,无需自行加"只初始化一次"的标记位。
  • AppID / AppKey:在 Taku 后台的应用信息中获取,iOS 与 Android 不通用,请勿混用。
  • 日志开关:setLogEnabled: 会输出 IDFA 与设备信息,仅用于集成调试。请用 #if DEBUG 包裹,禁止带入 Release 包。

7.1 示例代码

objc 复制代码
#import <AnyThinkSDK/AnyThinkSDK.h>

@interface AdManager : NSObject

- (BOOL)configureAdSDK;
- (void)loadAd;

@end

@implementation AdManager

/// 初始化广告 SDK
/// 幂等:SDK 已初始化后重复调用会直接返回成功,因此可安全地放在每次加载广告之前
/// @return 初始化是否成功;返回 NO 时不应继续加载广告
- (BOOL)configureAdSDK {
#if DEBUG
    // 会输出 IDFA 与设备信息,仅用于调试,禁止带入 Release 包
    [ATAPI setLogEnabled:YES];
#endif

    NSError *error = nil;
    BOOL success = [[ATAPI sharedInstance] startWithAppID:@"Your AppID"
                                                  appKey:@"Your AppKey"
                                                   error:&error];

    if (!success) {
        NSLog(@"[TaKu] SDK 初始化失败 domain=%@ code=%ld msg=%@",
              error.domain,
              (long)error.code,
              error.userInfo[@"msg"]);
    }
    return success;
}

/// 加载广告
/// 调用前提:用户已同意隐私政策
- (void)loadAd {
    // 初始化是 load 的前置步骤:先 init,成功后再 load
    if (![self configureAdSDK]) {
        return;
    }

#if DEBUG
    // 三方平台集成自检,仅调试期使用,不属于初始化的必要步骤
    [ATAPI integrationChecking];
#endif

    // 初始化成功后,再执行广告加载
    // [self.bannerView loadAd:@"Your PlacementID"];
}

@end
最近修改: 2026-09-14Powered by