0

非常简单的场景:我只是希望使用谷歌分析来跟踪我的网站访问者点击指向外部网站的链接的每个实例。据我所知,我已经使用事件跟踪完成了这项工作,但是当我点击链接时,我在谷歌分析报告中看不到任何跟踪。

我想知道是否:(a)我的代码有问题;(b) 我没有在我的谷歌分析帐户中查找正确的位置;(c) 两者

下面是我的整个页面,用 111111111 代替实际的帐户 ID:

<!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 回答