Google Analytics Bundle
GoogleAnalyticsBundle is a Symfony2 bundle that helps you to push data to Google Analytics.
It could be data like pageview, events etc. It is a bundle implementation of
the Measurement Protocol
This is not a library to pull data from Google analytics. That feature is deprecated from the
The master branch and version 3 and above will be supporting Google analytics universal.
This bundle has a special feature. Say that you want to post data to Analytics. You want to post an event every time someone downloads a file. You may do that from the server like any other library. When looking at the reports you will find that you are missing the information about the actual user for the download event. You can not use a segment to find out which referal the user came from.
This bundle helps you with just that. Before we submit any data we look at the
_ga cookie to find the user's clientId. So now you may use segments and advanced queries to analytics and you will get the expected result.
Read the documentation of the protocol.
//in some container aware class $tracker = $this->get('happyr.google.analytics.tracker'); $data=array( 'dh'=>'mydemo.com', 'dp'=>'/home', 'dt'=>'homepage', ); $tracker->send($data, 'pageview');
Install with composer.
composer require happyr/google-analytics-bundle:3.0.*
Step 2: Register the bundle
Register the bundle in the AppKernel.php
<?php // in AppKernel::registerBundles() $bundles = array( // ... new Happyr\Google\AnalyticsBundle\HappyrGoogleAnalyticsBundle(), // ... );
Step 3: Configure the bundle
# app/config/config.yml happyr_google_analytics: // ... tracking_id: UA-XXXX-Y
If you want to fetch data from google analytics you must install and configure GoogleSiteAuthenticatorBundle. Read its documentaion and then configure the analytics bundle with a
client service and a
view id. The
view id is found in the admin section on Google analytics. Go to Admin > Account > Proterty > View > View settings.
# app/config/config.yml happyr_google_analytics: // ... tracking_id: UA-XXXX-Y fetching: client_service: 'google.client.tobias_gmail' view_id: 0123456789 cache_service: 'doctrine_cache.providers.apc_cache' # optinally a cache service cache_lifetime: 3600 # default
You may then run the following code to get the page views for /example-page.
$fetcher = $this->get('happyr.google.analytics.data_fetcher'); $pv = $fetcher->getPageViews('/example-page');
- Merge pull request #4 from sergiostrampelli/patch-1
By , 2 years ago
- Adding user agent
- Merge pull request #3 from chasen/patch-1
Updated to use the latest stable guzzle version
By chasen, 2 years ago
- Added info about fetching data
- completed adding data fetcher
- Readding functionallity to fetch data from analytics
- Removed extra slash in url
- Whitelist instead of blacklist
- Added path to source
- Added info about the special feature
- Updated client id.
- Using the whole cookie as client ID
- PSR-2 fixes, typos in filenames, doc updates
- improved travis build. Added coveralls
- Added config and implementation for fireAndForget and requestTimeout
- Added more tests
- Added client id provider and some tests
- Bugfixes and added client Id provider
- Guzzle does not support php 5.3
- Added tests
- Added Usage
- First commit of de complete refactoring of the bunle to fit Universial analytics
- Update composer.json
- Added travis and updated tests
- Update README.md
- Added "google/apiclient": "@beta"