web-dev-qa-db-ja.com

CampaignTrackingReceiverが登録されていません-Google Analytics v4

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つだけ使用しています。

16
pixelscreen

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"/>
14
Nicholas Ng

私はすべての答えに戸惑いました。しかし、デバッグとロギングによってそれが何であるかを発見しました。

基本的に:この警告は、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

それはまだ文句を言う間。それはまだそれを追跡します。

7
TjerkW

再生サービスが有効なデバイスのみを対象とする場合は、警告を無視して、AnalyticsReceiverとAnalyticsServiceを追加する必要はありません。詳細は https://developers.google.com/analytics/devguides/collection/Android/v4/dispatch#manual を確認してください。

2
Sam Lu

追加する限り

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からブロードキャストメッセージを送信するオプションをテストしてみてください。ログにヒットイベントが表示された場合は、数分後の分析ウェブ。

1
mathew11

これは、マニフェストファイルに示されているカスタムキャンペーントラッキングレシーバーを使用しているためです。ただし、次の呼び出しによってCampaignTrackingReceiverにリダイレクトしました

新しいCampaignTrackingReceiver()。onReceive(context、intent);

onReceiveで。

キャンペーンデータをsend()する必要がある場合もあります

mTracker.send(new HitBuilders.ScreenViewBuilder().setCampaignParamsFromUrl(campaignData).build());

0
JoM