使用fancybox iframe时跨域Google分析跟踪

时间:2012-04-25 17:44:00

标签: javascript google-analytics fancybox

我有一个使用谷歌分析的网站,它使用了许多域名。我被要求通过这样做来添加跨域跟踪:

1)添加异步跟踪器

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-21602333-1']);
_gaq.push(['_setDomainName', 'domain.com']);
_gaq.push(['_setAllowLinker', true]);
_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);
})();

2)将以下代码添加到转到其他域之一的所有链接。

 <a href="http://www.domain-aanvraag.nl[rest van de link]" onclick="_gaq.push(['_link', 'http://www.domain.com']); return false;">Go!</a>) 

_link选项根据google执行以下操作:

  

此方法与_setDomainName()和。一起使用   _setAllowLinker()方法启用跨域用户跟踪。 _link()方法通过URL参数(HTTP GET)将GATC cookie从此站点传递给另一个站点。它还会更改document.location和   将用户重定向到新网址。

确定。这一切都适用于正常的外向链接。

这是问题所在。我有一个表单,用户可以在其中选择两个单选按钮中的一个,在选择一个后,他点击提交按钮。如果选择了第一个单选按钮,则会打开一个fancybox弹出框,其中的iframe指向另一个域上的页面。如果打开第二个单选按钮,则当前窗口将重定向到此域上的另一个页面。

当用户选择第一个选项并点击按钮时,我只想做_gaq_push(['_link', ...])件事。

所以我有两个问题:

  1. 我应该在哪里放置onclick。
  2. 如何使用fancybox使用此代码?它似乎始终设置主屏幕的document.location而不是我的fancybox中的iframe,从而完全刷新我的屏幕。
  3. 到目前为止,我的代码是一个精简的工作示例:https://www.domain.com/test/analytics.html

2 个答案:

答案 0 :(得分:0)

由于你已经在fancybox上使用jquery,你可以使用它。

给单选按钮指定clickme的id,然后将此脚本放在radiobutton

之后
<input id="clickedme" type="radio" name="option" value="1" data-link="http://ato.xximo-aanvraag.nl/Home/Step1?companytype=zzp">

<script>
$("#clickme").bind("click", function(event){
  _gaq.push(['_link', 'http://www.xximo.com']);
  alert('click recorded, you can remove me') // remove if needed
});
</script>

//hoop dat het is wat je zoekt ;)

答案 1 :(得分:0)

我深入挖掘了一下这里的根本问题是我正在尝试创建一个跨域跟踪链接到另一个iframe中的另一个域而不是一个全新的窗口(iframe是由fancybox创建的)。因此,不应使用_link,而应使用_getLinkerUrl,如下所述:

https://developers.google.com/analytics/devguides/collection/gajs/gaTrackingSite#trackingIFrames