概要:AppsFlyer ROI360解决方案中的Cost ETL可为广告主提供最详细的分渠道投放成本。该工具每天会对相关数据做4次更新,并将其写入您的云服务中,以备BI入库。
关于Cost ETL
AppsFlyer ROI360解决方案中的Cost ETL可为广告主提供最详细的分渠道投放成本。每天会对相关数据做4次更新,并将其写入您的Data Locker云服务中,以备BI入库。
广告主可轻松将报表同时同步至多个云端目标,即使在更换云服务平台期间,各团队也能无缝访问多个服务中同步的数据。
报告类型
AppsFlyer提供两种类型的报告,以满足不同的分析需求。
1.Cost ETL报告
Cost ETL报告包含与AppsFlyer归因数据关联的广告成本信息,涵盖激活、重新归因、再互动等关键归因指标。
- 摘要报告(summary report,默认):按媒体渠道汇总的高层级成本数据,适用于整体层面的成本与效果分析。
- 国家/地区报告:按国家(使用两位国家代码,如US、CA、FR)细分的成本数据,适用于地域维度的广告表现与成本分析。
- 渠道报告:(可选)按渠道(如YouTube、购物)细分的成本数据,适用于渠道层级的投放效果与成本分析。
设置与配置报告
查看报告字段
- 示例文件为CSV格式,Cost ETL文件将以Parquet格式发送至您的数据桶。
- 报告维度和指标详见文件字段表。建议选择最适合您业务需求的维度和指标,具体的最优解视渠道而定。
2.全量成本报告(All Cost Report)
全量成本报告提供了全面的移动端与网页端广告成本视图,数据直接来自广告平台,不依赖于归因整合。如需收取全量成本报告,请联系您的AppsFlyer代表。
- 应用ID(App ID)会如实显示为广告平台返回的值;若未获取到App ID,则显示为未知(unknown)。
- 当前支持的数据来源包括:Google Ads与Meta Ads。
设置与配置报告
查看报告字段
- 示例文件为CSV格式,Cost ETL文件将以Parquet格式发送至您的数据桶。
- 全量成本报告的维度与指标与Cost ETL报告的数据结构相同。详细字段信息请参考字段说明表。
注意
如需收取全量成本报告,请联系您的AppsFlyer代表。
报告详情
数据时效性
投放成本数据:
- 写入您的云服务或数据存储桶,以便您对成本数据进行查看、传输、入库。
- 适用于您在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数据写入云服务或存储桶时所使用的目录和文件结构。
- Cost ETL在目录中写入数据后,会有一个成功创建文件的标记,并总是带有该目录中最近的一个时间戳。
- 文件夹/文件数量的规则如下:
- 摘要报告:每天最多4个版本文件夹。
- 每个版本的文件夹内包含最近7天数据的parquet文件。
- 国家/地区或流量入口(Channel)报告:每份报表每日最多包含4个版本文件夹。
- 每个版本的文件夹内包含的parquet文件以数字命名(从1开始)。
- 【封闭Beta】全量成本报告:以国家/地区维度为基础,每天包含最多4个版本的文件夹。
- 摘要报告:每天最多4个版本文件夹。
Data Locker连接目录结构
| 组成部分 | 内容 |
|---|---|
| client-bucket | 在云服务中配置的存储桶名称 |
| DL-generated-partition | 系统为每位客户生成的唯一分区标识 |
| connection-name | 在设置 Data Locker 时定义的连接名称 |
| t | 指定报表类型,可能值包括:
|
| dt |
|
| v |
|
| Parquet文件编号, |
|
Cost ETL连接目录结构
| 组成部分 | 内容 |
|---|---|
| advertiser_bucket_name | 在Cost ETL配置中设定的存储桶名称:af-xpend-cost-etl-<af-account-id>-[您的存储桶名称后缀] |
| cost_etl | 始终为“cost_etl” |
| version | Cost ETL的版本 |
| date |
成本数据的日期 格式:yyyy-mm-dd |
| batch | 以数字1-4命名 |
| dimension | 数据维度:
|
| file_name |
|
| Parquet file number(文件编号) |
|
示例:对于2020年6月23日中首次拉取的数据,其目录及文件名结构如下:/bucket-name/cost_etl/v1/dt=2020-06-23/b=1/geo/part-00001
文件字段
字段/维度
| 字段 | 说明 | 是否默认填充 | 格式 | 是否包含在摘要文件中 |
|---|---|---|---|---|
| ad | 广告层次结构中的一个层级 | 否 | 字符串 | - |
| ad_account |
|
否 | 字符串 | - |
| ad_id | 广告层次结构中的一个层级 | 否 | 字符串 | - |
| adset | 广告层次结构中的一个层级 | 否 | 字符串 | - |
| adset_id | 广告层次结构中的一个层级 | 否 | 字符串 | - |
| af_bid_strategy | 经过AppsFlyer映射和标准化的竞价策略。该字段是广告系列属性的一部分,详情请见此处说明。 | 否 | 字符串 | - |
| af_cost_model | 由AppsFlyer对成本模型进行映射和归一。该字段是广告系列属性的一部分,详情请见此处说明。 | 否 | 字符串 | - |
| agency | 投放广告的代理商 | 否 | 字符串 | - |
| app_id | AppsFlyer后台的应用ID | 是 | 字符串 | ✓ |
| bid_amount | 该字段是广告系列属性的一部分,详情请见此处说明。 | 否 | 整数 | - |
| bid_strategy | 该字段是广告系列属性的一部分,详情请见此处说明。 | 否 | 字符串 | - |
| campaign | 广告层次结构中的一个层级 | 否 | 字符串 | - |
| campaign_id | 广告层次结构中的一个层级 | 否 | 字符串 | - |
| campaign_objective | 该字段是广告系列属性的一部分,详情请见此处说明。 | 否 | 字符串 | - |
| channel | 广告层级中的维度 | 否 | 字符串 | - |
| cost_model | 该字段是广告系列属性的一部分,详情请见此处说明。 | 否 | 字符串 | - |
| currency | 广告消耗的货币单位,即您在AppsFlyer后台的应用配置中设定的货币单位。 | 是 | ISO-4217中的3字母字符串 | ✓ |
| date | 由渠道上报的成本发生日期 | 是 | 格式为yyyy-mm-dd的字符串 | ✓ |
| geo | 广告层级中的维度 | 否 | ISO 3166中的2字母字符串 | ✓ |
| keyword_id | ASA关键词ID | 是 | 字符串 | - |
| keyword_term | 用户在线搜索时使用的字词。 | 是 | 字符串 | - |
| media_source | 展示广告的媒体渠道 | 是 | 字符串 | ✓ |
| original_bid_amount | 该字段是广告系列属性的一部分,详情请见此处说明。 | 否 | 整数 | - |
| original_currency | 由广告平台上报的成本货币(未换算) | 是 | ISO-4217中的3字母字符串 | - |
| OS | 指设备操作系统。可用值包括:
|
是 | 字符串 | - |
| 平台 | 用于投放广告的平台(移动、平板、桌面和CTV) | 仅限全量成本报告 | 字符串 | - |
| site_id | 子渠道ID | 否 | 字符串 | - |
| timezone |
|
是 | 字符串 | - |
指标
| 字段 | 说明 | 是否默认填充 | 格式 | 是否包含在摘要文件中 |
|---|---|---|---|---|
| ccvr |
|
整数 | - | |
| clicks |
|
整数 | ✓ | |
| clicks_discrepancy |
|
整数 | - | |
| cost | 广告消耗金额(包括相关的代理费用) | 参数值 | ✓ | |
| cost_without_fees | 剔除代理费后的成本。由AppsFlyer统计。 | 是 | 整数 | - |
| cpi |
|
整数 | - | |
| ctr |
|
否 | 整数 | - |
| cvr |
|
整数 | - | |
| cvvr |
|
整数 | - | |
| ecpc |
|
整数 | - | |
| ecpm |
|
整数 | - | |
| fees | 代理商在广告成本以外额外收取的费用。由AppsFlyer统计 | 是 | 整数 | - |
| 曝光量 |
|
是 如果某个指标没有可用值,则以0填充。 |
整数 | ✓ |
| impressions_discrepancy |
|
整数 | - | |
| 安装 | 由AppsFlyer统计 | 整数 | ✓ | |
| installs_discrepancy |
|
整数 | - | |
| original_cost | 由广告平台上报的成本数据,以广告平台设定的货币为单位(未经换算),加上由AppsFlyer计算的相关代理费用(若有) | 参数值 | - | |
| original_cost_without_fees | 广告平台上报的原始成本数据,不含代理费用 | 是 | 整数 | - |
| re_attributions | 由AppsFlyer统计 | 整数 | ✓ | |
| re_engagements | 由AppsFlyer统计 | 整数 | ✓ | |
| reported_clicks | 由渠道统计 | 整数 | ✓ | |
| reported_conversions | 由渠道统计 | 整数 | ||
| reported_cvr |
|
整数 | - | |
| reported_impressions | 由渠道统计 | 整数 | ✓ | |
| video_25p_views | 视频播放至25%。由广告平台上报 | 整数 | - | |
| video_50p_views | 视频播放至50%。由广告平台上报 | 整数 | - | |
| video_75p_views | 视频播放至75%。由广告平台上报 | 整数 | - | |
| video_completions | 由广告平台上报 | 整数 | - |
配置流程
设置Cost ETL
您需要具备管理员权限才能够完成以下配置操作。
前期准备 :
配置Cost ETL前,您需要具备以下条件:
- 已设置云服务,并授予AppsFlyer写入数据的权限也就是说,您需完成以下一种或多种云服务的设置:
- 您需要同时具有AppsFlyer管理员权限和后台(UI)权限才能完成Cost ETL的设置。
- 在AppsFlyer后台的侧边栏中选择导出 > Cost ETL。
- 选择或设置一个数据连接:
- 如果您已经设置了数据连接,可在连接下拉菜单中,选择您想要用于Cost ETL的连接。
- 如果尚未设置数据连接,请点击在Data Locker中+新连接 并在此处创建连接:
- 为连接命名。
-
选择一个云服务数据宿端。此时可完成以下任一操作:
- 选择S3。
- 输入您的Amazon S3存储桶名称,必须手动在其中添加前缀
af-。 - 点击测试连接。
- 确保未收到“存储桶路径无效”的报错消息。
- 选择该连接是否需要支持Adobe Experience Platform。
- 点击保存。
- 在Cost ETL设置中,在连接下拉菜单中,选择您创建的云服务。
- 输入您的Amazon S3存储桶名称,必须手动在其中添加前缀
- 选择GCS。
- 输入您的GCS存储桶名称。
- 点击测试连接。
- 确保未收到“存储桶路径无效”的报错消息。
- 选择该连接是否需要支持Adobe Experience Platform。
- 点击保存。
- 在Cost ETL设置中,在连接下拉菜单中,选择您创建的云服务。
- 【Beta】选择Azure。
- 输入您的连接名称、存储账户名称以及密钥。
- 确保未收到“存储桶路径无效”的报错消息。
- 选择该连接是否需要支持Adobe Experience Platform。
- 点击保存。
- 在Cost ETL设置中,在连接下拉菜单中,选择您创建的云服务。
- 【Beta】选择Yandex。
- 输入您的存储桶名称、访问密钥(Access Key)和私人密钥(Secret key)。
- 确保未收到“存储桶路径无效”的报错消息。
- 选择该连接是否需要支持Adobe Experience Platform。
- 点击保存。
- 在Cost ETL设置中,在连接下拉菜单中,选择您创建的云服务。
- 选择BigQuery。
- 输入您的BigQuery项目ID和数据集名称。
- 点击测试连接。
- 确保未收到“存储桶路径无效”的报错消息。
- 点击保存。
- 在Cost ETL设置中,在连接下拉菜单中,选择您创建的云服务。
- 选择Snowflake。
- 输入您的Snowflake地区和账户ID。
- 点击测试连接。
- 确保未收到“存储桶路径无效”的报错消息。
- 点击保存。
- 在Cost ETL设置中,在连接下拉菜单中,选择您创建的云服务。
- 选择S3。
- 为连接命名。
- 如果您已经设置了数据连接,可在连接下拉菜单中,选择您想要用于Cost ETL的连接。
- 点击下一步。
- 设置报告版本计划(UTC):
- 设置您要接收的报告数量(1-4)。
- 设置接收报告的时间。详情请见此处说明。
- 点击下一步。
- 设置报告详情:
- 选择报告中显示的一个或多个应用。点击全选可自动添加后续加入的新应用。
- 选择最符合您分析需求的报告。请参阅报告类型部分的说明。
- 选择报告中需要包含的维度。请注意:若选择了国家/地区报告,则默认包含地理位置维度。若选择了渠道报告,则默认包含渠道维度。
- 选择报告中需要包含的指标。
- 选择报告中显示的一个或多个应用。点击全选可自动添加后续加入的新应用。
- 点击应用。
编辑或更改连接
您可以编辑或更换数据连接,将数据发送至不同或其他的存储位置。
请注意:切换到现有连接后,您将无法恢复到之前的Cost ETL连接。
编辑连接
如需编辑连接详情:
- 在AppsFlyer后台的侧边栏中选择导出 > Cost ETL。
- 在数据连接部分,执行以下任一操作:
- 按照屏幕提示修改您的连接详情
- 根据提示点击保存更改或应用。
更改Data Locker连接
如需将当前使用的Data Locker连接更换为其他连接,请执行以下操作:
- 在AppsFlyer后台的侧边栏中选择导出 > Cost ETL。
- 在数据连接部分,执行以下任一操作:
- 点击保存更改 。
将Cost ETL切换至Data Locker连接
前期准备 :
-
切换至Data Locker连接后,您将无法切回原有的Cost ETL连接
-
路径结构将更新为如下格式(不会影响报告数据内容):
/ / /t= /dt= /v=<1/2/3/4>/
从已弃用的Cost ETL连接切换至Data Locker连接:
更改AWS对象的归属
AppsFlyer将数据写入您的存储桶时,AWS平台默认该数据的所有者是AppsFlyer。您可能需要将默认归属权改为存储桶所有者(即您自己),具体取决于您的数据入库流程。
请按以下步骤更改存储桶中数据的归属权:
- 登录AWS Management Console,打开Amazon S3后台,地址为https://console.aws.amazon.com/s3/。
- 在Bucket列表中,选择存储桶名称,以启用S3 Object Ownership(对象所有权)。
- 进入Permissions选项卡。
- 点击Object Ownership下的Edit。
- 选择Bucket owner preferred。
- 点击保存。
最佳实践
定时拉取报告
您可以利用定时拉取报告的设置根据实际需求获得最新数据。
设定报告拉取时间时:
- 尽量选择离您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等等。详情请见此处说明。
其他相关信息
特点与局限性
| 特点 | 说明 |
|---|---|
| 时区 | 如果时区有所变更,则变更当天的成本数据会重复。详情请见此处说明。 |
| 数据时效性 |
|
| 全量成本报告 |
|
| SKAN广告成本数据 |
|