【问题标题】:Google Analytics & iFrame谷歌分析和 iFrame
【发布时间】:2015-06-23 02:45:15
【问题描述】:

所以我有一个简单的页面,当用户点击链接时,会打开一个 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 工作。我认为“Publisher UA-XXXXX-X”ID 将通过 cookie 传递并且一切正常?

任何想法

【问题讨论】:

  • 您的网页是否在同一个子域中?

标签: iframe google-analytics


【解决方案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 将每个框架都保存在自己的 window 对象中,这实际上意味着 JS 范围。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-24
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多