Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tree: 2a0bbe2f8f

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.



* The js/ folder contains:

  - index.php - a servlet described below
  - piwik.js - the uncompressed piwik.js source for you to study or reference
  - README - this documentation file

Why Use "js/index.php"?

* js/index.php (or implicitly as "js/") can be used to serve up the minified

  - it supports conditional-GET and Last-Modified, so piwik.js can be cached
    by the browser
  - it supports deflate/gzip compression if your web server (e.g., Apache
    without mod_deflate or mod_gzip), shrinking the data transfer to 8K

* js/index.php (or implicitly as "js/") can also act as a proxy to piwik.php

* If you are concerned about the impact of browser-based privacy filters which
  attempt to block tracking, you can change your tracking code to use "js/"
  instead of "piwik.js" and "piwik.php", respectively.


* piwik.js is minified using YUICompressor 2.4.2.
  To install YUICompressor run:
    $ cd /path/to/piwik/js/
    $ wget
    $ unzip
  To compress the code containing the evil "eval", either apply the patch from,
  or run:
    $ cd /path/to/piwik/js/
    $ sed '/<DEBUG>/,/<\/DEBUG>/d' < piwik.js | sed 's/eval/replacedEvilString/' | java -jar yuicompressor-2.4.2/build/yuicompressor-2.4.2.jar --type js --line-break 1000 | sed 's/replacedEvilString/eval/' > piwik-min.js && cp piwik-min.js ../piwik.js
  This will generate the minify /path/to/piwik/js/piwik-min.js and copy it to

* In a production environment, the tests/javascript folder is not used and can
  be removed (if present).

  Note: if the file "js/tests/enable_sqlite" exists, additional unit tests
        (requires the sqlite extension) are enabled.

Something went wrong with that request. Please try again.