使用Google Analytics跟踪JavaScript覆盖/对话框

3

我需要使用javascript(在我的情况下是jQuery)使对话框能够作为唯一页面视图在Google Analytics中被跟踪,尽管它只是一个模态覆盖层。

为了上下文的目的,我不希望用户离开页面,并且对话框内容是通过ajax调用加载的。


仅记录事件是否足够?还是需要完整的页面视图? - Babak Naffas
说实话,我对GA的了解有点浅。在我的用例中,我需要在对话框模态覆盖层中加载网站上的产品。用户所在的类别页面需要是用户停留的页面。跟踪产品需要像网站上的任何其他页面一样“工作”。 - Dominic Webb
所以,您是否正在寻找在模态窗口中进行多页面查看,取决于其中的项目点击?你将使用什么样的DOM元素?通常最容易将这些加载与链接上的点击相关联。 - Yahel
我想尽可能地保持基本的“加载页面,注册视图,点击另一页注册另一个视图”的模型。你的问题@yc确实提出了一个问题,当有人关闭对话框(在我的用例中是产品页面)时,这是否构成类别页面的新视图。此外,如果我绑定左右箭头键,它将分别加载前一个或后一个产品。这应该使用GA注册页面视图。绑定将触发下一个/上一个产品HTML的新ajax请求。 - Dominic Webb
如果您遵循以下模型:所有常规 HTML 页面都包含一个单独的 trackPageview 调用,每个将更改为另一页模态页的绑定也会跟踪另一个 pageview,只要您不在模态框的“关闭”操作上绑定它,背景类别页面就不会有“额外”的页面视图,因为该页面不需要从头加载,因此不会触发新的 trackPageview 调用。 - Yahel
好的,我会尝试并反馈。 - Dominic Webb
2个回答

11

假设您正在使用 Google Analytics 新的异步代码,您只需将此代码放置在呈现模态对话框的JavaScript块中即可。

 _gaq.push(['_trackPageview', '/fake/modal/path/here']);

如果您正在使用旧代码,

   pageTracker._trackPageview('/fake/modal/path/here');
基本要点是,你应该在绑定更改模态框事件的任何地方附加_trackPageview调用。如果您正在为多个模态框页面查看此内容,则需要手动编码每个内部模态框页面或以编程方式命名它们。如果这些模态框更改会触发URL哈希的更改,则可以尝试使用此方法:跟踪目标漏斗中的锚点链接

1
很好。当你说“在哪里呈现你的模态对话框”时,你是指触发对话框的HTML中还是组成对话框的返回HTML中? - Dominic Webb
1
任意一种方式(假设您的意思是在 HTML 的 <script> 标签内),但我认为前者更易于维护。 - Yahel

0
根据Google的文档ga.js现在是一个遗留库。因此,如果您正在使用最新版本的该库,即analytics.js,则响应将如下所示:
ga('send', 'pageview', '/fake/modal/path/here');

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