# AppLovin MAX S2S Impression Revenue API
TIP
请注意,第三方数据集成产生的数据会被纳入集群的消耗数据量
# 概要
# 接口简介
接口名 | 类型 | 粒度 | 归因 | 成本 | 收益 | 展示 | 点击 | 转化 |
---|---|---|---|---|---|---|---|---|
MAX S2S Impression Revenue API | 回传 | 用户级别 | ✅ | ✅ |
AppLovin 提供了通过 MAX S2S Impression Revenue API (opens new window) 回传数据的方法,每当变现广告被展示时,AppLovin 会将展示层级的收益数据回传到配置好的回调链接处。
# 集成流程
- 接入 AppLovin SDK 与 TE SDK,并在 AppLovin SDK 中设置 TE 的用户识别 ID
- 登录 TE 后台,进入三方集成模块,新增 AppLovin MAX S2S Impression Revenue API 方案,并完成相关配置
- 登录 AppLovin 后台,完成回传地址的配置
- 查看 TE 系统否成功接收数据,并完成报表搭建
# 一、客户端 SDK 配置
集成 AppLovin 数据的第一步,是在客户端完成 TE SDK 与 AppLovin SDK 的打通。
# 1.1 方案一(自动关联)
- 如果您接入的 Android、iOS SDK
- SDK 版本为 2.8.0~2.8.1 ,可以直接使用本方案
- SDK 版本为 2.8.2 及以上 ,您还需要安装三方数据插件。详情请参考 安卓 SDK 对接文档 与 iOS SDK 对接文档
WARNING
请注意 TE 的 SDK 初始化和开启自动集成代码必须在 AppLovin 的 SDK 初始化之前完成,请按照以下步骤操作:
初始化 TE SDK。
调用
enableThirdPartySharing
自动设置访客 ID。初始化 AppLovin SDK。
以下各端 SDK 的代码样例:
该方案的原理就是内部自动调用 AppLovinSdk SDK 的 setUserIdentifier()
方法,传入 TE 项目的访客 ID。
# 1.2 方案二(手动关联)
手动关联方案,需要您在 AF AppLovin 中使用 setUserIdentifier
() 接口设置 TE 项目的访客 ID 。
WARNING
请注意 TE 的 SDK 初始化和调用 setUserIdentifier 接口必须在 AppLovin 的 SDK 初始化之前完成,请按照以下步骤操作:
初始化TE SDK。
调用
setUserIdentifier
设置访客 ID。初始化 AppLovin SDK。
以下各端 SDK 手动集成代码样例:
# 二、方案配置
完成 SDK 配置后,接下来需要您登录 TE 系统后台,在「三方集成」模块中完成 AppLovin MAX S2S Impression Revenue API 的配置。下图是 AppLovin 的配置界面:
# 2.1 用户识别字段
由于 AppLovin 回传的是用户级别数据,因此需要为其设置用户识别规则,即 AppLovin 回传数据与#distinct_id 和 #account_id 对应的字段。TE 系统将根据该配置,在转换回传数据时,将这些字段设置为数据中的用户识别字段。
如果您按照本文档上一步进行客户端 SDK 配置,请使用以下配置:
- 账号 ID 关联字段:无
- 访客 ID 关联字段:user_id
# 2.2 事件表入库设置
打开「事件表入库设置」开关后,回传的数据都将写入到事件表中,我们建议您开启事件数据入库。
# 2.3 用户属性入库规则
在默认情况下,TE 系统不会将 AppLovin 回传数据写入到用户属性中。如果您希望将一些字段写入用户表,请首先打开规则,使其运行,再通过属性映射功能添加需要写入用户表的字段,来源属性名需填写字段的入库名,可参考 3.1 章节内容:
# 2.4 集成配置
您可以在集成配置模块对数据拉取的细节配置进行控制。比如入库后的事件名等。
模块 | 名称 | 含义 |
---|---|---|
sink_event | event_name | 入库后的事件名,可以自定义 |
# 2.5 终端地址
终端地址中展示了 TE 系统接收 AppLovin 回传数据的地址。请您直接复制该地址,在接下来进行 AppLovin 回传配置时,请使用该地址作为回传的主要地址:
若此处无地址没有显示,请进入右上角菜单「项目管理」-「接入配置」-「数据上报地址」处配置公网地址。该地址即 TE SDK 中配置的数据上报地址。配置后再回到 AppLovin 配置页的「数据源」复制终端地址。
# 三、完成 AppLovin 回调的配置
# 3.1 回调宏设置
最后,您需要完成回调地址的配置,在回传数据中能够接收到的字段称为“宏”,默认情况下,我们建议您拉取所有字段(即配置所有宏)。下表是 MAX S2S Impression Revenue API 支持的所有宏:
宏 | 入库名 | 说明 | 是否必要 |
---|---|---|---|
{AD_UNIT_ID} | ad_unit_id | MAX 广告 ID | |
{AD_UNIT_NAME} | ad_unit_name | MAX 广告名 | |
{AD_UNIT_TEST_NAME} | ad_unit_test_name | 广告测试组的名称 | |
{ALL_REVENUE} | all_revenue | 预估的收益,包括 FB Bidding 时的收益 | 是 |
{CC} | cc | 两位字母的 Country Code | |
{CUSTOM_DATA} | custom_data | 通过 SDK 设置的自定义数据 | |
{EVENT_ID} | event_id | 事件唯一 ID | |
{EVENT_TOKEN} | event_token | 事件 Token(由事件唯一 ID 生成) | |
{EVENT_TOKEN_ALL} | event_token_all | 全局事件 Token(由事件唯一 ID 以及所有请求参数宏生成) | |
{FORMAT} | format | 广告类型 | |
{IDFA} | idfa | iOS 端的 IDFA 或者安卓端的 Google Advertising ID | |
{IDFV} | idfv | IDFV | |
{IP} | ip | 用户的 IP 地址 | |
{NETWORK} | network | 广告展示的 Ad Network | |
{NETWORK_PLACEMENT} | network_placement | Ad Network 的 内部 Placement 名 | |
{PACKAGE_NAME} | package_name | 包名,安卓端的 App Package Name 和 iOS 端的 Bundle ID (iOS) | |
{PLACEMENT} | placement | 在 SDK 中自定义的 Placement 名 | |
{PLATFORM} | platform | 平台 | |
{PRECISION} | precision | 收益数据的精度,与数据的来源有关: 1. publisher_defined:由流量主设定的价格 1. exact:实时竞价的结果值 1. estimated:来源于 Auto CPM 或 FB Bidding 的估算值 1. undefined:没有足够数据预估收益 | |
{REVENUE} | revenue | 预估收益,FB Bidding 时该值为 0 | 是 |
{TS} | ts | 广告曝光的时间 | 是 |
{USER_ID} | user_id | SDK 设置的用户 ID,对应 TE 项目的访客 ID | 是 |
{WATERFALL_NAME} | waterfall_name | 广告 Waterfall 的名称 |
以下是我们建议您使用的回传宏,前半部分即您在 2.5 章节获得的回传地址,请将 ? 号及其之后的内容添加到终端地址后,并将其提供给 AppLovin 工作人员完成回调地址的配置(请使用 Server-to-Server Impression Revenue API):
https://{receiver-host}/attribution/callback/applovin/{app-id}?ad_unit_id={AD_UNIT_ID}&ad_unit_name={AD_UNIT_NAME}&ad_unit_test_name={AD_UNIT_TEST_NAME}&all_revenue={ALL_REVENUE}&cc={CC}&custom_data={CUSTOM_DATA}&event_id={EVENT_ID}&event_token={EVENT_TOKEN}&event_token_all={EVENT_TOKEN_ALL}&format={FORMAT}&idfa={IDFA}&idfv={IDFV}&ip={IP}&network={NETWORK}&network_placement={NETWORK_PLACEMENT}&package_name={PACKAGE_NAME}&placement={PLACEMENT}&platform={PLATFORM}&precision={PRECISION}&revenue={REVENUE}&ts={TS}&user_id={USER_ID}&waterfall_name={WATERFALL_NAME}
# 3.2 数据入库规则
- 使用数据中的 user_id 作为数据中的访客 ID,该字段应可对应 TE 项目中的访客ID
- 使用数据中的 ts 字段,即广告展示时间,作为事件的 #event_time
- 使用默认配置时,事件名为 -- applovin_max_s2s_impression_revenue
- 回调链接中配置的其他字段将全数入库
# 3.3 标准化字段
以下事件属性会进行标准化处理:
原始字段 | 标准化字段 | 含义 |
---|---|---|
network_name | te_ads_object.media_source | 媒体渠道 |
ad_mediation_platform | te_ads_object.media_source | 变现渠道 |
campaign_name | te_ads_object.campaign_name | 广告计划名 |
google_ads_campaign_name | te_ads_object.campaign_name | 广告计划名(仅 Google Ads 数据) |
google_ads_campaign_id | te_ads_object.campaign_id | 广告计划 ID(仅 Google Ads 数据) |
adgroup_name | te_ads_object.ad_group_name | 广告组名 |
google_ads_adgroup_name | te_ads_object.ad_group_name | 广告组名(仅 Google Ads 数据) |
google_ads_adgroup_id | te_ads_object.ad_group_id | 广告组 ID(仅 Google Ads 数据) |
creative_name | te_ads_object.ad_name | 广告名 |
google_ads_creative_id | te_ads_object.ad_id | 广告 ID(仅 Google Ads 数据) |
ad_revenue_placement | te_ads_object.placement | 变现广告位置 |
google_ads_placement | te_ads_object.placement | 广告位置(仅 Google Ads 数据) |
cost_amount | te_ads_object.cost | 投放成本 |
cost_currency | te_ads_object.currency | 买量投放的币种 |
revenue_usd | te_ads_object.revenue | 变现收益 |
【USD】定值 | te_ads_object.currency | 变现收益的币种 |
country | te_ads_object.country | 国家地区编码 |
os_name | te_ads_object.platform | 平台,即 Android、iOS 等 |
app_id | te_ads_object.app_id | 应用 ID |
app_name | te_ads_object.app_name | 应用名 |