Recently, we released a powerful set of new APIs to track visitors, page views and goal conversions: Piwik Tracking APIs

If tracking visits using Javascript is not an option for you, you can use alternative ways to record visitors, visits, pages and Goal conversions in Piwik:

  1. Simple Image Tracker
    The Simple HTML Image Tracker tag can be used when Javascript is disallowed but pure HTML allowed: MySpace, Ebay for example, but also email newsletters.
    Note: the code doesn’t use Javascript so Piwik will not be able to track some user information such as search keywords, referer websites, screen resolutions, plugin support and page titles.
  2. Piwik Tracking API
    You can call the Piwik Tracking API using your favorite programming language, over HTTP.
    Piwik comes with the PHP Client ready to use, providing a very easy way to track visits, page views, goal conversions, and also set Visitor details (user agent, language, URL, Referer URL, etc.).
    Clients for Perl, Python, Java or Ruby will hopefully be contributed by Piwik users in the future. Please let us know if you are interested to contribute your client.
  3. Advanced Image Tracker
    The PHP Client can send direct requests to the Piwik API, but it can also generate an advanced image tag. The advanced image tag requires to be loaded in an HTML context.

Tracking API documentation

Learn more about tracking data using the new APIs in the official documentation: Piwik Tracking API documentation.

How Piwik used the new API to improve code quality and stability

We have made great progress recently regarding our Quality Assurance effort.

Using the new Tracking APIs, we added automated tests that

  1. create website and goals
  2. generate controlled hits to the Tracker
    • tracking pages
      • some of which have excluded URL parameters
    • tracking clicks and downloads
    • tracking Goals
      • matching URLs
      • triggered using the Javascript trackGoal() function
    • for several days
    • for several websites
    • with custom referers (direct entry, websites, search, campaigns)
    • with custom browsers and OS
  3. generate hits with invalid states
    1. excluded IPs
    2. invalid websites
    3. simulate search bot visits
  4. Using the Metadata API, we get the list of all Analytics Reports API functions available in Piwik.
    We then call each function over http, and record the output XML containing the API output.
  5. We check that the returned XML is the same as the expected XML.

Using these set of tests, we are now able to detect very easily any regression introduced in the Tracking, Archiving or API code.

Tests now run continuously on Jenkins, our build server. Learn more about our QA process and efforts

Feedback

Please let us know what you think in the comments.

Happy Tracking!!


Matthieu Aubry

While studying in India in 2006, Matthieu had the idea of creating an open source web analytics alternative to Google Analytics. In 2007 he released the first public beta version of Piwik. Matthieu now leads the project from New Zealand, where he likes to spend his days coding new features from the Piwik Roadmap, and helping users and customers use Piwik effectively. Find him on twitter or github.