概要:AppsFlyer通过iOS回传以及SKAN原始数据回传接收到相关数据后,对其进行解析并生成设备级数据,然后将这些设备级数据呈现在SKAN原始数据报告中。您可以通过Data Locker和Push API获取这些数据。如果您购买的套餐中已包含原始数据,则无需再订购Data Locker。
SKAN原始数据报告
原理:
-
AppsFlyer通过以下工具提供SKAN原始数据:
-
Data Locker
- 注意:购买了原始数据产品的客户即可使用该功能,无需再另外购买Data Locker。如果您目前尚未使用Data Locker,必须让您账户的管理员配置Data Locker并启用SKAN报告。启用方法为:从AppsFlyer面板进入报告 > Data Locker,然后选择相关的SKAN报告。
- 数据时效性:每天更新一次。数据存储位置:AppsFlyer回传接收日期下的h=23文件夹。举例来说,假设AF在周一接收到回传,会在当天结束后处理相关数据。处理完毕后,会在UTC时间的周二12:00之前将数据写入周一的h=23文件夹下。
-
Push API
- 数据时效性:请参见SKAN数据的Push API。
-
Data Locker
-
激活日期:由AppsFlyer根据回传接收时间判定,具体如下:
-
如果回传为SKAN V4,则激活日期的计算方式为:激活日期=回传接收时间 - [累计窗口期长度] - [回传平均延时]。
- 第1次回传:激活日期 = 回传接收时间 - 48h - 36h
- 第2次回传:激活日期 = 回传接收时间 - 168h - 84h
- 第3次回传:激活日期 = 回传接收时间 - 840h - 84h
-
如果回传为SKAN V3,则激活日期的计算方式为:激活日期 = 回传接收时间 - 36小时 - [末次活跃范围平均值]。
- 默认[末次互动范围平均小时数]为12小时,
- 如果转化值为0,则末次活跃范围的平均值设为0。
- Google根据自己的逻辑来估算激活时间,AppsFlyer会取用Google得出的激活时间。请注意:Google上报激活最长需要45天时间。了解详情
-
如果回传为SKAN V4,则激活日期的计算方式为:激活日期=回传接收时间 - [累计窗口期长度] - [回传平均延时]。
可用的报告类型如下:
- 设备回传:每次发生激活或重新下载(redownload)时AF会收到一次来自相关iOS设备的设备回传。
-
SKAN原始数据:
- AppsFlyer会将设备回传解析为原始数据记录。
- 每次回传都会生成一条激活或重新下载(redownload)记录以及应用内事件记录。
- 应用内事件记录的数量取决于转化值(CV),具体如下:
- CV = 0、空值或null值时:不生成应用内事件记录。
- CV值范围:
- 1-63:适用于SKAN 3以及SKAN 4窗口1精细值,代表应用内事件记录的条数,具体取决于您的衡量设置。
- Low、medium、high:适用于SKAN 4粗略值,代表应用内事件记录的条数,具体取决于您的衡量设置。
为什么有些字段是空的?以下任一情况都会导致字段出现空值:
- 广告平台未提供campaign_name(广告系列名称)、ad_network_campaign_id(广告系列ID)、ip等非必要的数据扩充字段。
- 受Apple的阈值规定限制,该数据不开放。受影响的字段包括source_app_id、skad_campaign_id、skad_conversion_value。
SKAN原始数据报告格式及内容
原始数据报告类型
报告类型 | 报告名称 | 说明 | |||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
回传 | 数据回传 |
iOS向广告平台发送回传,广告平台对该回传进行扩充后再发送给AppsFlyer。详情请见可下载的回传示例(CSV格式)。 注意:did_win=false时不包含回传数据。 Data Locker中的主题名称:skad_postbacks |
|||||||||||||||||||||||
回传 | 回传备份(从Apple侧直接发送) |
从iOS直接发送到AppsFlyer的回传。 对iOS 15及以上版本的系统可用,需要广告主进行相关的配置,让应用将获得归因的回传发送到AppsFlyer。详情请见可下载的回传示例(CSV格式)。 注意:该主题仅包含获得归因的回传。 Data Locker中的主题名称:skad_postbacks_copy |
|||||||||||||||||||||||
解析后的事件 | 激活 |
首次应用激活 SKAN上报redownload=false。也就是说,该用户(以Apple ID表示)首次下载相关应用。 Data Locker中的主题名称:skad_installs |
|||||||||||||||||||||||
解析后的事件 | Redownloads(重新下载) |
非首次激活的应用激活 SKAN上报redownload=true。也就是说,该用户(以Apple ID表示)并非首次下载相关应用。该报告的结构与激活报告相同。 Data Locker中的主题名称:skad_redownloads |
|||||||||||||||||||||||
解析后的事件 | 应用内事件 |
应用内事件 2021年7月21日开始,AF提供应用内事件原始数据的方式有所变化,具体请见下表。 应用内事件记录的数量取决于具体的衡量设置。 详情请见可下载的应用内事件报告示例(CSV格式)。 Data Locker中的主题名称:skad_inapps 对于2021年7月21日之后接收到的iOS回传:
对于2021年7月20日及之前接收到的iOS回传:
|
|||||||||||||||||||||||
解析后的事件 | SRN广告维度 |
Data Locker中的主题名称:skad_srn_advertising_dimensions |
原始数据字段格式类别
字段格式
格式名称 | 说明 |
---|---|
字符串 [n] |
字符串的长度上限。AF接收数据时并不会对字段长度做出硬性限制,但超过上限的字段可能会被截断。 |
时间字符串 |
格式为 |
枚举 [n] | 枚举字段仅可包含特定的值。比如成本的货币单位只能由指定的3字符货币代码组成。 |
时间戳 |
10位UNIX时间戳。示例: UTC时间2020年8月4日07:25转换为 |
布尔 |
该字段中可能出现的值为 |
整数 |
整数 |
浮点数 |
浮点数(实型)中可以带小数点,且小数点后可以有值。 |
回传及回传备份报告中的可用字段
字段名称 | 来源或iOS SKAN起始版本 | 说明 | 格式 | 回传备份中是否可用 |
---|---|---|---|---|
ad_network_campaign_id |
广告平台 | 广告平台上报给AppsFlyer的广告系列ID | 字符串 | 否 |
ad_network_campaign _name |
广告平台 |
广告平台上包给AppsFlyer的广告系列名称
|
字符串 | 否 |
ad_network_timestamp |
广告平台 |
广告平台接收到回传的时间 在Google Ads中,该时间信息是根据Google上报的末次点击时间得出的。 |
时间戳 | 否 |
app_id |
AppsFlyer | 以“ID”开头的App ID(广告主应用)。 | 字符串 | 是 |
city |
AppsFlyer | 从2021年8月30日开始,该值总是为null | 字符串 | 否 |
country_code |
广告平台 | 字符串 | 否 | |
dma | 从2021年8月30日开始,该值总是为null | 字符串 | 否 | |
postal_code |
从2021年8月30日开始,该值总是为null | 字符串 | 否 | |
region |
AppsFlyer | 基于上报的country_code得出 | 字符串 | 否 |
skad_ad_network_id |
1.0 |
X Ads等一部分SRN不共享其ID,这时该字段显示为空。 |
字符串 |
是 |
skad_attribution_signature |
1.0 | 字符串 | 是 | |
skad_campaign_id | 1.0 | 用于发布该则广告的广告系列ID,范围为0-100。 | 字符串 | 是 |
skad_conversion_value | 2.0 |
iOS上报的转化值,范围为0-63。 若该字段的值为null,则表示iOS未填充该字段** |
整数 | 是 |
skad_redownload | 2.0 | 如果该参数的值为true,则表示用户重新下载(redownload)了相关应用 |
布尔 |
是 |
skad_source_app_id | 2.0 |
子渠道ID,即发布该广告的应用。该字段与source_app_id完全一致。 字段填充方式取决于隐私阈值** |
字符串 | 是 |
skad_transaction_id | 1.0 | 字符串 | 是 | |
skad_version | 2.0 | 字符串 | 是 | |
timestamp | 广告平台 |
AppsFlyer接收到SKAN回传的时间 |
时间字符串 | 是 |
ad_network_name | 广告平台 |
广告平台向AppsFlyer上报的广告平台名称。
|
字符串 | 否 |
ip |
发送回传的iOS设备的HTTP消息中的IP地址 如果广告平台向AF提供该地址,则该字段中会填充相应的值。 请注意:该地址信息的获取与SDK无关。 |
字符串 | 否 | |
skad_app_id |
1.0 | 字符串 | 否 | |
source_app_id |
AppsFlyer | 子渠道ID,即发布该广告的应用。该字段与skad_source_app_id完全一致。 | 字符串 | 否 |
ad_network_adset_id |
广告平台 | 字符串 | 否 | |
ad_network_adset_name |
广告平台 | 字符串 | 否 | |
ad_network_ad_name |
广告平台 | 字符串 | 否 | |
ad_network_ad_id |
广告平台 | 字符串 | 否 | |
did_win |
3.0(iOS 14.6) |
用于区分助攻和获得激活归因的广告系列
|
布尔 | 是 |
fidelity_type |
2.2(iOS 14.5) |
用于区分广告呈现方式,这会影响到归因结果。通过0和1来表达,具体如下:
如果SKAN版本低于2.2,请忽略该字段值。 |
整数 | 是 |
ad_network_source_app_id |
广告平台 | 广告平台上报的流量侧应用(Publisher App)ID,用于核对成本。该数据基于流量侧应用提供的信息得出。 | 字符串 | 否 |
ad_network_channel |
广告平台 | 字符串 | 否 | |
af_prt |
广告平台 | 字符串 | 否 | |
skad_postback_sequence_index |
4.0(iOS 16.2) |
|
整数 | 是 |
skad_coarse_conversion_value |
4.0(iOS 16.2)
|
|
字符串 | 是 |
skad_source_identifier | 4.0(iOS 16.2) |
|
字符串 | 是 |
skad_source_domain | 4.0(iOS 16.2) |
|
字符串 | 是 |
ad_network_creative | 广告平台 |
|
字符串 | 否 |
** Apple通过隐私阈值机制来判断是否填充该字段 |
|
解析后的事件报告中可用的字段
字段名称 | 来源 | 说明 | 格式 | SRN广告维度报告中是否呈现 |
---|---|---|---|---|
ad_network_campaign_id | 广告平台 | 广告平台上报给AppsFlyer的广告系列ID | 字符串 | 是 |
ad_network_campaign _name |
广告平台 | 广告平台上包给AppsFlyer的广告系列名称 | 字符串 | 是 |
ad_network_timestamp | 广告平台 |
广告平台接收到回传的时间 在Google Ads的投放场景中,该字段不填充。 |
时间戳 (时间字符串,用于SRN投放维度报告) |
是 |
app_id | iOS | App ID(广告主应用) | 字符串 | 是 |
city | 从2021年8月30日开始,该值总是为null | 字符串 | 否 | |
country_code | 广告平台 | 字符串 | 否 | |
dma | 从2021年8月30日开始,该值总是为null | 字符串 | 否 | |
event_name | AppsFlyer |
在AppsFlyer中配置的应用内事件名称 在SRN ___report中,该字段为Meta ads中配置的应用内事件。 |
字符串 | 是 |
event_uuid | AppsFlyer | 唯一的随机标识符,使合作伙伴能够识别重复的回传 | 字符串 | 否 |
install_date | iOS | 由AppsFlyer根据回传接收时间估算得出 | 时间字符串 | 否 |
install_type | iOS | 新增激活 | 字符串 | 否 |
ip | iOS |
发送回传的iOS设备的HTTP消息中的IP地址。 如果广告平台向AF提供该地址,则该字段中会填充相应的值。 请注意:该地址信息的获取与SDK无关。 |
字符串 | 否 |
media_source | iOS | 通过AppsFlyer平台名称获得归因的广告平台 | 字符串 | 是 |
postal_code | 从2021年8月30日开始,该值总是为null | 字符串 | 否 | |
region | AppsFlyer | 根据country_code(国家代码)判定 | 字符串 | 否 |
skad_ad_network_id | iOS | 接收回传的广告平台的ID | 字符串 | 否 |
skad_ambiguous _event | AppsFlyer | 如果该参数的值为true,则表示iOS回传的接收时间在广告主在面板中更改SKAN设置后的最初72小时内。由于SKAN使用的计时器过多,因此AppsFlyer无法准确地映射该事件。 | 布尔 | 否 |
skad_attribution_signature | iOS | 字符串 | 否 | |
skad_campaign_id | iOS | 用于发布该则广告的广告系列ID,范围为0-100。 | 整数 | 否 |
skad_conversion_value | iOS |
iOS上报的转化值,范围为0-63。 若该字段的值为null,则表示iOS未填充该字段** |
整数 | 否 |
skad_mode | AppsFlyer |
用于解析iOS回传的转化衡量模式,可能出现的值有以下几种:
|
字符串 | 否 |
skad_redownload | iOS | 如果该字段的值为true,则表示用户重新下载(redownload)了相关应用 | 布尔 | 否 |
skad_revenue | iOS | 以USD为单位的事件收入金额。 | 浮点数 | 否 |
skad_source_app_id | iOS |
子渠道ID,即发布该广告的应用。 字段填充方式取决于隐私阈值** |
字符串 | 否 |
skad_transaction_id | iOS | - | 字符串 | 否 |
skad_version | iOS | - | 字符串 | 否 |
timestamp | iOS |
AppsFlyer接收到SKAN回传的时间。 在Google Ads和Meta ads投放场景中,该字段代表AppsFlyer从Google和Meta ads API接收到数据的时间 |
时间戳 (时间字符串,用于SRN投放维度报告) |
是 |
event_value | S2S |
默认值为null 包含一个字符串。该字符串的设置取决于使用自定义解析(custom decode)模式的应用。 该数据供广告主在其内部系统中使用,AppsFlyer不会使用该数据。 |
String (JSON) | 否 |
ad_network_adset_id |
广告平台 | 字符串 | 是 | |
ad_network_adset_name |
广告平台 | 字符串 | 是 | |
ad_network_ad_name |
广告平台 | 字符串 | 是 | |
ad_network_ad_id |
广告平台 |
|
字符串 | 是 |
skad_did_win (1) |
3.0(iOS 14.6) |
用于区分助攻和获得激活归因的广告系列
|
布尔 | 否 |
skad_fidelity_type (1) |
2.2(iOS 14.5) |
用于区分广告呈现方式,这会影响到归因结果。通过0和1来表达,具体如下:
如果SKAN版本低于2.2,请忽略该字段值。 |
整数 | 是 |
ad_network_source_app_id (1) |
广告平台 | 广告平台上报的流量侧应用(Publisher App)ID,用于核对成本。该数据基于流量侧应用提供的信息得出。 | 字符串 | 否 |
ad_network_channel (1) |
广告平台 | 字符串 | 否 | |
af_prt (1) |
广告平台 | 字符串 | 否 | |
min_revenue |
AppsFlyer | 参见脚注(4) | 实数 | 否 |
max_revenue |
AppsFlyer | 参见脚注(4) | 实数 | 否 |
event_revenue |
AppsFlyer |
计算方式:[以USD为单位的具体事件值总和]/[在指定日期中的事件发生数量] |
浮点数 | 是 |
min_event_counter |
AppsFlyer | 用于计算用户完成某一事件的次数。参见脚注(3) | 整数 | 否 |
max_event_counter |
AppsFlyer | 参见脚注(3) | 整数 | 否 |
min_time_post_install |
AppsFlyer | 参见脚注(5) | 整数 | 否 |
max_time_post_install |
AppsFlyer | 参见脚注(5) | 整数 | 否 |
af_attribution_flag |
AppsFlyer |
单一可信数据源(SSOT)机制启用时:如果该字段的值为true,则表示该次激活同时被AppsFlyer和SKAN归因。如果该值为false,则表示该次激活没有被AppsFlyer归因。即使skad_conversion_value的值为null,该参数的值仍为true或false(取决于模型推算)。 |
布尔 | 否 |
measurement_window |
AppsFlyer | 用户行为窗口期的时长。默认为24小时。 | 整数 | 否 |
interval |
AppsFlyer | 用户行为窗口期间隔时长。 | 整数 | 否 |
user_agent |
AppsFlyer | 设备用户代理(User Agent) | 字符串 | 否 |
skad_postback_sequence_index |
4.0(iOS 16.2) |
|
整数 | 是 |
skad_coarse_conversion_value |
4.0(iOS 16.2) |
|
字符串 | 是 |
skad_source_identifier | 4.0(iOS 16.2) |
|
字符串 | 是 |
skad_source_domain | 4.0(iOS 16.2) |
|
字符串 | 是 |
ad_network_creative | 广告平台 |
|
字符串 | 否 |
** Apple通过隐私阈值机制来判断是否填充该字段 (1)从2021年6月2日开始,报告中增加了这个字段。但不一定带有值。 (3)用于判断用户完成某个应用内事件的次数,计算方法为: (4)收入数据总是呈现在 (5)
|
|
其他信息
特点和局限性
特点 | 说明 |
---|---|
渠道权限 | 向广告平台提供回传数据 |
代理访问权限 | 不支持 |
代理数据透明化 | 不适用 |
时区 | UTC |
货币 | USD |
自然量数据 | 基于SDK事件数据得出。比如,自然激活指标的计算方式如下:由SDK上报的所有激活减去由SKAN上报的非自然激活。 |
非自然量数据 | 基于SKAN回传得出 |
数据时效性 |
每天更新一次。SKAN时效:iOS会在窗口期结束后的24-28小时内上报相关激活。 |
历史数据 |
受Data Locker数据可用期限的限制。 |
账户用户权限 | 可用,具体取决于账户授权。 |