Javascript 谷歌分析:事件跟踪与虚拟页面浏览

Javascript 谷歌分析:事件跟踪与虚拟页面浏览,javascript,google-analytics,Javascript,Google Analytics,目标:客户希望在其网站上下载/查看特定PDF文件的统计数据 Google Analytics似乎提供了两个选项:事件跟踪和虚拟页面浏览。但是,我不清楚文档中是否有任何一个是跟踪实际文件加载还是单击。在我看来,如果选项是跟踪页面上HTML链接的点击,那么在地址栏中输入地址的视图以及其他技术(如电子邮件)的点击将丢失 我的理解是,基本的结构问题是PDF文件不能包含来自GoogleAPI的JavaScript代码 我的问题是:我是否误解了选项的工作原理?您正确理解了选项 谷歌分析通常不跟踪文件下载。默

目标:客户希望在其网站上下载/查看特定PDF文件的统计数据

Google Analytics似乎提供了两个选项:事件跟踪和虚拟页面浏览。但是,我不清楚文档中是否有任何一个是跟踪实际文件加载还是单击。在我看来,如果选项是跟踪页面上HTML链接的点击,那么在地址栏中输入地址的视图以及其他技术(如电子邮件)的点击将丢失

我的理解是,基本的结构问题是PDF文件不能包含来自GoogleAPI的JavaScript代码


我的问题是:我是否误解了选项的工作原理?

您正确理解了选项

谷歌分析通常不跟踪文件下载。默认的跟踪器是一个javascript实现,因此它可以跟踪执行javascript或单击链接的页面的视图-如果您愿意,可以将pdf文档的链接单击实现为(虚拟)页面视图,但最终跟踪的是链接,而不是文档本身

事实上,有一种方法可以实现GA服务器端(通过,一种与语言无关的协议,用于对Google服务器的http调用),但这或多或少会遇到与日志文件分析相同的问题——Google Analytics的重点是将单个用户操作嵌入到更大的上下文中(用户来自哪个流量源,他之前和之后都做了什么,他是回头客还是新访客等等)如果混合使用客户端和服务器端实现,那么这个上下文很容易丢失(页面视图分组为会话,会话分组为用户;当客户端id更改时注册新用户,当现有客户端id的流量源更改时启动新会话,这很可能在客户端和服务器端跟踪之间切换时发生)。当然,您可以完全在服务器端实现GA,但是您必须自己为每个用户维护一个唯一的客户端id,并找到事件跟踪的解决方案(对于通常不会导致服务器日志文件中出现条目的链接跟踪等事件)


尽管如此,跟踪下载链接而不是文件本身是大多数人所做的,通常使用某种中间下载脚本来防止热链接。如果您想将其注册为事件或虚拟页面视图,则这是一个有趣的问题-我的客户机通常使用虚拟页面视图来处理通常在浏览器中打开的文档er(pdf)还有其他所有的事件,其想法是用户可以从pdf返回到现有的GA会话。

我相信使用Google Tag Manager可以缩小点击和实际下载之间出错的可能性。触发器允许您验证点击,在事件触发之前等待。Simo Ahava已经很好地解释了这一点w关于GA将如何处理这个问题,但通过处理服务器的日志文件来实现这一点很简单。这在1995年是一个已解决的问题。是的,但我的客户对GA更满意,所以我希望找到一个他认为最有效的解决方案。好的,所以一种方法是创建一个单独的“下载页面”(一个普通的PHP(或其他什么)用于发送文件的脚本)。该页面/脚本将具有必要的GA信息,因此无论访问方式如何,都会被计算在内。如果您有一个非空的HTTP-REFERER,则可以将它们从何处反弹回来。虽然我仔细考虑了您的实施建议,但我发现它包含了一个隐含的答案,即事件跟踪和虚拟页面浏览不要跟踪加载,而是点击。嗯,我不是GA专家,但从我上次使用它时起,我记得它来自页面加载本身。它们现在可能还支持跟踪单页网站上发生的点击(我讨厌这种情况,因为这些网站打破了URL的RESTful契约),但从某种意义上说,单击仍然会导致页面加载。我已经阅读了这篇文章,不确定当有人直接在地址栏中键入路径或单击电子邮件中的链接时,这些建议是否有效。如果您在文章中发现了这一点,您能否指定位置?