谷歌Analytics(分析)和的iFrame(Google Analytics & iFrame)

2019-08-06 03:27发布

所以,我有一个简单的页面,当用户点击一个链接上的iframe中打开。 我试图使用

http://www.google.com/support/analytics/bin/answer.py?hl=en&answer=55527

pageTracker._trackPageview('/outgoing/example.com');

在iframe中 - 但似乎它不工作? 我已阅读此页

code.google.com/apis/analytics/docs/tracking/gaTrackingSite.html#trackingIFrames

它似乎是我用的是“iframe.src = pageTracker._getLinkerUrl”传递一些信息的cookie的IFRAME - 问题是,我想跟踪里面的东西的iframe(即如事件等),我得到一个“以pageTracker未定义”的错误。

我需要包括像

<script type="text/javascript">
    var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
    document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
    </script>

内嵌框架内 - 来获得以pageTracker工作。 我认为,“公开UA-XXXXX-X”的ID将通过cookie获得通过,这样就可以了?

有任何想法吗

Answer 1:

是的,你必须包括你的框架页面内GA样板代码

<script type="text/javascript">
    var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
    document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>

浏览器把每一帧画面作为其独立的DOM和JavaScript环境一个单独的窗口,这样一来就能在框架页面访问以pageTracker您必须在此页面中的ga.js脚本也是如此。

请注意,您还需要添加

<script type="text/javascript"> 
 try {
  var pageTracker = _gat._getTracker("UA-XXXXXX-X");
 } catch(err) {}
</script>

所以,实际上是定义pageTracker物件。 最后,也请注意,这两个以pageTracker的框架页和框架页面上都JavaScript对象,但它们具有相同的标识是不同的JS对象。 这就是那个JS保持在其自己的窗口对象,这实际上意味着JS范围内的每个帧的事实的结果。



文章来源: Google Analytics & iFrame