簡體   English   中英

CampaignTrackingReceiver 未注冊 - Google Analytics v4

[英]CampaignTrackingReceiver is not registered - Google Analytics v4

我在我的 android 應用程序中使用谷歌分析 v4。 安裝跟蹤工作了好幾天,突然間我的廣播接收器沒有注冊。

Logcat 說: CampaignTrackingReceiver 未注冊、未導出或已禁用。 安裝活動跟蹤是不可能的。 有關說明,請參閱http://goo.gl/8Rd3yj

這是我在 Manifest 應用程序標簽中所做的:

    <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 過濾器。

我猜你沒有實現 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"/>

我被所有的答案弄糊塗了。 但是通過調試和日志發現它是什么。

基本上:這個警告是在谷歌分析啟動時完成的。 它只是警告您沒有在清單中注冊 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

要檢查它是否真的有效,您可以檢查谷歌分析的日志:

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已棄用,不應使用。 最后,您可以嘗試測試從 adb 發送廣播消息的選項,就像android 開發人員文檔中建議的那樣 - 如果您在日志中看到命中事件,幾分鍾后它也應該在分析網絡中可見。

這是因為您使用的是清單文件中顯示的自定義活動跟蹤接收器。 但是,您確實通過調用將其重定向到 CampaignTrackingReceiver

新的 CampaignTrackingReceiver().onReceive(context, intent);

在您的 onReceive 上。

您可能還需要 send() 活動數據

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

Follow this tutorial for complete setup and understanding of Google Campaign tracking -

 to set up install referrer first you need to add Google Services to your android app. Go to your build.gradle(Project level) and add -

google-services plugin to your build.gradle file:

dependencies {
    classpath 'com.google.gms:google-services:4.3.3'
    // ...
}

And then add Google Analytics dependency to your app level build.gradle file.

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.0.2'
    compile 'com.google.android.gms:play-services-analytics:11.8.0'
}
apply plugin: 'com.google.gms.google-services'

 After adding dependencies we need to set up our AndroidManifest.xml. See below for tested code of AndroidManifest.xml.

<application>
 <service android:name="com.google.android.gms.analytics.CampaignTrackingService"
            android:permission="android.permission.WAKE_LOCK"
            android:enabled="true"
            android:exported="true">
        </service>
        <receiver android:name="com.google.android.gms.analytics.CampaignTrackingReceiver"
            android:enabled="true"
            android:exported="true"
            android:permission="android.permission.INSTALL_PACKAGES">
            <intent-filter>
                <action android:name="com.android.vending.INSTALL_REFERRER" />
            </intent-filter>
        </receiver>
        <receiver android:name=".UtmReceiver"
            android:enabled="true"
            android:exported="true"
            android:permission="android.permission.INSTALL_PACKAGES">
            <intent-filter>
                <action android:name="com.android.vending.INSTALL_REFERRER" />
            </intent-filter>
        </receiver>
        <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"/>
</application>

有關詳細信息,您可以點擊此鏈接-

http://www.digitstory.com/install-referrer-android-campaign-track/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM