欢迎访问我的博客,有问题可以在任意文章底部留言评论

APP来源追踪方式(归因)——Android篇

归因 Haran 6年前 (2020-08-16) 38823次浏览 22个评论

Update:2026-03

在上一篇文章中,我们介绍了iOS App的安装来源追踪方式。本篇将转向Android,解释一个看似简单、实际上非常复杂的问题:

用户从哪里下载并安装了你的App?

以前,Android归因高度依赖IMEI、MAC地址等设备标识符。但随着Android系统不断收紧隐私权限,传统硬件ID逐渐退出广告归因体系。

与此同时,中国大陆又缺少统一的Google Play分发环境,形成了华为、小米、OPPO、vivo、应用宝等多个应用市场并存的生态。因此,海外Android归因和国内Android归因走出了两条不同的路线。

Android安装归因到底在匹配什么?

假设用户经历了下面的过程:点击广告 → 进入应用市场 → 下载并安装App → 首次启动App → 上报激活事件

真正的难点在于:App首次启动时,如何知道这次安装对应的是哪一次广告点击?

网页归因通常可以通过Cookie、URL参数和浏览器存储关联用户行为。但App安装过程中会经过浏览器、广告平台、应用市场和App多个环境,普通URL参数不会自动穿过整个安装过程。

因此,归因平台必须找到一种方式,将“广告点击”和“App首次启动”关联起来。

Android归因方法的分类

Android归因可以从两个维度理解。

按数据如何完成关联

归因机制 基本原理 常见方式
匹配式归因 分别采集点击和首次启动阶段的信号,再进行匹配 GAID、OAID、设备信号、IP+UA
参数传递式归因 应用市场保存点击参数,安装后由App读取 Google Play Install Referrer、华为Install Referrer
渠道包归因 在不同安装包中预先写入渠道标识 华为包、小米包、OPPO包等
自归因平台 广告平台在自身数据范围内判断归因,再返回结果 Google Ads、Meta、TikTok、Snap等

这些机制并非完全互斥。一个MMP可能同时使用Install Referrer、广告标识符和概率性信号,然后按照内部优先级选择最终结果。

 

按归因结果的确定程度

类型 含义 示例
确定性归因 点击与安装之间存在可直接验证的共同标识或传递参数 Install Referrer、GAID/OAID匹配
概率性归因 没有共同ID,根据多个环境信号推测两次行为属于同一设备 IP地址、User-Agent、时间窗口
聚合式归因 不提供用户级匹配结果,而是返回聚合或受隐私保护的衡量结果 Android Privacy Sandbox相关机制

 

有多种不同的分类方法,接下来按数据如何完成关联的角度来看具体的方式。

匹配式归因

匹配式归因是Android归因体系中最传统、也是最复杂的一类方式。

根据匹配精度的不同,又可分为:

精准匹配

精准匹配是传统移动归因中最常见的确定性方法。

过程如下:用户点击广告时,广告平台或第三方监测平台获取设备ID及渠道信息;用户下载安装并首次打开App(first_open);App再次上报设备ID;通过ID一致性完成渠道归因

APP来源追踪方式(归因)——Android篇

这种方法成立的前提是:

  • 广告平台可以在点击阶段提供相应标识符;
  • App能够在首次启动阶段获得同类标识符;
  • 用户没有重置或限制该标识符;
  • 广告平台与MMP之间已经完成对接;
  • 数据采集符合系统权限和隐私政策要求。

这也是为什么AppsFlyer、Adjust、Branch等MMP会维护支持的媒体合作伙伴列表。没有建立数据对接的平台,即使使用了同一个MMP,也不一定能完成确定性匹配。

Android常见标识符

ID类型 当前定位 主要限制
IMEI 不可重置的硬件标识符 Android 10后普通应用基本无法访问,不应再用于常规广告归因
GAID Google提供的可重置广告标识符 依赖Google Play服务,用户可以重置、删除或限制使用
OAID 中国移动安全联盟及设备厂商推动的匿名设备标识符 厂商支持、系统版本和SDK兼容情况可能不同
Android ID Android系统提供的应用范围标识 Android 8.0后与应用签名、用户和设备有关,不是跨App广告ID
MAC地址 网络接口标识符 已受到严格限制,不适合作为移动广告归因标识符
App实例ID 某个App安装实例的标识 适合识别App实例,无法直接跨应用匹配广告点击
Android 10开始严格限制IMEI、序列号等不可重置标识符。只有设备所有者、运营商应用或具备特权权限等少数情况可以访问。Google也明确建议,广告和分析场景应使用可重置的广告标识符,而不是IMEI等硬件ID。
因此,原来类似下面的匹配优先级:IMEI → Android ID → MAC → IP+UA,只能用于解释部分旧版归因工具的历史逻辑,不应再作为当前Android应用的推荐实施方案

 

