Play Install Referrer APIを使ったキャンペーン計測方法

0

2020年3月1日にINSTALL_REFERRER ブロードキャストが廃止され、これまでGooglePlayから取得できていたキャンペーン情報がインテントから取得できなくなりました。

Still Using InstallBroadcast? Switch to the Play Referrer API by March 1, 2020
Posted by Marcus Leal, Product Manager, Google Play Ads How do people find your app? It’s the million-dollar question for any develop...

これに伴い、新しいキャンペーン情報の取得方法として、Google Play ストアの Install Referrer APIを利用するように案内が出ています。今回はFirebase利用者向けの、Install Referrer APIを利用するためのアプリ側の実装方法についてまとめます。

Play Install Referrer Library  |  Android Developers

実装手順

1. INSTALL_REFERRERのブロードキャストレシーバーを実装済みの場合、Android Manifestから「INSTALL_REFERRER」の記載を削除します。

2. アプリの build.gradle ファイルの dependencies セクションに下記を追加します。

implementation 'com.android.installreferrer:installreferrer:1.1.1'

3. Applicationクラスのフィールドに下記の記述を追加します。

private InstallReferrerClient referrerClient;

4. ApplicationクラスのonCreate()から下記メソッドを呼んでください。

※初回起動時1度のみ実行する制御を行う必要があります。

private void setReferrer() {

        referrerClient = InstallReferrerClient.newBuilder(this).build();
        referrerClient.startConnection(new InstallReferrerStateListener() {
            @Override
            public void onInstallReferrerSetupFinished(int responseCode) {
                switch (responseCode) {
                    case InstallReferrerClient.InstallReferrerResponse.OK:

                        // Connection established
                        try {
                            ReferrerDetails response = referrerClient.getInstallReferrer();
                            String referrer = response.getInstallReferrer();
                            Log.d(TAG, "referrer:"+ referrer);

                            // その他イベント送信など処理があれば記載

                        } catch (Exception e) {
                            e.printStackTrace();
                        }

                        referrerClient.endConnection();

                        break;
                    case InstallReferrerClient.InstallReferrerResponse.FEATURE_NOT_SUPPORTED:
                        // API not available on the current Play Store app
                        referrerClient.endConnection();
                        Log.d(TAG, "InstallReferrerResponse.FEATURE_NOT_SUPPORTED");
                        break;
                    case InstallReferrerClient.InstallReferrerResponse.SERVICE_UNAVAILABLE:
                        // Connection could not be established
                        referrerClient.endConnection();
                        Log.d(TAG, "InstallReferrerResponse.SERVICE_UNAVAILABLE");
                        break;
                }
            }

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

例えば下記のようなキャンペーンURLでアプリをインストールした場合、response.getInstallReferrer()で取得した文字列referrerはこのような値になります。

例)
キャンペーンURL:https://play.google.com/store/apps/details?id=com.test.sampleapp&referrer=utm_source%3Dgoogle%26utm_medium%3Dcpc%26utm_campaign%3Dpromo
referrer:utm_source=google&utm_medium=cpc&utm_campaign=promo

referrer情報が取得できたら、この文字列を使ってカスタムイベントを送信するなどの処理を行ってください。

referrer APIとのコネクションが確立した際に、自動イベントのfirebase_campaignが発生するので、カスタムイベントを送信しなくても流入元の計測は可能です。

90日間はインストール時の情報がAPI側に保持されており、何度もAPIを呼び出してしまうと何度も流入計測が行われてしまいますので、初回時1度のみ実行する制御を忘れずに行ってください。

今回はFirebase利用者向けのInstall Referrer APIへの移行方法について書きました。従来のGoogle Analytics SDKでの利用については、下記ヘルプをご参照ください。

Campaign Measurement  |  Analytics for Android  |  Google Developers
0
タイトルとURLをコピーしました