I have Pageview
tag in Google Tag Manager that tracks SPA pageviews, identical to the one described in this guide. Basically it is Universal Analytics>
As @kemsky suggested, GTM lifecycle is tied to internal gtm.load
event, which happens on window onload
. So DOMContentLoaded
may be too early to bootstrap.
Considering that GTM script was loaded prior to SPA script,
window.addEventListener('load', () => {
platformBrowserDynamic().bootstrapModule(MyAppModule);
});
callback will be triggered when GTM is ready to receive history change events, and there should be no race conditions.