GooglePlay下载来源

用户通过推广链接下载App的时候,国内应用商店是无法获取推广来源的,通过而GooglePlay可以,通过网址构建工具生成前往GooglePlay的下载链接,应用就可以获取到推广来源信息,数据可以自由在构建工具设置。

部分参数如下

  • utm_source :来源, 一般设置为推广平台
  • utm_medium:媒介,一般设置为推广平台的不容产品,如某推广平台的Banner广告、开屏广告,或者区分推广付费方式。
  • utm_term:关键词

如何使用

详细接入方式见:官方文档

添加依赖

1
2
// 1.1版本有bug,使用直接导致闪退
implementation 'com.android.installreferrer:installreferrer:1.0'

使用

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
private lateinit var referrerClient: InstallReferrerClient
private fun initReferrer() {
    referrerClient = InstallReferrerClient.newBuilder(this).build()
        
        if (getOldSource().isNotEmpty()) return// 存在旧的source就不获取
        
        val installListener = object : InstallReferrerStateListener {
            // 连接成功回调
            override fun onInstallReferrerSetupFinished(responseCode: Int) {
                if (responseCode == InstallReferrerClient.InstallReferrerResponse.OK) {
                    val response: ReferrerDetails = referrerClient.installReferrer
                    val url = response.installReferrer // 获取的url就是之前网址构建工具的地址,包含具体参数
                    referrerClient.endConnection() // 这里一定要记得关闭连接,否则会出现错误
                }
            }
    
        override fun onInstallReferrerServiceDisconnected() {}
    }
    // 开始连接
    referrerClient.startConnection(installListener)
}  

注意点

startConnection() 之后,一定要注意 endConnection(),否则有时候会出现

1
android.os.DeadObjectException

这个错误。这点在官方文档中没有提到,需要注意下。