【问题标题】:Google analytics, how _setDomainName works with iframes?谷歌分析,_setDomainName 如何与 iframe 一起使用?
【发布时间】:2013-01-07 04:15:35
【问题描述】:

在我们的网站上,我们希望使用 Google Analytics 跟踪用户在 iframe 内容中的操作。 iframe 托管在不同的第三级域上。由于某种原因,我的设置不起作用。

情况: 在 iframe 中,我想使用两个谷歌跟踪器:一个来自父站点,一个单独用于 iframe。我还想使用事件和 VPV。浏览页面时可以在GA账户的“实时概览”部分看到。但我没有看到附加到提交按钮单击的 VPV。

我也不太明白函数“_setDomainName”是如何工作的,应该有什么。这些是单独的问题,任何帮助将不胜感激。

设置: 在父网站上:

<script type="text/javascript">

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

$(document).ready(function() {
  var pageTracker = _gat._getTrackerByName();
  var iframe = document.getElementById('myIFrame');
  iframe.src = pageTracker._getLinkerUrl('http://mydomain.iframedomain.net/page.aspx');
});

</script>

在 iframe 页面上:

<script type="text/javascript">

            var _gaq = _gaq || [];
            _gaq.push(['a._setAccount', 'UA-XXXXXX-1']);
            _gaq.push(['a._setDomainName', 'parent.com']);
            _gaq.push(['a._setAllowLinker', true]);
            _gaq.push(['a._trackPageview']);

            /* this is second tracking account */
            _gaq.push(['b._setAccount', 'UA-XXXXXX-2']);
            _gaq.push(['b._setDomainName', 'iframedomain.net']);
            _gaq.push(['b._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);
            })();

        </script>

然后在按钮点击事件上我调用这个函数:

             function track() {
                 _gaq.push(['_trackPageview', '/search-retailer-clicked']);
                 _gaq.push(['_trackEvent', 'Search - Event', 'Click - Event', 'Search Retailer Button clicked']); 
             }

我做错了什么?

【问题讨论】:

    标签: iframe google-analytics cross-domain


    【解决方案1】:

    您已在 iframe (a._setAccount & b._setAccount) 中命名了两个跟踪器,但在按钮点击事件中,您使用的是默认的未命名跟踪器。

    结果是虚拟页面视图和事件被发送到尚未设置帐户的跟踪器。如果您查看跟踪像素请求(通过ga_debug.jsfirebugchrome developer toolsfiddler),它们将显示UA-XXXXX-X accountId。

    你可能想要更多类似的东西:

    function track() {
      _gaq.push(['a._trackPageview', '/search-retailer-clicked']);
      _gaq.push(['a._trackEvent', 'Search - Event', 'Click - Event', 'Search Retailer Button clicked']); 
      _gaq.push(['b._trackPageview', '/search-retailer-clicked']);
      _gaq.push(['b._trackEvent', 'Search - Event', 'Click - Event', 'Search Retailer Button clicked']); 
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多