一、AppsFlyer涉及的域名
1、https://conversions.appsflyer.com 该域名用于SDK上报App首次打开的session数据,包含用户的设备id,供AF归因。
2、https://gcdsdk.appsflyer.com 该域名为获取AF服务器端归因数据接口,当上面接口收到response code 200之后,SDK自动通过该域名向AFserver获取归因结果并返回到回调函数onConversionDataSuccess()内,该接口只有APP首次打开会被调用,之后回将归因信息存到本地, 之后回调函数从本地获取。
3、https://inapps.appsflyer.com 该域名为上报事件接口
4、https://launches.appsflyer.com 该域名为上报APP第二次及以后每次打开的session,供AF计算留存或者DAU等数据。
二、用户邀请归因 SDK
AppsFlyer除了在统计平台的“OneLink自定义链接”生成深度链接和延迟深度链接之外,还可以通过
AppsFlyer User Invite SDK 生成归因链接。
归因于邀请链接的安装显示在媒体源下的仪表板上af_app_invites
,归因并记录来自现有用户邀请他们的朋友使用您的应用程序的新安装,可以使用AppsFlyer 的成本参数根据备选方案为用户邀请安装分配成本。
用户邀请归因两种方式:
1、AF的奖励机制
通过归因链接,可以对邀请者进行奖励。AF有两种奖励机制,分别是“激活”奖励和“app内事件”奖励。
(1)、“激活”奖励:分享生成归因链接的时候,通过setReferrerCustomerId(String referrerCustomerID)设置cuid。受邀者通过AF归因链接下载、安装、打开app后,通过getConversionData()拿到的af_referrer_customer_id对应了邀请者的cuid。
(2)、“app内事件”奖励:通过addParameter(String key, String value)设置cuid,其中key为“af_sub1”,受邀者通过AF归因链接打开app后,通过getConversionData()拿到的af_sub1对应了邀请者的cuid。
2、AF归因链接样式
AF归因链接默认携带设置的各种参数,链接的长度较长。有些业务场景并不希望用户参数在生成的归因链接中显式呈现。采用一下解决办法:
- 在af初始化之后,startTracking()方法调用之前设置onelink id(在AF统计平台可以查询)。
AppsFlyerLib.getInstance().setAppInviteOneLink("XX");
通过generateLink生成的归因链接隐藏了参数信息且长度较短,并且通过gcd数据依旧可以获取分享者的信息。
集成步骤:
(1)、配置OneLink,获取相关的 OneLink ID。
本例中 OneLink ID为:OPSz
(2)、设置调用的OneLink
AppsFlyerLib.getInstance().setAppInviteOneLink("OPSz");
(3)、生成链接
在 Android 上,确保导入以下库:
import com.appsflyer.share.ShareInviteHelper;
import com.appsflyer.share.LinkGenerator;
该LinkGenerator类构建根据该允许传递的点击附加信息的各种setter方法邀请URL。当新用户接受邀请并安装应用程序时,此信息将可用onConversionDataSuccess
。此外,活动和渠道参数在 AppsFlyer 仪表板中可见。
SDK 生成的邀请链接的 TTL 为 180 天。
如果由于某种原因无法访问 API,则LinkGenerator
返回一个长链接。
LinkGenerator linkGenerator = ShareInviteHelper.generateInviteUrl(MainActivity.this); linkGenerator.setChannel("Gmail"); linkGenerator.addParameter("af_cost_value","2.5"); linkGenerator.addParameter("af_cost_currency","USD"); // optional - set a brand domain to the user invite link linkGenerator.setBrandDomain("brand.domain.com"); CreateOneLinkHttpTask.ResponseListener listener = new CreateOneLinkHttpTask.ResponseListener() { @Override public void onResponse(String s) { Log.d("Invite Link", s); // write logic to let user share the invite link } @Override public void onResponseError(String s) { // handle response error } }; linkGenerator.generateLink(MainActivity.this, listener);
onResponse
和onResponseError
是用于生成 OneLink URL 的回调方法。它们是接口的一部分,CreateOneLinkHttpTask.ResponseListener
必须实现。它们用于生成邀请链接,您可以将这些链接放在应用程序的各种视图中。- 您可以将任何这些归因链接参数添加到生成的链接中。
- 传递给 LinkGenerator 函数时,需要对参数值中的特殊字符进行编码。
所有链接生成器设置器
接口名称 | 描述 | 用法 |
setChannel(字符串通道) | 发送邀请的渠道(例如 Facebook/Gmail/等) | 受到推崇的 |
setCampaign(字符串活动) | 广告系列名称 | 可选的 |
setReferrerName(String referrerName) | 推荐用户的姓名 | 可选的 |
setReferrerImageURL(String referrerImageURL) | 引荐用户头像的 URL | 可选的 |
setReferrerCustomerId(String referrerCustomerID) | 设置referrer用户的customer_user_id | 可选的 |
添加参数(字符串键,字符串值) | 单个键值自定义参数 | 可选的 |
addParameters(Map<String, String> 参数) | 多个键值自定义参数 | 可选的 |
setBrandDomain(字符串域) | 品牌域名 | 可选的需要创建品牌链接 |
(4)、录制发件人邀请
建议在发送邀请后生成应用内事件,从发送者的角度记录邀请。这使您能够找到倾向于邀请朋友的用户以及为您提供这些用户的媒体来源。
您可以发送常规应用内事件或使用logInvite
方法代替。logInvite
是一个现成的应用内事件,封装在一个 API 中,以便于使用。
Android
ShareInviteHelper.logInvite(context, channel, additionalParametersForTheEvent_optional);
(5)、在受邀用户安装后检索归因数据
链接生成器中传递的所有参数都可以通过调用获得onConversionDataSuccess
。这允许您检索相关参数(例如推荐人名称和头像 URL)并为新用户个性化首次体验。这是由 返回的归因数据的示例onConversionDataSuccess
:
{ "attribute": "is_first_launch" = "true" "attribute": "click_time" = "2019-04-04 08:33:05.668" "attribute": "af_referrer_customer_id" = "CUSTOMER_USER_ID" "attribute": "shortlink" = "12a3b456" "attribute": "af_referrer_uid" = "1234567890123-4567890123456789012" "attribute": "af_siteid" = "com.company.app" "attribute": "install_time" = "2019-04-04 08:33:45.286" "attribute": "cost_cents_USD" = "0" "attribute": "campaign" = "None" "attribute": "af_click_lookback" = "7d" "attribute": "orig_cost" = "0.0" "attribute": "af_status" = "Non-organic" "attribute": "iscache" = "true" "attribute": "media_source" = "af_app_invites" }
(6)、使用用户邀请链接重新参与
可使用用户邀请链接重新参与。但是,需要确保受邀用户安装了该应用程序。如果没有该应用程序的用户获得用户邀请链接并安装该应用程序,则重定向仪表板中会出现一个点击,但安装会出现在概览仪表板中。
要使用用户邀请链接重新参与,请is_retargeting
使用以下方法添加参数add 将其设置为 true addParameter
:
AppsFlyerLib.getInstance().addParameter("is_retargeting", "true");
(7)、奖励用户邀请
可以奖励邀请朋友安装应用的用户。通过奖励,鼓励用户邀请他们的朋友。这是扩大用户群和增加收入的好方法。
什么时候奖励?
A、在用户被邀请后安装应用程序时奖励用户。
B、可以在用户的朋友执行某些应用内事件(例如在应用中购买)时奖励用户。
安装时奖励用户
当受邀用户安装应用时,在 SDK 的转化数据中可以找到推荐用户的 ID :
- af_referrer_uid - 是发送邀请的用户的 AppsFlyer ID
- af_referrer_customer_id - 是发送邀请的用户的客户用户 ID。仅当您为此用户设置客户用户 ID 时才会出现在转化数据中。
使用推荐人 ID 奖励安装
Jenny 邀请 Nivi 安装您的应用。
1. 当 Nivi 启动该应用程序时,该应用程序会获取 Jenny 的推荐人 ID
2. 该应用程序将推荐人 ID 发送到您的后端
3. 在您的后端,将 Jenny 的推荐人 ID 添加到要奖励的用户列表中
4. 当珍妮启动她的应用程序时,检查她的推荐人 ID 是否在要奖励的用户列表中
5. 如果是,奖励她
在应用内活动中奖励用户
如果您想通过用户邀请产生收入,而不仅仅是获取用户,您可以奖励应用内事件。在这种情况下,您只会在受邀用户执行应用内事件(如购买或订阅)时奖励推荐用户。
应用内活动奖励流程
Jenny 邀请 Nivi 安装您的应用。
在邀请链接上设置 af_sub1
- 当Jenny邀请Nivi时,生成一个邀请链接
- 在邀请链接中,放一个参数
af_sub1=<JENNY_USER_ID>
Nivi 安装该应用程序并进行购买。当他进行购买时,应用内事件会发送到 AppsFlyer。此应用内事件已 sub1=<JENNY_USER_ID>
与之关联。
使用af_sub1更新奖励用户列表
- 使用拉取 API 拉取应用内事件数据或从推送 API获取应用内事件数据
- 在数据中,查找以 af_app_invites 作为媒体源的事件
- 此类事件具有与之关联的 af_sub1,其中包含引用者 ID
- 将推荐人 ID 存储在要奖励的用户列表中
奖励珍妮
- 当珍妮启动她的应用程序时,检查她的推荐人 ID 是否在要奖励的用户列表中
- 如果是,奖励她
(8)、自定义仪表板视图
以下是显示用户邀请信息的自定义仪表板的可用视图: