Google Play Install Referrer API接入

背景 :Google Play要求在2020年3月1日前切换到Play Install Referrer API
由于上架项目上架到google play,需要统计下载的渠道来源,所以需要获取到Google Play 商店传的referrer值。

首先先看下之前的获取示例

  • 自定义个广播并在mainfest里面注册
public class InstallReferrerReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent data) {
        String rawReferrer = data.getStringExtra(REFERRER); /// 你想要的referrer值
        if (null == rawReferrer) {
            return;
        }
    }
}

mainfest 的application里面

       
            
                
            
        

使用新的Install Referrer API, 官方文档

  • 在 build.gradle 中添加依赖
 dependencies {
        ...
        implementation 'com.android.installreferrer:installreferrer:1.0'
    }
  • 获取方法
        try {
            final InstallReferrerClient installReferrerClient = InstallReferrerClient.newBuilder(context).build();
            installReferrerClient.startConnection(new InstallReferrerStateListener() {
                @Override
                public void onInstallReferrerSetupFinished(int responseCode) {
                    switch (responseCode) {
                        case InstallReferrerClient.InstallReferrerResponse.OK:
                            // Connection established, get referrer
                            if (installReferrerClient != null) {
                                try {
                                    ReferrerDetails response = installReferrerClient.getInstallReferrer();
                                    String referrer = response.getInstallReferrer();// 你要得referrer值
                                    if (!TextUtils.isEmpty(referrer)) {
                                    
                                    }
                                    installReferrerClient.endConnection();
                                } catch (Exception ex) {
                                    Log.e("InstallReferrerHelper", ex.toString());
                                }
                            }
                            break;
                        case InstallReferrerClient.InstallReferrerResponse.FEATURE_NOT_SUPPORTED:
                            // API not available on the current Play Store app
                            Log.d("InstallReferrerHelper", "FEATURE_NOT_SUPPORTED");
                            break;
                        case InstallReferrerClient.InstallReferrerResponse.SERVICE_UNAVAILABLE:
                            // Connection could not be established
                            Log.d("InstallReferrerHelper", "SERVICE_UNAVAILABLE");
                            break;
                    }
                }

                @Override
                public void onInstallReferrerServiceDisconnected() {
                    // Try to restart the connection on the next request to
                    // Google Play by calling the startConnection() method.
                }

            });
        } catch (Exception ex) {
            Log.e("InstallReferrerHelper", ex.toString());
        }

你可能感兴趣的:(Google Play Install Referrer API接入)