簡體   English   中英

適用於Android的Google AnalyticsAPI v4不會發送屏幕視圖

[英]Google Analytics API v4 for Android Does NOT Send Screen Views

我為google analytics api v4設置了所有內容,如下所述:
https://developers.google.com/analytics/devguides/collection/android/v4/
在這里: http //www.javacodegeeks.com/2014/04/working-with-google-analytics-api-v4-for-android.html


我可以看到實時數據,但我無法在特定時間段內看到屏幕,活動用戶,新用戶和頂級設備模型 ,例如“所有時間”。

Analytic不發送屏幕視圖。


這是我的global_tracker.xml

    <string name="ga_trackingId">UA-XXXXXXXX-Y</string>

    <integer name="ga_sessionTimeout">300</integer>

    <bool name="ga_autoActivityTracking">true</bool>

    <bool name="ga_reportUncaughtExceptions">true</bool>

    <screenName name="com.org.ScreenActivity1">Screen 1</screenName>
    <screenName name="com.org.ScreenActivity2">Screen 2</screenName>


這是我的AndroidManifest.xml

        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version"/>

        <meta-data
            android:name="com.google.android.gms.analytics.globalConfigResource"
            android:resource="@xml/global_tracker"/>


這是我的Analytics.java

public enum TrackerName {
        APP_TRACKER, // Tracker used only in this app.
        GLOBAL_TRACKER // Tracker used by all the apps from a company. eg: roll-up tracking.
    }

    HashMap<TrackerName, Tracker> mTrackers = new HashMap<TrackerName, Tracker>();

    public Analytics() {
        super();
    }

    public synchronized Tracker getTracker(TrackerName trackerId) {

        if (!mTrackers.containsKey(trackerId)) {

            GoogleAnalytics analytics = GoogleAnalytics.getInstance(this);

            if (trackerId == TrackerName.GLOBAL_TRACKER) {
                mTrackers.put(trackerId, analytics.newTracker(R.xml.global_tracker));
            }

        }

        return mTrackers.get(trackerId);
    }


這是我的Activity類

protected void onCreate(Bundle bundle){
//......................

Tracker tracker = ((Analytics) getApplication()).getTracker(Analytics.TrackerName.GLOBAL_TRACKER);
        tracker.setScreenName("Main Activity");
        tracker.send(new HitBuilders.AppViewBuilder().build());

//......................

}

    @Override
    protected void onStart() {
        super.onStart();
        GoogleAnalytics.getInstance(this).reportActivityStart(this);
    }

    @Override
    protected void onStop() {
        super.onStop();
        GoogleAnalytics.getInstance(this).reportActivityStop(this);
    }

根據@stkent回答的問題是, AppViewBuilder()已被棄用,因此您可以用delete一個這行代碼,這就是你需要在你的情況下,為了幫助有同樣問題的人以下后解決您的問題, 這個刪除此行代碼

 tracker.send(new HitBuilders.AppViewBuilder().build());

並添加此項

  @Override
protected void onStart() {
    super.onStart();
    GoogleAnalytics.getInstance(this).reportActivityStart(this);
}

@Override
protected void onStop() {
    super.onStop();
    GoogleAnalytics.getInstance(this).reportActivityStop(this);
}

在您要跟蹤的每個活動中

關於這兩種方法的谷歌文檔的其他信息

reportActivityStop
reportActivityStart

使用這個與自動跟蹤是一個noop所以你可以禁用它

這個帖子的原始答案是@skent

我失去了一天。 從文檔到互聯網代碼嘗試各種各樣,沒有任何事情可以顯示我的整體屏幕視圖。 最后,今天午夜過后,他們出現了。

我想,如果Google實時數據(以onCreate或類似方式發送Tracker)對您有用,那么只需等待一天,該數據將在Google服務器上的某個位置進行處理,並在分析儀表板上完成一段時間后就緒。

PS。 不聽托尼,他的問題與此不一樣。 但是stkent對問題有一些很好的見解, 谷歌分析沒有在實時概述中顯示活躍用戶

加入

<application
android:name="mypackagename.MyApplication"
... >

在清單文件中,訣竅。

@tony是對的,不推薦使用HitBuilders.AppViewBuilder類,但如果你不想這樣做,則無需實現onStart/Stop方法。 正如GA的V4教程 (第4節)所述,您可以通過HitBuilders.ScreenViewBuilder()替換AppViewBuilder類,您將在所有平台上獲得所需的結果。

請在此處查看有關課程參考API的更多詳細信息: https//developer.android.com/reference/com/google/android/gms/analytics/HitBuilders.ScreenViewBuilder.html

暫無
暫無

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

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