Search Titan CMS

Skip to Content
Titan CMS Logo
Main Content
Hiker Looking Out Over Mountains

GA4 Setup Tips

The (non-) Definitive Guide
By Fred Pike
June 1, 2026
16 Minute Read

Updated: June 1, 2026 & May 20, 2022 
Originally Published: Oct. 21, 2020

Google Analytics 4 (GA4) has been the only version of Google Analytics available since July 2023, when Universal Analytics (UA) was officially sunset. It has matured significantly since its early days, and it's now a robust, full-featured analytics platform – though it still rewards those who take the time to configure it properly. Updates and improvements continue to occur on a regular basis. It's still an incredibly fun time to be working with GA. 

GA4 is easy to set up and offers great insights even with a plain-vanilla installation. However, as with any tool, you should take extra steps to ensure you're maximizing the GA4 setup for your website.

This guide is what I've discovered and refined over the years. I'll keep adding to this post as things change.

Index

 

 

Tip 1: Check Your Site-Search Settings

GA4 will track several user interactions by default: page views, outbound links, downloaded files, scroll depth, video plays, and site search terms. Those site-search terms are a great insight into your website visitors – they're typing, into your website's search box, exactly what they're looking for. You definitely want to capture those.

Different websites use different conventions to indicate a search term. Some use the word "query" to show that; other common examples are "s" or "keyword".

To see what your website uses, go to the search bar and type in something, then look at the URL. You’ll see something like this:
 

A view of GA4 query URLs in a browser search bar

If the word or letter your website uses to designate a search term is "q," "s," "search," "query," or "keyword," you're in luck. Those are all covered by the default GA4 setting.

If you have something different, like we do on the Northwoods website, you have to make an adjustment.  The phrase that designates a search term on our website is “Search_Keywords”.

If you don’t have one of the default search terms, let’s walk through how to make sure your search terms are being tracked.

To do these steps, you will need “Edit” rights in your GA4 account.

1. Go into the GA 4 Admin screen and click on the “Data Streams” option.

Where to access Data Streams in GA4

2. Click on the right arrow on your Web property.

An image from the GA4 interface showing Data Streams

3. In the “Enhanced measurement” window that opens up, click on the settings gear icon then “Show advanced settings” under Site search.

Web stream details window highlighting placement of the gear settings icon.

The Enhanced measurement window in GA4

4. You can see the default search term parameters that already exist (in box 1). In box 2, type in the term or letter that your website uses to designate a search term. In Northwoods’ case, that’s “Search_Keywords." Then “SAVE” your work.

The Enhanced measurement screen in GA4

5. That's it! From this point forward, any search terms entered onto the site by your users will be captured.

(back to index)

 

Tip 2: Check your "Data Retention" Settings

While you're in the GA4 Admin, go to "Data Retention" under Data collection and modification.

By default, the data retention is set to "2 months." This has been a consistent GA4 default – and it still trips people up.

The Data Retention option in the GA4 interface

You probably want to set that to the other option, 14 months.

A user and event data retention screen in GA4

There's a lot of confusion about what this setting does. It has no impact on the standard aggregated reports in the UI – you'll be able to see information in those reports going back as long as you've collected data.

The setting does affect Explorations, though. If you are building your own set of reports, you won't be able to go back more than the 2 months or 14 months you specified. So it's a good idea to choose 14 months if you want any type of meaningful time-based Explorations.

Also: Note the toggle for "Reset user data on new activity." By default, that's on, which makes sense. It just means that, regardless of which limit you choose, each time a user visits your website, the clock resets to when their data will be deleted.

The user and event data retention screen in GA4

Make sure to "Save" your changes!

(back to index)

 

Tip 3: Create Custom Insights

Here’s the best tip so far – not only because some day it’ll warn you about something catastrophic happening on your website, but because it’s kind-of hidden.

GA4 relies on machine-learning (ML) insights to supplement the stripped-down UI. Got something weird happening on your site? Ideally, an insight will report on that anomaly. But there are also some custom insights you'll want to enable.

