techium

このブログは何かに追われないと頑張れない人たちが週一更新をノルマに技術情報を発信するブログです。もし何か調査して欲しい内容がありましたら、@kobashinG or @muchiki0226 までいただけますと気が向いたら調査するかもしれません。

Google Play Referrer APIを使ってインストール元を追跡しよう

Google Play Referrer APIを使用すれば、Google Playから以下の情報を取得できます。 * アプリがインストールされた時の参照元URL * そのURLがクリックされた時間 * アプリをインストール開始した時間 ユーザーがどの経路で流入しているかを正確に知ることで広告の効果をより正確に計測することができます。

使い方をみていきましょう。

セットアップ

build.gradleに以下の記述を追加します。

dependencies {
    implementation 'com.android.installreferrer:installreferrer:1.0'
}

Google Play Storeアプリに接続する

Google Play Referrer APIを使用するには以下の手順でPlay Storeアプリに接続します。

  1. newBuilderメソッドを使用し、InstallReferrerClientインスタンスを生成する
  2. startConnectionメソッドを呼び出し、Google Playに接続する。
  3. startConnectionメソッドは非同期のため、接続完了はInstallReferrerStateListener に通知されます。
  4. InstallReferrerStateListener のonInstallReferrerSetupFinishedをオーバーライドして接続の結果を受け取ります。
    引数のresponseCodeで接続の成否を確認できます。

参照元の取得

Google Play Storeとの接続したのち以下を実施 1. getInstallReferrerメソッドをコールし ReffererDetailsを取得する 2. ReffererDetailsのメソッドで必要な情報を取得する

サンプルコード

    private InstallReferrerClient mReferrerClient;

    ...
        mReferrerClient = InstallReferrerClient.newBuilder(this).build();
        mReferrerClient.startConnection(this);

    ...
    @Override
    public void onInstallReferrerSetupFinished(int responseCode) {
        switch (responseCode) {
            case InstallReferrerClient.InstallReferrerResponse.OK:
                try {
                    // 接続完了
                    ReferrerDetails response = mReferrerClient.getInstallReferrer();
                    String referrerUrl = response.getInstallReferrer();
                    long clickTimestampSeconds = response.getReferrerClickTimestampSeconds();
                    long installBeginTimestampSeconds = response.getInstallBeginTimestampSeconds();
                    mReferrerClient.endConnection();
                } catch (RemoteException e) {
                    e.printStackTrace();
                }
                break;
            case InstallReferrerClient.InstallReferrerResponse.FEATURE_NOT_SUPPORTED:
                // APIがサポートされていない
                break;
            case InstallReferrerClient.InstallReferrerResponse.SERVICE_UNAVAILABLE:
                // Play Storeアプリのアップデート中などで接続できなかった
                break;
            default:
                // 不明だけど接続できない
        }
    }

参考

Android Developers Blog: Google Play Referrer API: Track and measure your app installs easily and securely Play Install Referrer Library | Android Developers