GAID在中国大陆为什么经常不可用?

GAID是Google Advertising ID,由Google Play服务提供。

在包含Google移动服务的Android设备上,GAID曾经是最重要的广告归因标识符之一。但中国大陆销售的大量Android设备并未预装或启用Google Play服务,因此这些设备通常无法提供GAID。

此外,GAID是用户可重置、可删除的广告标识符,并不是永久设备ID。

OAID为什么成为国内常见方案?

OAID是中国移动安全联盟与设备厂商共同推动的匿名设备标识符。

它的目标是在IMEI、MAC等硬件标识符受到限制后,为广告、归因和效果衡量提供一个可以重置或受用户控制的替代标识。

 

 

模糊匹配

当广告点击和App首次启动之间没有共同标识符时,归因平台可能使用模糊匹配,也称为设备指纹匹配,:IP+UA归因

原理说明:通过比对点击阶段与激活阶段 的IP 地址、User-Agent(系统、机型、版本等),在时间窗口内进行关联匹配

过程如下:

APP来源追踪方式(归因)——Android篇

需要注意:如果多个用户共用同一个公网IP,判断就可能出错。

所以,模糊匹配因更适合作为无法使用确定性信号时的补充,而不是优先方案。

 

传递式

INSTALL_REFERRER广播:已经废弃的旧机制

早期Google Play通过INSTALL_REFERRER广播向App传递安装来源参数。

广告链接可以包含经过编码的referrer参数:

https://play.google.com/store/apps/details?id=com.ichdata&referrer=utm_source%3Dtest1%26utm_medium%3Dtest2%26utm_campaign%3Dtest3
解码后的内容为:
utm_source=test1&utm_medium=test2&utm_campaign=test3
用户完成安装后,Google Play向App发送广播。App中的Broadcast Receiver读取referrer字符串,用于判断安装来源。

 

由于传统广播方式存在以下问题:

  • 广播可能被其他App监听;
  • 恶意App可能抢先发送伪造广播;
  • 数据可能被篡改;
  • 广播可能没有及时送达;
  • 不同Android版本和设备上的行为不够一致;
  • 容易产生Install Referrer Hijacking等归因作弊。

Google在2020年3月停止支持传统INSTALL_REFERRER广播,开发者应改用Play Install Referrer API。

因此,旧广播机制只适合作为归因技术演进的历史背景,不应再作为当前实施方案。

 

Play Install Referrer API:Google Play安装归因的标准接口

Play Install Referrer API由Google Play商店提供。

当用户点击带有referrer参数的Google Play链接并安装App后,App可以通过Install Referrer API向Google Play查询安装来源信息。

其流程如下:用户点击推广链接 → Google Play保存referrer和点击时间 → 用户下载并安装App → App首次启动 → App调用Install Referrer API → Google Play返回安装来源信息 → App或MMP完成归

API可以返回的信息包括:APP来源追踪方式(归因)——Android篇

有几个字段是时间戳的,就可以用于验证、计算CTIT(点击安装时间 ,Click to Install Time)等,用于归因欺诈检测。

这种方式的优点:通过Install Referrer API传递数据,更安全;有更多的时间戳信息,可以用于反作弊。

华为AppGallery也提供Install Referrer相关能力,部分文档中称为智能分包参数。

 

渠道包:国内应用市场常见的来源识别方式

由于Google Play在中国大陆的覆盖有限,国内Android应用通常需要分发到多个应用市场,渠道包的做法是为不同应用市场生成不同的安装包,并在每个包中写入唯一的Channel ID,App首次启动后读取并上报这个值,就可以知道安装包来自哪个市场。

APP来源追踪方式(归因)——Android篇

