Free web page counters from Neurillion!
The Neurillion Free Web Page Hit Counters are original works that are free of cost and are licensed under Creative Commons Attribution 3.0 License. Please refer to the FAQ and help sections for more information and a proper disclaimer. These counters were written by the author, for the author, to test various methods of recording and displaying a page hit counter. The author makes no claim to quality or robustness, caveat emptor!
Introduction
All of the Neurillion free web page hit counters record a "hit" for a web page -- with varying degrees of sophistication in both how the hits are counted as well as reported. Each of the counters uses a local database, so the counts are kept local on your server.
The primary focus is to implement counters quickly using C++, but other languages such as Perl or shell scripting may be used. Although it's not absolutely necessary to have a database to make a web page hit counter, ALL of these counters depend on the sqlite3 database. The more advanced counters also rely on libgd or Magick++ graphics libraries, javascript, cookies or other items. Some may may combine features from different counters into one.
Each page on this site uses the magick++ counter for a 12 digit counter, rotated 180 degrees (ie: it's upside down and "backwards"). Look at the first R33K chip at the top left of this page. Bugs, known issues and ideas for future versions may be found on the help page.
When it comes to counters, one size definitely doesn't fit all.
Counter Concerns
There are various concerns when considering a counter, such as:
- What defines a "hit"? Is it flexible, configurable?
- How is the "hit" counted? (ie: via img tag, or other -- such as ajax?)
- How is the "hit" stored -- flat file, database?
- Do the "hits" have meta information such as time/date or user information?
- Are cookies used/required?
- What are the pre-requisites and dependencies?
- How are the "hits" retrieved for display? for statistical analysis?
- What is the cost of the counter, in terms of money and resources?
- How is the counter and data supported and maintained? Documentation? Bug fixes?
- Is the counter reliable, dependable, robust? Available?
- How well does it handle concurrency? Performance under load?
Experiments with counters
- "Bug" - Uses 1x1 pixel transparent image, doesn't show count, no server side include.
- Multi Image - Uses multiple <img> tags for counter digits, no server side include.
- gd - Single <img> tag, creates image of count value on demand using libgd.
- magick++ - ImageMagick++ counter.
- ajax - AJAX (javascript).
- unique - Unique hits by time, cookie, etc.