web-dev-qa-db-ja.com

新しいanalytics.jsを使用して複数のアカウントを追跡する方法

Googleの新しいanalytics.jsを使用して、1つのページで2つのアカウントのページビューを追跡する必要があります。古いga.jsを使用して行う方法やチュートリアルの例がたくさんあります。しかし、私が見つけたすべてはこれ Analyticsドキュメントページ だけでした。与えられた例に合うようにコードを書きましたが、最初の(デフォルトの)トラッカーのビューのみを追跡し、2番目のトラッカーは追跡しません。

<script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).Push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
  ga('create', 'UA-XXXXXXXX-3', 'domain.com');
  ga('create', 'UA-ZZZZZZZZ-1', {'name':'b'});
  ga('send', 'pageview');
  ga('b.send', 'pageview');
</script>

誰もが私のコードの何が問題になっているのか考えていますか?グーグルの例によると私にはよく見えます。

21
Frodik

Analytics.jsを使用した複数のアカウントトラッキングのコードは正しいですが、サイトで同様のコードをテストしました。したがって、考えられるエラーについて、以下を確認する必要があります。

1、両方の追跡データが送信されたかどうかを確認します。たとえば、ChromeではGAデバッガプラグインchromeの場合)を使用してから、JavaScriptコンソールで、両方のトラッキングIDについて以下の詳細が表示されるかどうかを確認します

adSenseId        (&a)   425734287 
apiVersion       (&v)   1 
clientId         (&cid) xx.xx
encoding         (&de)  UTF-8 
flashVersion     (&fl)  11.8
hitType          (&t)   pageview
javaEnabled      (&je)  1 
language         (&ul)  en-us 
location         (&dl)  domain.com 
referrer         (&dr)
screenColors     (&sd)  24-bit
screenResolution (&sr)  1366x768
title            (&dt)  yourdomaintitle 
trackingId       (&tid) UA-XXXXXXXX-3 
viewportSize     (&vp)  1364x361 

コードが正しいため、理想的にはこれが表示されるはずです。これは、Webサイトが2つの追跡信号を正しく送信していることを意味します。

2、2番目のトラッキングIDについて、トラッキングIDがGA web property

3、トラフィックを除外する可能性があるウェブプロパティ内の対応するviewfiltersを適用していないことを確認します。いくつかのフィルターを使用している場合は、フィルターされていないビューを取得し、リアルタイムの概要にヒットが表示されているかどうかを確認します

21
tony m

複数の追跡オブジェクトの操作

これを解決するには、データの送信先となるWebプロパティごとに追跡オブジェクトを作成する必要があります。

ga('create', 'UA-12345-1', 'auto');
ga('create', 'UA-12345-6', 'auto', {'name': 'newTracker'});  // New tracker.

実行すると、2つのトラッカーオブジェクトが作成されます。最初のトラッカーはデフォルトのトラッキングオブジェクトであり、名前はありません。 2番目のトラッカーの名前はnewTrackerになります。

両方のトラッカーを使用してページビューを送信するには、コマンドの先頭にトラッカーの名前を付加し、その後にドットを付加します。だから例えば:

ga('send', 'pageview');
ga('newTracker.send', 'pageview'); // Send page view for new tracker
27
Dylan Wood

https://developers.google.com/analytics/devguides/collection/analyticsjs/creating-trackers#working_with_multiple_trackers

これは、4番目の引数を使用して簡略化されています-2015年12月15日にGoogleによって更新されました。

ga('create', 'UA-XXXXX-Y', 'auto');
ga('create', 'UA-XXXXX-Z', 'auto', 'clientTracker');
ga('send', 'pageview');
ga('clientTracker.send', 'pageview');
9
grantpr

私はこれが古い答えであることを知っていますが、両方のアカウントに同時にプッシュするためのこのソリューションについて誰も言及しなかったので、共有すると思いました...

複数のトラッカーを使用する方法がありますが、常に両方のアカウントでプッシュする場合は、次のようにga関数をオーバーライドします。

ga('create', 'UA-XXXXXXXX-1', {
    'name': 'myCustomTracker',
    'cookieDomain': 'auto'
});
ga('create', 'UA-XXXXXXXX-2', 'auto');

ga(function () { //Wait for Analytics to be fully loaded
    var oldGa = ga;
    ga = function () { //Override ga function to call both trackers
        if (arguments && arguments.length > 0) {
            oldGa.apply(null, arguments);
            arguments[0] = "myCustomTracker." + arguments[0]; //Edit first argument to call second tracker.
            oldGa.apply(null, arguments);
        }
    };

    ga('send', 'pageview'); //Perform page view on both trackers at once.
});

このように、以前と同じようにgafunctionsを呼び出して、両方のトラッカーにデータを一度にプッシュできます。

1
alexbchr

Analyticsドキュメンテーションページ の例によると、あなたはそうするべきではありません:

ga('create', 'UA-XXXXXXXX-3', 'auto');
ga('create', 'UA-ZZZZZZZZ-1', 'auto', {'name':'b'});
// note this last argument            ^^^^^^^^^^^^
1
HenrikB