アプリインストール時、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"の場合は、次のようなリンクになります。
- http://play.google.com/store/apps/details?id=com.mokelab.demo&referrer=token1122
- market://details?id=com.mokelab.demo&referrer=token1122
adbでテストする
adbでBroadcastIntentを投げることができます。次は、リファラ文字列を"token1122"とした例です。
$ adb shell am broadcast -a com.android.vending.INSTALL_REFERRER --es referrer token1122