广告平台对接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(标识符)所使用到的场景(必须注明哪些数据类型会追踪用户)