如何使用Google Analytics跟踪IFrame中的点击?

6
我希望能够在我自己托管的WordPress网站中跟踪iframe中的外部链接点击。我已经使用Google Analytics跟踪入站访问者(在头文件中有GA代码),但我想知道每个页面内的iframe中有多少访问者点击了链接。值得一提的是,iframe来自外部广告商。
这是我收到的iframe代码(使用示例名称代替真实名称):
<iframe src="http://www.advertisersite123.com//widget.html?width=510&height=950&product=2" frameborder="0" scrolling="no" width="510" height="950"></iframe>

这行代码目前贴在single.php上,使得在每篇单独的文章底部都会出现一个链接表格。
我想知道在这个iframe中有多少点击量(只需要知道点击总数即可,不需要知道它们去了哪里)。最好按照我的网站上每个单独的URL进行分解,这样我可以确定哪些URL在iframe内更成功地生成了点击量。
如果可能的话,我想创建一个漏斗图,告诉我哪些访问者(按来源)通过iframe中的点击离开了我的网站。
这些是否有可能?如果可能,我需要添加什么代码到页面中?
感谢您的所有帮助,非常感激!
4个回答

7
您所要求的并不容易实现。通常情况下,如果iframe页面没有和父页面在同一域名下,那么父页面上的javascript无法钩入到iframe页面上的事件中。同样,iframe页面也无法获取父页面的DOM元素。这被称为跨站点脚本攻击(XSS),违反了同源策略。
至少,最简单的方法是将GA代码放在iframed页面上。但这可能不是您能做的事情(尽管向供应商询问不会有坏处)。
但是,一些供应商(通常是社交媒体供应商,如Facebook、Google和Twitter)会提供输出包含信息的iframe的小部件。他们会设置其服务器以允许跨域脚本,这将允许您钩入iframe的DOM。通常,他们会提供API以及小部件,使您更容易钩入相关事件(如共享事件),以便您不必自己编写太多代码。
总之,长话短说,如果没有iframe域名负责人介入,您就无法对其进行跟踪。

明白了。谢谢你为我澄清这个问题。那么,甚至没有办法知道有多少访问者通过 iframe 退出了吗?或者有类似的后门分析方法来获得粗略的估计吗? - Colin Rock
没有,除非你在iframe页面本身做一些操作。理解这是一种安全措施,页面不应该能够看到iframe,反之亦然,特别是当它们属于不同的域名时。如果被允许这样做,各种疯狂的事情可能发生。我明白你的困扰;这对于分析与第三方供应商的内容嵌入页面来说是一个巨大的障碍 :( 但事实就是如此 - CrayonViolent
由于安全策略很可能永远不会消失,唯一的选择是与供应商合作,在其iframe内容上实现跟踪,或者想出一个不同的系统来包含页面上的信息。也许供应商提供了一个服务器端API,可以让您在服务器端检索内容,然后将内容输出到父页面上,就像它是您自己的内容一样。然后,您就可以轻松地附加GA内容。您会惊讶于第三方供应商愿意与此类事情合作的频率有多高。 - CrayonViolent
第三方供应商能够为用户提供分析API是他们的一个很大的卖点。我个人已经与很多随意的供应商合作,以建立这种东西。 - CrayonViolent
感谢您提供的额外信息和建议。看起来我需要与广告商沟通,看看他们能为我做些什么,因为目前跟踪完全无效。你会认为这些公司会关心这样的事情... - Colin Rock

1

尝试过事件吗?

如果点击不在 iframe 中:

_gaq.push(['_trackEvent', eventCategory, eventAtion, eventLabel]);

如果点击发生在 iframe 内部,你应该使用:
window.parent._gaq.push(['_trackEvent', eventCategory, eventAtion, eventLabel]);

只有在您控制主机网站和iframe内容网站时,这才是可行的。在OP的情况下,这不起作用。 - Lex

1
我正在寻找类似的东西,然后发现了这个。这个jQuery 插件 可以让你跟踪一个iframe。

1
这很棒,但对于移动设备不起作用,因为它依赖于鼠标位置。 - rgilligan

1

这是一个旧的帖子,但无论如何它可能会有所帮助,特别是因为这是使用GA4的解决方案,通用分析将于2023年7月1日停止支持。

我找到了一种使用Google Track Manager和GA4的解决方案,可以跟踪iframe中任何区域内的点击,而不管具体位置在哪里。我喜欢这个解决方案,因为不需要为iframe安装专用的GTM容器,也不需要联系iframe第三方开发人员向调用者提供数据。这很简单明了。

所以我按照这个链接中所解释的步骤完全操作:

https://ezsegment.com/tracking-iframe-interactions-using-gtm/

对我来说它起作用了。


我使用这个答案来简单地追踪是否与一个iframe进行了交互。在我们的情况下,它是一个播客播放器。由于我们只想知道一个真/假 - 人们是否与播放器进行交互,这个答案完美地起到了作用,并且不需要其他方面的特殊配置。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接