广告平台的高级隐私保护适用条件
本文所述的高级隐私保护回传机制在同时符合以下条件时生效:
- 用户设备的操作系统为iOS 14.5+
- 高级隐私保护(Advanced Privacy)处于启用状态
本文内容涵盖以下主题:
- 高级隐私保护模式下的数据共享对渠道的影响
- 用于归因的点击链接需要符合的要求
- 在AppsFlyer控制面板中设置您的高级隐私保护回传
- 高级隐私保护模式和SKAdNetwork之间的区别。
广告平台在高级隐私保护(AP)模式下的数据共享原则
从iOS14.5+开始,广告主可以通过AppsFlyer汇总层级的高级隐私保护框架(即Aggregated Advanced Privacy Framework,简称AAP)把控AppsFlyer提供的用户级别归因数据的可用性。
在广告平台的场景中,AAP框架是通过高级隐私保护(AP)来实现的。为了便于说明,本文中将高级隐私保护(Advanced Privacy)简称为AP,两者意义完全相同。
AP并不影响汇总数据对渠道或广告平台的可用性。
受到AP影响的数据
AP处于启用状态时,如果iOS 14.5+用户在ATT弹窗中拒绝授权广告追踪,则广告平台无法通过回传或其他数据上报方式(包括各种Protect360假量报告)来获取其用户级别数据。
也就是说,AppsFlyer会根据用户的ATT授权状态等各种因素的具体情况,相应地使用不同类型的回传。
您可以在AppsFlyer面板中查看各应用的当前AP设置,操作方法为:从AppsFlyer后台的侧边栏中选择协作 > 活跃对接 > 选择您的广告平台 > 渠道对接选项卡。该设置默认开启。
用于发送回传的各类模版
- 常规模板:您与AppsFlyer之间的现行对接模板,其中带有用户标识符以及归因数据宏。该模板用于发送包含用户级别归因数据的回传。
- 高级隐私保护模板:不带用户标识符宏的模板。该模板用于发送包含汇总归因数据的回传。
请注意:如果有AP回传要求,但您尚未完成AP对接,则AppsFlyer不会发送回传。您可以使用我们的自助回传管理工具设置AP对接。
注意
- 如果用户在广告主应用和流量侧应用中都授权了ATT(即“双授权”),则AppsFlyer会同时向获得归因以及未获得归因的广告平台发送常规回传。
-
例外情况:对于归因到Apple Search Ads(ASA)的激活,ASA会在符合以下条件时向相关广告平台发送激活回传,无论广告主是否启用高级隐私保护模式:
- 用户拒绝授权
- 相关广告平台的激活回传设置为所有媒体渠道,包括自然流量
- 该广告平台不支持高级隐私保护模式
使用的回传类型
下表适用于iOS 14.5+用户的数据。
注意!如果用户的操作系统为iOS14.4或更早的版本,则下表所列信息不适用。AppsFlyer会使用常规模板向获得归因以及未获得归因的广告平台发送回传。
适用于iOS 14.5+的回传类型
AP状态 |
ATT状态 | 向获得归因的AP适配渠道*发送的回传模板类型 | 向获得归因的非AP适配渠道*发送的回传模板类型 | 向未获得归因的渠道发送的回传* | |
---|---|---|---|---|---|
流量侧应用(Publisher App) |
广告主应用(Advertiser App) |
||||
启用 |
已授权 |
拒绝授权 |
AP模板(汇总数据) |
无回传 |
无 |
启用 |
拒绝授权 |
已授权 |
AP模板(汇总数据) |
无回传 |
归因字段不可用。* |
启用 |
已授权 |
已授权 |
常规模板。其中包括IDFA、IDFV、CUID、点击ID等可用ID以及归因字段。 |
常规模板。其中包括IDFA、IDFV、CUID、点击ID等可用ID以及归因字段。 | 常规模板中包含可用ID,但归因字段不可用。* |
启用 |
拒绝授权 |
拒绝授权 |
AP模板(汇总数据) |
无回传 |
无 |
停用 |
未选择授权状态 |
未选择授权状态 |
常规模板 |
常规模板。 归因字段不可用。* |
(*) 与渠道共享数据的原则
任何一个事件都有可能会对应多个有权获得其回传的合作渠道。具体的回传发送对象如下:
- 获得归因的渠道:带来相关事件的广告平台
- 未获得归因的渠道:指该对接渠道未带来相关事件。仅当应用内事件回传配置中的事件来源设置为所有媒体渠道,包括自然流量时才会向这类渠道发送回传。如果用户在广告主应用中授权了ATT,则回传中会包含不带归因数据的用户ID。(并非所有广告平台都支持这种回传发送方式)。
网页广告
当广告平台在网页上投放广告时,AP模式的生效方式不同于应用内广告场景。
您必须在点击链接中发送af_media_type=web
或af_media_type=app
参数来说明相关点击来自网页还是应用。
如果不发送af_media_type
,则默认为点击来自应用
。
AP开启时适用于iOS 14.5+的回传类型
ATT状态 | 向获得归因的渠道发送的回传类型 | 向未获得归因的渠道发送的回传类型* | |
---|---|---|---|
流量侧应用(Publisher App) |
广告主应用(Advertiser App) |
||
不适用 |
拒绝授权 |
高级隐私保护 |
无 |
不适用 |
已授权 |
常规。带有以下用户级别ID:IDFA、IDFV、CUID、Click ID。 |
常规。仅限用户级别ID。 |
对接
更新您的点击链接并完成高级隐私保护对接。
点击链接的配置要求
大部分情况下,流量侧应用和/或广告主应用中的IDFA可能不可用,具体取决于用户的ATT授权状态。这时,AppsFlyer可能会使用汇总层级的高级隐私保护机制和概率建模来完成归因。
【最佳方式】建议发送下表所列的所有参数,以确保您带来的流量能得到充分的归因。
-
请在点击链接的末尾添加以下参数:
标识符 点击参数 示例
Campaign
c
US_20_30
Campaign ID
af_c_id
12345
Adset
af_adset
ADSET_1
Adset ID
af_adset_id
56789
Ad
af_ad
creative_name
Ad ID
af_ad_id
34567
Site ID
af_siteid
abcdefgh12345678
Subsite ID
af_sub_siteid
abcdefgh12345678
Channel
af_channel
channel_name
Ad type
af_ad_type
video
iOS device model*
af_model
设备型号。可使用的值包括:
- iphone(全部小写)
- ipad(全部小写)
Operating system*
af_os
操作系统版本
* 您也可以通过用户代理(user agent)提供部分信息,这时我们会优先使用通过具体标识符发送的值。
在点击链接末尾添加广告系列信息请参照以下示例在点击链接中添加广告系列信息:
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}
- 请在点击链接中添加下列必须配置的参数*:
注意
如果您未在点击请求中添加必须配置的参数,则您带来的大部分激活都不会归因到贵平台。
- IP
- User-agent
* 若使用跳转到AppsFlyer的HTTP referrer发送点击,则无需任何操作。
若您使用以下任一方式发送点击,请使用本文所述的数据提取方法在点击链接末尾添加相关参数:
- 点击请求通过应用内流量跳转
- 服务器到服务器的点击(又称S2S)
适用于高级隐私保护归因的参数
参数
是否必须配置
数据提取方法
设备语言和区域设置
af_lang
否
NSString *language = [[NSLocale preferredLanguages] objectAtIndex:0];
【推荐方式】建议您同时提供语言和区域设置,例如en-US。
用户代理(User-agent)
af_ua
是
请使用以下格式提取user-agent:
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。
- user-agent值须经URL编码处理。
设备IP地址
af_ip
是
最佳方式:设备IP可用时,在af_ip参数中提供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编码处理。
通过点击链接请求header传递数据
如需通过点击链接请求header传递数据,请参考以下示例:
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面板中自行配置高级隐私保护回传。
常规模板和高级隐私保护模板的区别
- 每小时发送一批回传。
- 涵盖所有事件类型。
- 涵盖归因和拦截回传。
- 0.001%的回传可能会在之后的批次中发送,最多可能会有24小时的延迟。
- 回传时间与事件实际发生时间无关。
- 时间戳宏:
- 对于激活和应用内事件,时间戳近似到转化发生时间的小时数。例如,如果事件发生时间为22:55:30,则其上报的时间戳为22:00:00。
- 按UTC时区上报时间戳。时间戳示例:(2020-07-20 20:00:00)
- 以下参数在高级隐私保护回传中不可用:Click ID、Customer User ID、AppsFlyer ID、IDFA、IDFV、device model、OS version以及carrier。
广告平台进行对接时必须完成的操作:
注意事项!
-
如需区分正常事件和被拦截的回传,您必须配置被拦截的回传宏。
- 如需启用被拦截的激活/事件回传,请使用渠道支持微件联系我们。
高级隐私保护回传端点【根据实际需求配置】
回传类型 |
---|
激活 |
应用内事件 |
高级隐私保护归因可用参数
回传宏(名称) |
说明 | 所有回传的基础参数 | 应用内事件可选参数 | 被拦截归因的可选参数 |
---|---|---|---|---|
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 |
小时数就近取整。 具体格式请参考脚注(1) |
是 | ||
attributed_touch_type | 如click(点击)、impression(展示) | 是 | ||
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,如12345 | 是 | ||
af_channel | 流量入口名称 | 是 | ||
country_code | 转化发生时记录到的ISO国家代码 | 是 | ||
event_hour |
小时数就近取整。 具体格式请参考脚注(1) |
是 | ||
event_name | 由相关应用上报 | 是 | ||
event_revenue | 以事件货币为单位的收入金额 | 是 | ||
event_revenue_ currency |
收入金额的货币代码 | 是 | ||
event_revenue_usd | 换算成USD的收入金额 | 是 | ||
install_hour |
小时数就近取整。 具体格式请参见脚注(1) |
是 | ||
is_first | 相关应用内事件首次被用户触发时,该参数的值为True | 是 | ||
is_primary |
用于去重 布尔型参数:0, 1 |
是 | ||
is_retargeting |
用于去重 具体格式请参见脚注(2) |
是 | ||
is_reengagement |
具体格式请参见脚注(2) |
是 | ||
is_reattribution |
用于去重 具体格式请参见脚注(2) |
是 | ||
match_type | 如: id_matching、probabilistic | 是 | ||
event_id | 该事件在广告平台中的对应名称/ID | 是 | ||
platform | 如:ios、Android | 是 | ||
postback_id | 具有唯一性的回传ID | 是 | ||
retargeting_ conversion_type |
如:re-engagement(再互动)、re-attribution(再归因) | 是 | ||
af_siteid | abcdefgh12345678 | 是 | ||
af_sub_siteid | abcdefgh12345678 | 是 | ||
脚注: (1)支持以下时间戳格式:
(2)支持以下布尔格式:
|
设置您的高级隐私保护回传
您可以使用AppsFlyer面板中的回传管理选项设置您的AP回传。
前期准备:
请按以下方式设置回传:
- 从页面顶部导航栏打开账户菜单(点击右上角的邮箱地址,打开下拉菜单)> 回传管理。
- 选择回传类型:高级隐私保护。
- 激活配置工具。
- 输入端点地址:AppsFlyer会向这些端点发送回传。请输入激活和/或应用内事件的对应URL。
- 输入回传中需要包含的参数:
- 参数名称:界面中显示的AppsFlyer参数名称
- 渠道映射参数:即渠道侧接收到的对应参数
- 参数值(适用于某些参数):选择参数值的格式。如在布尔型参数下可选的参数值格式为"true"/"false"或1/0。
- 激活:勾选需要在激活回传中传递的参数。
- 应用内事件:勾选需要在应用内事件回传中传递的参数。
高级隐私保护回传宏完整列表。
-
【可选】在AppsFlyer预定义参数之外添加自定义参数:
- 查看最终的回传模板预览,检查各项配置是否正确无误。
- 点击保存。请注意:保存回传配置后,新配置会立刻生效。
如果出现任何问题,请通过渠道支持微件联系我们。
其他信息
数据分析平台的AP说明
发送到分析平台的回传分以下两种情况:
- AP关闭时:回传用户级别数据,无限制。
- AP开启时:回传类型取决于用户来源和ATT授权状态,具体请见下表:
分ATT授权状态和用户来源的数据分析平台回传类型
用户来源 |
ATT状态 | 向数据分析平台发送的回传类型 | |
---|---|---|---|
流量侧应用(Publisher App) |
广告主应用 |
||
非自然
|
已授权 |
已授权 |
常规 |
拒绝授权 |
已授权 |
无 |
|
任何值 |
拒绝授权 |
无 | |
自然量或网页 |
不适用 |
已授权 |
常规 |
自然量或网页 |
不适用 |
拒绝授权 |
无 |
AP与SKAdNetwork的区别
SKAdNetwork是Apple针对iOS设备提供的一种归因技术。高级隐私保护是AppsFlyer汇总层级高级隐私保护(AAP)框架的一部分,是针对AppsFlyer归因的解决方案。AAP能让广告主通过AppsFlyer平台调控用户级别归因数据的可用性。一般情况下,广告平台同时支持AP和SKAdNewtork对接。