【问题标题】:cross domain google analytics tracking when using fancybox iframes使用 fancybox iframe 时的跨域谷歌分析跟踪
【发布时间】: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', ...]) 事情。

所以我有两个问题:

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

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

【问题讨论】:

    标签: javascript google-analytics fancybox


    【解决方案1】:

    由于您已经在使用 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 ;)
    

    【讨论】:

    • 谢谢。周末后我会试试这个。我认为 _link 方法会强制刷新整个页面。 ://
    • 您可以将 _gaq.push 更改为任何您想要的 _trackEvent、_trackPageview 等。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2018-11-02
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 2013-07-11
      • 1970-01-01
      • 2013-09-09
      • 2015-03-27
      相关资源
      最近更新 更多