广告平台新闻的高级隐私保护
本文描述的高级隐私回传机制在满足以下所有条件时工作:
- 用户设备运行的是iOS 14.5+
- 高级隐私已开启
本文讨论:
- 高级隐私数据共享对合作伙伴的影响
- 点击URL要求,以获取进行归因资格
- 在AppsFlyer控制面板中设置您的高级隐私回传
- 高级隐私和SKAdNetwork之间的区别。
广告平台高级隐私数据共享原则
Starting iOS 14.5+ the AppsFlyer Aggregated Advanced Privacy Framework (AAP) provides advertisers with the ability to control the availability of user-level attribution data provided via the AppsFlyer platform.
在广告平台方面,AAP框架是使用高级隐私(AP)实现的。为了便于理解,本文中高级隐私和AP这两个术语可以互换使用。
AP并不影响合作伙伴或广告平台使用的汇总数据的可用性。
哪些数据受到AP的影响
当AP开启时,运行iOS 14.5+的非同意用户的用户级数据无法通过回传或其他报告方法获得,包括Protect360欺诈相关报告。
在回传方面,它意味着根据用户的ATT同意状态和其他因素,使用不同类型的回传。
您可以在AppsFlyer控制面板中查看每个应用程序的当前AP设置。前往配置>对接合作伙伴>选择您的广告平台>对接选项卡。默认设置开启。
高级隐私对接所需的回传类型是:
- 常规:您现有的AppsFlyer对接模板。包含用户标识符和归因数据宏。
- 高级隐私:没有用户标识符宏的模板。如果需要AP回传,而您尚未完成 AP对接,则不会发送回传。您可以使用我们的自助回传管理工具设置AP对接。
Note! If a user gives ATT consent in the apps of both the advertiser and the publisher ("dual consent"), regular postbacks are sent to both the attributed and non-attributed ad networks.
使用的回传类型
以下图表适用于运行iOS 14.5 +版本的用户数据。
Note! If the iOS version is 14.4 or before, the table that follows isn't applicable. It means that postbacks using the regular template are sent to both the attributed and non-attributed ad network.
AP状态 |
ATT状态 | 将模板类型回传到支持AP的归因合作伙伴* | 将模板类型回传到不支持AP的归因合作伙伴* | 未归因回传合作伙伴* | |
---|---|---|---|---|---|
流量方App |
广告主 App |
||||
启用 |
已授权 |
未经授权 |
AP模板 |
无回传 |
None |
启用 |
未经授权 |
已授权 |
AP模板 |
无回传 |
常规模板。归因字段不存在。* |
启用 |
已授权 |
已授权 |
常规模板。这包括可用的ID,例如:IDFA、IDFV、CUID、点击ID和归因字段。 |
常规模板。这包括可用的ID,例如:IDFA、IDFV、CUID、点击ID和归因字段。 | 常规模板包括可用ID。归因字段不存在。* |
启用 |
未经授权 |
未经授权 |
AP模板 |
无回传 |
None |
停用 |
不考虑 |
不考虑 |
常规模式 |
常规模式 |
常规模板。归因字段不存在。* |
(*) 与合作伙伴共享数据的原则
对于任何给定的事件,多个广告平台合作伙伴可能有权获得回传。以下是发送的回传:
- 归因合作伙伴:归因于事件的广告平台
- 未归因的合作伙伴:对接合作伙伴不归因于事件,当应用内事件回传> 发送选项设置为包括自然渠道的所有媒体渠道。如果广告主应用程序获得ATT同意,回传则包含没有归因数据的用户ID。(此选项不受所有广告平台的支持。)
网络广告活动
当广告平台在网络上投放广告时,AP的行为会有所不同。
要指明点击是来自网络还是来自应用程序,必须在点击URL中af_media_type=web
或af_media_type=app
参数。
如果不发送af_media_type
,默认则为应用程序
。
ATT状态 | 将类型回传到归因合作伙伴* | 将类型回传到未归因合作伙伴* | |
---|---|---|---|
流量方App |
广告主 App |
||
不适用 |
未经授权 |
高级隐私模式 |
None |
不适用 |
已授权 |
常规。具有以下ID的用户级别:IDFA、IDFV、CUID、点击ID。 |
常规。仅限用户级别ID。 |
对接
更新您的点击URL并完成高级隐私对接。
点击URL要求
在许多情况下,根据用户的ATT同意,IDFA在发行商的应用程序、广告主的应用程序或两者中将不可用。在这些情况下,AppsFlyer可能会使用汇总高级隐私和概率建模来执行归因。
[最佳实践]为了最大化您的归因,请发送列出的所有参数。
-
将以下参数附加到点击URL上:
Identifier 点击参数 示例
广告系列活动
c
US_20_30
广告系列活动ID
af_c_id
12345
广告组
af_adset
ADSET_1
广告组ID
af_adset_id
56789
Ad
af_ad
creative_name
广告ID
af_ad_id
34567
子渠道 ID
af_siteid
abcdefgh12345678
Sub site ID
af_sub_siteid
abcdefgh12345678
渠道
af_channel
channel_name
广告类型
af_ad_type
视频
iOS设备型号*
af_model
设备型号。允许的值:
- iphone(全部小写)
- ipad(全部小写)
操作系统*
af_os
操作系统版本
* 有些信息也可能通过用户代理提供。在这个案例中, 使用特定标识符发送的值具有优先权。
添加广告系列信息:
以下示例显示如何将您的广告活动详细信息添加到点击URL中。
https://app.appsflyer.com/id123456789?pid=YOUR_NETWORK_ID&c={CampaignName}&af_c_id={CampaignID}&af_adset={adset name}&af_adset_id={adset ID}&af_ad={ad name}&af_ad_id={ad ID}&af_ad_type={Ad type}&af_siteid={PublisherId}
- 将以下强制性参数添加到点击URL上*:
注意
如果您的点击请求未添加必填参数,您将无法获得大部分的激活归因。
- IP
- User-agent
* 使用简单的HTTP引荐者发送点击时,无需任何操作。
使用以下任何一种方法时,请使用所述的提取方法将参数附加到点击URL上:
- 点击请求通过In-app流量跳转
- 服务器到服务器的点击(又称S2S)
参数
强制性的内容
提取方法
设备语言和区域设置
af_lang
否
NSString *language = [[NSLocale preferredLanguages] objectAtIndex:0];
[建议] 同时提供语言和地区设置;例如en-US。
User Agent
af_ua
是
使用以下格式提取用户代理:
Mozilla%2F5.0+%28iPhone%3B+CPU+iPhone+OS+13_3_1
+like+Mac+OS+X%29 AppleWebKit%2F605.1.15+%28KHTML%2C
+like+Gecko%29+Mobile%2F15E148- 确保提取不是CFNetwork 的用户代理。
- user-agent值应使用URL-encoded方式处理。
设备IP地址
af_ip
是
最佳选择:如果可用,请使用af_ip参数提供设备IP。
次优选择:如果可用,AppsFlyer将使用X-Forwarded-For中IP(存在于代理服务器请求客户端最原始的IP地址的HTTP请求header)
高级隐私归因参数
添加参数至点击链接
要在点击归因链接上传递这些强制性参数,请参考以下:
https://app.appsflyer.com/id123456789?pid=YOUR_NETWORK_ID&c={CampaignName}&af_c_id={CampaignID}&af_adset={adset name}&af_adset_id={adset ID}&af_ad={ad name}&af_ad_id={ad ID}&af_ad_type={Ad-type}&af_siteid={PublisherId}&af_ua={USER-AGENT}&af_lang={LANGUAGE}&af_ip={IP}
示例
GET https://app.appsflyer.com/id123456789?pid=YOUR_NETWORK_ID&c={CampaignName}&af_c_id={CampaignID}&af_adset={adset name}&af_adset_id={adset ID}&af_ad={ad name}&af_ad_id={ad ID}
&af_ad_type={Ad type}&af_siteid={PublisherId}&af_ua=Mozilla%2F5.0%20%28iPhone%3B%20CPU%20iPhone%20OS%2012_1_4%20
like%20Mac%20OS%20X%29%20AppleWebKit%2F605.1.15%20%
28KHTML%2C%20like%20Gecko%29%20Mobile%2F16D57&af_lang=en-US&af_ip=11.11.1.11
* 查询参数需要是URL编码。
通过click URL headers传递数据
通过click URL headers传递数据,请参考以下:
GET https://app.appsflyer.com/id123456789?pid=YOUR_NETWORK_ID&c={CampaignName}&af_c_id={CampaignID}&af_adset={adset name}&af_adset_id={adset ID}&af_ad={ad name}&af_ad_id={ad ID}&af_ad_type={Ad type}&af_siteid={PublisherId}
accept-language: en-US,en;q=0.
User-Agent: Mozilla/5.0(iPhone; CPU iPhone OS 13_5_1 like Mac OS X)
AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148
X-Forwarded-For: 11.11.1.11,222.222.2.222
高级隐私回传规范
要接收高级隐私回传,除了常规回传对接之外,还必须设置高级隐私对接。您可以在AppsFlyer控制面板中自行配置高级隐私回传。
常规模板和高级隐私模板的区别
- 回传按小时分批发送。
- 这些批次包括所有的事件类型。
- The batches include both attribution and rejection postbacks.
- 0.001%的回传可能会在之后的批次中发送,可能会有长达24小时的延迟。
- 回调时间和事件实际发生之间不直接相关联
- 时间戳宏:
- 对于安装和应用内事件,时间戳被舍入到发生的整时。例如,22:55:30被报告为22:00:00。
- 使用UTC时区报告。时间戳示例:(2020-07-20 20:00:00)
- 以下参数在高级隐私回传中不可用:点击ID、客户用户ID、AppsFlyer ID、IDFA、IDFV、设备型号、操作系统版本、运营商。
联系AppsFlyer进行对接的步骤:
回调类型 |
---|
激活 |
应用内 |
回传宏(名称) |
备注 | 回调基础参数 | 应用内事件可选参数 | 被拒绝归因的可选参数 |
---|---|---|---|---|
af_ad | 广告素材名称 | 是 | ||
af_ad_id | 34567 | 是 | ||
af_ad_type | 例如:banner,footer,video | 是 | ||
af_adset | ADSET_1 | 是 | ||
af_adset_id | 56789 | 是 | ||
app_id | - | 是 | ||
app_name | - | 是 | ||
attributed_touch_hour |
会近似取最近的小时。 格式参考note(1) |
是 | ||
attributed_touch_type | 如:点击、展现 | 是 | ||
blocked_reason | 适用于Validation Rules/Protect360 | 是 | ||
blocked_reason_value | 适用于Validation Rules/Protect360 | 是 | ||
blocked_sub_reason | 适用于Validation Rules/Protect360 | 是 | ||
bundle_id | 由广告主设置 | 是 | ||
c | 广告系列名称, 如, US_20_30 | 是 | ||
af_c_id | 广告系列 ID, like, 12345 | 是 | ||
af_channel | 渠道名称 | 是 | ||
country_code | 转化时记录的ISO国家码 | 是 | ||
event_hour |
会近似取最近的小时。 格式参考note(1) |
是 | ||
event_name | 由广告主上报 | 是 | ||
event_revenue | 事件中包含的收入金额 | 是 | ||
event_revenue_ currency |
收入金额的货币码 | 是 | ||
event_revenue_usd | 收入金额换算成USD | 是 | ||
install_hour |
会近似取最近的小时。 格式参考note(1) |
是 | ||
is_first | 如果是具体用户所触发的首次事件,则为true | 是 | ||
is_primary |
用于去重 Boolean: 0, 1 |
是 | ||
is_retargeting |
用于去重 格式参考note(2) |
是 | ||
is_reengagement |
格式参考note(2) |
是 | ||
is_reattribution |
用于去重 格式参考note(2) |
是 | ||
match_type | 如: id_matching, probabilistic | 是 | ||
event_id | 广告平台所接受的对应事件的事件名称或ID | 是 | ||
platform | 如: ios, Android | 是 | ||
postback_id | 具有唯一性的postback_id | 是 | ||
retargeting_ conversion_type |
如:再次互动、重新归因 | 是 | ||
af_siteid | abcdefgh12345678 | 是 | ||
af_sub_siteid | abcdefgh12345678 | 是 | ||
注释: 支持以下时间戳格式:
支持以下Boolean格式:
|
设置您的高级隐私回传
使用AppsFlyer控制面板中的回传管理选项设置您的AP回传。
先决条件:
- 您必须与AppsFlyer进行活跃对接,以管理高级隐私回传。联系integrations@appsflyer.com以创建对接。
-
回传管理由账户管理员执行;团队成员无权访问。
要设置回传:
- 点击右上角的下拉菜单 >回传管理。
- 选择回传类型:高级隐私。
- 激活生成器。
- 输入端点地址:AppsFlyer向其发送回传的端点URL。输入安装和/或应用内事件的相关URL。
- 输入要包含在回传中的参数:
- 参数名称:AppsFlyer参数屏幕名称
- 您的接收参数:您那一方的相应接收参数
- 参数值(适用于某些参数):选择值格式。例如,对于布尔值,选择是否以“对”/“错”或1/0的形式接收。
- 安装:勾选方框,以在安装回传中包括该参数。
- 应用内事件:勾选方框,以在应用内事件回传中包含该参数。
高级隐私回传宏完整列表。
-
[可选]添加AppsFlyer未提供的自定义参数:
- 检查最终的回传模板预览以确保一切正确。
- 点击保存。注意,当您保存回传时,更改会立即生效。
如有任何问题,请联系integrations@appsflyer.com 。
附加信息
为分析伙伴提供AP
回传以如下方式发送给分析合作伙伴:
- AP关闭:无限制用户级别回传。
- AP开启:根据用户来源和ATT状态,详见此图表;
用户来源 |
ATT状态 | 将类型回传到分析合作伙伴 | |
---|---|---|---|
流量方App |
广告主应用程序 |
||
非自然
|
已授权 |
已授权 |
常规模式 |
未经授权 |
已授权 |
None |
|
任何值 |
未经授权 |
None | |
自然或网络 |
不适用 |
已授权 |
常规模式 |
自然或网络 |
不适用 |
未经授权 |
None |
AP与SKAdNetwork
SKAdNetwork是Apple为iOS设备提供的一种归因技术。高级隐私是AppsFlyer汇总高级隐私(AAP)框架的一部分,与 AppsFlyer执行的归因相关。AAP为广告主提供通过AppsFlyer平台控制用户级别归因数据可用性的能力。通常情况下,广告平台同时支持AP和SKAdNewtork的对接。