
GA4 is Google’s current analytics platform, and most companies have it installed. Fewer have it configured in a way that actually tells them anything useful. The default setup tracks page views and a handful of automatic events. That’s not analytics. That’s a visitor counter with extra steps.
“We audit GA4 setups across 15-20 companies a quarter. Maybe two of them have it configured correctly. The rest are collecting data they’ll never use and missing data they actually need,” says Hardik Shah, Founder of ScaleGrowth.Digital.
Why Does GA4 Setup Matter So Much?
GA4 is an event-based analytics platform that tracks user interactions as individual events rather than page-based sessions. Unlike Universal Analytics (which Google retired in July 2024), GA4 records everything as events with parameters, giving you far more flexibility in what you measure and how.
The flexibility is also the problem. Universal Analytics came pre-configured with reasonable defaults for most websites. Goals, funnels, e-commerce tracking. GA4 ships essentially blank. The automatically collected events (page_view, session_start, first_visit, scroll, click) capture surface-level behavior but nothing about what matters to your business.
A properly configured GA4 property should answer three questions within 60 seconds of opening it: Where are your leads and revenue coming from? What content drives qualified engagement? Where do users drop off before converting? If your setup can’t answer those questions quickly, it needs work.
What Should You Set Up Before Anything Else?
Before touching custom events or audiences, get four foundational elements right. This takes about 90 minutes for a standard website.
1. Link Google Ads, Search Console, and BigQuery. GA4 talks to other Google products natively. Link your Google Ads account for cost data import and audience sharing. Link Search Console for organic query data inside GA4. Link BigQuery if you want raw event data for custom analysis, and you should, because GA4’s data retention maxes out at 14 months.
BigQuery export is free for most companies. Google gives you 10GB of free storage and 1TB of free queries per month. A typical mid-sized website generates 2-4GB of GA4 data per year. There’s no reason not to enable this.
2. Set data retention to 14 months. The default is 2 months. Go to Admin > Data Settings > Data Retention and change it immediately. This affects the data available in Explorations (the custom report builder). Standard reports use aggregated data and aren’t affected, but you’ll want Explorations for any serious analysis.
3. Enable Google Signals. This allows cross-device tracking for users who are signed into Google. Go to Admin > Data Settings > Data Collection and turn on Google Signals. Be aware that enabling Signals can trigger data thresholding, where GA4 hides data in reports when it thinks the sample size is too small to protect user privacy. We’ll address how to handle that below.
4. Set up cross-domain tracking if you have multiple domains. If your users travel between domains (e.g., your main site and a Shopify checkout, or a subdomain for your blog), you need cross-domain tracking to avoid losing the session. This is configured in Admin > Data Streams > Configure Tag Settings > Configure Your Domains.
Which Events Should You Track Beyond the Defaults?
GA4 has three tiers of events: automatically collected, enhanced measurement, and custom. Your setup should use all three, but the custom events are where the value lives.
Enhanced measurement events are semi-automatic. Go to your data stream settings and make sure these are enabled:
- Scrolls (triggers at 90% depth)
- Outbound clicks
- Site search
- Video engagement (for embedded YouTube)
- File downloads
- Form interactions
For custom events, what you track depends on your business model. But here’s what we configure for every client:
| Business Type | Critical Custom Events | Parameters to Include |
|---|---|---|
| Lead generation | form_submit, cta_click, phone_click, whatsapp_click | form_name, form_location, page_url |
| E-commerce | add_to_cart, begin_checkout, purchase, view_item | item_id, item_name, value, currency |
| SaaS | signup_start, signup_complete, trial_start, feature_used | plan_type, feature_name, page_url |
| Content/media | article_read_complete, newsletter_signup, content_share | article_category, author, word_count |
The mistake most companies make is tracking too many events. GA4 allows 500 distinct event names per property, but more events means more complexity in reporting. Track what you’ll actually analyze. If you can’t name the decision an event will inform, don’t create it.
How Do You Set Up Conversions (Key Events) Properly?
GA4 renamed “conversions” to “key events” in early 2024 to distinguish them from Google Ads conversions. The concept is the same: you mark specific events as key events, and GA4 surfaces them in conversion-focused reports.
For a lead generation site, your key events should be:
- generate_lead (form submission with contact information)
- phone_call (click on phone number)
- whatsapp_initiate (click on WhatsApp button)
For e-commerce, use the built-in e-commerce events (purchase, add_to_cart) and mark them as key events.
A common error: marking page_view for a “thank you” page as a conversion instead of tracking the actual form submission event. The thank-you-page method breaks when users bookmark the page, when bots crawl it, or when the form fails but the redirect still fires. Track the form submission event with validation, not the page that follows it.
Implementation typically happens through Google Tag Manager (GTM). Set up a trigger that fires when the form’s success callback executes, and push a dataLayer event. Here’s the minimal dataLayer push:
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'generate_lead',
form_name: 'contact_form',
form_location: 'homepage_hero'
});
Then create a GA4 event tag in GTM that fires on this trigger, passing the parameters through.
What’s the Right Way to Handle UTM Parameters in GA4?
GA4 uses UTM parameters to populate its traffic source dimensions. This is where most analytics setups quietly fall apart. Not because the technology fails, but because humans are inconsistent.
GA4 recognizes five UTM parameters: utm_source, utm_medium, utm_campaign, utm_term, and utm_content. It also supports two additional parameters introduced in late 2023: utm_source_platform and utm_creative_format.
The critical thing to understand: GA4’s default channel groupings use utm_medium (and sometimes utm_source) to categorize traffic. If your utm_medium values don’t match GA4’s expected values, your traffic gets dumped into “(Other)” or “Unassigned,” which destroys your channel-level reporting.
Here are the utm_medium values GA4 expects for its default channel groupings:
| Channel Group | Required utm_medium | Notes |
|---|---|---|
| Paid Search | cpc, ppc, or paidsearch | Also requires a search engine source |
| Paid Social | paid-social, paidsocial | Or cpc/ppc with a social source |
| Display | display, banner, cpm | |
| Affiliate | affiliate | |
| Referral | referral | |
| Organic Social | (auto-detected) | Untagged traffic from social platforms |
We’ve written a complete UTM naming convention guide that covers the full taxonomy, including how to handle edge cases like influencer partnerships and podcast sponsorships that don’t fit neatly into GA4’s default categories.
How Do You Build Reports That a CMO Will Actually Read?
GA4’s standard reports are designed for analysts, not executives. The information density is too high, the navigation is confusing, and the default date comparison (previous period, not year-over-year) leads to misleading conclusions every Monday morning.
Build three custom reports using the Library feature in GA4. Here’s what we set up for every client:
Report 1: Weekly Performance Snapshot. Key events by channel, with week-over-week and year-over-year comparison. Include: sessions, key events, key event rate, and engagement rate. Remove everything else. This is the report your CMO looks at on Monday morning.
Report 2: Content Performance. Pages ranked by engagement rate and key event contribution. Which blog posts drive conversions? Which landing pages have high traffic but low engagement? This report answers those questions. Sort by sessions, then add key event rate as a secondary metric.
Report 3: Traffic Quality by Source. Don’t just look at volume. A channel that sends 10,000 sessions with a 0.2% conversion rate is worth less than one that sends 500 sessions with a 4% rate. Build a report that shows sessions, engagement rate, key events, and key event rate by session source/medium. Sort by key events descending.
For anything beyond these three reports, use Looker Studio (formerly Data Studio) to build a proper marketing dashboard. GA4’s built-in reporting works for quick analysis, but executive dashboards need cleaner visualization and more controlled layouts.
What’s the Deal With Data Thresholding and Why Is My Data Missing?
If you’ve used GA4’s Explorations, you’ve probably seen the orange shield icon and a message about “thresholding applied.” This means GA4 has hidden rows of data to protect user privacy.
Thresholding activates when Google Signals is enabled and a dimension combination has too few users. It’s GA4’s way of preventing anyone from identifying individual users through small cohort sizes.
Three ways to reduce thresholding impacts:
1. Use reporting identity “Device-based” instead of “Blended.” Go to Admin > Reporting Identity and switch to Device-based. This reduces cross-device tracking accuracy but dramatically reduces thresholding. For most companies, the trade-off is worth it because the thresholded data was unusable anyway.
2. Widen your date ranges. Thresholding is less aggressive with larger data sets. If a 7-day view is thresholded, try 30 days. This doesn’t help for real-time analysis, but it works for monthly reviews.
3. Export to BigQuery and query there. BigQuery gets the raw, unthresholded event data. If you need granular analysis that GA4’s UI won’t show you, BigQuery is the answer. This is one of the strongest reasons to enable the BigQuery export from day one.
How Should You Handle Consent Mode and Cookie Banners?
If you serve any traffic from the EU, UK, or increasingly India and other jurisdictions, you need a Consent Management Platform (CMP) that integrates with GA4’s Consent Mode v2.
Consent Mode v2, which became mandatory for GA4 in March 2024, sends two signals to Google: analytics_storage and ad_storage. When a user rejects cookies, GA4 still collects anonymized, cookieless pings that Google uses for “behavioral modeling,” basically filling in the gaps with estimated data.
According to Google’s own documentation, behavioral modeling can recover 50-70% of the conversion data lost to consent rejection. Our experience puts it closer to 40-55%, depending on the site’s traffic volume and conversion rate.
The practical setup: install a CMP like CookieBot, OneTrust, or Complianz. Configure it to fire in “Advanced Consent Mode,” where Google tags load before consent but in a restricted state. Set up the consent-related tag triggers in GTM so that full tracking activates only after consent is granted.
Test this thoroughly. A misconfigured consent setup can result in either tracking users without consent (a legal risk) or blocking all analytics even for consenting users (a data risk). Both are bad. Run your site through Google’s Tag Assistant and verify that the consent signals are firing correctly.
What GA4 Setup Mistakes Do You See Most Often?
After auditing dozens of GA4 implementations over the past 18 months, these are the five most common mistakes, in order of how much damage they cause:
1. No key events configured. GA4 tracks page views by default. Without key events, you have traffic data and zero performance data. About 40% of the GA4 properties we audit have no key events set up at all, even companies that had goals in Universal Analytics and assumed they would carry over. They didn’t.
2. Internal traffic not filtered. Your team visits your website constantly. If you haven’t set up an internal traffic filter (Admin > Data Settings > Data Filters), your engagement metrics are inflated by people who already work for you. Define your office IP ranges, create the filter, and activate it. Takes five minutes.
3. Cross-domain tracking not configured. Companies with separate domains for their marketing site and checkout (common with Shopify, WooCommerce on a subdomain, or third-party booking systems) lose the session when users cross between domains. The user’s journey looks like two separate sessions from two different sources. This destroys both your engagement data and your attribution.
4. Enhanced measurement events turned off. Some implementations have disabled scroll tracking, outbound click tracking, and site search tracking. These are free behavioral signals. Turn them on unless you have a specific reason not to.
5. Data retention left at the 2-month default. This one is so common and so easy to fix that there’s no excuse. Go to Admin > Data Settings > Data Retention > set to 14 months. Do it now.
What Should Your GA4 Setup Look Like When It’s Done Right?
A properly configured GA4 property has these characteristics:
- 3-5 key events that map directly to business outcomes
- UTM conventions documented and enforced across all paid and owned channels
- BigQuery export enabled for raw data access and archival
- Search Console and Google Ads linked
- Internal traffic filtered
- Cross-domain tracking configured (if applicable)
- Consent Mode v2 implemented with a CMP
- 14-month data retention
- 3 custom reports built for weekly leadership review
- At least one Looker Studio dashboard connected
This setup takes a competent analyst 2-3 days to implement from scratch. It’s not complicated. But the gap between “GA4 is installed” and “GA4 is configured to be useful” is enormous, and most companies are stuck on the wrong side of it.
If your GA4 property is collecting data you never look at while missing the data you need, our analytics team can audit and reconfigure it in one sprint. You’ll go from guessing to knowing, and knowing changes everything about how you allocate budget.