在服务器端生成 Google Analytics 事件(__utm.gif 请求)
-
06-07-2019 - |
题
我愿意使用 Google Analytics 来跟踪有关我的客户端/服务器应用程序使用情况的统计信息(用户计算机上没有浏览器!)。
所以我想是否有人尝试过从服务器端代码编写对 __utm.gif 的请求。
我在以下位置找到了有关该请求和相关 cookie 的一些信息: 谷歌网站 但没有有关“utmcc”变量中传递的 cookies 值的详细信息。
我知道我将无法“制作”分析服务器从请求本身派生的一些信息(一举两得:源IP地址!)。我无法从客户端计算机生成请求。
有人有这种情况的经验吗?有详细的资料或者资源吗?任何工作代码片段(任何语言都可以!:)?
解决方案
我最近问了一个类似的问题,有人给了我一个链接,我从同一网站找到了另一个:
http://www.vdgraaf.info/wp-content/uploads/image-url-explained.txt
http://www.vdgraaf.info/wp-content/uploads/urchin-image.txt (包含在这里)
Google 的 Analytics 代码以 JS 库 ga.js 的形式提供。当从此库调用跟踪函数时,会向位于以下任一 URL 的 GA 服务器上的 gif 文件发出请求:
http://www.google-analytics.com/__utm.gif //from http pages https://ssl.google-analytics.com/__utm.gif //from https pages
以下是请求中可用于向 GA 提供详细信息的参数:
?utmwv=1 //Urchin/Analytics version
&utmn=634440486
&utmcs=UTF-8 //document encoding
&utmsr=1440x900 //screen resolution
&utmsc=32-bit //color depth
&utmul=nl //user language
&utmje=1 //java enabled
&utmfl=9.0%20%20r28 //flash
&utmcr=1 //carriage return
&utmdt=Linklove » The optimum keyword density //document title
&utmhn=www.vdgraaf.info //document hostname
&utmr=http://www.google.nl/search?q=seo+optimal+keyword+density&sourceid=navclient-ff&ie=UTF-8&rlz=1B3GGGL_nlNL210NL211 //referer URL
&utmp=/the-optimum-keyword-density.html //document page URL
&utmac=UA-320536-6 //Google Analytics account
&utmcc= //cookie settings
__utma=
21661308. //cookie number
1850772708. //number under 2147483647
1169320752. //time (20-01-2007) cookie first set
1172328503. //time (24-02-2007) cookie previous set
1172935717. //time (03-03-2007) today
3;+
__utmb=
21661308;+ //cookie number
__utmc=
21661308;+ //cookie number
__utmz=
21661308. //cookie number
1172936273. //time (03-03-2007) today
3.
2.
utmccn=(organic)| //utm_campaign
utmcsr=google| //utm_source
utmctr=seo+optimal+keyword+density| //utm_term
utmcmd=organic;+ //utm_medium
请记住, &utmcc
值需要进行 URL 编码。
事实证明,这个答案中的链接有点不可靠,所以这里有一些其他可能有用的资源:
- PHP 服务器端 Google Analytics
- GIF URL 参数 (Google 的故障排除页面)
其他提示
您可能想要 http://code.google.com/p/serversidegoogleanalytics/ 一试。 它为我工作(与http请求的zend框架结合使用)。
在发布此问题多年后,出现了一种新方法。
Google Analytics现在有一个测量协议。您应该支持这一点,因为它支持并记录在案,与尝试模拟不完全支持的协议的其他解决方案不同。
要使用它,您需要创建一个启用了Universal Analytics的新网络媒体资源。
有关开发人员文档中的测量协议的完整详情。
通过在 Firefox 中检查我的 cookie 中是否有一个已知的 Google Analytics 用户的网站,我发现它存储了 3 个值(所有 3 个值均以 2 个下划线开头):
- __utmc - 9 位整数(可能)
- __utma - 非常长的整数,其中包含句点(从以上 9 位数字开始)
- __utmz - 分隔的长字符串句点(以 utmc 的 9 位数字开头)
我的猜测是 utmc 是您的跟踪会话 ID。
作为替代方案,如果您使用的是AWS,您可以在CloudWatch中使用自定义指标,非常易于使用,但您需要处理所有事情,具体取决于您希望通过“服务器端”实现的目标。指标可能正是您所需要的。
有趣的要求......
你最好的选择可能是尝试对谷歌分析javascript进行一些反向工程......
使用firefox和firebug,转到使用谷歌分析的网站,然后打开firebug并查看提交给谷歌分析的GET。如果您可以使用相同的参数和标题创建HttpRequest,那么您应该能够欺骗Google Analytics以为您来自网页。
将脚本嵌入到具有页面标题等可变占位符的HTML页面中,然后在嵌入式IE实例服务器端加载页面。 GA脚本允许您通过为主跟踪功能指定参数来跟踪页面事件,因此您所要做的就是将模板HTML页面保留在内存中,替换占位符,并在嵌入式IE实例中加载页面。 IE实例将解析并执行javascript,就像它是普通页面和宾果游戏一样,你有跟踪。
这当然是理论上的,未经过测试。