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”

As of April 6, 2020, Google bots will no longer honour data-vocubulary.org markup in your html pages. Structured data based on this markup will lose its value and support. Starting January 2020 Google sent mails to developers that markup on their website is deprecated. The solution(s) The fix for this problem is fortunately easy. Where you’re using the data-vocubilary.org now, you should use the markup described on schema.org. Another…

Continue reading

Waarom er veel versies van Angular zijn

Op LinkedIn vliegen de opdrachten waar met Angular gewerkt wordt je om de oren. Vaak wordt er bij een opdracht omschrijving een hele lijst gegeven van Angular versies waar je ervaring mee moet hebben. Hoe komt het eigenlijk dat er zo veel versies zijn en zijn er veel verschillen? AngularJS en Angular Als je spreekt over Angular spreek je altijd over Angular versie 2 of later. De eerste versie heet AngularJS. Het grootste verschil tussen…

Lees verder

Validatiemeldingen tonen met AngularJS

Vaak krijg ik de vraag hoe het toch komt dat AngularJS velden valideert en foutmeldingen toont voordat een gebruiker iets heeft ingevuld in het webformulier. AngularJS blinkt juist uit in het opzetten van formulieren en het zou dus gemakkelijk moeten zijn om dat aan te passen. Gelukkig is dat zo, maar je zal wel de basis werking van AngularJS formulieren moeten begrijpen. States van een AngularJS formulier Elk formulier van AngularJS houdt…

Lees verder