web-dev-qa-db-ja.com

Google Analytics API v4 for Android画面ビューを送信しません

ここで述べたように、私はグーグルアナリティクスAPIv4のためにすべてのものを設定しました:
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);
    }


これが私のアクティビティクラスです:

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);
    }
12

@stkentの回答によると、AppViewBuilder()が非推奨になっているため、このコード行を削除することで問題を修正できます。また、フォロー後に同じ問題を抱えている人を支援するために、 this このコード行を削除します

 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);
}

追跡する各アクティビティで

それらの2つの方法に関するグーグルドキュメントからの追加情報

reportActivityStop
reportActivityStart

これを自動追跡で使用するのは簡単なので、無効にすることができます

元の答えはこれに関する@skentに対するものです post

10
Antwan

私はこれに1日負けました。ドキュメントからインターネットコードまで、すべてを試してみましたが、全体的な画面ビューを表示することはできませんでした。最後に、今日の真夜中過ぎに、彼らは現れました。

Googleのリアルタイムデータ(onCreateまたは同様の方法でトラッカーを送信する)が機能している場合は、1日待つだけで、そのデータはGoogleサーバーのどこかで処理され、分析ダッシュボードでしばらくすると準備が整います。

ps。トニーに耳を傾けないでください、彼の問題はこれと同じではありません。しかし、stkentは問題に対していくつかの良い洞察を持っています グーグルアナリティクスはリアルタイムの概要でアクティブなユーザーを表示しません

2
Beemo

追加する

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

マニフェストファイルで、トリックを行います。

2
pallavi

@tonyは正しいです、_HitBuilders.AppViewBuilder_クラスは非推奨ですが、必要がなければ_onStart/Stop_メソッドを実装する必要はありません。述べたように GAのV4チュートリアルで (セクション4)、AppViewBuilderクラスをHitBuilders.ScreenViewBuilder()に置き換えると、すべてのプラットフォームで目的の結果が得られます。

クラスリファレンスAPIの詳細については、こちらをご覧ください: https://developer.Android.com/reference/com/google/Android/gms/analytics/HitBuilders.ScreenViewBuilder.html

1
Lucas Massuh