我已设置GA代码来处理跨域的跨浏览器跟踪。
我们的GA代码:
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXXX-1']);
_gaq.push(['_setDomainName', 'firstdomain.com']);
_gaq.push(['_setAllowLinker', true]);
_gaq.push(['_trackPageview']);
_gaq.push(['_trackEvent', 'Error-404', 'page: ' + document.location.pathname + document.location.search,' ref: ' + document.referrer ]);
(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>
将onClick _link添加到页面上的元素的jQuery代码:
$(document).ready(function() {
// Add onClick _link to all <a> elements on page where href contains sister sites
$("a[href*='seconddomain.com'],a[href*='thirddomain.com'],a[href*='fourthdomain.com']").click(function() {
_gaq.push(['_link', this.href]);
return false;
});
问题是,虽然我知道您没有在页面上看到链接更改,但当您单击它时,cookie应该在浏览器地址字段中显示新链接,但这不是什么发生。
有谁看到我做错了什么?
谢谢!
答案 0 :(得分:1)
您缺少jQuery代码中的右括号和parens。您关闭.click
函数,但不关闭.ready
函数。应该是:
$(document).ready(function() {
// Add onClick _link to all <a> elements on page where href contains sister sites
$("a[href*='seconddomain.com'],a[href*='thirddomain.com'],a[href*='fourthdomain.com']").click(function() {
_gaq.push(['_link', this.href]);
return false;
});
}); // <-- missing this
编辑
既然你说这个修复不起作用(注意,你还是需要这样做)......
我知道代码本身有效,我已经测试过了。因此,您的页面上可能还有其他内容,某些条件或其他代码阻止其执行。
要检查的一些事项:
如果您的链接是在.click
代码执行后的某个时间动态生成的(即使它只是href attribs),那么该事件将不会附加到链接。要解决此问题,您需要执行一些委派事件侦听而不是直接事件侦听。基本上,我们的想法是将事件侦听器附加到从一开始就存在的某个父对象,然后在事件冒泡期间过滤链接。以下是如何执行此操作的示例:
$(document).ready(function() {
$('body').on("click", "a[href*='seconddomain.com'],a[href*='thirddomain.com'],a[href*='fourthdomain.com']", function(event){
_gaq.push(['_link', this.href]);
return false;
});
});
尝试添加.preventDeafault
以禁止正常重定向,然后执行.setTimeout
类似500毫秒,然后将location.href
更改为目标网址。或者,尝试在链接中添加target='_blank'
以在新窗口/选项卡中打开它们(因为它将在新窗口中打开,“足够的执行时间”问题变得没有意义)。如果其中任何一个工作,那么您将知道GA在重定向之前没有足够的时间执行,并且您需要执行其中一项以确保它有机会执行。
VisualEvent是一个很棒的书签,用于检查添加到链接(或其他元素)的事件。