8
Events
3
Reports
100%
Data
30
Min
Why Most GA4 Setups Are Broken
Here's a stat that should bother you: over 70% of the GA4 installations we audit are either misconfigured or collecting useless data. The default GA4 setup tracks page views and some automatically collected events — and that's about it. It tells you how many people visited your site, but not what they did, why they left, or which marketing channels are actually driving revenue.
The problem isn't GA4 itself — it's a powerful tool. The problem is that most businesses install it, accept the defaults, and never configure the events, conversions, and reports that turn raw data into actionable decisions. This guide fixes that.
We're going to walk through the exact setup we implement for every client — from initial configuration to custom events to Looker Studio dashboards. No fluff, no theory. Just the steps.
GA4 vs. Universal Analytics: What Actually Changed
If you're still mentally operating in the Universal Analytics world, here are the key differences that affect how you set up and use GA4:
- Everything is an event. In Universal Analytics, you had page views, sessions, transactions, and events as separate hit types. In GA4, everything is an event — page views, clicks, scrolls, purchases. This simplifies the data model but means you need to think in events.
- Sessions work differently. GA4 doesn't end a session at midnight or when campaign source changes (Universal Analytics did both). A GA4 session has a 30-minute inactivity timeout and that's it. This means your session counts will be different.
- No bounce rate (kind of). GA4 replaced bounce rate with "engagement rate" — the percentage of sessions that lasted longer than 10 seconds, had a conversion event, or had 2+ page views. It's a better metric, but it means your old bounce rate benchmarks don't apply.
- Attribution is multi-touch by default. GA4 uses data-driven attribution, which distributes conversion credit across multiple touchpoints. Universal Analytics defaulted to last-click. Your channel performance numbers will look different — and more accurate.
- User identity is cross-device. GA4 can stitch together user journeys across devices using User-ID, Google Signals, and device ID. This gives you a more complete picture of the customer journey but requires proper configuration.
Initial Setup: The First 30 Minutes
Assuming you've already created a GA4 property and installed the tracking code (via Google Tag Manager or gtag.js), here are the configuration steps most people skip.
Step 1: Enable Enhanced Measurement
Go to Admin → Data Streams → select your stream → Enhanced Measurement. Make sure these are turned on:
- Page views — On by default. Tracks every page load.
- Scrolls — Fires when a user scrolls to 90% of the page. Useful for content engagement.
- Outbound clicks — Tracks when users click links that leave your site.
- Site search — Captures search queries on your site. Critical for understanding what visitors are looking for.
- Form interactions — Tracks form starts and submissions. Not always reliable — we'll set up custom form tracking later.
- Video engagement — Tracks YouTube embeds (start, progress, completion).
Step 2: Configure Data Retention
Go to Admin → Data Settings → Data Retention. Change event data retention from 2 months (the default) to 14 months. This is the maximum for free GA4 accounts. Without this change, your historical data disappears after just 60 days, which makes year-over-year comparisons impossible.
Step 3: Enable Google Signals
Go to Admin → Data Settings → Data Collection → turn on Google Signals. This allows GA4 to use Google's logged-in user data for cross-device tracking and demographic reporting. Without it, you lose significant data about user age, gender, interests, and cross-device behavior.
Step 4: Link Google Ads and Search Console
Go to Admin → Product Links. Connect your Google Ads account and Google Search Console property. The Ads link imports cost data and enables you to see GA4 conversion data inside Google Ads (which improves Smart Bidding). The Search Console link imports organic search query data into GA4.
Step 5: Set Up Cross-Domain Tracking (If Needed)
If your business operates across multiple domains (e.g., your main site and a separate checkout domain), configure cross-domain tracking under Admin → Data Streams → Configure Tag Settings → Configure Your Domains. Without this, a user moving between domains starts a new session, breaking your funnel data.
Custom Events: The 8 Events Every Business Needs
Enhanced Measurement gives you the basics, but the events that actually drive business decisions need to be set up manually — either through Google Tag Manager (recommended) or the GA4 interface.
Event 1: generate_lead
Fires when someone submits a contact form, demo request, or newsletter signup. This is your primary lead generation event. Configure it in GTM with a form submission trigger, and include parameters for form_id and form_name so you can distinguish between different forms.
Event 2: purchase
For e-commerce: fires on the order confirmation page. Must include value (order total), currency, transaction_id, and items array. This is the event Google Ads uses for ROAS optimization. Get the data layer implementation right — incorrect purchase tracking is the most common and most costly setup error we see.
Event 3: add_to_cart
Fires when a product is added to cart. Include item_id, item_name, and value. This is your mid-funnel conversion event — useful for optimizing campaigns when you don't have enough purchase volume (fewer than 50/week) for the algorithm to optimize against.
Event 4: begin_checkout
Fires when a user initiates the checkout process. The gap between add_to_cart and begin_checkout tells you about cart abandonment. The gap between begin_checkout and purchase tells you about checkout friction. Both are diagnostic gold.
Event 5: scroll_depth
Enhanced Measurement only tracks 90% scroll. Set up custom scroll depth events at 25%, 50%, 75%, and 90%. This tells you where people drop off on your pages — essential for content optimization and landing page improvements.
Event 6: cta_click
Track clicks on your primary calls-to-action. Use a GTM click trigger with CSS selectors for your CTA buttons. Include parameters for cta_text and cta_location (hero, sidebar, footer) so you can measure which CTAs drive the most engagement.
Event 7: file_download
Enhanced Measurement tracks some file downloads, but custom tracking gives you better control. Fire this event when someone downloads a PDF, whitepaper, case study, or any lead magnet. Include file_name and file_type parameters.
Event 8: video_engagement
For non-YouTube videos (Vimeo, Wistia, self-hosted), set up custom video tracking events. Track video_start, video_progress (25%, 50%, 75%), and video_complete. Include video_title and video_duration. Video engagement data is critical for understanding which content resonates with your audience.
Marking Events as Conversions
Creating events isn't enough — you need to tell GA4 which events are conversions. This affects how GA4 reports work and, critically, how conversion data flows to Google Ads for bid optimization.
Go to Admin → Conversions → New Conversion Event. Mark these as conversions:
- purchase — Always. This is your primary revenue event.
- generate_lead — Always. This is your primary lead generation event.
- add_to_cart — Sometimes. Mark this as a conversion if you need a higher-volume event for Google Ads optimization.
- begin_checkout — Sometimes. Useful as a secondary conversion for funnel analysis.
Do NOT mark scroll_depth, cta_click, or page_view as conversions. These are engagement metrics — valuable for analysis but not conversion events. Marking them as conversions pollutes your conversion data and confuses Google Ads bid optimization.
Building Your Looker Studio Dashboard
GA4's built-in reports are fine for quick checks, but for real decision-making, you need a Looker Studio dashboard (formerly Google Data Studio). Here are the three reports we build for every client.
Report 1: Executive Overview
This is the dashboard your CEO or CMO sees. One page. Five scorecards at the top: total users, total conversions, conversion rate, revenue (or leads), and cost per conversion. Below that, a time series showing weekly trend. Below that, a channel breakdown table showing performance by source/medium.
Keep it simple. No one needs 47 metrics on an overview dashboard. The purpose is to answer one question in 10 seconds: "Is marketing working?"
Report 2: Channel Performance
This is the report your marketing team uses weekly. A dedicated page for each major channel: Google Ads, organic search, paid social, email, direct. Each page shows:
- Traffic volume and trend (users, sessions)
- Engagement metrics (engagement rate, pages per session, avg. session duration)
- Conversion metrics (conversions, conversion rate, revenue)
- Campaign-level breakdown (for paid channels)
- Landing page performance (top 10 pages by conversion rate)
The key is comparing channels on the same metrics so you can allocate budget effectively. If organic search converts at 4.2% and paid social converts at 1.1%, that informs how you invest.
Report 3: Conversion Funnel
This report visualizes your funnel stages and drop-off rates. For e-commerce: product view → add to cart → begin checkout → purchase. For lead gen: page view → form start → form submit → qualified lead (from CRM data).
The funnel report answers "where are we losing people?" If 8% of visitors add to cart but only 2% begin checkout, your cart experience is the problem. If 90% of people who begin checkout complete the purchase, your checkout is fine — focus on getting more people to the cart.
Common GA4 Mistakes to Avoid
1. Not Filtering Internal Traffic
Your team visits your site constantly — checking designs, testing features, reviewing content. Without an internal traffic filter, this activity inflates your data and skews engagement metrics. Go to Admin → Data Streams → Configure Tag Settings → Define Internal Traffic, and add your office IP addresses. Then create a data filter to exclude them.
2. Using Too Many Custom Dimensions
GA4 free accounts are limited to 25 custom event parameters and 25 user properties. Don't waste them on data you'll never analyze. Start with the essentials (form_name, cta_location, product_category) and add more only when you have a specific analysis need.
3. Not Setting Up Audiences
GA4 Audiences are powerful but underused. Create audiences for key segments: purchasers (last 30 days), high-value customers ($500+ LTV), cart abandoners (added to cart but didn't purchase in 7 days), and engaged visitors (3+ sessions in 30 days). These audiences can be shared with Google Ads for targeting and remarketing.
4. Ignoring Debug Mode
Always test your event setup in Debug View (under Admin → DebugView) before relying on the data. Events that appear in standard reports can take 24-48 hours to populate. Debug View shows them in real time. Install the Google Analytics Debugger Chrome extension to trigger debug mode from your browser.
5. Not Documenting Your Setup
Create a tracking plan document that lists every custom event, its parameters, the trigger conditions, and the GTM tag/trigger configuration. When someone on your team (or a new agency) needs to update tracking, they shouldn't have to reverse-engineer your setup from the GTM container.
Advanced Tips
BigQuery Export
GA4 offers free BigQuery export — this is a game-changer for businesses with complex analytics needs. The raw event data is exported to Google BigQuery daily, where you can run SQL queries to answer questions GA4's interface can't handle: attribution modeling, cohort analysis, custom funnels, and cross-dataset joins with CRM data.
To enable: go to Admin → BigQuery Links → Link. You'll need a Google Cloud project with billing enabled (BigQuery has a generous free tier — 10GB storage and 1TB of queries per month — which is more than enough for most businesses).
Audience Triggers
GA4 can fire events when users enter an audience. This lets you create complex behavioral triggers — for example, fire a "high_intent_visitor" event when someone views 3+ product pages and spends more than 5 minutes on site. This event can then be used as a conversion signal for Google Ads or trigger a personalized experience on your site.
Consent Mode v2
If you operate in the EU, EEA, or any market with cookie consent requirements, implement Google Consent Mode v2. This allows GA4 to model conversions from users who decline cookies, recovering 40-70% of the data you'd otherwise lose. Without Consent Mode, your European traffic is a black hole in your analytics.
Your GA4 Setup Checklist
Here's the complete checklist. Work through it in order — each step builds on the previous one:
- Enable Enhanced Measurement — all 6 events turned on
- Set data retention to 14 months
- Enable Google Signals
- Link Google Ads and Search Console
- Set up cross-domain tracking (if applicable)
- Create 8 custom events via GTM
- Mark purchase and generate_lead as conversions
- Filter internal traffic
- Create key audiences (purchasers, abandoners, engaged visitors)
- Build 3 Looker Studio reports (overview, channel, funnel)
- Test everything in Debug View
- Document your tracking plan
The initial setup takes 30 minutes for the GA4 configuration, plus 2-3 hours for GTM event implementation and Looker Studio dashboard creation. After that, it's maintenance — quarterly audits and updates as your site evolves.
The payoff: every marketing dollar tracked, every user action measured, and every decision backed by data instead of gut feeling.
Need help with your analytics setup?
We'll audit your current GA4 configuration, fix what's broken, and build dashboards that actually inform decisions.
Get Your Free Analytics Audit