如何在ASP.NET中跟踪已完成的文件下载

时间:2010-10-07 07:44:41

标签: asp.net file download google-analytics monitoring

我有this ASP.NET web site允许用户下载程序安装包(只是普通文件)。我希望能够跟踪下载完成的时间(即文件已完全下载到用户的计算机),然后调用Google Analytics脚本,将完整的下载报告为“目标”(显然,我的目标之一是增加文件下载量。)

问题是我需要支持直接文件URL,而不是“重定向页面”解决方案。这是因为大量流量来自软件下载站点,这些站点在提交产品时明确要求直接文件URL。也许,他们进行自己的文件分析(即病毒检查)。但是有了这些限制,典型的情况是:

  1. 用户在软件下载网站上访问我的产品列表
  2. 用户点击此网站上的“下载”按钮
  3. “下载”页面通常是重定向,最终通过我最初提交的直接网址将用户带到我的文件,即http://www.ko-sw.com/somefile.exe
  4. 如果在这些条件下,无法进行监控的确切解决方案,可能存在解决方法吗?我想到的是暂时在服务器上存储已执行下载的次数,然后访问管理页面,该页面以某种方式将此数字报告给Google Analytics并最终将其设置为零。通过此解决方法,至少不需要尝试将javascript处理程序附加到非HTML资源。但即便如此,也存在问题:

    1. 如何跟踪下载是否已完成?
    2. 如何跟踪用户地理位置和浏览器功能,以便在报告中进一步显示它们?
    3. 提前感谢大家

6 个答案:

答案 0 :(得分:8)

更好的选择:让用户在安装网络软件后打开网页。示例:请参阅Keepass安装程序。

您可以在GA中跟踪此开放率并获取安装数量。

答案 1 :(得分:4)

根据awstats中止下载有http状态代码206,因此,如果您分析服务器日志以获取此类代码,则可以获得未完成的下载。

答案 2 :(得分:2)

@Kerido~我很好奇商业案例在这里。您是否尝试跟踪安装或下载?如果安装,请使用@SamMeiers解决方案。

但是,如果您正在尝试跟踪下载,那么下一个问题是您使用的是哪个网络服务器基础? IIS? Apache的?还有别的吗?

在IIS中,假设您正在使用7(或更高版本),您可以(轻松?)编写一个HttpHandler来检查要发送的文件的最后几个字节,然后在某处记录日志。

在Apache上,只需设置日志记录就可以告诉你传输了多少字节(httpd.conf中的一个微不足道的变化),然后每天解析日志(awstats [等等]对此非常有用,但你可能不得不写一个sed / awk脚本)并找出完成了多少完整传输。只是取决于你想要多么彻底。

但我回过头来看,这是什么商业案例?如果有未完成的下载,那有什么关系?

答案 3 :(得分:1)

此链接可能可以帮助您:

http://www.devx.com/dotnet/Article/22533/1954

在我的一些工作之前,我曾将它作为参考。

答案 4 :(得分:0)

可以将链接作为目标进行跟踪,这可能对您有用。但是,这不会跟踪下载完成的时间。 http://www.google.com/support/analytics/bin/answer.py?answer=55529

希望这会有所帮助。 干杯 跳跳虎

答案 5 :(得分:0)

我认为@SamMeiers的解决方案非常好,但您可以在安装完成后通过调用Web服务进行优化,但如果在没有Internet的环境中安装应用程序但您可能会强制检查,则可能会发现一个小问题如果有互联网或没有。 您可以在安装start作为开始标志时创建任何触发器,然后在完成时检查是否存在开始标志,然后还下载并安装了应用程序。