如何跟踪我的Greasemonkey脚本有多少次自动升级下载?

时间:2014-06-12 19:16:32

标签: google-analytics metadata greasemonkey analytics

我有一个页面,其中包含一系列指向Greasemonkey用户脚本的链接。用户脚本设置了@updateURL个参数,因此当我将新版本上传到页面时,安装了脚本的人员会自动更新其版本,或者询问他们是否要升级。

一切正常。我在托管页面上安装了Google分析,因此我可以看到该页面有多少次点击,但我想知道的是有多少人获得了更新。
普通分析不起作用,因为它们都依赖于某人点击链接,但Greasemonkey下载更新后的文件而不点击任何内容(或者据我所知,触发分析中的页面命中)。

我假设我需要服务器端解决方案,但我不知道它会是什么样子。也许以上关于GM的所有内容都无关紧要,简单的问题是:
如何跟踪从我的服务器下载文件的次数(不依赖于下载链接的点击次数)?

[编辑进一步信息]

@Brock Adams感谢您的回答 - 它非常详细,正是我想要的。我不知道单独的meta.js选项,但是稍微阅读它我发现这是一个好主意,因为它意味着只需要下载meta.js文件(而不是检查更新时,整个user.js文件。当我设置它时,自动更新是一种新的,并没有太多关于它们的文档。 我仍然找不到多少,所以我想知道你是否可以澄清。主user.js文件中的元数据保持不变,只是指向meta.js中的@updateURL并且没有版本号,即:

// ==UserScript==
// @namespace   http://namespace.com/userscripts
// @description some description. 
// @downloadURL https://namespace.com/userscripts/example.user.js
// @updateURL   https://namespace.com/userscripts/example.meta.js
// @include     https://example.com/*
// @grant       none
// ==/UserScript==

然后所有example.meta.js都必须

// ==UserScript==
// @version 2.1
// ==/UserScript==

是正确的吗?再次感谢。

1 个答案:

答案 0 :(得分:2)

执行此操作的唯一方法是处理HTTP服务器日志(由Apache,Nginx等保存)。谷歌分析无法做到这一点,因为它依赖于运行自己的javascript - 这是在脚本更新和直接下载时被绕过的。

您可以从主机控制面板或FTP访问原始HTTP日志。有关更多信息,请咨询您的主办公司。

在原始日志中,直接下载通常如下所示:

107.178.216.165 - - [12/Jun/2014:17:22:35 -0500] "GET /test/Alert.user.js HTTP/1.1" 200 37 "-" "Mozilla/5.0 {redacted} Firefox"

请注意缺少referrer(浏览器信息之前的"_"列),这些通常是来自该会话的给定IP地址的唯一请求,而典型的页面请求GET多个文件每节课。

不幸的是,大多数主机提供的标准日志分析程序是 Webalizer Awstats 。这些都不会帮助您按原样跟踪下载。但是,您可以set up a custom AWStats config file将其配置为将*.user.js个文件视为下载(请参阅this answer for a possible recipe)。


重要提示:当Greasemonkey检查更新时,它会下载@updateURL 指定的文件(如果未指定@downloadURL,则下载@updateURL) - 只是比较版本号。

因此,要跟踪实际下载,@updateURL指令始终use a separate *.meta.js file。这样可以避免将例行检查计为下载。