【问题标题】:Best way to count number of downloads of several files on website [closed]计算网站上几个文件的下载次数的最佳方法[关闭]
【发布时间】:2014-10-20 14:46:38
【问题描述】:

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

我想做什么:

  1. 跟踪和统计多个文件的下载次数
  2. 适用于具有不同扩展名的文件。 (foo.zip, bar.tar.gz, foo2.zip)
  3. 避免依赖服务器端代码。

我已经看到了多个使用 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 部分。

【问题讨论】:

  • 你必须依赖服务器端代码。
  • 你根本无法摆脱服务器。 JS 代码仅在客户端计算机上执行,不能被信任来执行持久性任务。在任何情况下,您的 JS 都必须将数据报告到某个地方,而那很可能是一个服务器。
  • (all-clientside-)javascript 不能存储任何东西,所以不能按网站计算,只能让每个用户自己计算
  • 我不是在寻找全客户端解决方案,我知道在某些时候需要调用后端来存储计数。相应地调整了问题。

标签: javascript php html


【解决方案1】:

为什么不使用谷歌分析?

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 编写自己的解决方案相比,已经存在更有效的使用工具。

【讨论】:

  • 这是一个很好的答案
【解决方案2】:

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

【讨论】:

  • 好主意,没想过这样做。
猜你喜欢
  • 2010-09-14
  • 1970-01-01
  • 2012-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-10
  • 2023-03-10
  • 2018-03-10
相关资源
最近更新 更多