使用不同域的iframe跟踪不一致

时间:2012-10-28 06:00:06

标签: javascript google-analytics cross-domain web-analytics

我们有我们的酒店网站,其中实际预订引擎位于iframe内。现在,我们正在验证我们的转换,并发现预订的数量与我们为确认页面提供的综合浏览量不一致。

这是预订表单所在主页内的分析代码。

    <script type="text/javascript">
<!--

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-1301114-2']);
  _gaq.push(['_setDomainName', '.florahospitality.com']);
  _gaq.push(['_setAllowLinker', true]);
  _gaq.push(['_setAllowHash', false]); 
  _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);
  })();
//-->

</script>

在检查可用性按钮的onclick事件中,我输入了此代码。 *return validate(); _gaq.push(['_linkByPost',this]);*

当我点击支票可用性按钮时,它会重定向到reservation.aspx。

在reservation.aspx中我有以下分析脚本

     <script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-1301114-2']);
  _gaq.push(['_setDomainName', '.florahospitality.com']);
  _gaq.push(['_setAllowLinker', true]);
  _gaq.push(['_setAllowHash', false]); 
  _gaq.push(['_trackPageview']);
  _gaq.push(function() {   
  var pageTracker = _gat._getTrackerByName();   
  var iframe = document.getElementById('reservationFrame');   
  iframe.src = pageTracker._getLinkerUrl('https://reservations.synxis.com/xbe/rez.aspx?Hotel=24309&template=flex&shell=flex&Chain=5375&locale=ru&arrive=10/31/2012&depart=11/01/2012&adult=2&child=0&rooms=1&start=availresults&iata=&promo=&group='); });

  (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>

另外,reservation.aspx也是一个iframe,它包含托管在不同域中的预订引擎的实际网址。

在这个iframe中,我们有一个不同的脚本,我们用于跨域跟踪。请注意,此脚本位于body标记内。

<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-1301114-2']);
  _gaq.push(['_setDomainName', 'none']);
  _gaq.push(['_setAllowLinker', true]);
  _gaq.push(['_trackPageview', 'CheckAvailability']);

  _gaq.push(['secondTracker._setAccount','UA-26368520-41']); 
  _gaq.push(['secondTracker._setDomainName', 'none']);
  _gaq.push(['secondTracker._setAllowLinker', true]);
  _gaq.push(['secondTracker._trackPageview', 'CheckAvailability']);

  (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>

如您所见,我们正在使用trackPageview变量来确定转换。如果trackPageview'确认'将有3次网页浏览,我们所做的测试是创建3个已确认的预订并检查谷歌分析。但不幸的是,它只记录了1次网页浏览。

设置错过了什么?我希望至少它会追踪所有这些。

1 个答案:

答案 0 :(得分:0)

我们刚刚删除了iframe,因为在使用iframe时我们还遇到了安全问题。