ASA渠道使用指南
一、集成SDK
注意:此文档是针对使用了 渠道统计 功能中的 ASA渠道 报表统计功能而提供的补充性文档
SDK版本要求:SDK>=2.5.6,CocoaPods上对应版本:>=2.5.6,工具Xcode>=12.3
1.首次集成SDK的,先按照iOS集成指南 或者 后台【应用集成】->【iOS集成】文档集成完毕,使用ASA渠道时,初始化代码要做调整,参考以下文档
2.代码集成
1).引入头文件
#import <AdServices/AAAttribution.h>import AdServices2).调用初始化,传入相关参数
注意:之前集成了Open-APP SDK的用户,需要将之前的初始化方法替换掉,否则会导致统计失败
请在用户同意《隐私政策》后再调用初始化方法
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
[self opInit];
/*//同时使用了广告渠道和ASA渠道统计的代码示例
if (@available(iOS 14, *)) {
//权限申请
[ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
[self opInit];
}];
}else{
[self opInit];
}
*/
}
- (void)opInit{
//ASA广告归因
NSMutableDictionary *config = [[NSMutableDictionary alloc]init];
if (@available(iOS 14.3, *)) {
NSError *error;
NSString *token = [AAAttribution attributionTokenWithError:&error];
[config setValue:token forKey:OP_ASA_Token];
}
/*//第三方广告平台统计代码
NSString *idfaStr = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
[config setValue:idfaStr forKey:OP_Idfa_Id];
*/
[OpenInstallSDK initWithDelegate:self adsAttribution:config];
}func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
opInit();
/*//同时使用了广告渠道和ASA渠道统计的代码示例
if #available(iOS 14.0, *) {
//权限申请
ATTrackingManager.requestTrackingAuthorization { (status) in
opInit();
}
}else{
opInit();
}
*/
func opInit(){
//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 {}
}
/*//第三方广告平台统计代码
let idfaStr = ASIdentifierManager.shared().advertisingIdentifier.uuidString
OpConfig.updateValue(token, forKey: OP_Idfa_Id);
*/
OpenInstallSDK.initWith(self, adsAttribution: OpConfig);
}
//其它代码...
return true
}3).获取ASA渠道编号
同H5获取方式一样,通过方法 getInstallParmsCompleted 获取channelCode对应的值即可。
二、获取ASA广告系列ID
登录ASA官方后台 苹果ASA官方后台 创建广告系列并获取ID
三、创建Open-APP开发者平台ASA渠道
1.注册并登录Open-APP开发者平台创建
2.填入获取到的ASA广告系列ID
此处可创建一个编号为1234567890的ASA渠道,用于上架前的测试,看文档后面第六点
四、App Store输入关键字搜索广告并下载安装激活应用
五、查看Open-APP开发者平台ASA渠道数据统计
Open-APP开发者平台渠道报表中对应的ASA渠道安装数据成功统计即为归因成功,将继续追踪统计用户后续事件行为
六、上架前验证集成情况
1.按照集成文档完成集成操作。
2.在Open-APP控制台的【广告统计】-【广告渠道管理】-【ASA渠道】中创建一个广告系列ID为1234567890的ASA渠道。
3.在【iOS集成】-【iOS调试日志】中配置测试设备的IP并保存,然后通过Xcode或其它工具将应用安装到测试设备运行打开。
4.在【广告统计】-【ASA渠道报表】中观察渠道编号为1234567890的ASA渠道,若统计到安装量表示ASA集成正确。
或者在【iOS集成】-【iOS调试日志】中观察到以下格式类似的日志也可以判断为调试成功。
日志内容:
iOS-SDK初始化matchType:none,channelCode:1234567890,bindData:{"attribution":true,"campaignId":"1234567890","orgId":"1234567890","adGroupId":"1234567890","keywordId":"12323222","conversionType":"Download","countryOrRegion":"US"},pbFailed:false,channelSticky:false,opid:xxxxxxxxxxxxx,model:iPhone 11,system:16.5,sdk:2.7.0
注意:测试渠道1234567890是苹果返回的测试数据,可能存在延迟,可以在集成代码时,设置debug模式(OP_ASA_isDev为YES),并且在正式版本发布时删除debug相关代码(否则会影响参数还原) ,代码如下。
- (void)opInit{
//...
if (@available(iOS 14.3, *)) {
//...
[config setValue:token forKey:OP_ASA_Token];
#ifdef DEBUG
[config setValue:@(YES) forKey:OP_ASA_isDev];//该配置请不要带入正式环境中
#else
#endif
}
//初始化sdk
[OpenInstallSDK initWithDelegate:self adsAttribution:config];
}func opInit(){
//...
if #available(iOS 14.3, *) {
do {
let token = try AAAttribution.attributionToken();
OpConfig.updateValue(token, forKey: OP_ASA_Token);
#if DEBUG
OpConfig.updateValue(NSNumber(value: true), forKey: OP_ASA_isDev);//该配置请不要带入正式环境中
#else
#endif
} catch {}
}
OpenInstallSDK.initWith(self, adsAttribution: OpConfig);
}七、ASA归因返回说明
| 字段 | 数据类型 | 描述 |
|---|---|---|
| adGroupId | long | 广告组的标识符。使用"广告组报告"按 adGroupId 及其在 Apple Ads Platform API 中对应的广告系列来关联你的归因响应。 |
| adId | long | 表示广告对象与广告组之间分配关系的标识符。此 ID 适用于运行 iOS 15.2 及更高版本的设备。使用"广告报告"在 Apple Ads Platform API 中按 adId 关联你的归因响应。 |
| attribution | boolean | 归因值。如果用户在下载你的 App 前 30 天内点击了 Apple Ads 展示,或在 24 小时内查看了该展示,则返回 true。如果 API 找不到匹配的归因记录,则归因值为 false。注意:带有年龄和性别定向条件的广告系列会返回 false。更多详情请参阅 claimType。 |
| campaignId | long | 广告系列的唯一标识符。使用 Apple Ads Platform API 中的"广告系列报告"按 campaignId 关联你的归因响应。 |
| claimType | string | 对于浏览型归因,claimType 的值为 Impression,表示用户在查看广告后 24 小时内看到了相应 Apple Ads 广告系列中的广告,但没有点击它。对于点击型归因,claimType 的值为 Click,表示用户点击了广告。注意:点击型归因窗口为 30 天,且点击型归因优先于浏览型归因。 |
| clickDate | 日期/时间字符串 | 用户点击相应广告系列中广告的日期和时间。此字段仅出现在归因响应负载中。 |
| conversionType | string | 转化类型。值为 Download、Redownload 或 PreOrder。PreOrder 值同时归因于点击和浏览。如果预购是在点击后 30 天内或浏览后 1 天内完成的,则点击型归因的回溯窗口为 90 天。浏览型归因的回溯窗口为 61 天。转化类型会出现在 Apple Ads Platform API 中的 AppsCampaignMetrics 中。 |
| countryOrRegion | string | 广告系列的国家或地区。更多详情请参阅 Apple Ads Platform API 中 AppsReportingRequest 的 groupBy 部分。 |
| impressionDate | UTC 字符串 | 表示相应 Apple Ads 广告系列中广告浏览发生的日期和时间。impressionDate 属性出现在浏览型归因响应负载中。 |
| keywordId | long | 关键词的标识符。使用 Apple Ads Platform API 中的"关键词报告"按 keywordId 关联你的归因响应。注意,当你启用搜索匹配时,API 不会在归因响应中返回 keywordId。更多信息请参阅"广告组端点"。 |
| orgId | long | 拥有该广告系列的组织标识符。你的 orgId 与 Apple Ads Advanced 中的账户相同。可通过调用 Apple Ads Platform API 中的 Get User ACL 获取你的 orgId。 |
| supplyPlacement | string | 广告系列的广告展示位置。 |
来源:https://developer.apple.com/documentation/adservices/aaattribution/attributiontoken()





