Non‑Interaction Events in Google Analytics

November 19, 2019
Diagram of user and online interactions, with Google Analytics at the center

Editor's Notes: Google has announced that all Universal Analytics properties must migrate to Google Analytics 4 by July 2023. Companies using Universal Analytics 360 properties have until July 2024, but encouraged to start immediately due to complexity.

Events in Google Analytics are used to track when something happens outside of the page loading. In most cases, the user interacts with the site to cause an event to fire, such as clicking a link, filling out a form, or completing a call to action. Other times, the site dynamically serves the user content, such as impressions of a scrolling homepage banner, or impressions of a featured product or service. 

When we have an event that does not indicate a user performing an action, or a sign of interest, we can designate these as “non-interactions.” It’s not always easy to make this distinction, but it’s important to come up with some standards internally. Take scrolling down the page for instance, even if I arrived on a page and started scrolling, I still might leave in a few seconds, which means I wasn’t really interested and it wasn’t really a meaningful interaction. In that case, we may want to mark scrolling events as non-interaction events.

Non-interaction events are not taken into account when Google Analytics (GA) calculates bounces and session duration. Conversely, interaction events, such as clicking a call to action, are included in our bounce rate and session duration metrics, so it's important to tell GA what type of event we're sending. 

Other examples of non-interaction events can include scroll tracking, engagement timers, videos that automatically play, or product list impressions and product detail pages for Enhanced Ecommerce. Non-interaction events are generally events that fire when the page is loaded. 

Flagging Non-Interaction Events

By default, all events that are tracked into Google Analytics will count as an interaction and affect our engagement metrics. This makes it simple for us when we’re adding events, most examples of GA events are in fact interactions. That puts the responsibility on us to make the determination whether an event should or should not be an interaction.

When we add our non-interaction events, either through the Universal Analytics code snippet or Google Tag Manager, we need to distinguish non-interaction events with an additional parameter. 

For Universal Analytics (analytics.js):

ga('send', 'event',
   'category', 'action', 'label', 'value',
   {'nonInteraction': 1})

For Universal Analytics (gtag.js):

gtag('event', 'action', {
   'event_label': 'label',
   'event_category': 'category',
   'non_interaction': true

For Google Tag Manager:

Screenshot of GTM non-interaction event example


Once we create these non-interaction events, we can ensure that they do not impact our bounce rate by inspecting our hits. Inspection can be completed in many ways, but the Network tab is the first stop. For example, if we load a page with an interaction banner, we should observe that ni will be set to 1:

Screenshot of Ni testing in network tab

Effects on Metrics

Non-interaction events are not accounted for when calculating bounce rate of time metrics. This means that if a visitor views a single page and fires a non-interaction event, the session is still considered a bounce and has a session duration of zero minutes. If the user views a single page but an interaction event is fired, the session is no longer considered a bounce, and the session duration is the time between the pageview and the event. 

If you've been in one of our training classes, you've probably heard us say, "if your bounce rate is less than 10 percent, it's wrong." Non-interaction events that are not tagged correctly are probably the number two cause of skewed bounce rates (behind duplicate pageview tracking). 

Image of session duration calculation

Note that the number of total and unique events, sessions and users are not affected by the non-interaction parameter. You will still be able to view each visitor that arrived on your site.