Google Analytics&的iFrame

时间:2009-09-14 18:18:06

标签: iframe google-analytics

所以我有一个简单的页面,当用户点击链接时,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>
在iFrame中 - 让pageTracker工作。我认为“发布者UA-XXXXX-X”ID将通过cookie传递,一切都会有效吗?

任何想法

1 个答案:

答案 0 :(得分:8)

是的,您必须在框架页面中包含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范围。