モケラ

Tech Sheets

mokelab

アプリインストール時、INSTALL_REFERRERを受け取る

最終更新日:2015-08-11

Google Play経由でアプリをインストールする際、リファラ文字列をBroadcastReceiver経由で受け取ることができます。これを使うと、キャンペーンの効果測定などができます。

ソース全体はここにあります。

BroadcastReceiverを実装する

リファラ文字列を受け取るReceiverを作ります。リファラ文字列自体は引数のintentに"referrer"というキーで渡されます。

public class ReferrerReceiver extends BroadcastReceiver {
    private static final String KEY_REFERRER = "referrer";

    @Override
    public void onReceive(Context context, Intent intent) {
        String referrer = intent.getStringExtra(KEY_REFERRER);
        sendConversion(referrer);
    }

    private void sendConversion(String referrer) {
        // send this referrer string to your server
        Log.v("Referrer", "referrer=" + referrer);
    }
}

AndroidManifest.xmlに登録する

BroadcastReceiverなので、AndoirdManifest.xmlに登録が必要です。次のエントリーを追加します。

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

    <!-- 中略 -->
    <receiver
        android:name=".ReferrerReceiver"
        android:exported="true">
        <intent-filter>
            <action android:name="com.android.vending.INSTALL_REFERRER" />
        </intent-filter>
    </receiver>
 </application>

リファラ付きURLを作る

Webへのリンクや、アプリ内のリンクにリファラ文字列をつけます。このリンク経由でインストールされた時のみ、BroadcastIntentが投げられます。

アプリのパッケージ(Application ID)が"com.mokelab.demo"で、リファラ文字列が"token1122"の場合は、次のようなリンクになります。

adbでテストする

adbでBroadcastIntentを投げることができます。次は、リファラ文字列を"token1122"とした例です。

$ adb shell am broadcast -a com.android.vending.INSTALL_REFERRER --es referrer token1122

一覧に戻る