Google Universal Analytics adapter for AngularJS

Angular Core Dependency: ^1.0

Added by: Sam Deering





Stars: 35

Watchers: 35

Forks: 12

Module Description

Google Universal Analytics for AngularJS

angular-ga is a very straightforward AngularJS adapter of the new google analytics script.

It gives you full control of your analytics, exposing the google's ga() function for you. What it means is, that it will set the page field on every route change for You, but you will have to send the pageviews, events etc. manually. But on the other hand, you have the full control of that process.

Build Status


Embed tracking code

Include the new universal analytics script in your html as usual, but remove ga('send', 'pageview');

Enable the ga module

angular.module('yourModule', ['ga'])

Use ga service in your controllers, directives etc...

angular-ga service is accessible as ga. Use it exactly the same, as ga() asynchronous function:

    .controller('myCtrl', function (ga) {
        ga('set', 'dimension1', 'Hello!');
        ga('send', 'pageview', {title: 'Hello world!'});

Use ga directive in html

Contents of the directive should be the array of parameters for ga() function. You can skip the enclosing array '[]' if you start with the single-quote character.

Of course, you can use angular expressions, as this is evaluated.

Both samples are equivalent to calling ga('send', 'event', 'player', 'play', on the click event:

<a href="#" ga="'send', 'event', 'player', 'play',"></a>
<a href="#" ga="['send', 'event', 'player', 'play',]"></a>

You can call ga several times by passing an array of arrays:

<a href="#" ga="[['set', 'metric1', 10], ['send', 'event', 'player', 'play',]]"></a>

You can change the event by providing ga-on attribute:

<input type="text" ga="'send', 'event', 'focus'" ga-on="focus" />

By using ga-on="init" you can call ga as soon as the html is parsed:

<div ga="'send', 'pageview', {title: 'Hello world!'}" ga-on="init" />

Use ga directive's auto events

If ga attribute is empty, the event is guesses from the context as follows:


  • link-out if href begins with http://
  • link-in if href is anything else, except #
  • button for anything else


  • value of href attribute if present
  • click for anything else


  • value of title attribute if present
  • for input elements value of value attribute if present
  • text contents for anything else

You can use attributes ga-category, ga-action, ga-label and ga-value to override default behaviour. alpha

Module stats last updated: 2017-11-11 16:00:06

Disclaimer: Some data on this page may have been gathered from the authors GitHub respository. If you see any mistakes or outdated information please let us know. Thanks!