计算网站上几个文件下载次数的最佳方法

时间:2014-10-20 14:46:38

标签: javascript php html5

问题是"计算网站上几个文件下载次数的最佳方式"

我想做什么:

  1. 跟踪并计算多个文件的下载次数
  2. 对于具有不同扩展名的文件。 (foo.zip,bar.tar.gz,foo2.zip)
  3. 避免依赖服务器端代码。
  4. 我已经看到了使用Apache access.log计算文件下载的多个答案  cat /path/to/access.log | grep foo.zip | grep 200 | wc -l 来自Best way to count file downloads on a website ,这是一个雄辩的解决方案,但需要访问后端日志文件。我希望使用一个大多数javascript的解决方案,它也可以调用php部分的代码。

2 个答案:

答案 0 :(得分:1)

为什么不使用Google Analytics?

https://developers.google.com/analytics/devguides/collection/gajs/eventTrackerGuide?hl=es

如果您的网站已启用Google Analytics,您只需在链接中添加onclick事件,即可创建点击链接的计数。

对于您的示例,链接看起来像:

<a onclick="var that=this;_gaq.push(['_trackEvent','Download','foo',this.href]);setTimeout(function(){location.href=that.href;},400);return false;" href="downloads/foo.zip">Download foo.zip</a>

<a onclick="var that=this;_gaq.push(['_trackEvent','Download','bar',this.href]);setTimeout(function(){location.href=that.href;},400);return false;" href="downloads/bar.tar.gz">Download foo.zip</a>

<a onclick="var that=this;_gaq.push(['_trackEvent','Download','foo2',this.href]);setTimeout(function(){location.href=that.href;},400);return false;" href="downloads/foo2.zip">Download foo.zip</a>

在Google Analytics中,“下载”事件将是所有三个文件的总下载次数,每个文件都有自己的事件“foo,bar,foo2”,这将是每个文件的单独下载次数。

如果要从服务器端执行此操作,则需要在客户端中包含一些代码。使用工具已经存在比使用php和javascript酿造自己的解决方案更有效。

答案 1 :(得分:0)

您可以使用goo.gl或任何其他网址缩短服务,创建下载链接,并获取链接的统计信息