概要:AppsFlyer ROI360解决方案中的Cost ETL可为广告主提供最详细的分渠道投放成本。该工具以每天最多4次的频率更新相关数据,并将其写入您的AWS S3或GCS存储桶中,以备BI入库。
Cost ETL的作用原理
投放成本数据:
- 写入您的数据存储桶,以便您对成本数据进行查看、传输、入库。
- 数据每天写四次(即后文中所说的“数据时效性:一日多次”)。
- 涵盖当天和前6天(即本文中所说的“最近7天”),以及第14天、29天、88天的数据。
- 示例:假设当天日期为2024年10月14日,则文件覆盖以下几天的数据:10月14日(当天)、10月13日(1天前)、10月12日(2天前)、10月11日(3天前)、10月10日(4天前)、10月9日(5天前)、10月8日(6天前)、9月30日(14天前)、9月15日(29天前)以及7月18日(88天前)。
- 数据回滚是为了对上报的成本数据进行更新和校准。
- 适用于匹配到归因(转化)、点击或展示的成本。
请注意:- 最近7天的数据是取自渠道的最新数据,而第14/29/88天的数据则是经过重新处理得到的。
- 数据的回滚更新仅针对成本,不涵盖归因数据。
Cost ETL的数据一定具备以下两种主要维度:
- 国家/地区(Geo):按国家细分
- 流量入口(Channel):即媒体渠道的流量入口,如YouTube是Google的一个流量入口。
您可以根据实际需求自行调整报告所含的其他维度和指标。
查看示例文件。请注意:该示例文件为Excel格式,其中的数据按流量入口(Channel)分组;实际Cost ETL文件会以parquet格式写入您的存储桶。
启用方式
报告维度
- Cost ETL中的报告覆盖所有应用, 并可细分到天或更新批次。
- 每次写入存储桶中的数据(每天最多4次)涵盖所有的可用数据,包括历史数据、更新,以及对前6天和第14/29/88天数据的校正。在数据入库时需要注意这一点。
-
关于报告结构的详细说明请参见文件字段部分中的表格。报告结构分为以下几种:
- 总结报告(summary report):数据颗粒度较粗(信息较简略),便于快速理解。
- 维度报告(dimension report):至少有一个主要维度在所有数据中都可用。也就是说, 报告所含的 所有媒体渠道都提供 该维度的数据。反之,如果某个 渠道 不提供这个主要维度的数据,那么 报告中 就不会包含该数据。 此外, 维度报告还包含所有可用的次要维度数据,但不保证 次要维度 在所有数据中都可用。
-
可用的主要维度(总是可用)如下:
- 国家/地区(Geo):按国家分组的数据
- 流量入口(Channel):即媒体渠道的流量入口,如YouTube是Google的一个流量入口,Instagram是Meta ads的一个流量入口。
- 建议选择最适合您业务需求的维度和指标,具体的最优解视渠道而定。
- 【封闭Beta】完全成本报告:按国家/地区维度分组,涵盖全平台的所有营销活动所产生的成本数据,包括未添加到AppsFlyer的应用/平台(这时应用ID会标记为“unknown”,即未知)。
目录与文件名结构
- 本节说明了Cost ETL数据写入存储桶时所使用的目录和文件结构。查看示例文件。 请注意:该示例文件为Excel格式,其中的数据按流量入口(Channel)分组;实际Cost ETL文件会以parquet格式写入您的存储桶。
- Cost ETL在某个目录中写入数据后,会创建一个名为success的文件,以标记数据写入成功,该文件总是带有该目录下最新的时间戳。
- 每次写入的数据包含当天和前6天的数据(本文中称其为“最近7天的数据”),以及第14、29、88天的数据。
-
文件夹/文件数量的规则如下:
-
总结报告:每天4个文件夹,每个文件夹为一个批次。
- 每个批次的文件夹内 包含 最近7天数据的parquet文件。
-
维度报告:每个主要维度下每天有4个
批次
的文件夹。
- 每个批次的文件夹内 包含的parquet文件 以数字命名(从1开始)。
- 【封闭Beta】完全成本报告:以 国家/地区 维度为基础,每天有4个批次的文件夹。
-
总结报告:每天4个文件夹,每个文件夹为一个批次。
目录结构示例
文件目录结构
/<advertiser bucket name>/cost_etl/version/dt=<yyyy-mm-dd>/b=<n>/ <dimension>/<file name>
文件目录结构
组成部分 |
内容 |
---|---|
advertiser_bucket_name |
在Cost ETL配置中设定的存储桶名称:af-xpend-cost-etl-<af-account-id>-[您的存储桶名称后缀] |
cost_etl | 总是为“cost_etl”不变 |
version | Cost ETL的版本 |
date |
成本数据的日期 格式:yyyy-mm-dd |
批次 | 以数字1-4命名 |
dimension |
数据维度:
|
file_name |
|
Parquet文件编号 |
|
文件名结构
part-<number>
示例
对于2020年6月23日中首次拉取的数据,其目录及文件名结构如下:
/bucket-name/cost_etl/v1/dt=2020-06-23/b=1/geo/part-00001
文件字段
字段/维度
字段 |
说明 |
是否默认填充 |
格式 |
是否包含在总结文件中 |
---|---|---|---|---|
date |
由渠道上报的成本发生日期 |
是 |
格式为yyyy-mm-dd的字符串 |
✓ |
app_id |
AppsFlyer后台的应用ID |
是 |
字符串 |
✓ |
media_source |
展示广告的媒体渠道 |
是 |
字符串 |
✓ |
OS |
设备操作系统。可能出现的值为:
|
是 |
字符串 |
- |
agency |
投放广告的代理商 |
否 |
字符串 |
- |
campaign |
广告层次结构中的一个层级 |
否 |
字符串 |
- |
campaign_id |
广告层次结构中的一个层级 |
否 |
字符串 |
- |
adset |
广告层次结构中的一个层级 |
否 |
字符串 |
- |
adset_id |
广告层次结构中的一个层级 |
否 |
字符串 |
- |
ad |
广告层次结构中的一个层级 |
否 |
字符串 |
- |
ad_id |
广告层次结构中的一个层级 |
否 |
字符串 |
- |
ad_account |
|
否 |
字符串 |
- |
currency |
广告消耗的货币单位,即您在AppsFlyer后台的应用配置中设定的货币单位。 |
是 |
ISO-4217中的3字母字符串 |
✓ |
original_currency |
由广告平台上报的成本货币(未换算) |
是 |
ISO-4217中的3字母字符串 |
- |
timezone |
|
是 |
字符串 |
- |
geo |
广告层级中的维度 |
否 |
ISO 3166中的2字母字符串 |
✓ |
channel |
广告层级中的维度 |
否 |
字符串 |
- |
keyword_term |
用户在线搜索时使用的字词。 |
是 |
字符串 |
- |
keyword_id |
ASA关键词ID |
是 |
字符串 |
- |
site_id |
Publisher ID(子渠道ID) |
否 |
字符串 |
- |
campaign_objective |
该字段是广告系列属性的一部分,详情请见此文档 |
否 |
字符串 |
- |
cost_model |
该字段是广告系列属性的一部分,详情请见此文档 |
否 |
字符串 |
- |
af_cost_model |
经过AppsFlyer映射和标准化的成本模型。该字段是广告系列属性的一部分,此文档 |
否 |
字符串 |
- |
bid_strategy |
该字段是广告系列属性的一部分,详情请见此文档 |
否 |
字符串 |
- |
af_bid_strategy |
经过AppsFlyer映射和标准化的竞价策略。该字段是广告系列属性的一部分,此文档 |
否 |
字符串 |
- |
bid_amount |
该字段是广告系列属性的一部分,详情请见此文档 |
否 |
整数 |
- |
original_bid_amount |
该字段是广告系列属性的一部分,详情请见此文档 |
否 |
整数 |
- |
指标
字段 |
说明 |
是否默认填充 |
格式 |
是否包含在总结文件中 |
---|---|---|---|---|
impressions |
|
是 如果某个 指标 没有可用值,则以0填充。 |
整数 |
✓ |
clicks |
|
整数 |
✓ |
|
reported_impressions |
由渠道统计 |
整数 |
✓ |
|
reported_clicks |
由渠道统计 |
整数 |
✓ |
|
installs |
点击率。 |
整数 |
✓ |
|
reported_conversions |
由渠道统计 |
整数 |
|
|
re_engagements |
点击率。 |
整数 |
✓ |
|
re_attributions |
点击率。 |
整数 |
✓ |
|
cost |
广告消耗金额(包括相关的代理费用) |
参数值 |
✓ |
|
original_cost |
由广告平台上报的成本数据,以广告平台设定的货币为单位(未经换算),加上由AppsFlyer计算的相关代理费用(若有) |
参数值 |
- |
|
impressions_discrepancy |
|
整数 |
- |
|
clicks_discrepancy |
|
整数 |
- |
|
installs_discrepancy |
|
整数 |
- |
|
fees |
代理商在广告成本以外额外收取的费用。由AppsFlyer统计。 |
是 |
整数 |
- |
cost_without_fees |
剔除代理费后的成本。由AppsFlyer统计。 |
是 |
整数 |
- |
original_cost_without_fees |
广告平台上报的原始成本数据, 不含 代理费用 |
是 |
整数 |
- |
ctr |
|
否 |
整数 |
- |
cvr |
|
整数 |
- |
|
ecpm |
|
整数 |
- |
|
cpi |
|
整数 |
- |
|
ccvr |
|
整数 |
- |
|
cvvr |
|
整数 |
- |
|
reported_cvr |
|
整数 |
- |
|
ecpc |
|
整数 |
- |
|
video_25p_views |
看完视频广告前25%的观看量,由广告平台上报 |
整数 |
- |
|
video_50p_views |
看完视频广告前50%的观看量,由广告平台上报 |
整数 |
- |
|
video_75p_views |
看完视频广告前75%的观看量,由广告平台上报 |
整数 |
- |
|
video_completions |
由广告平台上报 |
整数 |
- |
设置用于AWS S3的Cost ETL
您需要具备管理员权限才能够完成以下配置操作。
前期准备:
- 启用Cost ETL时,您需要设置AWS存储桶(并为AppsFlyer开放数据写入权限),并在AppsFlyer后台完成Cost ETL配置。
- 您需要同时具有AWS管理员权限以及AppsFlyer后台的权限才能完成Cost ETL的设置。
- 在设置期间请不要关闭AWS和AppsFlyer的页面。
- 请注意:我们目前正在对支持KMS存储桶加密的功能进行Beta测试。
请按以下步骤设置AWS存储桶及Cost ETL:
- 登录AWS后台。
- 进入“S3 service”部分。
-
请按以下步骤创建存储桶:
- 点击Create bucket。
-
按以下方式填写Bucket name
(存储桶名称):
先填写必须包含的固定前缀
af-xpend-cost-etl-acc-
然后再添加自定义的后缀。- -
如需查找您的
af-account-id
, 可以按照下文的 第7-9步,在AppsFlyer面板中查看。 - 详情请见 Amazon S3命名要求。
-
如需查找您的
- 点击Create bucket。
- 从AppsFlyer后台的侧边栏中选择导出 > Cost ETL。
- 启用Cost ETL。
- 在定时拉取报告中选择 每天需要接收的报告数量以及 各每份报告的接收 时间。每天最多可拉取4份报告。 详情请见此处说明。
-
进入Amazon S3 settings部分。
-
从下拉菜单中选择您的S3存储桶地区。
如果菜单中未显示您的地区,请联系您的CSM。 - 输入您的Amazon S3存储桶名称。
-
点击Next。
界面会显示存储桶策略代码片段。
-
将存储桶策略代码片段复制粘贴到您的
AWS
设置中。
- 在AWS后台选择您专为 Cost ETL创建的存储桶。
- 进入Permission选项卡。
- 在Bucket policy部分, 点击Edit。
- 界面显示存储桶策略窗口。
- 将存储桶策略代码片段粘贴到该窗口中。
-
在AppsFlyer后台的Cost ETL设置部分,点击下一步。
界面会显示验证存储桶部分。
-
点击验证。
查看界面是否显示验证成功。 - 点击Next。
- 您可以选择一个、多个或所有应用。点击全选可自动添加后续加入的新应用。
- 点击启用。
- 选择至少一个必备维度: 流量入口(Channel) 和/或国家地区(Geo)。
-
选择至少一个其他维度。
-
选择您想在报告中查看的指标(至少一个)。
- 点击启用。
设置用于GCS的Cost ETL
您需要具备管理员权限才能够完成以下配置操作。
前期准备:
- 启用Cost ETL时,您需要设置GCS存储桶(并为AppsFlyer开放数据写入权限),并在AppsFlyer后台完成Cost ETL配置。
- 您需要同时具有GCS管理员权限以及AppsFlyer后台的权限才能完成Cost ETL的设置。
- 在设置期间请不要关闭GCS和AppsFlyer的页面。
请按以下步骤设置GCS存储桶及Cost ETL:
- 登录GCS后台。
-
创建一个存储桶。
按以下方式为该存储桶命名:-
先填写必须包含的固定前缀
af-xpend-cost-etl-acc-
然后再添加自定义的后缀。- -
如需查找您的
af-account-id
, 可以按照 下文的 第6-8步说明,在AppsFlyer面板中查看。 - 详情请见 GCS存储桶命名要求。
-
先填写必须包含的固定前缀
- 从AppsFlyer后台的侧边栏中选择导出 > Cost ETL。
- 启用Cost ETL。
- 在定时拉取报告中选择 每天需要接收的报告数量以及 各每份报告的接收 时间。每天最多可拉取4份报告。 详情请见此处说明。
- 进入Data destination,选择 。
- 输入您的GCS存储桶名称。
-
点击Next。
界面会显示AppsFlyer服务账户,用于 设置 GCS权限。 -
在GCS后台设置存储桶的
IAM权限
:
-
将AppsFlyer服务账户添加为 Cost ETL存储桶的主账户。
- 指定Storage Object Admin(存储对象管理员)角色。
-
-
在AppsFlyer后台的Cost ETL设置部分,点击下一步。
界面会显示验证存储桶部分。
-
点击验证。
查看界面是否显示验证成功。 - 点击Next。
- 您可以选择一个、多个或所有应用。点击全选可自动添加后续加入的新应用。
- 点击启用。
- 选择至少一个必备维度: 流量入口(Channel) 和/或国家地区(Geo)。
-
选择至少一个其他维度。
-
选择您想在报告中查看的指标(至少一个)。
- 点击启用。
AWS对象的归属
AppsFlyer将数据写入您的存储桶时, AWS平台默认该数据的所有者是AppsFlyer。您可能需要将 默认归属权改为 存储桶所有者(即您自己), 具体取决于您的数据入库流程。
请按以下步骤更改存储桶中数据的归属权:
-
登录AWS Management Console, 打开Amazon S3后台,地址为 https://console.aws.amazon.com/s3/。
-
在Buckets列表中,选择 存储桶名称, 以启用S3 Object Ownership (对象所有权)。
-
进入Permissions选项卡。
-
点击Object Ownership下的 Edit。
-
选择Bucket owner preferred。
-
点击Save。
最佳实践
定时拉取报告
您可以利用定时拉取报告的设置根据实际需求获得最新数据。
设定报告拉取时间时:
- 尽量选择离您BI系统处理数据的时间最近的选项。
- 如果您合作的某个广告平台在提供前一天的数据时晚于其他平台,可以在该平台的数据可用时额外设置一次报告拉取。
数据覆盖
在拉取和分析数据时,建议您拉取某个日期和批次的数据,或用当前批次的数据覆盖之前收到的同一时段的数据,否则可能会出现重复数据。
例如,在2月20日写入的第1批数据中包含2月14-20日的数据,但在2月19日写入的各批数据中也包含2月14-20日的数据。这种情况下,建议用最近收到的(即2月20日)数据覆盖掉之前收到的(即2月19日)数据。
国家/地区(Geo)与流量入口(Channel)
不是所有的广告平台都会同时提供所有维度的数据,最常见的例子就是Meta ads的国家/地区(Geo)数据和流量入口(Channel)数据。因此,我们将这两个维度的数据分为两个数据集。Geo数据集必定包含Geo数据,而 Channel数据集则必定包含Channel数据。
一般情况下,对大多数媒体渠道来说,Geo和Channel数据集中的数据完全一致。因此,您可以根据您的业务需求选用最合适的数据集(Geo或Channel)。
如果某个渠道的对接协议中不包含流量入口(Channel)上报,则流量入口字段为空,AF仍将其视为包含流量入口的数据。
汇总数据
Cost ETL能从广告平台侧提取最深入的数据,从而为广告主提供更细的颗粒度和更灵活的报告配置。建议您考量实际业务需求,并以最合适的方式对数据进行汇总,否则数据量过于庞大,难以汲取真正有决策价值的洞察。举例来说,如果您想要了解广告系列和国家层级的成本数据,可以仅拉取这些维度的数据。
广告平台数据的标准化
各广告平台支持的数据颗粒度不尽相同。比如Meta ads不提供子渠道层级的成本数据,而X Ads不提供国家/地区层级的成本数据。在对Cost ETL数据进行汇总时,需注意这方面的差别,确保您在对比各渠道时使用的数据具有可比性。
数据对比分析
Cost ETL提供的信息涵盖您所有的成本数据。Cost ETL中有时会出现AF面板上没有的广告系列数据,比如空耗的广告系列(即未带来激活的广告系列)产生的成本数据。如需对比数据,请在数据总览面板中找出具体的广告系列ID,然后将其面板数据与Cost ETL中的成本数据进行对比。详情请见成本数据可用性。
合并Cost ETL和群组报告
您可以将Cost ETL报告和高级汇总群组报告(或Data Locker中的常规群组报告)相结合,导入BI系统。这两种报告合并后可以提供最全面、最准确、时效性最高的营销效果信息,其中包含点击、展示、成本、收入、应用内事件等各种数据。您还可以使用合并后的数据计算ROAS、CPA等等。详情请见此处说明。