Google tag manager
This page was created by Hans.karlsen@mdriven.net on 2022-06-22. Last edited by Edgar on 2025-01-20.

Write the content here to display this box

When you have tracking codes from GoogleTagManager (GTM) or HubSpot or the like, you will probably want them to signal per page.

The problem is: a Single Page Application (SPA) like MDrivenTurnkey does not switch pages - and the tracker becomes unaware.

The different trackers have API's where you can tell them what page is active.

The simplest way is to have a polling script that sends any new browser locations to the tracker. Look at the example below for HubSpot:

<!-- Start of HubSpot Embed Code -->    
    <script type="text/javascript" id="hs-script-loader" async defer src="//js.hs-scripts.com/6xxxx2.js"></script>
<!-- End of HubSpot Embed Code -->    
    
<!-- HubSpot detect page change -->    
    <script>
        (function () {
            var previousState = window.location.href;
            setInterval(function () {
                if (previousState !== window.location.href) {
                    previousState = window.location.href;
                    let page = previousState.split('#')[1];
                    var _hsq = window._hsq = window._hsq || [];
                    _hsq.push(['setPath', page]);
                    _hsq.push(['trackPageView']);
                    console.log('HubSpot track '+page);
                }
            }, 800);
        })();
    </script>
    
    

Instead, put your tracker script in a component's AppWideAngularScriptIncludes.html file like this:

x
MDriven Chat

How would you like to chat today?

Setting up your conversation…

This may take a few moments