Easy use of the Google Analytics Measurement Protocol in PHP

v1.0.0 2015-10-09 20:22 UTC

This package is not auto-updated.

Last update: 2024-05-20 23:03:18 UTC


Build Status Scrutinizer Quality Score Code Coverage Latest Stable Version Total Downloads Latest Unstable Version License

A full featured php client for the Google Analytics Measurment Protocol API. Build upon the shoulders of the great Guzzle.



Use Composer to add this library to your dependencies:

$ composer require krizon/php-ga-measurement-protocol


  • Page tracking
  • Event tracking
  • Ecommerce tracking
  • Social interactions tracking
  • Exception tracking
  • User timing tracking
  • App tracking
  • Non-blocking requests (todo)


$config = array(
    'ssl' => true // Enable/Disable SSL, default false
$client = Krizon\Google\Analytics\MeasurementProtocol\MeasurementProtocolClient::factory($config);
    'tid' => 'UA-XXXX-XXXX', // Tracking Id 
    'cid' => 'XXXX-XXXXX-XXXXX', // Customer Id
    'dh' => '',
    'dp' => '/php-ga-measurement-protocol/phpunit-test',
    'dt' => 'PHP GA Measurement Protocol'


Before you can run the tests make sure you installed the dependencies using composer:

$ composer install

PHPUnit itself is included in the dependencies so now you can call:

$ vendor/bin/phpunit

We have two types of tests:

  • Tests with mocked 200 OK response, @group __nogroup__. This type of tests are used tor testing required fields, asserting classtypes etc.;
  • Tests that do real calls to the Google API, @group internet. The Google API itself always returns a 200 OK so to be sure the requests are transferred and handled correctly you can run the tests of group 'internet'. Before running this group make sure you've configured the correct tracking id in the phpunit.xml configuration by setting the env variable tracking_id. This group is excluded by default but you can run this tests by calling: $ vendor/bin/phpunit --group internet