Server-Side Google Analytics Client
Oct 5, 2013: php-ga was ported from Google Code where it has 8,000+ downloads and 160+ stares.
NOTE: php-ga is no longer maintained as Google finally released an official server-side tracking API: Measurement Protocol! I couldn't find any well-implemented client library for PHP yet, so feel free to help make php-ga 2.0 a Measurement Protocol PHP client library.
You might also be interested in the companion project php-gacx for Google Analytics Content Experiments.
It's PHP, but porting it to other languages (see below for a Python port) should be easy. Building this library involved weeks of documentation reading, googling and testing - therefore its source code is thorougly well-documented.
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.
CHANGELOG file for details.
- Pageview Tracking
- Event Tracking
- Custom Variable Tracking
- Ecommerce Tracking
- Campaign Tracking
- Social Interaction Tracking
- Site Speed Tracking
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!
- 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.
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);
Thanks to Matt Clarke for two great articles/tutorials:
- TechPad: Developing a cookie-less Google Analytics implementation
- TechPad: Turn Google Analytics into an inventory profiling system
Google Analytics is a registered trademark of Google Inc.