0

We have recently migrated our E-commerce application's front-end from Rails driven views to NextJS. We are using Google Analytics4 to send analytics data.

The issue I am facing is, after migrating to NextJS we see a huge drop (>40%) in automatic collected events by GA such as user_engagement, scroll, click etc.

In Rails, gtag was embedded in the header of the HTML

<!-- Global site tag (gtag.js) - Google Analytics 4 -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXX"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', "G-XXXXX", {user_id: 'XXXX', allow_enhanced_conversions: true});
</script>
<!-- End Global site tag (gtag.js) -->

But in NextJS we are using Google Tag Manager to send analytics data to GA4 using Google Tag.

Since my NextJS app uses App Router, hence page_view events are getting captured successfully. Because both the options:

  1. Page Loads, and
  2. Page changes based on browser history events

under GA > Admin > Data Streams > Enhanced Measurement > Page views are checked.

In GTM the configuration settings for Google tag is:

Tag type - Google tag | Tag Trigger - Initialization - All Pages

enter image description here

With the help of GA4 debug view and GTM preview, I can confirm that:

  1. When the page loads GA4 events like page_view, session_start and first_visit fires successfully.
  2. The first scroll event fires when I navigate to the bottom of the page (no matter if it's a landing page or not)
  3. user_engagement event does not fire even if I browse/navigate through different pages and stays there for 10-15 seconds (one of the criteria of this event)
  4. user_engagement event only fires when I close the tab/window.

I even tried to set update parameter to true and send_page_views to true for the Google tag and set the trigger to "History change" but that's not helping generating user_engagement event (please note that with these changes I have also unchecked "Page changes based on browser history events" in GA settings).

enter image description here

Since 80% of my site pages are cached using CloudFlare caching rules, I tried disabling the cache and test to see if I am able to generate user_engagement - that didn't help! Hence I am also ruling out caching from the list of suspicious items.

I do understand that there are differences between how page renders in SPA vs Rails (full page load) but that shouldn't affect the user_engagement event or does it?

Areas where I need help are:

  1. What is the update parameter of Google tag? What it does? Why it is not helping me in generating user_engagement event?
  2. Do I have to change my existing configuration of Google tag? Or are there any issues with my existing Google tag setup?
  3. Is this how user_engagement works with SPA?
  4. What can I do to increase user_engagement count (and also other events like scroll etc.)?

0

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.