计算点击次数的最有效方法

时间:2011-01-20 18:25:20

标签: javascript asp.net sql

我开始在网站上投放一些广告,而我正在尝试确定追踪效果的最佳方式。

具体地,

  1. 计算点击次数的最有效方法是什么?关于我能想到的唯一方法是将广告链接到另一个页面,并将广告ID作为参数(例如adserver.aspx?id = 1234)。然后,另一页将更新数据库并重定向到广告商的链接。但是,为此加载单独的页面似乎效率低下。还有其他选择吗?

  2. 此外,似乎我可能需要知道在给定的一周中发生了多少次点击之类的内容。但是,存储单独的数据库行以及每次单击的日期似乎过多。还有其他人做过这样的事吗?是否可以为每周创建一个新行并为该周发生的所有点击增加一个计数器?

  3. 任何提示赞赏。

2 个答案:

答案 0 :(得分:5)

我建议您的第一个解决方案是最佳选择,实际上它是大多数类似系统(OpenX,Google AdSense等)采用的设计。此外,它还可以帮助您更好地管理横幅,并防止您的网站泄露搜索引擎蜘蛛。

至于性能只是一个好设计的问题,在典型的设计中,重定向脚本将相当轻量级,因此应该相当快地处理请求。值得一提的是,您可以断开数据库更新以减少重定向请求响应时间。

当然还有另一种选择:

而不是自制你自己的横幅服务脚本,而不是实现OpenX,它是免费的,是一个非常好的软件。 OpenX可以在这里找到:

http://openx.org/

这里的开源版本可以在自己的服务器上运行:

http://www.openx.org/publisher/open-source-ad-server

另一种选择是实施类似Google AdSense的内容,并省去寻找广告客户等的麻烦。谷歌还提供工具,允许您销售横幅空间,然后如果您没有活跃的广告客户,则回退到默认的AdSense横幅广告(OpenX将这样做也支持整合AdSense(和其他广告客户))

答案 1 :(得分:3)

您可以使用JavaScript。

打开页面:

  1. 将广告网址发送到客户端
  2. 当用户点击广告时,请使用JavaScript打开该网址。或者,只需使用target="_blank"的锚点。
  3. 记录点击:

    1. 无论哪种方式,都将JavaScript函数挂钩到广告点击事件。
    2. 当用户点击广告时,请使用AJAX调用网络服务。然后,Web服务将记录单击。
    3. 这样广告就会尽快打开,然后浏览器与服务器异步通信以进行记录。

      问题是,如果用户点击广告,页面打开,然后网络服务调用失败会怎样?如果您愿意,可以先调用Web服务,然后只有在呼叫成功时才打开广告。从最终用户的角度来看,可能不是最好的。

      对于您的问题#2:存储每次点击可让您以后获得最大的报告灵活性。如果您设置为每周报告,为什么不设置生成所需报告的每周流程,然后清理数据?您甚至可以暂时清除数据,直到空间或速度成为问题。

      Would it make sense to maybe create a new row for each week and increment a counter for all clicks that occurred that week?可能不是。一次只能有一个进程更新计数器,否则您将丢失数据。获取值然后更新它所必须发生的锁定可能会显着减慢。