推荐流程运作机制及APP免填推荐码获取推荐人信息技术咨询
问题解答
嘿,我来帮你拆解这两个做增长时常见的问题,咱们一个个说:
1. 推荐流程的运作机制
推荐流程本质上是用户行为追踪+归因结算的闭环,核心就是把「推荐者-被推荐者-转化行为」三者精准关联起来,通常分成这几个关键环节:
- 触发推荐生成:当你的APP用户发起邀请时,系统会为这个邀请生成唯一的专属标识(可能是带参数的链接、隐式的追踪码,或者你说的推荐码),这个标识会和推荐者的账号ID绑定,存在后台数据库里。
- 被推荐者接收邀请:推荐者通过微信、短信、社交平台等分享邀请内容,被推荐者点击后,要么直接跳转到下载渠道(比如你提到的Play Store),要么先经过一个中转页(用来提前记录部分追踪信息,做兜底)。
- 安装与归因匹配:被推荐者下载安装APP后,首次启动时,APP会去获取之前的追踪标识,把它和新用户的设备/账号信息一起上报给后台,后台通过这个标识就能匹配到对应的推荐者。
- 转化与奖励发放:如果被推荐者完成了预设的转化行为(比如注册、完成首单),后台就会按照规则给推荐者发放奖励,同时更新双方的推荐关系数据,整个流程闭环就完成了。
2. 无需填写推荐码识别邀请人的实现方案
针对你说的Play Store跳转后无法识别邀请人的痛点,目前最靠谱的是结合Play Install Referrer API和深度链接的方案,下面给你具体的实现思路:
方案一:Play Install Referrer API(官方首选)
Google官方提供的这个API可以直接获取用户安装APP的来源参数,完美解决Play Store跳转后的追踪问题,步骤如下:
- 生成带参数的邀请链接:当用户发起邀请时,生成指向Play Store的链接,在末尾拼接推荐者的唯一ID作为自定义参数,比如:
https://play.google.com/store/apps/details?id=com.yourapp&referrer=inviter_id%3D12345
(注意:参数要做URL编码,比如=要转成%3D) - 集成API到你的APP:在APP首次启动后,调用API获取referrer参数,解析出推荐者ID,示例Kotlin代码:
val referrerClient = InstallReferrerClient.newBuilder(context).build() referrerClient.startConnection(object : InstallReferrerStateListener { override fun onInstallReferrerSetupFinished(responseCode: Int) { when (responseCode) { InstallReferrerClient.InstallReferrerResponse.OK -> { val response = referrerClient.installReferrer val referrerStr = response.installReferrer // 解析出inviter_id val inviterId = referrerStr.split("inviter_id=")[1].split("&")[0] // 将inviter_id和新用户的注册信息绑定,上报后台 bindInviterToNewUser(inviterId) } InstallReferrerClient.InstallReferrerResponse.FEATURE_NOT_SUPPORTED -> { // 处理旧版本Google Play不支持的情况 } InstallReferrerClient.InstallReferrerResponse.SERVICE_UNAVAILABLE -> { // 服务不可用,添加重试逻辑,比如延迟3秒后重新连接 } } } override fun onInstallReferrerServiceDisconnected() { // 断开连接后重试 Handler(Looper.getMainLooper()).postDelayed({ referrerClient.startConnection(this) }, 3000) } })
- 后台关联存储:把解析到的
inviter_id和新用户的账号/设备信息绑定,存到后台数据库,后续就能直接识别推荐人了。
方案二:深度链接+本地缓存(兜底方案)
如果担心Referrer API偶尔的延迟或数据丢失,可以搭配深度链接做一层兜底:
- 配置自定义深度链接:给你的APP配置深度链接(比如
yourapp://invite?inviter=12345),当用户点击邀请链接时,若已安装APP则直接打开并解析参数;若未安装,则先跳转到一个中转H5页面,把inviter_id存在本地存储(比如Cookie),再跳转到Play Store。 - APP启动后读取缓存:用户安装完成后首次启动APP,先检查本地存储的
inviter_id,如果有就直接上报后台,作为Referrer API的补充。
关键注意事项
- 一定要对
inviter_id做校验,比如后台验证这个ID是否存在、是否是活跃用户,防止恶意伪造参数刷奖励。 - 可以把绑定逻辑延迟到用户注册完成后再执行,避免APP启动时还没拿到referrer数据就跳过了。
- 测试时可以用Google的Referrer Test Tool模拟不同的referrer参数,验证你的解析逻辑是否正确。
内容的提问来源于stack exchange,提问作者webaddicted
相关产品推荐
相关产品推荐

