概要:对广告收入进行归因,全面了解LTV维度的变现效果。
广告收入归因
- 广告主可以在相关应用中通过横幅、积分墙、插屏等形式展示广告,从而产生广告收入。
- 将广告收入与应用内购和订阅收入相结合,就可以全方位了解用户的LTV价值。将用户的LTV数据与渠道买量成本进行匹配,便可判断广告投放的ROI,并将其用于投放渠道的进一步分析。
非自然广告收入数据:
- 来自聚合平台和/或变现渠道,通过服务器API或内嵌SDK(支持iOS 14)上报给AF。
- 变现收入会归因给将用户带来的买量渠道。例如:
- 用户在广告平台A上看到一则广告,然后下载了您的应用。
- 您的应用向用户展示广告。
- 不论这些广告是由哪个渠道发布的,所产生的广告收入都会归因到A平台(即最初带来用户的平台)。
- 上报数据的颗粒度取决于变现渠道的对接类型以及广告收入的归因类型。
广告收入归因的对接类型
数据的准确性和时效性取决于广告收入归因的对接类型,详见下表说明。
请注意:以SDK为基础的对接需要开发人员协助部署;以S2S为基础的对接需要您具备正确的认证证书信息。
广告收入归因的对接类型 | 说明 |
---|---|
汇总数据(通过S2S API上报) |
|
通过S2S API上报设备级别数据 |
|
通过SDK上报的展示级别数据 |
|
由SDK上报的展示级别数据与由S2S API上报的设备级别数据相结合 |
|
启用方式
以下章节介绍了各种类型的广告收入归因,以及您在启用这维护这些功能时需要完成的流程和步骤。
广告收入平台的对接方式
前期准备:
- 让广告收入对接渠道将API证书发送给您。
请按以下方式与变现渠道对接广告收入:
- 从AppsFlyer后台的侧边栏中选择配置 > 收入设置 > 广告收入。
- 在广告收入配置页面中,点击新建广告收入对接。
-
选择要添加的广告收入合作渠道,然后点击下一步。
-
选择您想要接收的广告收入数据类型。请注意:并非所有广告平台都能提供下列所有数据类型。
- 归因收入(Attributed Revenue)是指可归因到获客渠道的收入数据。归因记录报告分为以下两种:
-
汇总数据(通过S2S API上报)
- 选择相关事件(该事件与广告收入的计算相关联)。假设您选择的事件是af_app_opened,那么广告收入就是平均每次应用打开所产生的广告收入,即总体广告收入除以应用打开事件总数。
- 通过S2S API上报设备级别数据。
- 请注意:如果您需要启用某聚合平台的设备级别广告收入API,就必须关闭该平台所聚合的变现渠道的广告收入对接,否则会产生重复数据。
- 通过SDK上报的展示级别数据。
- 由SDK上报的展示级别数据与由S2S API上报的设备级别数据相结合。
- 请注意: 如果您使用的是聚合平台,请务必先停用通过该平台聚合的变现渠道的广告收入对接,然后再启用该聚合平台的广告收入对接,否则会产生重复数据。
-
汇总数据(通过S2S API上报)
- 归因收入(Attributed Revenue)是指可归因到获客渠道的收入数据。归因记录报告分为以下两种:
- 按对接渠道的要求填写API证书或登录信息。此处填写的信息与SDK对接无关。
- 点击保存。
-
如果界面显示“测试连接”按钮(如上图所示),请点击测试连接。
- 如果界面显示消息“API key verified”(API密钥已验证),则表示您已顺利完成该流程。
- 若界面显示其它信息,请参照广告收入API的连接状态与测试排查问题,然后重复上述流程。
-
如果界面未显示“测试连接”的按钮,说明您已经完成对接流程。
AppsFlyer以一天多次的频率从渠道侧收集数据。 - 【可选】核查您在AppsFlyer中看到的广告收入数据,并将其与聚合平台和UA渠道面板中的广告收入进行对比。详情请见此处说明。
- 【可选】通过UA signals和广告收入事件回传将广告收入数据分享给您的UA合作渠道。
请注意:如果您更改了对接方式,新的对接配置将在第二天UTC时间的凌晨12点生效。
查看、修改或删除广告收入对接渠道
如需查看、修改或删除您与广告收入平台的对接,请按以下方式操作:
-
从AppsFlyer后台左侧的菜单栏中选择配置 > 收入设置 > 广告收入,然后选择相关应用。
界面会列出您所有的渠道对接,包括对应的产品和对接类型、对接状态以及广告收入事件名称。 - 将鼠标悬停在相关对接上,然后根据实际需要点击编辑或删除。
广告收入去重
如果您的应用通过API(无论是汇总级别还是设备级别)同时对接了两个聚合平台,且这两个平台都关联了同一个变现渠道,这时可能会有一部分广告收入出现重复。这种情况下,每个聚合平台都会上报其关联变现渠道带来的所有广告收入,无论这些广告收入是否确实通过自身平台的聚合产生。
如需在两个聚合平台同时上报相互对应的广告收入时尽量避免出现数据重复,请按以下方式操作:
- 使用展示级别的SDK对接(若可用)。
- 如果两个聚合平台都使用展示级别的SDK对接,就不会产生重复数据。
- 如果您有多个对接,而其中有一个是SDK对接,建议您将其他对接也切换成SDK对接。
-
如果您使用基于API的对接,请按以下方式对广告收入去重:
- 从AppsFlyer后台的侧边栏中选择配置 > 收入设置 > 广告收入。
- 勾选通用设置下的两个聚合平台上报对应广告收入时去重。请注意:若出现以下情况,请勿勾选此选项:
- 两个聚合平台使用不同的广告样式进行聚合。比如平台1展示横幅和插屏广告,而平台2展示开屏和原生广告,这时就无需进行去重。
- 两个聚合平台都使用展示级别的SDK对接。
按应用打开或应用内事件汇总数据
汇总级别广告收入数据的作用原理如下:
- 对接平台上报分地区的每日总收入。
- AppsFlyer的eRPA(实际用户行为平均收入)计算方式为:广告收入/某个事件的触发次数
- AppsFlyer创建a _monetized事件,其中包含每个已归因设备的总体eRPA,如ad_matched_monetized。
- 通过eRPA将收入归因到媒体渠道。
- 您可以使用以下任一事件类型:
- 特有变现事件要求对应用进行相应修改。
- af_app_opened事件默认可用。
- 请勿在使用广告收入对接的同时通过应用内事件上报广告收入金额,否则会导致面板中出现重复的广告收入数据。这是因为AppsFlyer会通过对接获取变现渠道的收入数据。
按事件汇总广告收入
事件类型 | 触发方式 | 注意事项 |
---|---|---|
特有变现事件 |
|
|
af_app_opened event |
|
|
应用内事件配置方式对比
方法 | 优点 | 缺点 | 注意事项 |
---|---|---|---|
在所有变现渠道中都使用相同的事件,如“ad_watched”,从而自动生成包含变现信息的“ ad_watched_monetized”事件 | 配置最便捷 | 无法产生有价值的信息,如分变现渠道的点击次数及广告收入数据 |
|
推荐做法:为每个平台单独配置专用的广告观看事件,如ad_watch_admob。 ad_watch_vungle. |
除了获取原始数据之外,还能在面板上看到所有变现渠道的数据并进行对比。 | 无法累计单个事件的总体广告收入数据。事件数量等于变现渠道的数量。 | 可在面板中对比各个变现渠道的效果。由于此方案中针对每个变现渠道分别配置了应用内事件,因此广告收入可按变现渠道细分。 |
广告收入API的连接状态与测试
- 广告收入对接正常时的状态信息如下:
- 成本和广告收入对接状态面板:集中查看账户下已对接相关应用(一个或多个)广告收入的渠道列表。
- 一些合作伙伴允许测试广告变现API的连接状态。这种情况下界面会显示测试连接按钮。
- 验证API连接是否正常:
- 点击测试连接。
此时界面会显示消息“API key verified”(API key已验证)。若未出现此消息,请按下表中的说明进行排查和纠错。
界面消息 | 含义 | 说明/所需操作 |
---|---|---|
API key verified(API key已验证) |
|
无 |
Invalid credentials(证书无效) | 一个或多个证书错误。 | 请从变现渠道获取正确的证书信息。 |
Missing configuration details(配置信息缺失) | 一个或多个证书字段不完整。 | 从广告收入平台的面板中获取证书信息,或联系该渠道要求其提供证书信息。 |
广告收入数据
您可以通过AppsFlyer面板和原始数据报告查看广告收入数据。
汇总层级的广告收入数据
广告收入展示了某段时间内不同渠道所获用户的质量。随着用户打开应用并与广告互动的行为逐渐累积,用户的LTV就会持续提升。
请注意:各面板和报告的广告收入数据之间可能会有差异,如需了解详情,请参考此文档。
您可通过下列方式查看广告收入:
- LTV维度:
- 可在数据总览和事件面板中查看
- LTV报告
- 群组面板和报告
- Master API
- 活跃维度:
- 可在活跃数据面板中查看
- 广告收入原始数据
数据总览面板——汇总效果报告
数据总览面板:
- 面板中的收入等各种数据是LTV维度的。详情请见LTV数据与活跃数据的差异。
- 收入一栏显示所有收入,包括广告收入和应用内购。
- 深入各广告层级(媒体渠道、广告系列、广告组、地理位置)对数据进行切分,查看报告中的变现事件。
活跃面板:
- 面板中的收入等各种数据是活跃维度的(即按用户行为发生日期计算),详情请见LTV数据与活跃数据的差异。
- 用户平均操作次数用于说明用户在应用中完成广告交互的可能性。
示例
三名用户于2017年12月31日安装了一个应用。他们的归因信息如下:
- 用户A:广告平台A
- 用户B:广告平台B
- 用户C:自然量
这个应用对接了五个不同的变现平台。广告主通过AppsFlyer的SDK为每个平台分别配置了单独的应用内事件,具体如下:
- Meta Audience Network:fb_ad_view
- Chartboost:chartboost_ad_view
- Admob:admob_ad_view
- Applovin:applovin_ad_view
- IronSource:is_ad_view
在用户激活应用的四天后向用户展示广告,具体如下:
用户 | UA平台 |
fb_ ad_view |
chartboost_ ad_view |
admob_ ad_view |
applovin_ ad_view |
is_ad_view | Total(总计) |
---|---|---|---|---|---|---|---|
A |
广告平台A 2017-12-31 |
2018-01-01 $1 |
2018-01-02 $1 |
2018-01-03 $1 |
2018-01-04 $1 |
$4 | |
B |
广告平台B 2017-12-31 |
2018-01-02 $1 |
2018-01-04 $1 |
$2 | |||
C |
自然量 2017-12-31 |
2018-01-01 $1 |
2018-01-02 $1 |
$2 |
我们可以从这些数据中总结出每个用户每天(通过每个应用内事件)所带来的广告收入:
用户 | 2018-01-01 | 2018-01-02 | 2018-01-03 | 2018-01-04 | 总LTV |
---|---|---|---|---|---|
A | $1 | $1 | $1 | $1 | $4 |
B | $1 | $1 | $2 | ||
C | $1 | $1 | $2 | ||
Total(总计) | $2 | $3 | $1 | $2 | $8 |
报告解读:
如前所述,广告收入是LTV维度的数据,即在面板中选定时间段内激活应用的用户从激活之日起到当前为止的累计收入。以下示例展示了选定时间段内面板呈现的数据:
汇总报告:选定日期:2017-12-31-2018-01-05
广告平台 | LTV收入 |
---|---|
自然量 | $2 |
广告平台A | $4 |
广告平台B | $2 |
广告平台C | $2 |
这时面板中显示的用户是在2017-12-31到2018-01-05期间激活应用的用户。这些用户产生的所有收入都归因给最初激活的带量渠道,显示在用户LTV下。
广告收入原始数据
广告收入原始数据报告中的数据来自与AppsFlyer对接的变现平台,对接类型可以是设备级别,也可以是展示级别。
广告收入原始数据的作用原理
- 广告收入数据是基于每个用户的独立展示数来汇总的。独立展示数是根据广告变现平台、广告单元和广告位综合计算得出的。
-
展示级别的原始数据:
- 汇总到设备级别,呈现在设备级别的报告中。
- 呈现在Data Locker的展示级别报告中。
- 原始数据的时效性与活跃数据报告中的设备级别广告收入一致。
报告 | 导出 数据页面 |
Pull API | Data Locker |
---|---|---|---|
归因广告收入(非自然) | ✓ | ✓ | ✓* |
自然广告收入 | ✓ | ✓ | ✓* |
再营销变现收入 | ✓ | ✓ | ✓* |
展示级别原始数据 | - | - | ✓ |
* 同时提供版本化报告,每天更新数次,在设备层级汇总数据。非版本化的Data Locker报告每天更新一次。 ** 此处指名称中带有“impression-level”(展示级别)字样的报告,而非展示级别的广告收入对接。 |
数据特征和字段
广告收入报告中的填充字段:
- 按广告收入事件填充,详见下文表格。这些字段分为两类:
- 专用字段:专用于广告收入的字段,如展示数和广告位。请注意:具体的字段填充取决于变现渠道,详情请见下文表格,其中列出了分变现渠道的填充字段。
- 通用字段: 与其他原始数据报告相似的字段,如事件名称、事件值、货币等。
- AppsFlyer将广告收入事件归因到相关用户的拉新渠道,并以此为基础来填充相应字段。也就是说,这些字段按最初的拉新转化事件信息来填充,如媒体渠道和广告系列。这些字段不包含在下表所列范围内。
广告收入填充字段
api_name | 字段名称 | 字段类型 | 说明 |
---|---|---|---|
event_time | Event time | 通用 | 变现收入归因到的日期 |
event_name | Event name | 通用 | 设置为af_ad_revenue |
event_revenue | Event Revenue Currency | 通用 |
|
event_revenue_currency | Event Currency | 通用 | 事件收入货币 |
event_revenue_XXX | Event Revenue XXX | 通用 |
|
country | Country | 通用 | 发生激活转化的国家/地区 |
ad_unit | Ad unit | 专用 | 广告样式 |
segment | Segment | 专用 | 广告展示位置的名称 |
monetization_network | Monetization Network | 专用 | 发送广告的平台 |
impressions | Impressions | 专用 | 用户看到广告的次数 |
mediation_network | Mediation Network | 专用 | 将事件上报给AppsFlyer的变现平台 |
分变现渠道的字段填充情况
字段名称 | Admob | ironSource(LevelPlay) | AppLovin MAX | Appodeal | Fyber |
---|---|---|---|---|---|
Ad unit | ✓ | ✓ | ✓ | ✓ | ✓ |
Segment | - | (1) | - | - | - |
Placement | - | ✓ | ✓ | ✓ | ✓ |
Monetization Network | ✓ | ✓ | - | ✓ | - |
Impressions | - | - | ✓ | ✓ | - |
Mediation Network | - | ✓ | ✓ | ✓ | - |
(1)广告主需要在ironSource中进行配置 |
数据时效性
数据时效性取决于对接类型以及数据上报方式。
在S2S API对接中,数据的最早呈现时间为:
- 面板和Data Locker中的报告会从UTC时间第X+1天的上午8点开始呈现数据,每天约更新4次,每6小时更新一次。购买了ROI360的广告主还可以每天拉取到第2、3、7、14天的数据。
在展示级别的SDK对接中,数据的最早呈现时间为:
- 理想状态下,面板和Data Locker中的报告会从UTC时间第X天的早晨5点开始呈现数据,每天约更新6次,每4小时更新一次。
- 展示级别的原始数据报告(通过Data Locker拉取)在UTC时间第X天的凌晨1点呈现数据,且每小时更新一次。
对于带有设备级别数据(通过S2S API上报)的展示级别数据(通过SDK上报),您可以在第X天获得当天数据,并在第X+1天获得准确数据,具体如下:
-
对于通过SDK上报的展示级别数据:
- 理想状态下,面板和Data Locker中的报告会从UTC时间第X天的早晨5点开始呈现数据,每天约更新6次,每4小时更新一次。
- 展示级别的原始数据报告(通过Data Locker拉取)在UTC时间第X天的凌晨1点呈现数据,且每小时更新一次。
-
对于通过S2S API上报的设备级别数据:
- 面板和Data Locker中的报告会从UTC时间第X+1天的上午8点开始呈现数据,每天约更新4次,每6小时更新一次。购买了ROI360的广告主还可以每天拉取到第2、3、7、14天的数据。
在ROI360之前的遗留对接中,数据最早从UTC时间第X+1天的下午5点开始呈现。
请注意: 更改对接类型后,新对接不会对先前通过原对接类型接收的数据进行回滚更新。举例来说,假设您在第X天将对接类型从SDK改为S2S,那么新的对接会从第X+1天开始拉取数据,而不会拉取第X天之前的数据。
Data Locker的广告收入报告
名称 | 数据时效性 | 报告结构 |
---|---|---|
每日广告收入(从设备层级进行汇总) |
第X天的广告收入会在次日(即第X+1天)的UTC时间晚上8点进行上报。 比如5月1日的广告收入会在5月2日上报。 |
该报告包含Attributed(非自然广告收入)、Organic(自然广告收入)、和Retargeting AdRevenue(再营销广告收入)几个部分。 |
版本化的每日广告收入报告(从设备层级进行汇总) |
每日报告中包含以下内容:
也就是说,一天中可能生成的各种报告版本如下:
|
报告的各个版本都包含Attributed(非自然广告收入)、Organic(自然广告收入)、和Retargeting AdRevenue(再营销广告收入)几个部分。 |
展示级别的广告收入报告 | 展示级别的广告收入记录每小时写入单独的文件中。 |
其他相关信息
将数据颗粒度从汇总层级切换到设备级别
- 切换颗粒度不会影响历史广告收入数据,也就是说历史数据保持不变。
- 广告收入数据每天拉取一次,拉取时间为UTC时间14点,颗粒度取决于数据拉取当下的设置。
- 与汇总层级不同,设备级别的数据上报不需要定义应用内事件。您可以继续发送这些事件,但它们不会出现在AppsFlyer的设备级别数据中。
常见问题解答
如何获取分平台的总体广告收入?
|
活跃面板中是否有广告收入数据? 可以,活跃面板中的收入是应用内购买收入和广告收入的总和。请注意: 广告收入数据会在相关收入事件发生的第二天发送到AppsFlyer,发送频率为每天一次。 |
需要在对接选项卡中打开“启用该渠道”开关吗? 如果该渠道仅用于广告变现,则无需在对接选项卡中打开启用该渠道开关,只需打开广告收入选项卡中的获取广告收入开关。 |
如果用户安装的应用版本中没有接入AppsFlyer SDK,这时设备级别的广告收入如何归因? 广告收入会归因到自然量。 |
不同面板和报告中的广告收入数据是否会有差异? 数据总览面板中的收入数据可能会与原始数据报告、活跃面板和群组面板之间有所差异。解答:
|
特点和局限性
特点 | 备注说明 |
---|---|
局限性 |
广告收入事件目前不适用于:
设备级别数据颗粒度的局限性:
AppsFlyer面板不支持通过独立用户数来触发af_ad_revenue事件。 |
广告平台权限 | 无法访问群组报告 |
代理访问权限 | 代理:
|
代理数据透明化 | 不支持 |
时区 |
AppsFlyer面板和报告仅按UTC时间呈现广告收入数据。也就是说,如果数据在UTC+2时区的下午2点上报,该时间在AppsFlyer中会呈现为UTC时间下午2点。 这是因为AppsFlyer需要对来自多个渠道和平台的数据进行归一,而大部分渠道和平台都是按UTC时间来上报数据的。 |
货币 | 在AppsFlyer后台:
|
数据类型 | 同时支持自然量和非自然量数据 |
数据时效性 | 广告收入 |
历史/回溯数据 |
|
账户用户权限 | 支持 |
SKAN | 展示级别的广告收入SDK API支持SKAN。 |
地理位置/国家 | 在群组面板中,如果地理位置信息不可用(呈现为“N/A”),则按地理位置汇总数据时面板不呈现N/A数据。 |
应用内事件回传 |
|
CTV、PC和主机端应用 |
|
广告收入去重 | 不支持设备级别的API MAX对接 |
已对接广告收入的渠道列表
适用渠道 | 可用的对接类型 | ||
---|---|---|---|
汇总级别 | 设备级别 | 展示级别 | |
Admost | - | ✓ | ✓ |
AppLovin | ✓ | - | - |
AppLovin Max | - | ✓ | ✓ |
Appodeal | - | ✓ | ✓ |
Bytedance Ads - 中国本地流量 | ✓ | - | - |
Bytedance Global(TikTok for Business - 历史对接) | ✓ | - | - |
Chartboost | ✓ | - | ✓ |
Custom Mediation | - | - | ✓ |
Google Marketing Platform -DV360/CM(DoubleClick) | ✓ | - | - |
Meta ads | ✓ | - | - |
Fyber | ✓ | ✓ | ✓ |
Google Admob | ✓ | - | ✓ |
Inmobi | ✓ | - | - |
ironSource (LevelPlay) | ✓ | ✓ | ✓ |
Mintegral | ✓ | - | - |
Odeeo | - | ✓ | - |
Tapjoy | - | ✓ | - |
Topon | ✓ | ✓ | ✓ |
Topon Pte | - | - |
✓ |
Tradplus | - | ✓ | ✓ |
Unity Ads | ✓ | - | - |
Unity Ads Mediation | - | - | ✓ |
Voodoo | ✓ | - | - |
Vungle | ✓ | - | - |
Yandex | - | - | ✓ |