My favorites | Sign in
Project Home Downloads Wiki Issues Source
Project Information
Members
Featured
Downloads
Wiki pages
Links

Server-Side Google Analytics PHP Client

"ga.js in PHP" - Implementation of a generic server-side Google Analytics client in PHP that implements nearly every parameter and tracking feature of the original GA Javascript client.

We love Google Analytics and want to contribute to its community with this PHP client implementation. It is intended to be used stand-alone or in addition to an existing Javascript library implementation.

It's PHP, but porting it to e.g. Ruby or Python should be easy. Building this library involved weeks of documentation reading, googling and testing - therefore its source code is thorougly well-documented.

The PHP client has nothing todo with the Data Export or Management APIs, although you can of course use them in combination.

Requirements

Requires PHP 5.3 as namespaces and closures are used. Has no other dependencies and can be used independantly from any framework or whatsoever environment.

Supported Features

The current release is based on version 5.2.5 of the official Javascript client library, see Changelog for details.

Roadmap

Gotchas

  • 100% namespaced OOP
    As a matter of course.
  • Completely abstracted from any enviroment
    Doesn't rely on any globals like $_SERVER, PHP sessions or whatsoever - implement it the way you want.
  • High-Performance Tracking
    Can be configured to enqueue requests via register_shutdown_function() and to use non-blocking requests.
  • Probably the most comprehensive technical documentation of GA
    More than 50% of all source code lines are PHPDoc and inline comments!

Caveats

  • Google Analytics' geo location functionalities won't work
    Native geo location features like the worldmap view won't work anymore as they rely solely on the IP address of the GA client - which will always be the one of your server(s) when using this library.

Usage Example

A very basic page view tracking example:

use UnitedPrototype\GoogleAnalytics;

// Initilize GA Tracker
$tracker = new GoogleAnalytics\Tracker('UA-12345678-9', 'example.com');

// Assemble Visitor information
// (could also get unserialized from database)
$visitor = new GoogleAnalytics\Visitor();
$visitor->setIpAddress($_SERVER['REMOTE_ADDR']);
$visitor->setUserAgent($_SERVER['HTTP_USER_AGENT']);
$visitor->setScreenResolution('1024x768');

// Assemble Session information
// (could also get unserialized from PHP session)
$session = new GoogleAnalytics\Session();

// Assemble Page information
$page = new GoogleAnalytics\Page('/page.html');
$page->setTitle('My Page');

// Track page view
$tracker->trackPageview($page, $session, $visitor);

Articles

Thanks to Matt Clarke for two great articles:

Disclaimer

Google Analytics is a registered trademark of Google Inc.




Made with love by United Prototype in Cologne, Germany.

Powered by Google Project Hosting