AngularJS en Google Analytics

AngularJS en Google Analytics

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

Lees ook

Mastering code reviews as junior developer

Pull requests, merge requests, and code reviews. You’ve probably heard these terms before. A code review is the moment developers ask each other for feedback. A bugfix or new feature is finished, and before it can go live, someone else takes a look. Even if the change works functionally, there’s often room to…

Continue reading

10 JavaScript one-liners every developer should know

Code should be readable and pragmatic. For me, that means when I look at a piece of code, I should almost instantly understand what it does. Clear code always has good variable names, is predictable, avoids unnecessary logic, and lives in the right place within a project. But sometimes you need to do something a little complex without turning the rest of your code into a mess. That’s where one-liners come in. Small, pragmatic snippets…

Continue reading

The difference between debounce and throttle

Debounce and throttle are powerful techniques, but only if you really understand what they do. I often ask about them in tech interviews, and to my surprise, many developers (even seniors) struggle to explain the difference. The good news is: it’s actually quite simple. In this post, I’ll break down both techniques and share some practical use cases. If you are unfamiliar with the techniques and are asked about them too in your interview…

Continue reading