3

我試圖在禁用Android中的Google分析之前發送事件。但是,該事件並未在實時GA控制檯中顯示。Google analytics不會在setAppOptOut(true)之前發送事件

tracker.send(new HitBuilders.EventBuilder() 
        .setCategory(category) 
        .setAction(action) 
        .setLabel(label) 
        .build()); 
    //disable GA 
    GoogleAnalytics.getInstance(this).setAppOptOut(true); 

感謝您的任何建議。

+0

實時控制檯在60-90秒後顯示事件至少 – KOTIOS 2015-02-24 05:25:57

+0

@diva是的我知道,我測試了很多 – cagryInside 2015-02-24 05:28:30

+0

然後可能有soem其他問題,可能是網絡或GA的編號 – KOTIOS 2015-02-24 05:29:28

回答

1

如果您啓用了谷歌分析日誌,你可以看到,當你調用setAppOptOut(真)谷歌Analytics(分析)將清除所有排隊的點擊率,因爲它最後發送的匹配到谷歌Analytics(分析)服務器:

V/GAV4﹕ Thread[GAThread,5,main]: clearHits called 

當你發現自己dispatchLocalHits()因爲它does nothing with Google Play Services installed沒有幫助。你需要做的是等到調用setAppOptOut(true)後再等待你的命中。但是,由於您不知道何時發送點擊,這不是一件容易的事情。

您可以指定指派時間您的應用程序應該與ga_dispatchPeriod設置(默認爲30分鐘)。如果您等待的時間超過配置的發送期限,則應確保已發送事件,但這不能保證,因爲如果您目前沒有任何網絡連接,GA可能會等待更長的時間發送數據。

如果你會採取這種方法,你必須確保等待在會話的工作,因爲谷歌Play服務的設備上單獨的服務,即使你重新啓動你的應用程序會堅持自己的命中。所以選擇下次啓動你的應用程序也將無法正常工作。

但是,如果選擇退出時間超過30分鐘,則可能對用戶不太好,因爲這會給用戶認爲他們選擇退出後收集和提交數據的時間很長。

一個更好的辦法是讓你的應用程序的所有部分打電話報告數據自己內部的谷歌分析包裝類。然後,每個報告方法都可以檢查是否啓用了Google Analytics(分析),但絕不會調用任何真正的Google Analytics方法。

這樣,即使您沒有撥打setAppOptOut(true),也可以確保您將最終活動發送至Google Analytics,而之後再無事件發送。

請注意,這隻適用於如果你不依賴任何自動跟蹤像automatic reporting of uncaught exceptionsautomatic screen measurement

+0

感謝您的回覆。但是,我已經實現了自己的包裝類來管理Ga事件。真的很奇怪,我們沒有對發送的控制 – cagryInside 2015-03-04 04:09:53

+0

我注意到你在聊天中自己解決了這個問題,但我想我留下了一個答案,讓其他人有同樣的問題在將來找到這個問題。 – nibarius 2015-03-04 20:44:09

相關問題