我们能为您提供什么帮助?

Cost ETL——投放成本深度数据“桶”统解决 高阶付费

  • 更新

概要:AppsFlyer ROI360解决方案中的Cost ETL可为广告主提供最详细的分渠道投放成本。

5896_CostETL_graphic__2_.png

AppsFlyer ROI360解决方案中的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在某个目录中写入数据后,会创建一个名为success的文件,以标记数据写入成功,该文件总是带有该目录下最新的时间戳。 
  • 文件夹/文件数量的规则如下:
    • 总结报告:
      • 每个批次的文件夹内包含最近7天数据的parquet文件。
      • 每个批次的文件夹内包含的parquet文件以数字命名(从1开始)。
    • 【封闭Beta】完全成本报告:

///t=/dt=/v=<1/2/3/4>/

组成部分 内容
连接名称。
t 您可以使用以下任一方式:
  • cost_etl_summary
  • cost_etl_geo
  • cost_etl_channel
dt
  • YYYY-MM-DD
v
Parquet文件编号
  • 从00000开始编号
  • 示例:part-

/cost_etl/version/dt=/b=//

组成部分 内容
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 数据维度:
  • geo
  • channel
file_name
  • summary
  • all-cost
Parquet文件编号
  • 从00000开始编号
  • 示例:part-

比如对于2020年6月23日中首次拉取的数据,其目录及文件名结构如下:

文件字段

字段/维度

字段 说明 是否默认填充 格式 是否包含在总结文件中
date 由渠道上报的成本发生日期 是 格式为yyyy-mm-dd的字符串 ✓
app_id AppsFlyer后台的应用ID 是 字符串 ✓
media_source 展示广告的媒体渠道 是 字符串 ✓
OS 指设备操作系统。可用值包括:
  • Android
  • Windows Phone
  • iOS
是 字符串 -
agency 投放广告的代理商 否 字符串 -
campaign 广告层次结构中的一个层级 否 字符串 -
campaign_id 广告层次结构中的一个层级 否 字符串 -
adset 广告层次结构中的一个层级 否 字符串 -
adset_id 广告层次结构中的一个层级 否 字符串 -
ad 广告层次结构中的一个层级 否 字符串 -
ad_id 广告层次结构中的一个层级 否 字符串 - 
ad_account
  • 提供成本数据的广告账户
  • 适用于通过oAuth(使用证书登录)实现连接的广告平台,如Google或Meta ads
否 字符串 -
currency 广告消耗的货币单位,即您在AppsFlyer后台的应用配置中设定的货币单位。 是 ISO-4217中的3字母字符串 ✓
original_currency 由广告平台上报的成本货币(未换算) 是 ISO-4217中的3字母字符串 -
timezone
  • AppsFlyer储存数据时用到的时区
  • 广告平台用来上报数据的时区可能与AppsFlyer后台配置的时区不同。这是AppsFlyer与广告平台之间出现数据差异的原因之一。
是 字符串  -
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
  • 由AppsFlyer统计。
  • 同时包含UA和再营销数据。

是

如果某个指标没有可用值,则以0填充。

整数 ✓
clicks
  • 由AppsFlyer统计。
  • 同时包含UA和再营销数据。
整数 ✓
reported_impressions 由渠道统计 整数 ✓
reported_clicks 由渠道统计 整数 ✓
installs 点击率。 整数 ✓
reported_conversions 由渠道统计 整数  
re_engagements 点击率。 整数 ✓
re_attributions 点击率。 整数 ✓
cost 广告消耗金额(包括相关的代理费用) 参数值 ✓
original_cost 由广告平台上报的成本数据,以广告平台设定的货币为单位(未经换算),加上由AppsFlyer计算的相关代理费用(若有) 参数值  -
impressions_discrepancy
  • 广告平台和AppsFlyer之间的数据统计差异。
  • 如果出现以下情况,请忽略该指标:
整数 -
clicks_discrepancy
  • 广告平台和AppsFlyer之间的数据统计差异。
  • 如果出现以下情况,请忽略该指标:
整数 -
installs_discrepancy
  • 广告平台和AppsFlyer之间的数据统计差异。
  • 如果出现以下情况,请忽略该指标:
整数 -
fees 代理商在广告成本以外额外收取的费用。由AppsFlyer统计 是 整数 -
cost_without_fees 剔除代理费后的成本。点击率。 是 整数 -
original_cost_without_fees 广告平台上报的原始成本数据,不含代理费用 是 整数 -
ctr
  • 点击率点击率。
  • 计算方式为:点击量/展示量

 

 

 

 

否

整数 -
cvr
  • 由AppsFlyer统计的点击率。
  • 计算方式为:激活量/点击量
