Asynchronously load Google Analytics using requirejs.
Setup
This module utilises requirejs module configuration. It requires the following JS to be added to the page
requirejs.config({
config: {
'GA': {
'id' : 'ACCOUNT_ID'
}
},
paths: {
EventEmitter: 'bower_components/event-emitter/dist/EventEmitter'
GA: 'bower_components/requirejs-google-analytics/dist/GoogleAnalytics'
}
});
Installation
Installation via bower
{
"dependencies": {
"requirejs-google-analytics": "~0.1.10"
}
}
Usage
GA.ready(cb)
- cb - (function) Callback to fire when Google Analytics is fully loaded
require(['GA'], function (GA) {
GA.ready(function (ga) {
// GA is fully loaded
console.log(ga);
});
});
GA.view(override)
- override (string/object) - Either a string to override the default page or an object to override the page/title/location
GA.event(category, action, label, value, fields)
- category (string) - Typically the object that was interacted with (e.g. button) - required
- action (string) - The type of interaction (e.g. click) - required
- label (string) - Useful for categorizing events (e.g. nav buttons)
- value (number) - Values must be non-negative. Useful to pass counts (e.g. 4 times)
- fields (object) - Defines specific field names and values accepted by analytics.js
GA.social(network, action, target, fields)
- network (string) - The network on which the action occurs (e.g. Facebook, Twitter) - required
- action (string) - The type of action that happens (e.g. Like, Send, Tweet) - required
- target (string) - Specifies the target of a social interaction. This value is typically a URL but can be any text (e.g. http://mycoolpage.com) - required
- fields (object) - Defines specific field names and values accepted by analytics.js
GA.timing(category, action, label, value, fields)
- category (string) - A string for categorizing all user timing variables into logical groups (e.g jQuery) - required
- var (string) - A string to identify the variable being recorded. (e.g. JavaScript Load) - required
- value (number) - The number of milliseconds in elapsed time to report to Google Analytics (e.g. 20) - required
- label (string) - A string that can be used to add flexibility in visualizing user timings in the reports (e.g. Google CDN)
- fields (object) - Defines specific field names and values accepted by analytics.js
Ecommerce
GA.ecomTran(data)
- data (object) - an object with the following attributes:
- id (string) - The transaction ID (e.g. 1234) - required
- affiliation (string) - The store or affiliation from which this transaction occurred (e.g. Acme Clothing)
- revenue (currency) - Specifies the total revenue / grand total associated with the transaction. This value should include any shipping or tax costs (e.g. 11.99)
- shipping (currency) - Specifies the total shipping cost of the transaction (e.g. 5)
- tax (currency) - Specifies the total tax of the transaction (e.g. 1.29)
GA.ecomItem(data)
- data (object) - an object with the following attributes:
- id (string) - The transaction ID (e.g. 1234) - required
- name (string) - The item name (e.g. Fluffy Pink Bunnies) - required
- sku (string) - Specifies the SKU or item code (e.g. SKU47)
- category (string) - The category to which the item belongs (e.g. Party Toys)
- price (currency) - The individual, unit, price for each item (e.g. 11.99)
- quantity (currency) - The number of units purchased in the transaction (e.g. 1)
GA.ecomSend()
GA.ecomClear()
Advanced Usage
GA.newTracker(config)
- config (object) - An object the same that would be specified in requirejs.config.config.GA
GA.set(field, value)
- field (string/object) - Either a string containing the name of a field or a mapping of fields and values - required
- value (any) - the value of the field
Create Only Fields
requirejs.config({
config: {
'GA': {
'id' : 'ACCOUNT_ID',
'fields': {
// Create only fields go here:
name: 'myTracker'
}
}
},
paths: {
EventEmitter: 'bower_components/event-emitter/dist/EventEmitter'
GA: 'bower_components/requirejs-google-analytics/dist/GoogleAnalytics'
}
});
Experiments
requirejs.config({
config: {
'GA': {
'id' : 'ACCOUNT_ID',
// Experiment ID and Var go here:
'expId' : $expermentId,
'expVar' : $expermentVar,
}
},
paths: {
EventEmitter: 'bower_components/event-emitter/dist/EventEmitter'
GA: 'bower_components/requirejs-google-analytics/dist/GoogleAnalytics'
}
});