The GA4 Setup Checklist
27 checks to fix your tracking so the numbers you read are the numbers you can trust.
GA4 ships with almost nothing configured correctly by default. If you have not gone through your setup deliberately, you are almost certainly counting your own visits, missing your most important conversions, and making decisions based on data that does not reflect reality. This checklist covers every configuration point that matters, from basic filters to custom events to conversion tracking, so you can stop second-guessing your reports.
- Account and Property Foundations
- Data Stream and Tag Configuration
- Internal Traffic Filters
- Conversion Events
- Custom Events for Business-Specific Tracking
- Audience and Attribution Settings
- Reporting and Exploration Setup
Account and Property Foundations
Before any data is meaningful, the account structure and settings have to be right. These checks take minutes and most people skip them.
Confirm one GA4 property per website
Go to Admin > Property Settings and verify you have not accidentally created duplicate properties. Duplicate properties split your data and make comparisons unreliable. If duplicates exist, decide on one canonical property and remove the tag from all pages on the others.
Set the correct time zone
Admin > Property Settings > Time Zone. Choose the time zone where your business operates, not the default. Mismatched time zones make daily and weekly reports misleading because sessions can appear on the wrong date.
Set the correct currency
Admin > Property Settings > Currency. Set this to the currency your transactions are processed in. GA4 does not convert retrospectively, so wrong currency affects all e-commerce and revenue reporting permanently.
Confirm data retention is set to 14 months
Admin > Data Settings > Data Retention. The default is 2 months. Switch it to 14 months. This extends how far back you can run custom explorations and funnel reports. Standard reports are unaffected, but explorations cut off at the retention window.
Enable Google Signals
Admin > Data Settings > Data Collection > Google Signals. Toggle this on and click through the acknowledgement. This enables cross-device reporting and improves demographic data. Without it, a user on mobile and then desktop looks like two users.
Data Stream and Tag Configuration
Your data stream is the pipeline between your website and GA4. If the tag fires incorrectly or fires twice, every metric you see is wrong.
Verify only one active web data stream
Admin > Data Streams. You should see one stream for your website. If you see multiple streams for the same domain, you are likely double-counting sessions. Audit your tag implementation to confirm only one Measurement ID is firing.
Check the tag is firing correctly in DebugView
Admin > DebugView. Open your website in a separate tab with the GA4 DebugView Chrome extension active, then browse around. You should see events appearing in real time. If nothing shows, your tag is not firing. If you see duplicate events, your tag is firing twice.
Confirm Google Tag Manager is the only tag implementation
If you use Google Tag Manager, check your website source code to confirm the GA4 gtag is not also hardcoded in the HTML. Having both fires every event twice and doubles all your session counts. Search your theme files or page source for your Measurement ID (G-XXXXXXXXXX).
Enable enhanced measurement and audit which events are on
Admin > Data Streams > your stream > Enhanced Measurement. Review the list. Scroll tracking, outbound clicks, site search, and video engagement are usually worth keeping on. File downloads is worth keeping on. Disable any event type your site does not support, as phantom events add noise.
Internal Traffic Filters
If your own visits, your team's visits, or your developers' visits are included in your reports, your engagement metrics and conversion rates are distorted. This is one of the most common and most consequential GA4 setup mistakes.
Create an internal traffic definition for your office IP
Admin > Data Streams > your stream > Configure Tag Settings > Define Internal Traffic. Add your office IP address with the traffic_type value set to 'internal'. To find your IP, search 'what is my IP' in Google. If your team works from multiple fixed locations, add each one.
Create a data filter to exclude internal traffic
Admin > Data Settings > Data Filters. Create a filter of type 'Internal Traffic', set it to exclude, and activate it. Note: new filters only apply to data from the moment they are activated. They do not clean historical data.
Exclude developer and staging traffic
If developers work on the site remotely, ask them for their IPs and add those to the internal traffic definition. If you have a staging domain, add a separate hostname filter to exclude traffic from that subdomain entirely.
Confirm the filter is active, not in testing mode
New data filters default to 'Testing' state, which means they are flagged but not excluded. Go back to Admin > Data Filters and confirm your internal traffic filter shows 'Active'. In Testing mode, your own visits are still counted in reports.
Conversion Events
GA4 does not know what matters to your business. You have to tell it. By default, only purchase is marked as a conversion. Everything else, every lead form, every booking, every sign-up, has to be marked manually.
Audit every existing conversion and remove the ones that do not matter
Admin > Conversions. Review every event marked as a conversion. Remove session_start, page_view, and any auto-marked event that is not a genuine business action. Inflated conversion counts make your cost per conversion look artificially low.
Mark your lead form submission event as a conversion
Admin > Conversions > New Conversion Event. If you have a custom event firing when a form is submitted (e.g. form_submit, lead_form_complete), enter that event name here and save. If you do not have that event yet, set it up first via Google Tag Manager using a Form Submission trigger.
Mark your email opt-in as a conversion
If you use a pop-up or embedded sign-up form and have an event firing on successful subscription, mark it as a conversion. If the thank-you step loads a separate URL (e.g. /thank-you-for-subscribing), create a Page View event for that URL in GTM and mark it as a conversion.
Mark your booking or call page as a conversion
If you use Calendly, TidyCal, or a similar tool, the confirmation page typically loads in an iframe and GA4 will not see it automatically. Create a cross-domain tracking event in GTM that fires when the booking confirmation is reached, or use the Calendly GTM integration to push a custom event.
Set up a conversion for any key resource download
If a PDF, checklist, or lead magnet download is a business goal, create a File Download conversion. Enhanced measurement tracks file_download automatically, so go to Admin > Conversions, find file_download in your event list, and toggle it as a conversion. Optionally add a Link URL parameter filter to limit it to your specific file URLs.
Custom Events for Business-Specific Tracking
Enhanced measurement covers generic interactions. Your actual business has specific signals that matter. These need to be set up manually, either in GA4 directly or via Google Tag Manager.
Create a scroll depth event for long-form content
Enhanced measurement includes scroll tracking but only fires at 90% scroll depth. If you have long-form posts or sales pages, create additional events at 25%, 50%, and 75% in Google Tag Manager using a Scroll Depth trigger. This tells you where people are dropping off, not just who finishes.
Track outbound link clicks to key destinations
Enhanced measurement tracks all outbound clicks, but the data is noisy. In GTM, create a specific event (e.g. click_booking_link) that fires only when someone clicks your Calendly or booking link. This gives you a clean count of intent without filtering through all outbound clicks.
Track video play events if video is part of your funnel
Enhanced measurement tracks YouTube embeds automatically. For Vimeo or native HTML5 video, create a custom event in GTM using an Element Visibility or YouTube / Vimeo API listener. At minimum track: video_start and video_complete. These tell you whether your video content is doing anything.
Set up a contact page visit event
Create a page_view event filtered to your /contact URL and mark it as a conversion, or at minimum a key event to monitor in explorations. A high volume of contact page visits that do not convert to form submissions signals a friction problem on the page.
Audience and Attribution Settings
How GA4 attributes sessions and groups users affects every report you read. These settings are not visible in reports but they change what the numbers mean.
Set your reporting attribution model
Admin > Attribution Settings > Reporting Attribution Model. GA4 defaults to Data-Driven Attribution, which is fine if you have enough conversion data (at least a few hundred conversions per month). If you are earlier stage, switch to Last Click so attribution logic is predictable and you can read it without a statistics degree.
Check your lookback windows
Admin > Attribution Settings. Acquisition lookback window defaults to 30 days, engagement to 3 days. If your sales cycle is longer (common for B2B or high-ticket offers), extend the acquisition window to 60 or 90 days. Otherwise, campaigns that contribute to a conversion months earlier get no credit.
Create an audience for your highest-intent visitors
Admin > Audiences > New Audience. Build an audience of users who visited your services page, pricing page, or booking page but did not complete a conversion. This audience can be pushed to Google Ads for retargeting, and it also tells you in Audience reports how many high-intent visitors you are losing per month.
Create a converted leads audience
Build a second audience of users who completed your key conversion event. Use this in explorations to see what content, channels, and pages converted users visited before converting. This is where you find which traffic source generates leads, not just sessions.
Reporting and Exploration Setup
GA4's default reports are a starting point. The data you need to run your business requires custom reports and saved explorations. Set these up once and they are there every time.
Set up a custom landing page report with conversion rate
Reports > Library > Create New Report > Detail Report. Add dimensions: Landing Page. Add metrics: Sessions, Conversions, Session Conversion Rate, Engaged Sessions. Save and add to your navigation. This tells you which pages are driving business, not just which pages get clicks.
Build a funnel exploration for your main conversion path
Explore > Funnel Exploration. Map out the pages or events in your main conversion path (e.g. Blog Post > Services Page > Contact Page > Form Submission). GA4 shows you drop-off at each step. If more than 70% of people are dropping between two specific steps, that is the fix to prioritise.
Create a channel performance exploration with revenue or conversion value
Explore > Free Form. Add dimension: Session Default Channel Group. Add metrics: Conversions, Session Conversion Rate, Engaged Sessions, Average Engagement Time. This gives you a real read on which channels are doing work, not just which ones are sending the most traffic.
Add annotations for major changes
GA4 does not natively support annotations, but you can log them in a shared Google Sheet with date, change type, and description. Add an annotation every time you run a campaign, publish a major piece of content, make a site change, or adjust your tag setup. Without annotations, a traffic spike six months from now is unexplainable.
Get the full resource
Enter your name and email and the complete resource opens on this page, instantly. No spam, unsubscribe anytime.
Already on the Sunday newsletter? Your weekly email carries a one-click access link, so you never see this form.
You do not have to do this yourself.
This resource hands you the volume. The strategy, the judgement, and the bit where it all connects is the work I do for clients: lead generation, ads, SEO, workflow automation, HubSpot, and the systems that make them compound. Done for you, consulting, coaching, or training.
Book a free 30-minute call Or get the Sunday newsletter