ユーザーが登録する必要がある Android アプリがあります。PlayStore
登録を送信する際に、どのキャンペーン ユーザーから来たかを知るために (utm_source など) からパラメーターを送信したいと考えています。
BroadcastReceiver
そのため、INSTALL_REFERRER に独自のパラメーターを使用して、パラメーターをファイルに保存するというアイデアがありました。ユーザーが登録すると、ファイルを読み取ってコンテンツを送信します。
だから私はレシーバーを作りました:
public class CampaignBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String refferer = intent.getExtras().getString("referrer");
try {
FileOutputStream fos = context.openFileOutput("campaign", Context.MODE_PRIVATE);
fos.write(refferer.getBytes());
fos.close();
} catch (FileNotFoundException e) {
} catch (IOException e) {
}
new CampaignTrackingReceiver().onReceive(context, intent);
}
そして、 AndroidManifest.xml で次を使用します。
<service android:name="com.google.analytics.tracking.android.CampaignTrackingService"/>
<receiver android:name=".receiver.CampaignBroadcastReceiver" android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
Google のテスト シナリオを使用すると動作し、BroadcastReceiver の onReceive メソッドが呼び出されます。
./adb shell am broadcast -a com.android.vending.INSTALL_REFERRER -n
mypackage/mypackage.receiver.CampaignBroadcastReceiver --es "referrer"
"utm_source%3Dtest%26utm_medium%3Dbanner%26utm_term%3Dmailstuff"
しかし、それから試してみるとPlayStore
、何も呼び出されません。
PlayStore
アプリ内からキャンペーン パラメータを取得する方法を知っている人はいますか?