GTM randomly skips initial pageview in single page app

后端 未结 3 1471
一向
一向 2021-01-07 20:20

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

相关标签:
3条回答
  • 2021-01-07 20:28

    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.

    0 讨论(0)
  • 2021-01-07 20:41

    It looks like analytics scripts are loaded with <script async=true>:

    j.async = true; or a.async = 1;

    Try to remove async and see if it helps.

    0 讨论(0)
  • 2021-01-07 20:54

    You may change the trigger of your UA pageview tag from plain 'pageview' and stick to custom event fired at NavigationEnd

    router.events.subscribe(e => {
      if (e instanceof NavigationEnd) {
        dataLayer = window.dataL
        dataLayer.push({'event':'custom pageview event'});
      }
    })
    
    0 讨论(0)
提交回复
热议问题