广告平台对接iOS集成指引

注意:此文档是针对使用了 渠道统计 功能中的 广告平台渠道 报表统计功能而提供的补充性文档

  • 首次集成SDK的,先按照iOS集成指南或者 后台【应用集成】->【iOS集成】文档集成完毕

  • 开启开关:进入应用后台,找到:“iOS集成”->“iOS应用配置”->“广告平台对接”,勾选并保存

一、相关代码

针对广告平台,为了精准地匹配到渠道,需要获取设备广告标识符(IDFA),因此需要添加额外的代码。

特别说明:
Apple 正式宣布 “从iOS 14.5、iPadOS 14.5和tvOS 14.5开始,您需要通过AppTrackingTransparency框架获得用户的许可,以跟踪他们或访问其设备的广告标识符”。官方说明

适配IDFA隐私新规,在新规正式推出后,请修改为以下集成方式

参考官方文档

1、引入头文件
在初始化方法所在文件,一般都在AppDelegate中

Object-C
Swift
#import <AdSupport/AdSupport.h>
#import <AppTrackingTransparency/AppTrackingTransparency.h>//适配iOS14
import AdSupport
import AppTrackingTransparency//适配iOS14

2、在Info.plist文件中添加IDFA的权限申请描述(适配iOS14,必须添加,否则在iOS14系统中会崩溃)

<key>NSUserTrackingUsageDescription</key>
<string>为了您可以精准获取到优质推荐内容,需要您允许使用该权限</string>

3、初始化代码
替换掉原先的初始化方法[OpenInstallSDK initWithDelegate:self];,使用新的API接口:

特别提醒:广告权限申请需要在app becomes active的时候执行,避免弹窗无法正常弹出的情况发生。

Object-C
Swift
- (void)applicationDidBecomeActive:(UIApplication *)application{
    if (@available(iOS 14, *)) {
        //权限申请
        [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
            [self opInit];//不管用户是否授权,都要初始化
            }];
    }else{
        [self opInit];
   }
}
- (void)opInit{
    //方式一:
    NSString *idfaStr = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
    [OpenInstallSDK initWithDelegate:self advertisingId:idfaStr];
    //方式二:
    NSMutableDictionary *config = [[NSMutableDictionary alloc]init];
    NSString *idfaStr = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
    [config setValue:idfaStr forKey:OP_Idfa_Id];
    /*//使用了ASA广告归因,添加该段代码即可,并可通过getInstallParmsCompleted方法获取ASA渠道号
    if (@available(iOS 14.3, *)) {
        NSError *error;
        NSString *token = [AAAttribution attributionTokenWithError:&error];
        [config setValue:token forKey:OP_ASA_Token];
    }
    */
    //初始化sdk
    [OpenInstallSDK initWithDelegate:self adsAttribution:config];

}
func applicationDidBecomeActive(_ application: UIApplication) {
    //权限申请
    if #available(iOS 14.0, *) {
        ATTrackingManager.requestTrackingAuthorization { (status) in
            opInit();//不管用户是否授权,都要初始化
        }
    }else{
        opInit();
    }

    func opInit(){
        //方式一:
        let idfaStr = ASIdentifierManager.shared().advertisingIdentifier.uuidString
        OpenInstallSDK.initWith(self, advertisingId: idfaStr);
        //方式二:
        var OpConfig:[String:Any] = [String:Any]();
        let idfaStr = ASIdentifierManager.shared().advertisingIdentifier.uuidString
        OpConfig.updateValue(token, forKey: OP_Idfa_Id);
        /*//使用了ASA广告归因,添加该段代码即可,并可通过getInstallParmsCompleted方法获取ASA渠道号
        var OpConfig:[String:Any] = [String:Any]();
        if #available(iOS 14.3, *) {
            do {
                let token = try AAAttribution.attributionToken();
                OpConfig.updateValue(token, forKey: OP_ASA_Token);
            } catch {}
        }
        */
        OpenInstallSDK.defaultManager()?.reportAdsAttribution(OpConfig);
    }
    //其它代码...
    return true
}

  • 少数第三方平台需要手动导入 AdSupport.framework 库,不然编译时会报错

二、上传IPA包,检查配置

  • 广告代码集成完毕后,需要导出安装包上传openinstall后台,openinstall会自动检查所有的应用配置工作

红色提示表明,当前选择的IPA包集成的SDK版本过低,且未检测到AdSupport.framework库

三、App Store上架指引

在App中获取了IDFA标识符,如果应用本身不包含广告的,提交上架App Store时需要做如下配置,请勾选2、3、4这三项:(避免审核被拒

在苹果上架后台,“App隐私”一项中的产品页,根据实际情况,正确勾选,即用户ID(标识符)所使用到的场景(必须注明哪些数据类型会追踪用户)