【发布时间】:2015-10-14 23:43:08
【问题描述】:
我有一个使用谷歌分析的网站,它使用了多个域。我被要求通过这样做来添加跨域跟踪:
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', ...]) 事情。
所以我有两个问题:
- 我应该在哪里放置 onclick。
- 我如何通过 fancybox 使用此代码?它似乎总是设置主屏幕的 document.location 而不是我的幻想框中的 iframe,从而导致我的屏幕完全刷新。
到目前为止,这是我的代码的精简工作示例:https://www.domain.com/test/analytics.html
【问题讨论】:
标签: javascript google-analytics fancybox