局限性:

  • 只能识别安装包来源:如果同一个应用市场中的多个广告系列共用一个安装包,渠道包通常只能告诉你“来自小米应用商店”,不能直接判断是哪一个广告、素材或投放计划带来的安装。
  • 打包和维护成本较高:渠道越多,需要生成、测试和上传的安装包越多。版本更新时也需要管理不同渠道包的一致性。

  • 安装包来源不等于广告来源用户可能从第三方网站获得某个渠道包,也可能发生转载、盗包或重新分发。因此,包内的Channel ID只能证明安装的是哪个包,不能绝对证明用户此前点击了哪个广告。
  • 无法单独解决归因作弊渠道包可能受到盗包、换包、刷激活等作弊行为影响。它通常需要结合签名校验、激活数据、反作弊系统和其他归因信号使用。

 

自归因渠道:归因结果由广告平台计算

自归因渠道通常称为Self-Attributing Network或Self-Reporting Network,即SAN或SRN,是指那些能够在其自有平台上,独立完成广告效果归因的大型广告平台,凭借庞大的生态和数据优势,掌握了归因的主动权,常见的SAN包括 Meta (Facebook, Instagram), Google Ads, Snapchat, TikTok Ads、 Apple Search Ads (ASA) 等。

SAN通常是通过第三方归因合作伙伴(Mobile Measurement Partner, MMP,如Adjust、AppsFlyer)对外提供服务。

以一个典型的App安装为例,SAN的归因流程通常是这样的:

  • 用户点击广告:用户在SAN平台(如Facebook)上点击广告并下载了App。
  • SAN记录事件:SAN平台记录下这次点击,并关联用户的设备ID
  • App首次启动:用户打开App,App内集成的MMP SDK被激活,记录下一次安装。
  • MMP发起查询:MMP通过API向SAN平台发起查询,并附上该用户的设备ID
  • SAN返回结果:SAN平台在自己的数据库中找到与该设备ID匹配的点击记录,并将归因结果返回给MMP
  • MMP最终裁定:MMP收到SAN的归因结果后,会结合来自其他渠道的数据,进行最终的核查和去重,以确保归因的公正性

 

Android归因应该如何选择?

现实中的归因系统通常不会只使用一种方法,而是建立多层匹配优先级。

一个简化的决策顺序可以是:

场景 优先考虑的方式
Google Play分发 Play Install Referrer API
华为AppGallery分发 华为Install Referrer
广告平台属于SAN/SRN 使用平台与MMP的官方集成
国内媒体与设备支持OAID OAID确定性匹配
只能识别应用市场 渠道包
没有确定性信号 在政策允许的前提下使用概率性归因
需要衡量App内转化 SDK、服务端回传或平台官方API

 

小结

Android App安装归因的核心问题,是如何把广告点击与安装后的首次启动关联起来。

目前主要方法包括:

  • 使用GAID、OAID等合规标识符完成确定性匹配;
  • 使用Google Play或华为AppGallery的Install Referrer传递安装参数;
  • 从Google Ads、Meta、TikTok等自归因平台获取官方结果;
  • 使用渠道包识别应用市场来源;
  • 在没有确定性信号时使用概率性归因;
  • 在隐私受限场景中使用聚合衡量和建模。

其中:

  • IMEI和MAC不应再作为常规广告归因标识符;
  • OAID是中国大陆Android归因的重要信号,但并非覆盖所有设备;
  • Play Install Referrer API适合Google Play安装场景,不能覆盖整个Android生态;
  • 渠道包只能证明安装包来源,不一定能证明具体广告来源;
  • IP+UA是概率性判断,不能等同于确定性归因;
  • SAN的归因结果主要由广告平台计算,MMP通常负责接收和展示。

Android归因已经不再是“找到一个永久设备ID”这么简单。真正可行的方案通常是根据广告平台、应用市场、设备环境和隐私要求,组合多种归因信号,并清楚标记每种结果的可信度和适用范围。


