AndroidアプリでGoogle Analytics v4を使用しています。インストール追跡が数日間問題なく機能し、突然私の放送受信機が登録されませんでした。
Logcatは言う:CampaignTrackingReceiverが登録されていないか、エクスポートされていないか、無効になっています。インストールキャンペーンの追跡はできません。手順については http://goo.gl/8Rd3yj を参照してください。
これは、マニフェストアプリケーションタグ内で行ったことです。
<service Android:name="com.google.Android.gms.analytics.CampaignTrackingService"
Android:enabled="true"
Android:exported="false" />
<receiver
Android:name="my.package.CustomCampaignTrackingReceiver"
Android:exported="true" >
<intent-filter>
<action Android:name="com.Android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
そして、私のカスタムキャンペーントラッキングレシーバーは次のようになります。
public class CustomCampaignTrackingReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// When you're done, pass the intent to the Google Analytics receiver.
new CampaignTrackingReceiver().onReceive(context, intent);
Log.v("ReferralReceiver", " " + intent.getAction());
Log.v("ReferralReceiver", " " + intent.getDataString());
Log.v("ReferralReceiver", " " + intent.toString());
Log.v("ReferralReceiver", " " + intent.getStringExtra("referrer"));
//call to other referrers
}
}
私は物事が手に負えなくなっているところを理解することができません。マニフェストでINSTALL_REFERRERフィルターを1つだけ使用しています。
AnalyticsServiceとAnalyticsReceiverを実装しなかったと思いますか?これは私がそれを機能させるためにやったことです
<!-- Google Analytics -->
<receiver Android:name="com.google.Android.gms.analytics.CampaignTrackingReceiver"
Android:enabled="true"
Android:exported="true">
<intent-filter>
<action Android:name="com.Android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
<service Android:name="com.google.Android.gms.analytics.CampaignTrackingService" />
<receiver Android:name="com.google.Android.gms.analytics.AnalyticsReceiver"
Android:enabled="true">
<intent-filter>
<action Android:name="com.google.Android.gms.analytics.ANALYTICS_DISPATCH" />
</intent-filter>
</receiver>
<service Android:name="com.google.Android.gms.analytics.AnalyticsService"
Android:enabled="true"
Android:exported="false"/>
私はすべての答えに戸惑いました。しかし、デバッグとロギングによってそれが何であるかを発見しました。
基本的に:この警告は、Googleアナリティクスの起動時に行われます。マニフェストにCampaignTrackingReceiverを登録していないことを警告するだけです。でも大丈夫!あなた自身の追跡レシーバーを持っているので。アプリをデバッグしながら、次のようにしてレシーバーをテストします。
echo 'am broadcast \
-a com.Android.vending.INSTALL_REFERRER \
-n "com.my.app/com.my.app.CustomInstallTrackerReceiver" \
--es "referrer" \
"utm_source=promo_mail&utm_medium=emaeil&utm_term=test_term&utm_content=content&utm_campaign=derp"; \
exit' | adb Shell
実際に機能しているかどうかを確認するには、Googleアナリティクスのログを確認します。
adb Shell setprop log.tag.GAv4 DEBUG
adb logcat -s GAv4
私が見たものは次のとおりです:
12-07 11:32:54.678 6993 7011 W GAv4 : CampaignTrackingReceiver is not registered, not exported or is disabled. Installation campaign tracking is not possible. See http : // goo.gl/8Rd3yj for instructions.
12-07 11:33:14.048 6748 6827 D GAv4 : Received installation campaign: content=content, keyword=test_term, medium=emaeil, name=derp, source=promo_mail
12-07 11:33:14.048 6748 6827 D GAv4 : Sending installation campaign to: UA-SECRET, content=content, keyword=test_term, medium=emaeil, name=derp, source=promo_mail
12-07 11:33:14.068 6748 6827 D GAv4 : Hit delivery requested: ht=1481106771894, _s=3, _v=ma9.4.52, adid=xxx, aid=com.my.app, an=Tiqets, ate=1, av=1.6.61.g785cc1e, cc=content, cid=xxx, ck=test_term, cm=emaeil, cn=derp, cs=promo_mail, ni=1, sr=1440x2560, t=data, tid=UA-SECRET, ul=nl-nl, v=1
12-07 11:33:14.098 6748 6827 D GAv4 : Hit sent to the device AnalyticsService for delivery
それはまだ文句を言う間。それはまだそれを追跡します。
再生サービスが有効なデバイスのみを対象とする場合は、警告を無視して、AnalyticsReceiverとAnalyticsServiceを追加する必要はありません。詳細は https://developers.google.com/analytics/devguides/collection/Android/v4/dispatch#manual を確認してください。
追加する限り
implementation 'com.google.Android.gms:play-services-analytics:15.0.1
アナリティクスインスタンスを取得して、次のようなトラッカーを設定します。
analytics = GoogleAnalytics.getInstance(this);
Tracker t = analytics.newTracker("UA-AnalyticsContainerID");
マニフェストで CampaignTrackingReceiver を設定するだけです。
<receiver
Android:name="com.google.Android.gms.analytics.CampaignTrackingReceiver"
Android:enabled="true"
Android:permission="Android.permission.INSTALL_PACKAGES">
<intent-filter>
<action Android:name="com.Android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>
CampaignTrackingService は非推奨であり、使用しないでください。最後に、 Android開発者ドキュメント で提案されているように、adbからブロードキャストメッセージを送信するオプションをテストしてみてください。ログにヒットイベントが表示された場合は、数分後の分析ウェブ。
これは、マニフェストファイルに示されているカスタムキャンペーントラッキングレシーバーを使用しているためです。ただし、次の呼び出しによってCampaignTrackingReceiverにリダイレクトしました
新しいCampaignTrackingReceiver()。onReceive(context、intent);
onReceiveで。
キャンペーンデータをsend()する必要がある場合もあります
mTracker.send(new HitBuilders.ScreenViewBuilder().setCampaignParamsFromUrl(campaignData).build());