概要:广告消耗上传(Ad Spend Ingestion)功能是AppsFlyer ROI360解决方案中的一部分,能全面满足广告主的投放成本上报需求。如果您的合作渠道不支持通过API或点击上报成本,您可以手动上传广告消耗数据,从而记录投放成本。
广告消耗数据上传(Ad Spend Ingestion)
视频 广告消耗数据上传指南
完整的投放成本数据
如果您的合作渠道不支持通过API或点击上报成本,您可以使用 广告消耗数据上传功能来汇总这些平台上的投放成本,这样您就能在面板中看到完整的投放成本和ROI数据。
记录成本时,广告系列是必须包含的维度,其他的投放维度是可选的。您将CSV格式的广告消耗(即成本)数据上传到面板后,4小时内就在面板中看到汇总的成本数据。
广告主和广告平台都可以上传并管理成本文件。代理可以制备用于上传的文件,但必须由广告主来上传这些文件。
如有需要,您也可以覆盖之前上传的广告消耗数据。
使用场景示例:
- 若相关广告平台不通过API或归因链接发送成本数据,可使用此方法记录来自这些平台的广告成本
- 通过电台和榜单等线下渠道进行推广
- 网红营销
如需管理广告消耗数据上传,请前往ROI360 > 广告消耗数据上传。注意:这是一个账户层级的页面。也就是说,广告主可以在这个页面中管理相关账户下所有应用的消耗数据上传。
广告消耗数据文件的制备、上传和接入
广告消耗数据文件的制备-上传-接入流程共有以下两种可选:
- 通过AppsFlyer后台上传文件。
注意:- 建议您先尝试这种文件上传方式。因为使用这种方式时,如果文件格式或内容出错,界面会立刻弹出报错消息,便于您进行必要的调整。
- 此方法不适用于CTV、PC和主机平台上的应用。
- 通过邮件上传文件。
- CTV、PC和主机平台上的应用仅可使用此方法。
下文分别解释了这两种流程。
上传方式
方式:通过AppsFlyer面板上传文件
步骤 | 说明 | 链接 |
---|---|---|
1 |
仅适用于渠道上传的步骤:广告主需要先为渠道授权,然后渠道才能上传文件 |
开放成本数据的上传权限 |
2 |
制备CSV文件 注意:代理也可以制备消耗数据文件。了解详情 |
CSV文件的格式和栏位 |
3 |
通过AppsFlyer面板上传文件并接入数据 |
|
4 |
完成数据接入之后,在后台查看数据接入情况:
|
广告消耗数据上传操作 |
附加流程:覆盖之前上传的数据 |
覆盖之前上传的成本数据 |
流程:通过邮件上传
步骤 | 说明 | 链接 |
---|---|---|
1 |
对于渠道的前期准备:广告主需要先为渠道授权,然后渠道才能上传文件 |
开放成本数据的上传权限 |
2 |
前期准备:获取Ad Spend token |
获取Ad Spend token |
3 |
制备CSV文件 注意:代理也可以制备消耗数据文件。了解详情 |
CSV文件的格式和栏位 |
4 |
通过邮件发送文件 |
|
5 | AppsFlyer会通过邮件发送状态报告,说明数据接入是否成功,或是否出现任何问题。 | |
6 | 在后台面板中查看数据接入情况:
|
广告消耗上传操作 |
附加流程:覆盖之前上传的数据 |
覆盖之前上传的成本数据 |
流程
CSV文件的格式和栏位
本节详细说明了广告消耗数据文件的格式、栏位和验证规则。如果您使用Excel或Google Sheets来创建该文件,请务必参照Excel格式说明进行操作。
下图列出了创建CSV文件时最容易出现的一些错误,请在实际操作中着重留意。
下文详细说明了广告消耗数据文件的格式、栏位和验证规则。如果您使用Excel或Google Sheets来创建该文件,请务必参照Excel格式说明进行操作。
注意
请勿使用Excel或Google Sheets来查看CSV文件,或检查其格式是否正确。请在编辑器中查看文件并检查格式。
CSV广告消耗数据文件的内容规则和栏位
注意事项 | 规则 |
---|---|
禁用字符 |
字段须以字符串格式填充,且不能以 |
媒体渠道 |
|
应用所有者 |
一个文件中只能包含一个广告主(应用所有者)的数据,但可包含该广告主下多个应用的数据。 |
文件扩展名 |
CSV文件名示例:abc123.csv |
文件结构 |
|
广告层级 |
任何比广告系列粒度更细的不完整数据都会覆盖对应广告系列层级以下的所有数据。 举例说明:假设您上传了某广告系列下adset 1的成本数据,然后在另一个文件中单独上传了同一个广告系列下adset 2的成本数据,则该广告系列的总成本会被替换为adset 2的成本数据。为了确保能记录到该广告系列的总成本,您上传的文件中必须同时包含adset 1和adset 2的数据。 |
CSV广告消耗数据文件的栏位
字段名称 (区分大小写) |
格式/备注 |
示例 |
是否必须配置 |
---|---|---|---|
date |
|
2019-05-30
|
✓ |
app-id |
|
|
✓ |
media-source |
|
network_x_int |
✓ |
campaign |
|
campaign_a |
✓ |
spend |
|
2874.12345
|
✓ |
geo |
格式:字符串 ISO 3166中的国家代码,有两个字母组成。 英国的国家代码是UK,而非GB。 |
US, CN, AU
|
否 |
currency |
|
USD, GBP, EUR, JPY |
否 若该字段留空,则默认使用USD(美元)。 |
campaign-id |
格式:字符串 |
abc1234def |
否 注意:如果归因数据同时带有名称和ID信息,那么CSV文件中也必须同样带有名称和ID。 |
campaign |
格式:字符串 |
campaign_name |
|
adset |
格式:字符串 | my_adset_1 | |
adset-id |
格式:字符串 | id5678ghi | |
ad |
格式:字符串 | my_ad_name | |
ad-id |
格式:字符串 | id91011jkl | |
site-id |
格式:字符串 | id1213mno | 否 |
channel |
格式:字符串 | video | 否 |
keywords |
格式:字符串 |
|
否 |
agency |
|
AgencyName | 否 |
注意:如果名称中带有非英文字符,必须使用UTF-8对其进行编码。 |
获取Ad Spend token
Ad Spend token用于验证邮件发送方是否具有广告消耗数据文件的上传权限。广告主和广告平台分别有其各自的token。
注意
- 广告主切勿将token共享给广告平台。
- 广告平台有其专用的token。
-
广告主token:
- 一个账户下的所有应用共用同一个token。
- 一个账户下的所有用户都可以获取该token。
-
广告平台token:
- 所有广告主共用同一个token。
- 此外,广告主还需要为广告平台开放文件上传权限。
获取Ad Spend token的方法如下:
- 从AppsFlyer后台进入 ROI360 > 广告消耗数据上传。
- 点击页面右上角的查看Ad Spend token按钮。
界面即会显示Ad Spend token。 - 复制并保存该token。
为广告平台开放数据上传权限
通过邮件发送成本数据
前期准备:
- 广告主:需获取Ad Spend token。
-
广告平台 :
- 需获取Ad Spend token。
- 广告主需要给合作渠道(广告平台)开放广告消耗数据的上传权限。
请按以下步骤通过邮件发送广告消耗数据文件:
- 填写邮箱地址:
-
To:
adspend-upload@appsflyer.com
- CC:抄送给需要收到自动回复的用户
- 主题:将Ad Spend token复制粘贴到主题栏中。
- 附件:带有相关数据的CSV文件。
-
To:
-
发送邮件。
- 数据处理完毕后,我们会向您发送状态报告邮件,邮件中说明文件上传的总体情况以及处理数据的过程中发生的具体问题和错误。原始邮件中抄送的各方以及广告主账户的管理员都会收到该邮件。如果邮件中说明出现错误,请进行必要的更正。请注意:若未接收到状态通知邮件,请参考此处。
- 您可以在Ad Spend Ingestion页面查看已提交的文件上传状态
上传广告消耗数据文件
广告消耗数据文件的上传方式如下:
- 从AppsFlyer后台进入 ROI360 > 广告消耗数据上传。
界面会显示广告消耗数据上传页面。 - 点击广告消耗数据上传窗口中的+上传广告消耗数据文件按钮。
- 将CSV文件拖拽至上传广告消耗数据文件窗口内。
界面显示“正在处理文件”的消息。 - 如果在上传过程中报错:请修正错误,然后重复相关步骤。
- 界面打开广告消耗数据上传:文件总结窗口。
- 请完成以下任一操作:
- 如需终止数据上传,请点击取消上传。
- 点击上传文件按钮完成上传流程。
上传完毕后,界面会显示“准备就绪”的消息。
- 点击继续上传其他文件或完成。
广告消耗数据上传管理
您可以在广告消耗数据管理页面中完成以下操作:
- 查看上传文件的状态:您可以看到数据上传未成功或不完整的文件,并进行必要的处理,可能需要重新上传相关文件。
- 查看数据匹配情况:如果匹配的行数占比较低,说明数据有误。
- 下载已提交的CSV文件副本
- 还原(取消)数据上传
查看上传文件和未匹配报告的权限:
- 相关账户下的所有用户都可以访问广告消耗数据上传页面。
- 该账户下的用户如需查看详细信息,需获得相关应用的权限。
- 如果文件中包含多个应用的数据,则该账户下的用户仅在获得所有这些应用的权限后才能查看其详细信息。
广告消耗数据上传步骤
如需查看文件层级的上传状态,请按以下方式操作:
您可按以下方式查看应用层级的数据上传状态:
- 选择相关文件。
界面会显示应用层级的文件状态页面,并列出该文件中所包含的应用。 - 按以下说明完成文件层级或应用层级的操作:
-
文件层级:如果您具有文件中所有应用的权限,就可以使用页面右上方的空间完成以下操作:
- 还原(取消)文件中所有应用的广告消耗数据上传。
- 下载之前上传的CSV文件副本。
-
应用层级:如果您仅具备其中某个应用的权限,则可以使用操作按钮来完成以下操作:
- 下载应用数据。
- 下载该应用的未匹配数据报告
- 还原(取消)所选应用的广告消耗数据上传。
状态解读
接入状态 | 说明 |
---|---|
已生效 | 操作成功 |
还原 | 操作成功 |
处理数据时出错 |
AppsFlyer系统问题。请等待10分钟,然后重试。若仍无法完成上传,请联系AppsFlyer的技术支持团队。 |
无权限 |
该token未授权给此应用
|
验证错误
|
数据匹配状态报告
数据匹配是指AppsFlyer系统通过数据接入机制将上传文件中的广告消耗数据各行与AppsFlyer面板中记录到的归因数据进行匹配。该机制会对文件栏位中所有维度的数据都进行匹配,包括媒体渠道、广告系列、广告组、广告等等。如果文件中某行数据的所有维度都与面板数据匹配,AppsFlyer会该行标记为is-matching=TRUE。
名称与ID
广告消耗数据接入机制通过名称而非ID来识别相应的维度,如广告系列、广告组或广告的名称等。目前该机制还不支持通过ID来上报消耗数据。
注意:无论匹配状态如何,AppsFlyer都会记录该广告消耗数据。
匹配行与未匹配行示例
日期 | 媒体渠道 | 广告系列 | 展示 | 点击 | 成本 | 匹配状态 |
---|---|---|---|---|---|---|
2019-01-01 | example | abc | 5000 | 100 | $1000 | is-matching = TRUE Performance information found |
2019-01-02 | example | abc | is-matching = FALSE No performance information on 2019-01-02 |
|||
2019-01-02 | example | influencer | $2500 |
is-matching = FALSE |
上传页面中会显示已匹配行的占比。
如果出现意料之外的数据不匹配情况,请下载未匹配数据报告,以便考察问题根因。必要时请点击“还原”按钮以取消数据上传。
未匹配数据报告中有一栏叫做is-matched,该字段可能出现的值为TRUE(表示匹配)或FALSE(表示未匹配)。
广告消耗数据上传页面会显示已匹配行的占比。
覆盖(更正)之前上传的广告消耗数据
如果您新近上传的广告消耗数据文件与之前的文件具有完全相同的key,就可以覆盖(更正)之前上传的广告消耗数据,
该key由数据中的日期、媒体渠道和广告系列字段组成。当该key匹配时,最新上传的数据就会覆盖之前上传的数据。
以下示例解释了广告消耗数据发生覆盖的场景。
广告消耗数据覆盖示例
+ 代表必填字段
示例A
周一上传Spend1.csv文件
Date+ | App ID+ | Media Source+ | Campaign+ | 广告消耗数据 |
---|---|---|---|---|
2019-06-01 | com.my.app | network_x | campaign_a | 100 |
周二上传Spend2.csv文件
Date+ | App ID+ | Media Source+ | Campaign+ | 广告消耗数据 |
---|---|---|---|---|
2019-06-01 | com.my.app | network_x | campaign_a | 200 |
Spend1.csv文件中的广告消耗数据会被spend2.csv文件中的数据覆盖。这是因为spend2.csv的上传时间更靠后,而且由必填字段组成的key与Spend1.csv一致。 |
示例B
周一上传Spend3.csv文件
Date+ | App ID+ | Media Source+ | Campaign+ | 广告消耗数据 | Geo |
---|---|---|---|---|---|
2019-05-01 | com.my.app | network_x | campaign_a | 100 | US |
2019-05-01 | com.my.app | network_x | campaign_a | 200 | CN |
周二上传Spend4.csv文件
Date+ | App ID+ | Media Source+ | Campaign+ | 广告消耗数据 |
---|---|---|---|---|
2019-05-01 | com.my.app | network_x | campaign_a | 50 |
Spend3.csv中的广告消耗数据会被spend4.csv中的数据覆盖。这是因为spend4.csv的上传时间更靠后,而且由必填字段组成的key与Spend3.csv完全一致。注意:Spend3.csv中的两行数据都会被覆盖。 |
问题排查
报错消息和解决方法
下表列出了广告消耗数据上传时可能出现的所有报错消息和相应的解决方法。
报错消息 | 说明 | 解决方法 |
---|---|---|
AppsFlyer平台中不存在该文件所包含的任何应用ID。请确认文件中的应用ID是否正确。 | 您的账户中不存在该应用ID。 | 更正应用ID,然后重新上传。 |
[某某]行的字段数量有误。应包含[X个]字段,实际接收到[Y个]字段。 |
文件中所有的字段都必须含有字段值。 | 根据您定义的表头更改文件中填充的值。 |
文件表头中缺少“media-source”。 |
|
将media-source添加在表头行名。 |
一个文件中只能包含一个媒体渠道。发现该文件中出现多个媒体渠道:[媒体渠道数量]。 | 包含多个媒体渠道的文件是无法上传的。 | 将各媒体渠道的数据拆分到单独的CSV文件中分开上传。 |
字段[X]的值[Y]对此列无效。 | 相关列中的数据格式不正确。比如日期(date)字段的格式应为dd-mm-yy而非yyyy-mm-dd。 | 更正格式后重新上传。 |
在该应用下发现了多种货币。文件中的每个应用只能使用一种货币。发现的货币:%货币种类的数量% | 一个应用只能对应一种货币。 | 在文件中统一货币后重新上传。 |
文件表头中的以下各列不适用:[文件表头] |
文件表头与栏位名称不一致。表头的参数名必须与上文所列的栏位名称完全一致。 |
删除不适用的列,然后重新上传。 |
文件表头中缺少必须配置的列:[文件表头] | 文件表头中缺失必须配置的字段。 | 添加缺少的字段和对应的值,然后重新上传。 |
文件中包含了未来的日期:[日期] | 不可使用未来日期。 | 更正日期,然后重新上传。最晚的可用日期为当天的日期。 |
文件为空,没有待处理的数据。 | 文件为空, | 请在文件中添加数据,然后重新上传。 |
以下两行的维度完全一致,造成冲突。请将广告消耗数据按各组维度在单独的行中分开提供。[有冲突的行] | 多行数据的key完全相同(即必填字段相同)。 | 请删除重复行,然后重新上传。 |
一个文件中只能包含一个广告主账户的数据。发现该文件中包含多个广告主:[广告主名称] | 广告平台上传文件时不能在同一个文件中加入多个广告主的数据。 | 请将各广告主的数据拆分到单独的文件中分别上传。 |
相关账户中不存在应用[应用ID]。请检查应用ID是否正确。 | 账户中不存在该app id。 | 请更正应用ID,然后重新上传。 |
未发现应用[应用ID]的地理位置(即国家代码)信息。请使用ISO 3166中的2字母代码。 | 地理位置字段值无效。 | 请更正地理位置信息,然后重新上传。 |
未发现应用[应用ID]的货币代码。请使用ISO 4217中的3字母代码。 | 货币字段值无效。 | 请使用有效的货币值更正文件内容,然后重新上传。 |
文件中一个或多个应用的验证出错。请重新检查文件信息以了解详情。 | 文件中存在多处错误。 | 请下载文件并查看错误详情。 |
处理文件时发生内部错误,请重新上传。 |
|
请等待一小时,然后重试。 |
广告消耗数据上传后无法呈现,或单独分行呈现
问题1:广告消耗数据文件上传成功后,面板没有显示相应的成本数据。
- 请检查面板中是否重复出现相关广告系列的名称。
- 如果有重复出现的广告系列名称,请找出campaign ID为空的那一行。
campaign ID为空的那一行中包含面板未显示的成本数据。
问题2:上传的成本数据单开一行显示(即多出一行),而且没有效果数据(激活)。该行的campaign ID参数为空。
原因:归因数据中同时存在广告系列ID和广告系列名称信息时,CSV文件中必须也同时包含这两种信息,这样AppsFlyer才能准确地将其匹配到对应的成本数据,并避免单独分行显示。
使用Excel对CSV文件中的date和spend字段进行格式化
如果您使用Excel/Google Sheets创建CSV文件,请务必先确认日期(date)和广告消耗(spend)字段的设置正确无误,然后再将文件保存为CSV格式。请按下文所述步骤对date和spend字段进行格式化。
保存CSV文件之后,请检查其格式是否正确无误。注意:请勿使用Excel来检查文件格式,而须在编辑器中检查。
在Excel中对日期单元格进行格式化
在Excel中使用YYYY-MM-DD的格式对日期单元格进行格式化:
- 选中需要格式化的单元格。
- 右键点选Format cells(格式化单元格)。
界面会打开格式化单元格的窗口。
- 选择Custom(自定义)。
- 在类型(Type)字段中,输入YYYY-MM-DD
- 点击OK。
日期格式化完毕。
在Excel中对广告消耗单元格进行格式化
如下图所示,Excel对数值单元格进行格式化时,通常使用逗号作为千位分隔符。请勿在上传到AppsFlyer的广告消耗数据文件中使用这种格式。
您可以在Excel中对这些单元格进行格式化,便可更正此问题。
请按以下方式对金额进行格式化,勿使用千位分隔符:
- 选中需要格式化的单元格。
- 右键点选Format cells(格式化单元格)。
格式化单元格的窗口打开。 - 选择Number。
- 取消Use 1000 separator (,)(使用逗号为千位分隔符)的勾选。
- 【可选】设置数值的小数点后位数。默认是2位,最多可以设置到5位。
- 点击OK。
单元格格式化完毕。
请勿使用Excel来检查CSV文件
如需检查CSV文件的内容,请务必在编辑器中查看该文件。
- Windows:Notepad、Notepad++
- macOS:TextEdit
下图为CSV示例文件在编辑器中的截屏。
编辑器视图
在编辑器中检查CSV文件时请特别注意以下几点:
- 空格:请确保字段分隔符(即逗号)的前后没有空格。您可以在Excel中使用@trim命令来删除空格。
- 日期(date):请确保日期字段的格式为YYYY-MM-DD。
-
广告消耗(spend):请确保spend字段中没有逗号。
Excel生成CSV文件时不使用逗号作为分隔符
如果Excel生成CSV文件时使用分号“;”等非逗号的字符作为分隔符:
- 这可能是因为您电脑的区域设置为非英语语言/地区。
- 当区域设置为德语时,此问题尤其普遍。
- 在不同的计算机操作系统(macOS或Windows)中解决此问题的方法不同。
- 如需解决此问题,请在Microsoft或其他论坛中搜索相关指南。您可以在搜索中使用以下关键词:Operating system (macOS or Windows) Excel change delimiter for CSV files(在macOS或Windows中通过Excel更改CSV文件分隔符)。
通过邮件发送广告消耗数据文件后未收到状态通知邮件
广告消耗数据文件尚未处理时会发生这种情况,这可能是由于以下各种原因导致的:
内容类型(content-type)错误
AppsFlyer仅处理multipart/mixed
类型的消息。由于其他类型的内容不会得到处理,因此也就不会生成并发送相应的状态通知邮件。一般情况下,邮件客户端会自动将带有附件的邮件自动设为multipart/mixed
。
您可以在邮件标头中查看内容类型,并确保邮件的内容类型(content-type)为multipart/mixed
。
- 如需在Gmail中查看邮件标头,请参考Gmail的相关文档。
- 如需在Outlook中查看邮件标头,请参考Outlook的相关文档。
邮件HTML格式不正确
HTML错误会使邮件无法得到正常处理。常见的HTML错误包括标签为空或缺失等等。请检查您的脚本,确保其中没有HTML错误。
其他信息
制备CSV格式的代理数据文件
广告主和代理都可以制备CSV文件,用于上传并接入成本数据。制备这些CSV文件时,请务必确保文件中包含一个带有代理名称(即af_prt参数的值)的Agency(代理)字段。详见CSV文件结构示例。
另请注意以下几点:
- 一个文件中仅可包含一个代理,且不能出现非该代理代投的广告系列。
- 每行都必须包含该代理的名称。代理字段一列不能出现空白的单元格。
- 代理必须具备文件中涵盖的所有应用的权限。
- 只有广告主可以上传文件,代理不能上传数据。但代理可以制备文件,然后将这些文件发送给广告主,让广告主完成上传。
特点与局限性
特点 | 是否可上传广告消耗数据 | 说明 |
---|---|---|
广告平台 | ✓ | |
代理商 | ✓ |
代理不能上传数据,但可以制备文件,然后将这些文件发送给广告主,让广告主完成上传。 |
代理数据透明化 | X | |
应用层级的指定时区 | ✓ | |
应用层级的指定货币 | ✓ | 面板会按应用层级的指定货币对投放成本进行换算。 |
广告系列名称 | 不适用 | 请勿对不同的应用使用相同的广告系列名称,否则一个成本的成本会出现在个应用的数据中。 |
字段名称 | 不适用 |
如果与广告层级相关的字段名称与归因数据中的字段名称不一致,面板就会将相关数据分行单独显示。 举例来说,假设广告系列名称不一致,那么即使广告系列ID相同,面板也会将其视为不同的广告系列。 |
文件大小 | 不适用 |
上传CSV格式的广告消耗数据文件时,文件大小不能超过:
|
自然量数据 | ✓ | |
非自然量数据 | ✓ | |
数据时效性 | 参见广告消耗数据时效说明 | |
历史数据 | ✓ |
上传文件后的90天内可以还原其中上报的成本数据,并在更正数据后重新上传。 |
再营销 | X | |
账户用户权限 | ✓ | 对于国家/地区或媒体渠道受限的用户不可用。 |