AngularJS en Google Analytics

AngularJS en Google Analytics

Dit artikel is ouder dan vier jaar. De inhoud kan verouderd zijn, vooral bij technische voorbeelden of verwijzingen naar tooling.

Met AngularJS schrijf je in een handomdraai een SPA. Maar hoe krijg je nou inzicht in het gebruik van de app? Bij een reguliere website kun je gebruik maken van Google Analytics. Door de trackings-code van Google Analytics in het html document van de website te plaatsen, kun je het gebruik van de website meten. Elke pagina op de website wordt voorzien van deze code, zodat je kunt zien welke pagina's worden bekeken en hoe bezoekers navigeren op de website.

Doordat een SPA gemaakt in AngularJS uit een enkele template bestaat wordt het gebruik van de bezoeker niet goed gemeten. Ook al kun je in AngularJS andere views laden, de gebruiker zal doordat de app een SPA is de template niet verlaten. De app moet daarom worden uitgebreid met extra code om de bezoekersstromen van de bezoekers goed te kunnen meten.

Als de bezoeker in de SPA klikt op een link wil je dit meten. Als er wordt geklikt gebeuren er twee dingen; de url van de app verandert, en een andere template met controller worden geladen en uitgevoerd - de route verandert dus. Door een event-listener te koppelen aan de router kunnen we nagaan of de route verandert en dus Google Analytics moeten aangeven dat de url is veranderd.

    var app = angular.module('voorbeeldApp', []);
    app.run(function ($rootScope, $location, $window) {
        $rootScope.$on('$routeChangeSuccess', function(){
            $window.ga('send', 'pageview', {
                page: $location.path()
            });
        });
    });

Door de Run-block van AngularJS te voorzien van een event-listener kan een functie worden uitgevoerd zodra de route (url) van de app verandert. Zodra dit event plaats vindt kan een signaal worden gestuurd naar Google Analytics. De ga functie van Google Analytics komt niet uit een andere AngularJS module maar bevindt zich in de window object van het document. We kunnen dit object aanspreken door de AngularJS windowserverice te gebruiken.

Reacties

Er zijn nog geen reacties, laat je reactie achter.

Laat een reactie achter

Heb je een aanvulling, vraag of eigen ervaring bij dit artikel? Deel hem hieronder.

Reacties worden eerst kort gecontroleerd voordat ze zichtbaar zijn.

Bekijk alle artikelen

How to fix “Breadcrumbs issues detected”

Google's retirement of data-vocabulary.org left many websites with breadcrumb warnings in Search Console. This article shows how the old markup differs from schema.org and provides examples using microdata and JSON-LD. It also explains how to check the replacement with the Rich Results Test before considering the warning resolved.

Continue reading

Waarom er veel versies van Angular zijn

AngularJS, Angular 2, Angular 4: waarom bestaan er zoveel namen en versienummers, en waar bleef versie 3? Dit artikel legt de oorspronkelijke overstap van AngularJS naar Angular uit en bespreekt het releasepatroon. Handig als achtergrond bij de versies die je in oudere projecten en opdrachtomschrijvingen tegenkomt.

Lees verder

Validatiemeldingen tonen met AngularJS

Een leeg formulier hoeft niet direct vol rode foutmeldingen te staan. AngularJS houdt per veld en formulier bij wat de gebruiker heeft gedaan en of de invoer geldig is. Met states zoals touched, dirty en submitted bepaal je wanneer een validatiemelding verschijnt. Zo laat je de feedback aansluiten op het invullen van het formulier.

Lees verder