The insights are available in a couple of places, including on the home page. Go ahead and click on “View all insights”.

The View all insights option in GA4

In the next page (home / insights), click on "Create."

The View all insights option in GA4

You'll see a list of suggested custom insights, all of which could be important depending on your website. But one of them will be important for all websites – the "Anomaly in daily views" (1). Here's where you can set up a notification that emails you about anomalies in page views. (e.g., you had zero page views today. I bet something's broken!)

Go ahead and click on the “Review and create” link (2).

An image of the Create Custom Insight screen in GA4

Now you have a choice of specifying exactly what you want to be notified about. I can’t tell you how happy this makes me. It’s a wonderful practice to set up notifications when things are going wrong on your website. Most people don’t do this (it’s done through custom alerts in the older version of GA), but GA4 makes it very easy to set up. So easy, in fact, that I would accept the default of “Has anomaly." I think GA4’s ML will be able to figure this out just fine. I would for sure create the “daily views” custom insight; you can decide if it makes sense for your website to also enable the other custom insights.

Even better – you can create your own custom insights from scratch.

As small as these custom insights may seem, this is one of my favorite little features of GA4. I love proactively setting up alerts and it's so easy to do here. Nicely done, GA4 team!

An image of the Create Custom Insight screen in GA4

Specify the e-mails of the people you want notified:

Manage notifications screen in GA4

When you’re all done, go ahead and press the “Create” button.

When an anomaly happens, you'll get an e-mail like this one:

New Insight: Anomaly in daily users indication in GA4

At some point in the future, when that anomaly fires and you’re able to go in and resurrect your website tracking because something stupid broke – please send me an e-mail and thank me!

(back to index)

 

Tip 4: Create Filters for Internal Traffic (but don't make them live)

There are filters you can use for either internal traffic or dev/test environments. Let's walk through setting up an "internal traffic" filter.

Start in the admin section of GA and click on the “Data Streams”.

Where to click on Data Streams in the GA4 interface

Click on the web stream for which you’ll create the filters:

Adding a data stream in GA4

Go to "Tagging Settings":

Accessing Tagging Settings in GA4

Click on "Show more", then "Define Internal Traffic":

Google tag Settings page in GA4.

Define internal traffic in GA4

Click on "Create":

Define internal traffic in GA4

You’ll now have your first opportunity to start adding an IP address (or multiple - up to 10 rows). Put in the name of the configuration (1), the match type (2), and the IP address (3).  

Create an internal traffic rule in GA4

There are multiple match types – and, as of recent updates, RegEx is now available as one. This was a long-standing frustration that Google finally addressed.

IP addresses in GA4

Here’s a sample configuration filled out for my home IP address:

A sample internal traffic rule configuration in GA4

IMPORTANT: Even though GA4 uses “Anonymize IP” (dropping off the last octet in the IP address), for the “IP Address equals” option, you have to use the full IP address.

Save your changes. You’ll now see that configuration show up in your list of “internal traffic” rules.

Define internal traffic seciton in GA4

Next, go back to “GA Admin / Data Settings / Data Filters”.

Data filters access in GA4

Make sure the Data Filter for Internal Traffic is set up. (I think this happens by default; I don’t think you have to do anything. But check to be sure.)

Set up of the Data Filter for Internal Traffic in GA4

 

Now What?

Now you wait patiently. You won’t see any results of this filter until the next day.

The next day, you can use the dimension “Test data filter name” to look for traffic that is labeled “internal” or “not set” (i.e. external). Here is an example of the filter:

The GA4 interface

The GA4 interface

And here's where you can use it in a report in the UI:

The GA4 interface

You could also use it in Explorations, as a dimension for any of the reports you build. As a simple example:

  1. Specify a date range which includes the internal-traffic being set up.
  2. If the dimension is not there, click the + button and add the…
  3. “Test data filter name” dimension. 
  4. Choose an Exploration report.
  5. Drag or choose the “Test data filter name” to the “Rows” section.
  6. You’ll now see the internal traffic and the not-set traffic.

An image of the GA4 interface

Expect changes with the internal traffic filter

Good news on this front: the RegEx match type – long the biggest frustration with GA4’s IP filtering – is now available. That removes the main barrier for large or multi-site organizations trying to define internal traffic across a range of IP addresses. The lack of traditional views still stings for anyone who built complex UA filter setups, but BigQuery and Looker Studio have largely filled that gap for advanced use cases. The near-term changes I was hoping for did arrive – just on Google’s timeline, not mine.

 

Make the Internal Traffic Filter Live?

I think it’s great to set up the internal traffic filter – but leave it in test mode. You can always do your analysis and exclude that segment, either in the GA4 interface or in Big Query. But since there is only one “view” in GA 4, I’m reluctant to start excluding traffic that you’ll never get back. Mess up that IP filter and the data is gone forever – there’s no raw view on which to fall back.

But if you *really* want to make the internal-traffic filter live

Here's how. 

  1. In the GA4 Admin screen, choose Data Settings / Data Filters
  2. Click on the three dots on the "Internal Traffic" line.
  3. Activate the Filter

Data filters in GA4

You'll get a warning screen.  Pay attention to it.  Have you really tested the internal-traffic filter?  Are you sure?  if so, choose "Activate filter".

A warning screen in GA4

You'll now see that the internal-traffic filter is active.

A Data Filters screen in GA4

My strong recommendation: don't activate it. Without a raw view to fall back on, it's too risky to start excluding traffic – particularly since you can easily filter out internal traffic in the GA4 UI, in BigQuery, or in Data Studio (formerly Google Looker Studio).

(back to index)

 

Tip 5: Label Your Exploration Reports

Here’s a simple idea – make sure that every report you create in Explorations has a name.

The GA4 interface

Otherwise, once you start creating reports, you’ll be hard pressed to remember what’s in the myriad “Untitled exploration” reports.

An image of the GA4 interface

Bonus tip: GA4 now lets you share Explorations with other users in your property. Naming them becomes even more important when colleagues are navigating your work.

(back to index)

 

Tip 6: Set up BigQuery Integration

Honestly one of the most impressive features of GA4 is its built-in integration with BigQuery (part of the Google Cloud Platform).

BigQuery integration remains one of the most important features of GA4. It's no longer a novelty – for serious analytics work, it's essentially a requirement.

You can set up automatic export of GA4 data directly into BigQuery and specify whether it runs once per day or virtually instantaneously. The "once per day" option will essentially be free (depending on how much data you have). For the "instantaneous" exports, you'll have to set up a billing account.

BigQuery is where the real GA4 analysis happens for most organizations doing anything beyond basic reporting. Once the data is in BigQuery, you have access to a whole new world of processing and analysis – and it integrates seamlessly with Data Studio, dbt, and other modern data tools.

(back to index)

 

Tip 7: Expand the Automatic Scroll Tracking

One of the enhanced measurements set up by default in GA4 is scroll tracking. It's loaded on every page and fires when the visitor gets 90% of the way down the page.

This approach is smart. It’s a nice attempt to capture meaningful data without being inundated with noise.

Sometimes, though, you'll want to track scroll depth at more than just the 90% mark – e.g., for blogs or other long-form content. Personally, I like to track those at the 25, 50, and 75% marks.

Steps to add more Scroll Tracking in GA4, Using GTM

1. In GTM, enable the "Scroll Depth Threshold" and "Scroll Depth Units" in the built-in variables section.

How to set up scroll depth thresholds and units in Google Tag Manager

2. You’ll need a scroll-depth trigger. Two important notes:

  • You can set the percentages to whatever you want.  In this case, the percentages of 25, 50, 75, and 100% ill end up getting added to the 90% built-in GA4 scroll tracking.
  • I recommend only firing the trigger on certain sections of your site (the “/blog” pages in this example).

An image of the Scroll Depth screen in GTM

3. Create a new tag of type “GA4 Event”.

A Choose tag type screen in GTM

4. With this new tag (see screenshot for steps):

  1. Name it however you’d like.
  2. Use the name of the GA4 configuration tag you’ve previously set up in GTM.
  3. Make sure to use “scroll” as the event name.  “scroll” is the GA4-recognized event name for the scroll-depth tracking; if you use any other name, set up is going to be harder.
  4. Add event parameter and use “percent_scrolled” for the Parameter Name.  Again, you want to be consistent with what GA4 uses for scroll events.
  5. Use one of the variables you configured in step 1, above - “{{Scroll Depth Threshold}}”.
  6. Finally, use the trigger you set up in step 2, above.

A GA4 event - Full Scroll screen in GTM

5. Save the tag and then go into GTM Preview mode.

6. You can either look at the events in GTM’s Preview tab, or in GA4’s Debug View. I’ll show the latter.

7. Go to the DebugView in GA4 (“A” in screenshot below).  On your website, go to one of the pages where you set up the extra scroll tracking (e.g. the /blog pages, in my example.)  Scroll down the page.  You’ll see the scroll events show up in the DebugView (“B” in screenshot).

Debug View in GA4

8. Click on one of the “scroll” events so you can see the parameters.  You should see “percent_scrolled”, if you set it up correctly in your GTM tag, along with the value (75% in the screenshot below).

A image of a view in GA4

9. That’s it!  You’ve now added supplementary scroll tracking in GA4 to a specific set of your pages. Nice job!

10. Assuming it’s all working right, go ahead and publish your GTM container. 

If you already had scroll-depth-tracking set up in GTM for your UA implementation, it's easy to adjust to GA4. If you're setting up scroll tracking from scratch, check out Julius Fedorovicius's resources at analyticsmania.com – he's one of the best GTM/GA4 educators out there.

(back to index)

 

Bonus Tip: Review Your Data Stream Settings

This tip didn't exist in the original guide because the GA4 Admin interface has evolved significantly. Take a few minutes to review your Data Stream's Enhanced Measurement settings – especially if your GA4 property has been running since the early days.

Key things to check:

  • Page views: Should be on. But verify it's not double-firing if you've also implemented pageview tracking manually via GTM.
  • Scrolls: On by default (90% threshold). Pair with Tip 10 for expanded tracking.
  • Outbound clicks: On by default. Check that the definition of 'outbound' matches your expectations – cross-domain traffic can behave unexpectedly.
  • Site search: See Tip 3.
  • Video engagement: Tracks YouTube embeds automatically. If you have non-YouTube videos, you'll need custom GTM tags.
  • File downloads: On by default. Review what file types are being tracked and adjust if needed.

A clean data stream configuration is foundational. It's worth a periodic audit – not just at setup time.

(back to index)

 


Want a GA4 setup you can trust? Getting GA4 configured correctly takes more than ticking a few boxes. And bad data leads to bad decisions. If you'd rather spend your time acting on insights than troubleshooting tracking issues, Northwoods can help.  Let's talk about your analytics →

GA4 is easy to set up and even a plain-vanilla installation offers great insights.  However, take these extra steps to ensure you’re maximizing the GA4 setup for *your* website. #GA4 #analytics #northwoods
Man standing in front of log cabin background
By Fred Pike

Related Blog Posts

Now's the time to get started with GA4. It's powerful and rapidly-changing and the sooner you start recording data and working with it, the better. Our recommendation, though, is to double-tag your website - run both GA4 and Universal Analytics side by side. Best of both worlds.

10 Google Analytics Admin Tips to Improve Your Data Collection

Want to improve your Google Analytics data collection? Our 10 Google Analytics Admin Tips can help keep your data clean and accurate.

Through years of experience working with a multitude of Google Tag Manager containers, our in-house GTM pro has come up with some tips and tricks to help you more efficiently and effectively manage GTM. If you’re ready to take GTM to the next level, this is a must-read!