0

非常に単純なシナリオ: Google アナリティクスを使用して、サイトの訪問者が外部 Web サイトへのリンクをクリックするすべてのインスタンスを追跡したいだけです。理解できる範囲でイベント トラッキングを使用してこれを実行しましたが、リンクをクリックすると、Google アナリティクス レポートにトラッキングが表示されません。

(a) コードに何か問題があるかどうか。(b) Google アナリティクス アカウントの正しい場所を探していません。(c) 両方

以下は、実際のアカウント ID を 111111111 に置き換えたページ全体です。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>

    <body>
        <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-1111111111-1', 'mysite.com');
            ga('send', 'pageview');
        </script>
        <script type="text/javascript">
            var _gaq = _gaq || [];
            _gaq.push(['_setAccount', 'UA-1111111111-1']);
            _gaq.push(['_trackPageview']);

            (function () {
                var ga = document.createElement('script');
                ga.type = 'text/javascript';
                ga.async = true;
                ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
                var s = document.getElementsByTagName('script')[0];
                s.parentNode.insertBefore(ga, s);
            })();
        </script> <a target="_blank" onClick="_gaq.push(['_trackEvent', 'Links', 'Click', 'CNN']);"
        href="http://www.cnn.com">CNN</a>
        <br/>
    </body>

</html>
4

1 に答える 1

1

コードにはいくつか問題があります。

アナリティクスのバージョン

古いものga.jsと新しいものを混同しているanalytics.js

新しいものだけを使用してくださいanalytics.js

レースコンディション

イベント onClick を追跡していますが、この時点でブラウザはすでにページを離れており、リクエストが通過しない可能性があります。

基本的にcnn.com、イベントを開くことと送信することは、ブラウザー ウィンドウで競合します。

hit callbackと setを使用window.location.hrefすれば問題ありません。

ga('send', 'event', {
  'eventCategory': 'Links',
  'eventAction': 'Click',
  'hitCallback': function() {
    window.location.href = "http://www.cnn.com";
  }
});

このように、ブラウザはイベントが送信されるのを待ってから にアクセスしますcnn.com

于 2013-08-28T07:44:56.373 に答える