2015-05-24 15 views
9

Tôi đang sử dụng Google analytics v4 trong ứng dụng Android của mình. Theo dõi cài đặt đã hoạt động tốt trong một số ngày và tất cả các thiết bị thu phát sóng đột ngột của tôi không được đăng ký.CampaignTrackingReceiver chưa được đăng ký - Google Analytics v4

Logcat nói: CampaignTrackingReceiver chưa được đăng ký, chưa được xuất hoặc bị tắt. Không thể theo dõi chiến dịch cài đặt. Xem http://goo.gl/8Rd3yj để được hướng dẫn.

Đây là những gì tôi đã làm trong thẻ ứng dụng Manifest của tôi:

<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> 

Và tùy chỉnh theo dõi chiến dịch thu của tôi trông như thế này:

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 

    } 
} 

Tôi không thể tìm ra nơi mà mọi thứ đang đi ra khỏi tầm tay. Tôi chỉ đang sử dụng một bộ lọc INSTALL_REFERRER trong tệp kê khai của mình.

+0

Tại sao không chỉ đăng ký cả hai bộ thu (bộ thu tùy chỉnh của bạn và bộ thu Google được cung cấp)? Tạo một thể hiện mới của 'BroadcastReceiver' không phải là thứ bạn nên làm. – ianhanniballake

+1

Tất cả những gì tôi đã làm là theo dõi google về điều này: https://developers.google.com/analytics/solutions/testing-play-campaigns (cuộn xuống dưới đây, có một ví dụ). – pixelscreen

+2

Và hơn nữa "Chỉ có thể có một BroadcastReceiver cho một hành động." Phải không? @ianhanniballake – pixelscreen

Trả lời

12

Tôi đoán bạn đã không triển khai AnalyticsService và AnalyticsReceiver? Đây là những gì tôi đã làm để làm cho nó hoạt động

<!-- 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"/> 
0

Điều này là do bạn đang sử dụng trình theo dõi chiến dịch tùy chỉnh như được hiển thị trong tệp kê khai của bạn. tuy nhiên, bạn đã chuyển hướng nó đến CampaignTrackingReceiver bằng cách gọi

CampaignTrackingReceiver mới(). onReceive (context, intent);

trên yourReceive.

Bạn cũng có thể cần phải send() dữ liệu chiến dịch

mTracker.send (HitBuilders.ScreenViewBuilder mới() .setCampaignParamsFromUrl (campaignData) .build() );

1

Tôi đã nhầm lẫn với tất cả các câu trả lời. Nhưng phát hiện ra nó là gì bằng cách gỡ lỗi và đăng nhập.

Về cơ bản: Cảnh báo này được thực hiện khi khởi động phân tích google. Nó chỉ cảnh báo bạn rằng bạn đã không đăng ký CampaignTrackingReceiver trong tệp kê khai của mình. Nhưng đó là tốt! Vì bạn có máy thu theo dõi riêng của mình. Chỉ cần kiểm tra nhận của bạn bằng cách làm một cái gì đó như thế này, trong khi gỡ lỗi ứng dụng của bạn:

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 

Để kiểm tra thời tiết của nó thực sự làm việc, bạn có thể kiểm tra các bản ghi của Google Analytics:

adb shell setprop log.tag.GAv4 DEBUG 
adb logcat -s GAv4 

Những gì tôi thấy là như sau:

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 

Trong khi vẫn than phiền. Nó vẫn theo dõi nó.

Các vấn đề liên quan