广告平台渠道 iOS 集成指南
本文档面向的客户为:在 Xinstall 管理后台建立 [ 广告平台渠道 ] 并需要进行统计的客户,是在原有的 iOS 集成 基础上进行的额外集成工作。
若您不使用 [ 广告平台渠道 ],则无需进行该文档中的额外集成工作,也能正常使用 Xinstall 提供的其他功能。
注意:根据目前已有的各大主流广告平台的统计方式,目前 iOS 端需要用户授权获取 IDFA 后才能正常进行 [ 广告平台渠道 ] 的统计,对该行为敏感的 App 请慎重进行该文档中说明的集成工作。
一、完成基础 iOS 集成
根据 《iOS集成》 文档完成基础 iOS 集成工作。
二、配置获取 IDFA 的声明
请求 IDFA 的权限与「获取相册访问」「获取定位」等的权限类似,也需要在 Info.plist
文件中配置一个权限作用声明,否则将导致 App 启动后马上闪退。配置项如下:
<key>NSUserTrackingUsageDescription</key>
<string>这里是针对获取 IDFA 的作用描述,请根据实际情况填写</string>
三、初始化
由于 Apple 从 iOS 14.5 开始,强制要求使用 AppTrackingTransparency 框架获取用户对 IDFA 的授权许可,而该框架只在 Xcode 12.0 及以上版本内提供,故强烈建议使用 Xcode 12.0 以上的版本进行开发!
否则开发的 App 将无法在 iOS 14.5 及以上版本正常获取 IDFA ,进而影响 [ 广告平台渠道 ] 的统计效果。
在 Xinstall SDK 进行初始化的文件中,按照如下代码引入 AdSupport
和 AppTrackingTransparency
框架:
#import <AdSupport/AdSupport.h>
#if __has_include(<AppTrackingTransparency/AppTrackingTransparency.h>)
#import <AppTrackingTransparency/AppTrackingTransparency.h>
#endif
import AdSupport
#if canImport(AppTrackingTransparency)
import AppTrackingTransparency
#endif
使用新的初始化方法进行 SDK 的初始化:
基础集成工作中的
[XinstallSDK initWithDelegate:self]
不需要再调用了
#if __has_include(<AppTrackingTransparency/AppTrackingTransparency.h>)
if (@available(iOS 14, *)) {
[ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
NSString *idfa = ASIdentifierManager.sharedManager.advertisingIdentifier.UUIDString;
[XinstallSDK initWithDelegate:self idfa:idfa];
}];
} else {
NSString *idfa = ASIdentifierManager.sharedManager.advertisingIdentifier.UUIDString;
[XinstallSDK initWithDelegate:self idfa:idfa];
}
#else
NSString *idfa = ASIdentifierManager.sharedManager.advertisingIdentifier.UUIDString;
[XinstallSDK initWithDelegate:self idfa:idfa];
#endif
#if canImport(AppTrackingTransparency)
if #available(iOS 14.0, *) {
ATTrackingManager.requestTrackingAuthorization { status in
let idfa = ASIdentifierManager.shared().advertisingIdentifier.uuidString;
XinstallSDK.initWith(self, idfa: idfa);
}
} else {
let idfa = ASIdentifierManager.shared().advertisingIdentifier.uuidString;
XinstallSDK.initWith(self, idfa: idfa);
}
#else
let idfa = ASIdentifierManager.shared().advertisingIdentifier.uuidString;
XinstallSDK.initWith(self, idfa: idfa);
#endif
四、App Store 上架须知
若您的 App 需要上架 App Store ,请认真阅读本段内容。
- 如果您的 App 没有接入苹果广告(即在 App 中显示苹果投放的广告),那么在提交审核时,在广告标识符中,请按照下图勾选:
- 在 App Store Connect 对应 App —「App隐私」—「数据类型」选项中,需要选择:“是,我们会从此 App 中收集数据”:
在下一步中,勾选「设备 ID」并点击【发布】按钮:
点击【设置设备 ID】按钮后,在弹出的弹框中,根据实际情况进行勾选:
- 如果您仅仅是接入了 Xinstall 广告平台而使用了 IDFA,那么只需要勾选:第三方广告
- 如果您在接入 Xinstall 广告平台之外,还自行使用 IDFA 进行别的用途,那么在勾选 第三方广告 后,还需要您根据您的实际使用情况,进行其他选项的勾选
勾选完成后点击【下一步】按钮,在 “从此 App 中收集的设备 ID 是否与用户身份关联?” 选项中,请根据如下情况进行选择:
- 如果您仅仅是接入了 Xinstall 广告平台而使用了 IDFA,那么选择 “否,从此 App 中收集的设备 ID 未与用户身份关联”
- 如果您在接入 Xinstall 广告平台之外,还自行使用 IDFA 进行别的用途,那么请根据您的实际情况选择对应的选项
最后,在弹出的弹框中,选择 “是,我们会将设备 ID 用于追踪目的”,并点击【发布】按钮: