antimattr/google-bundle

This package is abandoned and no longer maintained. No replacement package was suggested.

Google Bundle for Symfony2

Maintainers

👁 matthewfitz

Package info

github.com/antimattr/GoogleBundle

Homepage

Type:symfony-bundle

pkg:composer/antimattr/google-bundle

Statistics

Installs: 168 281

Dependents: 3

Suggesters: 0

Stars: 239

Open Issues: 37

v2.0.4 2015-04-01 17:57 UTC

Requires

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 06cf924dc4c71cfd5a181594b92601fa3c1675a8

  • Matthew Fitzgerald <matthewfitz.woop@gmail.com>

symfonyecommerceproductanalyticsgoogleadwordsmapsenhanced ecommerceimpression


README

The GoogleBundle adds the ability to add various Google services to your application. These include Google Analytics, Adwords and Static Maps.

Installation

Add the following to your composer.json file:

{
 "require": {
 "antimattr/google-bundle": "~2.0@stable"
 }
}

Install the libraries by running:

composer install

If everything worked, the Google Bundle can now be found at vendor/antimattr/google-bundle.

Finally, be sure to enable the bundle in AppKernel.php by including the following:

// app/AppKernel.php
public function registerBundles()
{
 $bundles = array(
 //...
 new AntiMattr\GoogleBundle\GoogleBundle(),
 );
}

Configuration

Google Analytics

google:
 analytics:
 enhanced_ecommerce: false
 session_auto_started: true
 trackers:
 default:
 name: MyJavaScriptCompatibleVariableNameWithNoSpaces
 accountId: UA-xxxxxx-xx
 domain: .mdomain.com
 setSiteSpeedSampleRate: 5
 allowAnchor: true
 allowHash: true
 includeNamePrefix: false
 plugins:
 - 'linkid'
 whitelist: [ 'q', 'utm_source', 'utm_medium', 'utm_term', 'utm_content', 'utm_campaign' ]

View

Include the Google Analytics Async template in the head tag or just before the </body> of your layout (The template will lazy load _gaq).

With twig:

{% include "GoogleBundle:Analytics:async_universal.html.twig" %}

Features

Logging a Default Page View
Requires no additional code
Sending a Custom Page View
$this->container()->get('google.analytics')->setCustomPageView('/profile/'.$username);
Adding to Page View Queue

Note: Page View Queue is always executed before a Custom Page View

$this->container()->get('google.analytics')->enqueuePageView('/my-first-page-view-in-queue');
$this->container()->get('google.analytics')->enqueuePageView('/my-second-page-view-in-queue');
Ecommerce Tracking
$transaction = new \AntiMattr\GoogleBundle\Analytics\Transaction();
$transaction->setOrderNumber('xxxx');
$transaction->setAffiliation('Store 777');
$transaction->setTotal(100.00);
$transaction->setTax(10.00);
$transaction->setShipping(5.00);
$transaction->setCity("NYC");
$transaction->setState("NY");
$transaction->setCountry("USA");
$this->get('google.analytics')->setTransaction($transaction);

$item = new \AntiMattr\GoogleBundle\Analytics\Item();
$item->setOrderNumber('xxxx');
$item->setSku('zzzz');
$item->setName('Product X');
$item->setCategory('Category A');
$item->setPrice(50.00);
$item->setQuantity(1);
$this->get('google.analytics')->addItem($item);

$item = new \AntiMattr\GoogleBundle\Analytics\Item();
$item->setOrderNumber('bbbb');
$item->setSku('jjjj');
$item->setName('Product Y');
$item->setCategory('Category B');
$item->setPrice(25.00);
$item->setQuantity(2);
$this->get('google.analytics')->addItem($item);

Enhanced Ecommerce Tracking

Measuring Transactions

https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce#measuring-transactions

$transaction = new \AntiMattr\GoogleBundle\Analytics\Transaction();
$transaction->setOrderNumber('xxxx');
$transaction->setAffiliation('Store 777');
$transaction->setRevenue(100.00); // <== NEW 
$transaction->setTotal(100.00);
$transaction->setTax(10.00);
$transaction->setShipping(5.00);
$transaction->setCity("NYC");
$transaction->setState("NY");
$transaction->setCountry("USA");
$this->get('google.analytics')->setTransaction($transaction);

$product = new \AntiMattr\GoogleBundle\Analytics\Item();
$product->setSku('zzzz');
$product->setTitle('Product X');
$product->setAction('purchase'); 
$product->setBrand('Brand AA');
$product->setCategory('Category A');
$product->setPrice(50.00);
$product->setQuantity(1);
$product->setVariant('Black');
$product->setCoupon('COUPON AAA');
$product->setPosition(1);
$this->get('google.analytics')->addItem($product);

$product = new \AntiMattr\GoogleBundle\Analytics\Item();
$product->setOrderNumber('bbbb');
$product->setSku('jjjj');
$product->setTitle('Product Y');
$product->setAction('purchase'); 
$product->setBrand('Brand BB'); 
$product->setCategory('Category B');
$product->setPrice(25.00);
$product->setQuantity(2);
$product->setVariant('Yellow');
$product->setCoupon('COUPON BBB');
$product->setPosition(2); 
$this->get('google.analytics')->addItem($product);

Measuring Impressions

https://developers.google.com/analytics/devguides/collection/analyticsjs/enhanced-ecommerce#measuring-impressions

$impression = new \AntiMattr\GoogleBundle\Analytics\Impression();
$impression->setSku('zzzz');
$impression->setTitle('Product X');
$impression->setAction('detail'); 
$impression->setBrand('Brand AA');
$impression->setCategory('Category A');
$impression->setPrice(50.00);
$impression->setVariant('Black');
$impression->setList('Search Results Page 1');
$impression->setPosition(1);
$this->get('google.analytics')->addImpression($impression);

$impression = new \AntiMattr\GoogleBundle\Analytics\Impression();
$impression->setOrderNumber('bbbb');
$impression->setSku('jjjj');
$impression->setTitle('Product Y');
$impression->setAction('detail'); 
$impression->setBrand('Brand BB'); 
$impression->setCategory('Category B');
$impression->setPrice(25.00);
$impression->setVariant('Yellow');
$impression->setList('Search Results Page 2');
$impression->setPosition(2); 
$this->get('google.analytics')->addImpression($impression);

Google Adwords

Application config.yml

Enable loading of the Google Adwords service by adding the following to the applications's config.yml file:

google:
 adwords:
 conversions:
 account_create:
 id: 111111
 label: accountCreateLabel
 value: 0
 checkout_thanks:
 id: 222222
 label: checkoutThanksLabel
 value: 0

Controller

$this->get('google.adwords')->activateConversionByKey('account_create');

View

Include the Google Adwords tracking template like this

{% include "GoogleBundle:Adwords:track.html.twig" %}

Google Maps - Static Map

Application config.yml

Enable loading of the Google Maps Static service by adding the following to the applications's config.yml file (The static service does NOT require an API Key):

google:
 maps: ~

Controller

use AntiMattr\GoogleBundle\Maps\StaticMap;
use AntiMattr\GoogleBundle\Maps\Marker;

...

$map = new StaticMap();
$map->setId("Paul");
$map->setSize("512x512");
$marker = new Marker();
$marker->setLatitude(40.596631);
$marker->setLongitude(-73.972359);
$map->addMarker($marker);
$this->container->get('google.maps')->addMap($map);

View

Include the Google Maps in your template like this:

{% if google_maps.hasMaps() %}
	{% for map in google_maps.getMaps() %}
		{% autoescape false %}
			{{ map.render }}
		{% endautoescape %}
	{% endfor %}
{% endif %}