0

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

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 并将用户重定向到新的 URL。

行。这一切都适用于正常的传出链接。

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

我只想_gaq_push(['_link', ...])在用户选择第一个选项并单击按钮时做这些事情。

所以我有两个问题:

  1. 我应该在哪里放置onclick。
  2. 如何使用 fancybox 使用此代码?它似乎总是设置主屏幕的document.location,而不是我的fancybox中的iframe,导致我的屏幕完全刷新。

到目前为止,这是我的代码的精简工作示例:https ://www.domain.com/test/analytics.html

4

2 回答 2

0

由于您已经将 jquery 用于fancybox,因此您可以使用它。

给单选按钮一个 clickme 的 id,然后将此脚本放在单选按钮之后

<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 ;)
于 2012-04-25T18:21:26.400 回答
0

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

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

于 2012-05-02T08:37:04.723 回答