GA4 Setup and Events
Google Analytics 4 (GA4) is the analytics platform that replaced Universal Analytics on July 1, 2023. Over 16.8 million websites now use it globally. Most teams still have a half-broken install: the default 2-month data retention window, no internal traffic filter, and event names that drift from page to page. This lesson walks you through a clean GA4 setup so the data you look at next quarter is actually trustworthy.
Quick Summary
- GA4 tracks everything as "events" (not pageviews and sessions like the old system), giving you much more flexibility.
- By default, GA4 only keeps your data for 2 months, you must change this to 14 months on day one.
- Six types of interactions are tracked automatically with no coding required.
- Internal traffic from your own team inflates your numbers, you must filter it out.
- "Conversions" were renamed "key events" in 2024, same thing, new label.
What GA4 Actually Is
GA4 is an event-based analytics platform. "Event-based" means every single thing a user does on your site, viewing a page, clicking a button, watching a video, completing a purchase, is recorded in the same format. Think of it as a log where each line says: "User X did [action name] with [these details] at [this time]."
The old system (Universal Analytics) tracked "sessions" and "hits." GA4 tracks events and parameters (a parameter is just extra detail attached to an event, like attaching a price tag to a purchase event).
A checkout event looks like this in GA4:
- Event name:
purchase - Parameter:
value = 59.99 - Parameter:
currency = USD - Parameter:
items = [product list]
This structure is powerful because every report in GA4 is built on the same foundation. Once you understand one event, you understand them all.
GA4 is also privacy-first by design. It uses machine learning to fill in data gaps caused by cookie consent opt-outs and ad blockers. This matters more every year as privacy regulations tighten across Europe, North America, and beyond. As of early 2026, 14 EU/EEA states have issued formal enforcement guidance specifically about GA4 and data residency.
Why These Numbers Matter
Before you set up a single event, understand what is at stake:
- 16.8 million websites use GA4 globally (up from 14.2 million in mid-2025), a 94% compound annual growth rate since launch.
- 78% of enterprises that fully migrated from Universal Analytics to GA4 reported measurably better audience segmentation accuracy.
- Companies using GA4's active user model reduced wasted ad spend by 17.4% annually and improved content engagement by 23%.
- Brands using GA4 predictive purchase probability audiences in Google Ads achieved a 33% average improvement in cost-per-acquisition versus interest-based targeting.
The difference between a clean GA4 setup and a sloppy one is not cosmetic, it directly affects your ad spend efficiency and your ability to run year-over-year comparisons.
The Setup Playbook, Step by Step
A clean first-time GA4 setup, in order:
Step 1: Create the Property
Go to Admin, then Create Property. Pick the correct reporting time zone and currency before you send a single event. Changing currency later does NOT retroactively convert historical revenue data. Get this right now.
Step 2: Add a Web Data Stream
A "data stream" is the connection between your website and GA4. Add a Web data stream and copy the Measurement ID. It looks like G-XXXXXXX. You will need this in Step 3.
Step 3: Install via Google Tag Manager (GTM)
Google Tag Manager (GTM) is a free tool that lets you add tracking code to your site without touching the actual code. Use GTM, not hardcoded gtag (the raw JavaScript snippet). Here is why: one GA4 Configuration tag firing on "Initialization, All Pages" keeps everything tidy. It ensures GA4 loads before any event tags fire, which prevents missed events.
If you hardcode gtag AND use GTM, you will double-count every page view. This bug is painful to track down. Use one method only.
Step 4: Bump Data Retention to 14 Months
This is the single most impactful setting most teams miss. Go to Admin, then Data Settings, then Data Retention. The default is 2 months. Change it to 14 months, which is the maximum for the free tier. Also toggle "Reset user data on new activity" to on.
If you skip this and someone asks for last year's funnel data in month 3, you will have nothing to show them.
Step 5: Filter Internal Traffic
Your team visiting your own site will inflate your engagement metrics and pollute your conversion data. You must exclude it.
Go to Admin, then Data Streams, then your stream, then Configure tag settings, then Define internal traffic. Add your office IP address and VPN IP addresses. Then activate the filter under Data Settings, then Data Filters. Switch it from "Testing" to "Active."
Step 6: Define Key Events
In 2024, GA4 renamed "conversions" to "key events." They work the same way. Under Admin, then Events, mark events like generate_lead, purchase, or sign_up as key events. These are the actions that matter to your business.
Step 7: Register Custom Dimensions
Any custom event parameter you create (like a product category or a user type) must be registered as a custom dimension before it shows up in your reports. Without this step, the data is being sent but shows up as "(not set)" in every report. Go to Admin, then Custom Definitions, then Custom Dimensions.
Step 8: Verify in DebugView
Before calling it done, install the GA Debugger Chrome extension. Trigger your events on the site. Open GA4, go to Admin, then DebugView. Watch your events appear in real time. If they do not show up here, they will not show up in reports either.
Currys (UK retailer), 2024: When the UK electronics retailer Currys migrated to GA4, their analytics team discovered that 300+ physical store locations had not been excluded from web tracking. Internal staff browsing the website from store devices was inflating "engaged sessions" by roughly 12%. After adding IP-based internal traffic filters and switching data retention from 2 to 14 months, their year-over-year reporting became reliable enough to drive actual merchandising decisions. The fix took one afternoon. The data quality gain was permanent. (Source: Measureminds GA4 audit case studies)
The Six Auto-Tracked Events
GA4 auto-collects six types of "enhanced measurement" events out of the box with zero coding required:
- page_view, every page load
- scroll, when a user reaches 90% of the page
- click, clicks on links that leave your site
- view_search_results, when a user searches your site
- video_engagement, play, pause, complete on YouTube embeds
- file_download, clicks on PDFs, ZIPs, DOCs, etc.
Most teams never realize these exist and end up double-tracking them via Google Tag Manager. Check your DebugView before adding custom tracking for any of these six.
Event Naming: Use the Standard Names
GA4 has a list of reserved event names. These are names Google recognizes and uses to power its built-in reports and Google Ads integration. Always use them when they fit:
| Action | Use This Name |
|---|---|
| User purchase | purchase |
| User signs up | sign_up |
| User logs in | login |
| User searches | search |
| Lead form submitted | generate_lead |
| Item viewed | view_item |
If you use product_purchased instead of purchase, you break the Google Ads conversion import and the built-in Monetization reports. Stick to the standard names wherever possible.
Common Mistakes That Break Your Data
The six most expensive GA4 mistakes:
- Leaving data retention at 2 months. Sounds harmless until a stakeholder asks for last year's funnel and you have nothing.
- Hardcoding gtag AND using GTM. You will double-count every page view and the bug is painful to find.
- Inventing event names when a reserved one exists. Using
product_purchasedinstead ofpurchasebreaks Google Ads conversion import. - Forgetting to register custom dimensions. The parameter is being sent, but it shows up as "(not set)" everywhere in the UI.
- Not separating staging and production. Test events pollute live reports and silently inflate key event counts.
- Skipping DebugView. Shipping events to production and discovering three weeks later that
valuewas a string instead of a number is a real, recurring problem.
Real-World Impact: Why This Setup Matters
Two concrete numbers from post-migration research:
Ad efficiency: Companies using GA4's active user model (which counts people who actually engaged, not just anyone who loaded a page) reduced wasted ad spend by 17.4% annually compared to Universal Analytics session-based data. That is because UA often counted a bot visit or a 1-second bounce as a "session" worth the same as a real human reading your content for five minutes.
Attribution accuracy: Cross-platform tracking in GA4 showed 31% higher customer lifetime value attribution accuracy. If your customer sees an Instagram ad, reads a blog post, and then buys three days later, GA4 can trace that path. Universal Analytics usually gave all the credit to the last click.
Key Takeaways
- GA4 is event-first. Every interaction is an event with named parameters. Stick to reserved names where possible.
- Change data retention to 14 months and filter internal traffic on day one, not day 90.
- Install via GTM with one Configuration tag on Initialization. Register custom dimensions for any parameter you want to report on. Verify everything in DebugView before declaring it done.
- Use the six auto-tracked enhanced measurement events, they are free and require no code.
- "Key events" is the new name for "conversions" in GA4 as of 2024.
The One-Line Takeaway
A broken GA4 install does not just give you bad data, it makes every budget decision, ad campaign, and growth report built on top of it wrong too.