整数  -
ecpm
  • 点击率。
  • 计算方式为:(成本/展示量)* 1000  
整数 - 
cpi
  • 点击率。
  • 计算方式为:成本/激活量
整数 - 
ccvr
  • 每次转化的平均成本
  • 计算方式为:成本/(激活量+再归因+再互动)
整数 - 
cvvr
  • 由AppsFlyer统计的点击率。
  • 计算方式为:视频完播量/展示量
整数 -
reported_cvr
  • 广告平台上报的转化率
  • 计算方式为:上报转化量/上报点击量
整数 - 
ecpc
  • 点击率。
  • 计算方式为:成本/点击量
整数 -
video_25p_views 由广告平台上报的由广告平台上报 整数 - 
video_50p_views 由广告平台上报的由广告平台上报 整数 - 
video_75p_views 由广告平台上报的由广告平台上报 整数 - 
video_completions 由广告平台上报 整数 - 

配置流程

您需要具备管理员权限才能够完成以下配置操作。

温馨提示以下信息 :


    •  

    •  
      1. 为新连接命名。
         
      2. 选择一个云服务数据宿端。完成以下任一操作:
        • 选择S3。
           
          1. 输入您的Amazon S3存储桶名称,af-必须手动在其中添加前缀af-af-。
          2. 点击测试连接。
          3. 确保未收到“存储桶路径无效”的报错消息。
          4. 选择该连接是否需要支持Adobe Experience Platform。
          5. 点击保存。
          6.  
        • 选择GCS。
           
          1. 输入您的GCS存储桶名称。
          2. 点击测试连接。
          3. 确保未收到“存储桶路径无效”的报错消息。
          4. 选择该连接是否需要支持Adobe Experience Platform。
          5. 点击保存。
          6.  
        • 【Beta】选择Azure。
           
          1. 输入您的连接名称、存储账户名称以及密钥。
          2. 确保未收到“存储桶路径无效”的报错消息。
          3. 选择该连接是否需要支持Adobe Experience Platform。
          4. 点击保存。
          5.  
        • 【Beta】选择Yandex。
           
          1. 输入您的存储桶名称、访问密钥(Access Key)和私人密钥(Secret key)。
          2. 确保未收到“存储桶路径无效”的报错消息。
          3. 选择该连接是否需要支持Adobe Experience Platform。
          4. 点击保存。
          5.  
        • 选择BigQuery。
           
          1. 输入您的BigQuery项目ID和数据集名称。
          2. 点击测试连接。
          3. 确保未收到“存储桶路径无效”的报错消息。
          4. 点击保存。
          5.  
        • 选择Snowflake。
           
          1. 输入您的Snowflake地区和账户ID。
          2. 点击测试连接。
          3. 确保未收到“存储桶路径无效”的报错消息。
          4. 点击保存。
          5.  
  1. 点击Next。
     

  2.  
    1.  
    2. 详情请见此处说明。
    3. 点击Next。
  3.  

    1.  

    2.  
      • 总耗时
      • geo
      • 流量入口(Channel):
      • 【封闭Beta】完全成本报告:按国家/地区维度分组,涵盖全平台的所有营销活动所产生的成本数据,包括未添加到AppsFlyer的应用/平台(这时应用ID会标记为“unknown”,即未知)。
    3. 请注意: 
       
    4.  
       
  4. 点击启用。

 

请注意:

  1. 点击Save changes。

前期准备 :


  1.   
  2. 点击Save changes。

AppsFlyer将数据写入您的存储桶时,AWS平台默认该数据的所有者是AppsFlyer。您可能需要将默认归属权改为存储桶所有者(即您自己),具体取决于您的数据入库流程。  

请按以下步骤更改存储桶中数据的归属权:

  1. 登录AWS Management Console,打开Amazon S3后台,地址为https://console.aws.amazon.com/s3/。
  2. 在Bucket列表中,选择存储桶名称,以启用S3 Object Ownership(对象所有权)。
  3. 进入授权选项卡。
  4. 点击Object Ownership下的Edit。 
  5. 选择Bucket owner preferred。
  6. 点击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等等。详情请见此处说明。

其他相关信息

特点与局限性

特点 说明
时区 如果时区有所变更,则变更当天的成本数据会重复。详情请见此处说明。
数据时效性
  • 一天多次。Cost ETL的配置流程包含定时拉取报告的设置,您可以通过该设置来指定报告的送达时间。
  • 相关数据会在指定时间前的一小时内写入存储桶。也就是说,如果您选择的报告送达时间为早晨6,则该报告会在早晨5-6之间写入存储桶。
请注意:成本数据写入您的存储桶后,入库BI的数据量可大至数GB,小至数KB,具体取决于报告和parquet文件的大小。