Skip to main content

How to track scroll depth conversions in GA4

Daniel Perry-Reed29 April 20223 min read
How to track scroll depth conversions in GA4

Sometimes you cannot use Google Tag Manager (GTM) to log additional events on your website for any number of reasons. For example, you might not use GTM in the first place, or you might not have access. Luckily, Google Analytics 4 (GA4) has a new feature that enables us to create new events off of the back of existing events, all from inside GA4 itself.

A good application I have recently used this new feature on is where I wanted to measure some form of content consumption on this blog. Reporting purely on total page views and engagement time doesn’t always tell me enough. I have no idea if the browser tab is even visible in the user's browser or even if the content was read, just that the blog page was loaded.

Within the automatically collected Enhanced Measurement events, one of them is called ‘scroll’ which tracks scroll depth at 90% on all pages. The issue with this however is that it fires on all pages. If I want to measure this as a conversion, I need this to only fire on the pages I want it to – blog pages in my example.

Luckily (again) GA4 has a feature we can use that allows us to create an event from existing events. There are two ways to get to the event creation screen, one is to go Configure > Events > Create event:

Google Analytics 4 (GA4) interface highlighting the create event feature in the configure workspace

And the other is to go Admin > Data Streams > (select a Data Stream) > More Tagging Settings > Create events:

Google Analytics 4 (GA4) interface highlighting the create event feature in the data stream tagging settings

Either way, you get to a screen where you can add new rules. Click Create and the config panel pops out:

Google Analytics 4 (GA4) create event interface

So what I needed to do is look for the ‘scroll’ event and make a copy of that when it’s seen on a blog page. I’ll call this event ‘blog_scroll’, and look for a pattern in the page_location parameter. For my WordPress website, I went for page_location contains (ignore case) “/2022/”.

It’s not very future-proofed, I know. I hope they roll out regex support soon so that I can use something like ".*\/202[0-9]\/.*" or similar.

Google Analytics 4 (GA4) create event interface filled out for the blog_scoll event

After you click save, you should see it come through the real time reports after a few minutes, and then into the standard events reports the following day:

Google Analytics 4 (GA4) events report showing the blog_scroll event

I marked this event as a conversion, so that I can see the attribution data in the Advertising workspace, and I could optimise any Google Ads campaigns or Google Optimize AB tests to it.

So there you have it, this is how you can set up a new event in GA4 without needing to use GTM or any custom code deployed to the site. You can use this method to create any event – not just for blog page scrolls like I have done in this example. You just need an existing event that you can use to trigger your new one.


Suggested content

Measurelab awarded Google Cloud Marketing Analytics Specialisation

At the start of the year, if you’d asked us whether Measurelab would be standing shoulder to shoulder with Europe’s biggest consultancies by September, we would've been surprised. Not because we don't believe in ourselves, but because these things feel so distant - until suddenly, they’re not. So, here it is: we’ve been awarded the Marketing Analytics Services Partner Specialisation in Google Cloud Partner Advantage. What’s the big deal? In Google’s own words (with the obligatory Zs): “Spec

Will Hayes11 Sept 2025

BigQuery AI.GENERATE tutorial: turn SQL queries into AI-powered insights

BigQuery just got a major upgrade, you can now plug directly into Vertex AI using the new AI.GENERATE function. Translation: your analytics data and generative AI are now best friends, and they’re hanging out right inside SQL. That opens up a whole world of new analysis options for GA4 data, but it also raises some questions: * How do you actually set it up? * What’s it good for (and when should you avoid it)? * Why would you batch the query? Let’s walk through it step by step. Step 1: H

Katie Kaczmarek3 Sept 2025

How to start forecasting in BigQuery with zero training

If you’d told me five years ago that I’d be forecasting product demand using a model trained on 100 billion time points… without writing a single line of ML code… I probably would’ve asked how many coffees you’d had that day ☕️ But its a brand new world. And it’s possible. Let me explain What is TimesFM? TimesFM is a new foundation model from Google, built specifically for time-series forecasting. Think of it like GPT for time, instead of predicting the next word in a sentence, it predicts t

Katie Kaczmarek14 Jul 2025