概要:
多个安卓第三方商店归因
AppsFlyer的归因支持多家应用商店的场景。(英文表述中,我们会将第三方安卓应用商店称为out-of-market stores或alternate Android stores)广告主在AppsFlyer后台,可以选择(1)在单一应用面板下查看所有商店的数据,也可以选择(2)一个应用对应一个三方商店,多个应用下分别查看对应商店的数据。
注意
- AppsFlyer的安卓归因解决方案全面支持各设备ID,包括GAID和OAID 等。
查看多个商店数据:单一应用面板 vs. 多个应用面板
- 单一面板
- 多个应用面板也就是说,App上架多少个商店,就可以在AppsFlyer后台添加多少个App。
| 单一面板 【推荐】 |
多个应用面板 | |
|---|---|---|
| 安卓包名 | 单一应用需要物理包名一致;多个应用面板,物理包名通常需要一致,通过后缀channel区分。 | |
| 流量入口名称 | / |
|
| 上报install_app_store字段 |
|
不适用 |
| OneLink模板 | 不适用 | |
| 归因链接 |
|
|
| 可查看install_app_store的面板和报告 | 不适用 | |
| 注意事项 |
|
|
设置方法
请参考本章节进行设置。具体的操作步骤需要由市场人员和开发人员共同配合完成。
针对 多个应用面板 选项,需要针对每个应用面板/商店重复步骤。
开始之前
- 确定命名规则,方便后续给channel或install_app_store赋值。
- 可参考以下表格准备channel和install_app_store的命名。
- 表格主要方便开发人员后续准备APK打包。
| 参数 | 说明 | 单一面板 【推荐】 |
多个应用面板 |
|---|---|---|---|
| 安卓包名 | 各商店/渠道包包名一致 | 如果APK包已经上架Google Play,可以直接选择使用该App面板查看多个商店数据。示例: comb.abc.def | |
| 流量入口名称 | 各个渠道/商店包的唯一名称 (命名由广告主自定义) | 无需设置 |
每个APK包/渠道包对应一个channel名/渠道号。需要通过打包时在manifest配置,同时在添加App时填写完全一致的channel名,此处务必注意技术与运营配合一致。
|
| install_app_store | 各个渠道/商店包的唯一名称 (命名由广告主自定义) | 每个APK包/渠道包对应一个channel名/渠道号。或者API的方式赋值(如渠道包数量较多,建议直接用API的方式)。 | 无需设置 |
配置流程
| 步骤 | 负责人员 | 单一面板 | 多个应用面板 |
|---|---|---|---|
| 1 | 开发人员 | APK打包 | APK打包 |
| 2 | 营销人员 | 如果面板已经有包名相同的Google Play App存在,且团队愿意在一个面板下同时查看Google Play包和第三方应用商店包的数据,则无需操作此处,直接使用原有面板进行配置。如果仍需单独添加新的应用面板,作为集合各APK包数据的单一面板,请参考文档:中国国内安卓市场归因指南 | 在AppsFlyer中添加相关应用。 |
| 3 | 营销人员 |
|
分App(包名+channel名)准备归因链接。 |
| 4 | 市场人员和研发人员互相配合 | 测试 | 测试 |
配置流程
单一应用面板-APK打包
安卓包名决定了归因数据发往哪个应用面板。在单一应用面板的场景下,所有的商店/渠道包的包名是一致的。 此处无需再使用channel渠道号。 除去一种情况:即您在添加单一面板时,使用了out of store方式,此时仍需上报channel号确保包名一致。
SDK中的AF_STORE参数对应原始数据和上文中的install_app_store,即每个APK包的下载来源。
集成打包APK:
- 创建App build 副本。请注意: 注意 :请勿更改安卓包名。
- 为不同APK包/商店包/渠道包名赋值:
-
在AndroidManfest.xml的<application>中添加以下代码为channel赋值。为每APK包/商店包/渠道包设置AF_STORE值。
<application> ... <meta-data android:name="AF_STORE" android:value="EnterStoreNameHere"/> ... </application>
--或者--
-
API方法调用setOutOfStore API以设置AF_STORE值。为每个商店设置唯一AF_STORE值。(注意:如果您使用的国内第三方应用商店较多,建议使用此方法)
AppsFlyerLib.getInstance().setOutOfStore("EnterStoreNameHere")
-
AF_STORE对应AppsFlyer原始数据中的install_app_store字段。目前包含该字段的报告和API包括:
- 数据总览面板
- 群组面板
- 原始数据报告 (原始数据报告是AppsFlyer高级功能)
单一应用面板-归因链接
多个应用面板-APK集成打包
此处完整包名为:物理包名,加后缀“-channel”,因此归因数据会显示在对应的完整包名下。
为每APK包/商店包/渠道包配置manifest:
-
在AndroidManfest.xml的<application>中添加以下代码为channel赋值。为每APK包/商店包/渠道包配置channel名/渠道号。
<application> ... <meta-data android:name="CHANNEL" android:value="EnterStoreNameHere"/> ... </application>请注意:注意: 参数区分大小写。 不能使用连字符(-)、下划线(_)等其他字符。
多个应用面板-添加应用
添加应用面板,对应物理包名和后缀“-channel”。举例来说,示例:物理包名com.myapp ,channel名配置为abcstore,,那么AppsFlyer面板显示的完整包名为com.myapp-abcstore 。
在AppsFlyer后台,为每个商店添加多个面板:
- 完整数据:
- 安卓包名
-
流量入口名称 channel名:/strong>APK包/商店包/渠道包的唯一标识符,以区分具有相同物理包名的多个面板。请注意此处填写的channel名需要与manifest配置的channel名称完全一致,大小写敏感。
请注意:不能使用连字符(-)、下划线(_)等其他字符。 -
App URL
- 点击Next。
测试方法
非自然安装
测试非自然激活的方式如下:
- 请使用未安装过测试App的设备或白名单设备建议将设备添加至白名单。
- 以 "test"来命名媒体渠道 ("&pid=test").
-
将设备ID(GAID,OAID,IMEI或Android ID)添加到点击URL。参数写法参考:AppsFlyer归因链接结构和参数
https://app.appsflyer.com/com.greatapp?pid=test &af_r=https://www.destinationurl.com&advertising_id=b5a3-78d9b5-0f12345-xxxx
4. 通过电子邮件把该归因链接发送给自己,然后点击它。重定向后, 不要从商店安装。而是要安装已集成了AppsFlyer归因SDK的测试版应用并打开该应用。
| 单一面板 | 多个应用面板 |
|---|---|
|
|
Organic installs(自然激活)
测试自然激活:
- 1. 使用未安装该应用或已列入白名单的 Android 设备。
- 2. 安装已集成了AppsFlyer归因SDK的测试版应用并打开该应用。
- 查看数据:
如测试成功,您会看到:
| 单一面板 | 多个应用面板 |
|---|---|
| 前往数据总览面板,查看是否有新增自然激活。目前,在使用单一应用方法时,还无法区分自然安装的来源。 |
|
其他功能
从Facebook引导用户到Amazon应用商店
- 在Facebook应用设置页面下的Android部分配置跳转链接。
- 以应用管理员的身份登录到Facebook,前往https://developers.facebook.com/apps/ 并选择相应应用。
- 进入设置页面找到您的Android设置,如果您还没有配置Android的话,先添加该平台。
-
填写所有内容,包括该应用的amazon应用商店URL。
- 群组
- 在一个报表中集合多个面板/应用的数据。
- 以install_app_store 作为分组维度,查看各个应用面板的数据。
- Pull API(用于单一应用方式)
- 自定义控制面板(用于多应用方式)
| 第三方应用商店 | 开始于 | SDK version |
|---|---|---|
| 2024年7月31日 | 6.14.0 + | |
| 三星Galaxy商店 | 2021年12月 | 6.1.1 + |
| Xiaomi GetApps Store | 2024年9月19日 | 6.9.0 + |
- 使用场景示例:
- 协作方举例来说,
问题排查
激活归因给默认的应用
如果没有建立默认的Google Play App,则数据无法被记录。
特点与局限性
| 特点 | 说明 |
|---|---|
| 带来激活的应用商店 | |
| 广告收入 |