如何识别Android、iOS端App分别来自阿里、Youtube广告的安装来源
双端App广告安装来源归因实现方案
核心逻辑是将广告点击时的渠道标识,和后续App安装激活事件做精准关联,以下是Android、iOS双端适配的可落地方案:
原生官方方案(准确率最高,优先使用)
Android端
- 海外Google Play投放场景:使用官方Install Referrer API,投放时在下载链接的utm参数中追加自定义渠道标识,比如阿里广告对应
utm_source=ali、Youtube广告对应utm_source=youtube,用户点击广告跳转Play商店安装后,App首次启动时调用该API即可直接获取到链接携带的utm参数,完成渠道识别,准确率接近100%。
示例代码:val referrerClient = InstallReferrerClient.newBuilder(context).build() referrerClient.startConnection(object : InstallReferrerStateListener { override fun onInstallReferrerSetupFinished(responseCode: Int) { if (responseCode == InstallReferrerClient.InstallReferrerResponse.OK) { val referrerInfo = referrerClient.installReferrer val channel = referrerInfo.installReferrer // 提取链接中携带的渠道参数 } } }) - 国内安卓商店/落地页下载场景:如果是投放到国内应用商店,直接用对应商店的官方归因回调接口,均支持传入自定义渠道参数;如果是自建落地页分发APK,可以给不同渠道的APK打入唯一的渠道标记到Assets目录或Manifest文件,App首次启动时读取本地标记即可识别渠道。
iOS端
- 官方AdServices方案:iOS 14.3及以上版本使用AdServices Framework,投放时在广告链接中追加自定义渠道参数,用户点击后App Store会自动记录归因信息,App首次启动时获取归因token传给服务端,调用苹果官方接口解析即可拿到对应渠道标识,准确率在95%以上。
示例代码:import AdServices if #available(iOS 14.3, *) { do { let token = try AAAttribution.attributionToken() // 将token上传至自有服务端解析渠道信息 } catch { print("获取归因token失败") } } - 低版本兼容:iOS 14.3以下版本搭配通用链接(Universal Links)做补充,用户点击广告时先跳转至自有落地页,收集用户的设备特征(IP、系统版本、设备型号、UA)存储到服务端,设置24小时匹配窗口,App首次启动时上报相同特征做匹配,关联对应渠道。
补充兜底方案(覆盖边缘场景)
- 设备指纹模糊匹配:作为官方方案的兜底,针对少数拿不到官方归因参数的场景,通过广告点击侧采集的设备特征和App启动侧上报的特征做相似度匹配,准确率约80%,可以补全官方方案覆盖不到的缺口。
- 延迟深度链接:自研延迟深度链接逻辑,用户点击广告时将渠道参数和设备特征关联存储到服务端,用户安装后首次启动App时主动查询服务端是否有匹配的点击记录,存在则直接返回渠道参数,同时可支持跳转到广告对应的指定内页。
注意事项:所有匹配逻辑仅对用户首次安装激活做一次归因,避免重复统计;同时需遵守对应地区的隐私合规要求,不要违规收集用户隐私信息。
内容的提问来源于stack exchange,提问作者F_Z
相关产品推荐
相关产品推荐

