GA4 is easy to install and easy to install badly. A property created by clicking through the defaults will keep two months of data, count form abandonments as form submissions, attribute payment gateway returns as referrals, and never see a key event. This guide is the setup I use for every client property, through Google Tag Manager, with the settings checklist most tutorials skip.
Step 1: Create the Property and Data Stream
In Google Analytics Admin, create a property with the business's time zone and currency. Create a Web data stream for the site. Copy the Measurement ID, which starts with G-.
Under the stream's Enhanced measurement settings, keep page views, scrolls, outbound clicks and file downloads. Turn off form interactions and video engagement unless you have tested them. Turn off site search unless the site has a search page with a query parameter.
Step 2: Install GTM Once
If GTM is not on the site yet, add the container snippet immediately after the opening <head> and the noscript snippet after the opening <body>. On WordPress use a lightweight insertion plugin or the theme's header hook. On Shopify add it to theme.liquid and use a Customer Events pixel for checkout. Confirm the container loads in Preview.
Step 3: The Google Tag
In GTM, create a tag of type Google tag, enter the Measurement ID, and fire it on the Initialization trigger for All Pages. That trigger runs before standard page view triggers so configuration is in place when event tags fire.
In containers where the 2026 unified interface has rolled out, you may see the Google Analytics destination under Settings instead. The outcome is the same: one configuration, loaded first.
Configuration settings worth setting on the Google tag:
- send_page_view: true, unless you run a single page application and send virtual page views yourself.
- Shared event settings: add parameters every event should carry, such as a
site_sectionoruser_typefrom the dataLayer. - Cross-domain: list every domain the visitor crosses in one session, for example your site and a hosted checkout or booking domain.
Step 4: The Settings Checklist in GA4 Admin
Work through these once. They are the difference between a property you can trust and one you cannot.
| Setting | Where | Value |
|---|---|---|
| Event data retention | Data settings, Data retention | 14 months |
| Internal traffic | Data streams, Configure tag settings, Define internal traffic | Your office and home IPs |
| Data filters | Data settings, Data filters | Activate the internal traffic filter |
| Unwanted referrals | Data streams, Configure tag settings, List unwanted referrals | Payment gateways, your own domains, SSO providers |
| Cross-domain measurement | Data streams, Configure tag settings | All domains in the journey |
| Session timeout | Data streams, Configure tag settings, Adjust session timeout | 30 minutes is fine for most sites |
| Google Signals | Data settings, Data collection | On only if you accept the thresholding it causes in reports and your consent setup allows it |
| Consent settings | Data settings, Data collection | Confirm Consent Mode signals are being received if you serve EU or UK visitors |
| Reporting identity | Property settings | Blended |
| Attribution | Attribution settings | Data-driven, confirm the lookback windows suit your sales cycle |
| Google Ads link | Product links | Link the ads account and enable personalised advertising |
| BigQuery link | Product links | Link it. Daily export is free on standard properties and is your long-term raw data |
| Search Console link | Product links | Link it for organic query reports |
Step 5: Key Events
Decide which events are business outcomes: purchase, generate_lead, sign_up, a booking event. In Admin, then Events, toggle Mark as key event for each. Key events feed the conversion reports and are what you import into Google Ads if you choose to.
For lead generation, always send value and currency with generate_lead, even a nominal value. It makes the event usable for value-based reporting and avoids surprises when importing into Google Ads.
Step 6: Send Your Own Events
Enhanced measurement covers the basics. Everything else comes from the dataLayer through GA4 Event tags in GTM: form submissions, purchases, bookings, phone clicks. The dataLayer, Form Tracking and Recommended Events guides on this site cover each. Use Google's recommended event names where one fits, so GA4's built-in reports light up.
Step 7: Verify in DebugView
- Open GTM Preview and load the site. The Google tag should fire first.
- In GA4, Admin, then DebugView, find your device. Page views should stream in with the correct page location and title.
- Trigger each event you built. Confirm it arrives with its parameters.
- Check Realtime for key events.
- After 24 hours, confirm the internal traffic filter is excluding your visits and that reports show the right time zone.
Common Mistakes
- Two Google tags, one from GTM and one hard-coded, doubling page views.
- Data retention left at two months.
- Payment gateways and your own subdomains attributed as referral traffic.
- Form interactions enhanced measurement counting every abandoned form.
- Key events never marked, so conversion reports are empty and Google Ads has nothing to import.
- Google Signals turned on without understanding that it causes data thresholding in small reports.
Outcome
A property with 14 months of clean data, the right sessions and sources, your real conversions marked as key events, and links to Google Ads, BigQuery and Search Console. From here, the GA4 reporting, custom events and dashboard guides on this site show how to get answers out of it.
