irazasyed / laravel-gamp by irazasyed

Send analytics data to Google Analytics from Laravel. A package for GA Measurement Protocol API
1,245,345
328
19
Package Data
Maintainer Username: irazasyed
Maintainer Contact: syed+gh@lukonet.com (Syed Irfaq R.)
Package Create Date: 2015-02-27
Package Last Update: 2024-02-12
Home Page: https://bit.ly/laravel-gamp
Language: PHP
License: MIT
Last Refreshed: 2024-04-19 15:12:50
Package Statistics
Total Downloads: 1,245,345
Monthly Downloads: 18,460
Daily Downloads: 878
Total Stars: 328
Total Watchers: 19
Total Forks: 32
Total Open Issues: 2

Laravel-GAMP Package

Join the PHP Chat community Laravel & Lumen Package Latest Version on Packagist Software License SensioLabsInsight Total Downloads FOSSA Status

Laravel GAMP: Google Analytics Measurement Protocol Package for Laravel 5 & Lumen 5.

Send data to Google Analytics from Laravel/Lumen. Supports all GA Measurement Protocol API methods.

Laravel GAMP

Quick start

If you're using Laravel 4.2.* or 5.0.* on PHP 5.4 & above, Please use 0.5 branch. Otherwise, Just follow the below instructions.

Note: 0.5 branch is outdated and no longer supported. Consider upgrading if you're one of those users.

Install

Step 1: Install Through Composer

You can either add the package directly by firing this command

$ composer require irazasyed/laravel-gamp

Or add in the require key of composer.json file manually

"irazasyed/laravel-gamp": "^1.0"

And Run the Composer update command

$ composer update

Step 2: Add the Service Provider

Laravel

Open config/app.php and, to your "providers" array at the bottom, add:

Irazasyed\LaravelGAMP\LaravelGAMPServiceProvider::class
Lumen

Open bootstrap/app.php and add register the service provider by adding:

$app->register(Irazasyed\LaravelGAMP\LaravelGAMPServiceProvider::class);

Step 3: Add Facade (Optional) (Laravel Only)

Optionally add an alias to make it easier to use the library. Open config/app.php and, to your "aliases" array at the bottom, add:

'GAMP'  => Irazasyed\LaravelGAMP\Facades\GAMP::class

Step 4: Publish Config (Laravel Only)

Open your terminal window and fire the following command to publish config file to your config directory:

$ php artisan vendor:publish --provider="Irazasyed\LaravelGAMP\LaravelGAMPServiceProvider"

OR

$ php artisan vendor:publish

The former command publishes config file for just this package and the latter publishes vendor files for other packages too. Depending on what you want to do, you can use any (Doesn't really matter).

Usage

Open config file config/gamp.php and set the tracking_id with your Google Analytics tracking / web property ID. Refer the config file for other default configuration settings.

This Package adds Laravel Support to GA Measurement Protocol PHP Library by THE ICONIC. It's simply a wrapper around the library with default config for easier usage with Laravel. So all the methods listed here are available and will work seamlessly.

Example Usage

Send a Page view hit:

use Irazasyed\LaravelGAMP\Facades\GAMP;

$gamp = GAMP::setClientId( '123456' );
$gamp->setDocumentPath( '/page' );
$gamp->sendPageview();

Send an Event:

use Irazasyed\LaravelGAMP\Facades\GAMP;

$gamp = GAMP::setClientId( '123456' );
$gamp->setEventCategory('Blog Post')
->setEventAction('Create')
->setEventLabel('Using GAMP In Laravel')
->sendEvent();

Config Overview

Open the config file for detailed comments for each option.

Set your Google Analytics Tracking / Web Property ID in tracking_id key [REQUIRED]

'tracking_id' => 'UA-XXXX-Y',

All other configuration options are optional, use as per your requirements.

To send data over SSL, set is_ssl to true.

'is_ssl' => true,

To disable library in Staging/Dev env (Prevents the library from sending any hits to GA), set is_disabled to true.

'is_disabled' => true,

To Anonymize IP, set anonymize_ip to true.

'anonymize_ip' => true,

To Make Async Requests, set async_requests to true.

'async_requests'  => true,

...

Refer the library's documentation for other remaining methods and examples, they all work.

Note: You don't have to use the protocol version, tracking id, anonymize ip and async request (non-blocking) methods from the original library as they're automatically set in Service Provider when the package is initialized based on the config file. As long as you update the config file with correct settings, it should work just fine.

Additional information

Any issues, please report here

Credits

License

The MIT License (MIT). Please see License File for more information.

FOSSA Status