AppsFlyer SDK的使用
- 前言
- 一、AppsFlyer涉及的域名
- 二、延迟深度链接/深度链接
- 三、User Invite SDK
前言
前段时间,因项目需要,初次接触到AppsFlyer这个平台,它可以为广告主统计不同广告投放渠道带来的收益。具体介绍,在此就不展开了,大家可以去官网查询,官网介绍的更加详细。这篇文章重点介绍如何使用AF的功能。
相关链接:
- Android SDK
- 延迟深度链接
- User Invite SDK
一、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等数据。
二、延迟深度链接/深度链接
- 延迟深度链接:针对未安装app的用户,在用户点击了延迟深度链接后,会将用户引导至应用商店app下载页面进行下载。用户在安装后,会自动打开延迟深度链接指定的app页面。
- 深度链接:针对已安装app的用户,在用户点击了深度链接后,会唤起app跳转到指定页面。
问题1:用户是如何在安装app后,仍能够拿到未安装时点击的延迟深度链接信息,跳转到指定页面呢?
首先AppsFlyer就是做归因的,当用户点击onelink时,会将点击信息发送给AF服务器,当APP打开时,SDK会收集相关信息上报给AF服务器,AF服务器会通过自己的归因模型来对点击和SDK上报的信息进行匹配,匹配成功便有归因结果返回给回调函数onConversionDataSuccess(),开发者只需要在该回调函数内,对获取的数据解析开发跳转逻辑即可。
问题2:是否在点击链接时收集了用户的某个唯一标识id,然后在用户首次安装后上报session数据,供AF归因,然后通过唯一标识id的匹配,从AF服务器拿到归因数据呢?
在点击链接时,AF SDK会收集设备id,如果可以收集到设备id的话,可以通过设备id匹配。如果无法获取设备id,还是有Ephemeral matching归因模型
总结,对于延迟深度链接的逻辑,如下图:
三、User Invite SDK
AppsFlyer除了在统计平台的“OneLink自定义链接”生成深度链接和延迟深度链接之外,还可以通过AppsFlyer User Invite SDK生成归因链接。
1、AF的奖励机制
通过归因链接,可以对邀请者进行奖励。AF有两种奖励机制,分别是“激活”奖励和“app内事件”奖励。
- “激活”奖励:分享生成归因链接的时候,通过setReferrerCustomerId(String referrerCustomerID)设置cuid。受邀者通过AF归因链接下载、安装、打开app后,通过getConversionData()拿到的af_referrer_customer_id对应了邀请者的cuid。
- “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数据依旧可以获取分享者的信息。