有疑问可以在底部留言
喜欢 (63)
发表我的评论
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(22)个小伙伴在吐槽
  1. 看了好几篇文章,受益颇多,站长可以介绍一下小程序的归因吗
    Jack2023-09-30 10:40 回复 Windows 10 | Chrome 95.0.4638.69
  2. 国际市场GA的渠道归因是通过first_open上添加属性么??我找了半天也找不到怎么向first_open中添加渠道值的参数
    boom2022-12-01 11:54 回复 Windows 10 | Chrome 107.0.0.0
    • 老板的需求是,想看到每个渠道下的新增量,留存量,活跃量
      boom2022-12-01 11:57 回复 Windows 10 | Chrome 107.0.0.0
    • Haran
      不是,是通过应用市场的提供的传递机制,实现类似网站的UTM跟踪,可以参考:https://www.ichdata.com/the-google-play-ad-attribution-principle.html
      Haran2022-12-01 13:16 回复 Mac OS X | Chrome 108.0.0.0
      • 如果我的应用不走应用市场的方式、使用UTM跟踪是否会奏效? 如不奏效是否有其他能实现的方案?
        boom2022-12-01 14:03 回复 Windows 10 | Chrome 107.0.0.0
        • Haran
          不会奏效。可以走匹配的方式,但需要广告投放平台/媒体端支持
          Haran2022-12-01 14:13 回复 Mac OS X | Chrome 108.0.0.0
          • 收到,谢谢。 理解没错匹配式也是通过UTM的方式。需要投放平台支持就行。没错吧?
            boom2022-12-01 14:28 Windows 10 | Chrome 107.0.0.0
          • Haran
            匹配的核心在于需要获得能够识别用户的信息,前后能够匹配上,其次才是UTM,不能识别到用户,被断开了,有UTM也没用
            Haran2022-12-01 20:26 Mac OS X | Chrome 108.0.0.0
  3. 即使是传递式。也是需要知道用户的设备id和广告id之类的信息吧
    Mayer2021-07-16 00:31 回复 Linux | Chrome 91.0.4472.120
    • Haran
      设备Id不用,广告信息有
      Haran2021-07-16 22:56 回复 Mac OS X | Chrome 91.0.4472.114
      • 有一个问题是,像appsflyer,adjust这样的平台,我们创建跟踪链接之后,他们是怎么获取到用户的设备信息的呢
        M2021-07-18 19:52 回复 Mac OS X | Chrome 91.0.4472.114
        • Haran
          链接被打开的时候通常会异步上传监测信息
          Haran2021-07-18 21:47 回复 Mac OS X | Chrome 91.0.4472.114
      • 这里的广告信息指的是啥? referrer吗
        M2021-07-22 14:36 回复 Mac OS X | Chrome 91.0.4472.164
        • Haran
          如UTM参数
          Haran2021-07-22 17:10 回复 Mac OS X | Chrome 92.0.4515.107
  4. 有个小问题:就是如果app是跳转gp下载的话,我们可以拿到referr,然后使用install referr去匹配,但是如果我们不是在gp下载,获取不到referr的话,就是优先用gaid下载吗
    Mayer2021-03-28 17:22 回复 Mac OS X | Chrome 89.0.4389.90
    • Haran
      install referral已经停用,现在是install referral api,需要成为GP的监测合作伙伴或认证才可以去主动查询。国内用不了gaid,国内的是oaid或IMEI
      Haran2021-03-28 18:04 回复 Mac OS X | Chrome 89.0.4389.90
    • 明白,因为我们这边是海外市场,所以还是跳gp的哈哈哈,但是因为海外市场也有很多小米,oppo手机,很多用户也会在自带的应用商店下载,这样的场景的话是不是就采用了gaid匹配呢
      Mayer2021-03-28 19:01 回复 Mac OS X | Chrome 89.0.4389.90
      • Haran
        海外归因产品一般是GAID。国内的就不一定
        Haran2021-03-28 19:19 回复 Mac OS X | Safari浏览器 604.1
  5. 国内的手游公司一般是是打几百个渠道包来对广告层级进行监控
    aspirincap2021-01-06 10:20 回复 Windows 10 | Chrome 87.0.4280.88
    • Haran
      比较粗略的跟踪,要细致一些可以用第三方归因工具,用知名的,如果有组建AFF,结算一般要求知名的第三方归因
      Haran2021-01-06 10:26 回复 Mac OS X | Chrome 87.0.4280.88
      • 第三方数据安全堪忧?
        破破2021-01-26 23:04 回复 Mac OS X | Chrome 86.0.4240.111