3

我已经实现了几乎标准的例子:

        <script>

            var _gaq = _gaq || [];
            _gaq.push(['_setAccount', 'UA-mycode']);
            _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>

        <script>

            function recordOutboundLink(link, category, action) {
                try {
                    var myTracker=_gat._getTrackerByName();
                    _gaq.push(['myTracker._trackEvent', category ,  action ]);
                    setTimeout('document.location = "' + link.href + '"', 100)
                }catch(err){}
            }

        </script>

并且链接有这个 onclick 事件:

<a id="latestDownload" href="https://example.com" onClick="recordOutboundLink(this, 'newDownloads', 'latest');return false;">Download latest version</a>

过去 3 天没有跟踪任何事件,这对我来说听起来是错误的。我已经使用 chrome 的 GA 调试插件测试了该页面,它显示事件已发送。

我在这里犯了一些错误吗?

Google GA 调试插件显示(字面意思,未混淆):

Account ID : UA-XXXXX-X

&utmac=UA-XXXXX-X

我需要再次推送“_setAccount”吗?

4

3 回答 3

4

tl;博士...不要_getTrackerByName()打电话,只需使用

_gaq.push(['myTracker._trackEvent', category ,  action ]);

更长的解释:异步跟踪允许使用类似的语法将命令推送到多个跟踪器(请参阅跟踪基础)

_gaq.push(['_setAccount', 'UA-XXXXX-1']);
_gaq.push(['_trackPageview']);
_gaq.push(['b._setAccount', 'UA-XXXXX-2']);
_gaq.push(['b._trackPageview']);

_gaq.push(['myTracker._trackEvent', category , action ]);代码假定您已经myTrackerb上面的跟踪器一样进行了初始化。

由于myTracker从未设置过 accountId,因此UA-XXXXX-X在调试时会显示 accountId。

Specialized Tracking/Outbound Links上的分析代码是错误的,或者只有在名为myTracker.

于 2012-04-18T16:27:10.537 回答
2

myTracker是一个变量,所以你不能真正在字符串中引用它。以下应该工作:

_gaq.push(['_trackEvent', category ,  action ]);
于 2012-04-18T07:15:30.493 回答
0

setTimeout 对我来说似乎有点冒险——它假设 Google Analytics 调用是在 100 毫秒内完成的。

我更喜欢这个:

function trackOutboundLink(url) {
    _gaq.push(['_trackEvent', 'outbound', 'click']);

    _gaq.push(function() {
        window.location = url;
    });
}

这会将重定向排队,直到 Google Analytics 异步调用完成。

连接:

<a href="#" onclick="trackOutboundLink('your-url');return false;">Link</a>
于 2015-03-25T08:56:02.110 回答