0

我已经设置了我们的 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 应该在带有新链接的浏览器地址字段中可见,但这不是正在发生的事情。

有谁看到我做错了什么?

谢谢!

4

1 回答 1

1

您的 jQuery 代码中缺少右括号和括号。您关闭了该.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

编辑:

既然你说这个修复不起作用(注意,你无论如何都需要这样做)......

好吧,我知道代码本身可以工作,我已经测试过了。因此,您的页面上可能有其他内容、某些条件或其他代码阻止它执行。

需要检查的一些事项:

  • 链接是硬编码的还是在应用点击侦听器时存在?

如果您的链接是在代码执行后的某个时间动态生成的(即使它只是 href 属性).click,那么该事件将不会附加到链接上。要解决此问题,您需要进行一些委托事件侦听而不是直接事件侦听。基本上,这个想法是您将事件侦听器附加到从一开始就存在的某个父对象,然后在事件冒泡期间过滤链接。以下是如何执行此操作的示例:

$(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;
  });
});
  • 也许 GA 代码在重定向之前没有足够的时间执行..

尝试添加一个.preventDeafault来抑制正常重定向,然后执行一个.setTimeout500 毫秒的操作,然后更改location.href为目标 URL。或者,尝试添加target='_blank'链接以在新窗口/选项卡中打开它们(因为它将在新窗口中打开,“足够的执行时间”的问题变得没有实际意义)。如果其中任何一个工作,那么您将知道在重定向之前没有给 GA 足够的时间来执行,您将需要执行其中一项以确保它有机会执行。

  • 也许您有其他代码覆盖/覆盖链接的点击事件?

VisualEvent是一个很棒的书签,用于检查添加到链接(或其他元素)的事件。

于 2013-04-28T01:14:12.850 回答