Posted at

Androidのインストールリファラを使うときの注意点

More than 5 years have passed since last update.

Androidでインストールリファラを使うときにハマったのでメモ。

google playのアプリへのリンクにリファラをつけることができる。

<GOOGLE PLAY APP URL>&referre=hoge%3Dfuga

※リファラの=や&はエンコードが必要(=->%3D, &->%26)

この時のリファラ文字列を以下のようにしてアプリで受け取ることができる。


AndroidManifest.xml

<receiver

android:name="com.example.app.InstallReferrerReceiver"
android:exported="true" >
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>


InstalReferrerReceiver.java

public class InstallReferrerReceiver extends BroadcastReceiver {

@Override
public void onReceive(final Context context, Intent intent)
String referrer = intent.getStringExtra("referrer");
}
}


intentから受け取ったリファラ文字列はそのまま

referrer = “hoge%3Dhuga”

が取得できると思って、parse処理を仕込んでいたが、実際は

referrer = “hoge=huga

とデコードされた文字列が渡される。

リファラ文字列を自前でパースしたりする時は注意。