Loading tutorials…
Loading tutorials…
GA4 isn't hard to install — it's hard to install *correctly* so the data is actually usable six months from now. This is the walkthrough that prevents the rebuild most owners do at month four.
Who this is forOwners standing up GA4 on a new site or finally migrating from Universal Analytics. If you're spending $1K+/month on ads and have no analytics yet, every week without it costs you more than the install does.
What you'll need
Step 1
Sign in at analytics.google.com, create an account (the business container) and then a property (the website-level container).
Go to analytics.google.com. If you've never used Analytics before, you'll be prompted to set up an account from a welcome screen. Click Start measuring.
Account name is the business name (e.g., "Acme Inc"). Account-level data sharing settings can stay at defaults — they are not the privacy controls you actually need (that's Consent Mode, covered in tutorial 9).
Property name is the brand or site name (e.g., "Acme.com"). Set the reporting time zone to where your business operates — this controls how Day 1 / Day 2 reports bucket data. Pick the wrong one and dashboards will look offset by a day forever.
Currency: pick the currency your revenue is reported in, not the country you're in. If you sell in USD but operate from Canada, pick USD.
Click Next, fill in the business details (size, industry, intended use), then Create. You'll see a Terms of Service modal — accept to continue.
Step 2
After property creation, GA4 prompts you to pick a platform. Choose Web, enter your site URL, and name the stream.
Once the property is created, you'll land on the Data Stream setup screen. Pick Web (not iOS/Android unless you also have apps).
Enter the website URL with https://. Stream name should be something obvious like "Main website" — you'll see it in reports forever.
Leave Enhanced Measurement toggled ON. This auto-captures page views, scrolls, outbound clicks, site search, video engagement, and file downloads — events you almost certainly want.
Click Create Stream. You'll land on the stream details page. The Measurement ID at the top (format: G-XXXXXXXXXX) is what you'll install on your site in the next step.
Copy the Measurement ID somewhere safe. You'll need it twice — once for the install and once for verification.
Step 3
You have three install paths: direct gtag.js, Google Tag Manager (recommended), or a platform integration (Shopify, WordPress, Webflow).
Option A — Direct gtag.js. On the data stream page, click View tag instructions → Install manually. Copy the snippet and paste it inside the <head> tag of every page on your site. This is the simplest path but the hardest to expand.
Option B — Google Tag Manager (recommended for most stacks). Install GTM container code on your site, then add a Google Tag inside GTM with your Measurement ID. We have a full GTM tutorial — see the related tutorials at the end of this guide.
Option C — Platform integration. Shopify has a native Google channel app, WordPress has Site Kit by Google, Webflow has a built-in GA4 field under Project Settings → Integrations. These wrap the gtag.js install for you.
Recommendation: GTM unless you're certain you'll never run Meta Pixel, TikTok Pixel, or any other tracking tool. GTM costs you 30 extra minutes of setup and saves you days of rework later.
Whichever path you pick, install the tag on every page — not just the homepage. Most platform integrations handle this automatically; manual installs require sitewide template edits.
Step 4
GA4 has two verification tools: Realtime (production traffic) and DebugView (your own debug-flagged session). Use both before declaring victory.
Realtime check — open your site in a normal browser tab. Then open GA4 → Reports → Realtime. Within 60 seconds you should see "Users in last 30 minutes" tick up by 1 and your page view appear under "Views by Page title."
DebugView check — install the Google Analytics Debugger Chrome extension (free, official Google). Enable it, then visit your site. In GA4 → Admin → DebugView, you'll see your session appear with every event firing in real time.
If Realtime shows nothing after 5 minutes, the install is wrong. Common causes: tag installed on only one page, ad blocker on your browser, or the Measurement ID was pasted incorrectly.
DebugView is the tool you'll use forever for testing — bookmark it. Realtime is for "is the site getting traffic right now" type questions.
Step 5
Two settings GA4 gets wrong by default: data retention (defaults to 2 months) and internal traffic filtering (your own visits inflate everything).
In Admin → Data Settings → Data Retention, change "Event data retention" from 2 months to 14 months. This is the maximum allowed and what 99% of businesses need. Without this, you cannot do year-over-year analysis in GA4 Explorations.
In Admin → Data Streams → Web → Configure tag settings → Define internal traffic, click Create. Name the rule "Office network" or similar. Set the parameter to traffic_type, value to internal, and the match condition to your office IP address (find yours at whatismyip.com).
Repeat for any home IPs of team members who visit the site often. Each gets its own rule.
Then in Admin → Data Filters, create a filter with type Internal Traffic, filter operation Exclude, parameter value internal. Set the filter state to Active.
Without this filter, your own visits show up as users, conversions, and bounces. For low-traffic sites (<5K users/month) this can easily inflate metrics by 20-30%.
Step 6
Decide which 2-3 events represent real business outcomes and mark them as Key Events.
Don't mark everything as a Key Event. Pick the events that represent actual business value: purchase, generate_lead, sign_up, form_submit. Three or four is plenty.
If these events don't exist yet, you have two paths. For Enhanced Measurement-captured events (page_view, scroll, click), they already exist — go to Admin → Events and toggle Mark as Key Event next to each one you want.
For custom events (form_submit, purchase, etc.), fire them via GTM or gtag.js, wait 24 hours for GA4 to register them, then mark them as Key Events.
Why this matters: Key Events are the only events that show up as "Conversions" in the standard reports, and they're the only events you can import into Google Ads as conversion actions.
Resist the urge to mark page_view as a Key Event. Visits aren't conversions — and treating them as such breaks every report.
Step 7
Add at least one backup admin and review who has access. Lost-access situations are the most common GA4 emergency.
In Admin → Access Management for the property (top-right of the property panel), click the blue + button.
Add at least one other person at your company as an Administrator. If you're a solo founder, add a personal Gmail backup or a trusted advisor — losing access to your only admin account locks you out permanently.
Review existing access. Remove anyone who left the company, contractors whose engagement ended, and anyone with Administrator role who only needs Analyst.
Role guidance: Administrator = full control + permissions. Editor = data editing without permissions changes. Marketer = audience/conversion settings. Analyst = read + create reports. Viewer = read only.
Document who has admin access in your team wiki. This is a 5-minute task that prevents weeks of recovery work if a key person leaves.
Common mistakes
Setting up GA4 with the wrong time zone
What goes wrong: Day 1 vs Day 2 reporting is off by 24 hours for everyone in your real time zone. Year-end reports cross-fade across two days. If you change it later, GA4 does not backfill — old data stays in the wrong zone.
How to avoid: Set the correct time zone during property creation. If already wrong with <30 days of data, delete the property and start over. Past 30 days, accept the offset and document it.
Leaving data retention at 2 months
What goes wrong: Explorations and custom analyses cannot reference data older than 2 months. Year-over-year comparisons are impossible. You lose access to 80% of GA4's actual value.
How to avoid: Admin → Data Settings → Data Retention → 14 months. This is the maximum allowed for standard properties. GA360 properties can go to 50 months.
Not filtering internal traffic
What goes wrong: Your own visits, your team's visits, and dev/QA traffic show up as users. For a site doing 3,000 users/month with 5 employees visiting weekly, that's ~10% noise — enough to make every conversion-rate decision wrong.
How to avoid: Define internal-traffic rules at the data stream level, then create a Data Filter that excludes them. Set the filter to Active (not Testing) once verified.
Marking every event as a Key Event
What goes wrong: Page views, scrolls, and outbound clicks all show as "Conversions" in reports. Your conversion rate looks like 70%. Google Ads import becomes useless because every event is a conversion candidate.
How to avoid: Limit Key Events to 3-5 events that represent real business outcomes (purchase, lead, signup, qualified form submit). Everything else is a regular event.
Single admin account with no backup
What goes wrong: When that person leaves, the laptop dies, or the Google account is locked, you lose access to your analytics permanently. There is no Google support path to recover GA4 ownership without an active admin.
How to avoid: Always have 2+ Administrator-role users. One should be a corporate account, one a backup (personal Gmail or trusted advisor). Document admin access in your team wiki.
Installing the tag on only one page
What goes wrong: Realtime shows your homepage visit and you call it done. Then 30 days later you realize product pages, checkout, and the thank-you page have zero data. Conversion tracking is impossible.
How to avoid: Install via a sitewide template, GTM container, or platform integration (Shopify channel app, Site Kit, Webflow integration). Verify on at least 3 page templates with DebugView.
Recap
Done — what's next
How to install GA4 via Google Tag Manager
Read the next tutorial
Hand it off
Setting up GA4 once is a project. Maintaining clean event taxonomy, fresh exclusion filters, and an evolving Key Events list is a job. If you want the install done right plus quarterly audits, a vetted GA4 specialist on EverestX typically runs $200-500/mo at $14-16/hr — and the initial setup is usually a one-week sprint at $400-800 total.
See specialist rates
No. Universal Analytics stopped collecting data on July 1, 2024 and all historical data was deleted as of July 1, 2025. GA4 is the only option going forward. If you still see UA properties in your account, archive them but don't expect to pull data from them.
GA4 is the analytics product (reports, audiences, attribution). Google Tag Manager is a container that delivers tags (including the GA4 tag) to your site. Most professional stacks use GTM to install GA4 because GTM also handles Meta Pixel, TikTok Pixel, and conversion linkers. You can have GA4 without GTM but you cannot have GTM-managed analytics without something like GA4.
Realtime data appears within 60 seconds. Standard reports (Reports → Acquisition, Engagement, etc.) populate within 24 hours. Explorations require 48 hours. Audience data and attribution modeling stabilize over 7-14 days. Don't make ad-spend decisions in week one.
Yes. Squarespace has a built-in GA4 field under Settings → Marketing → Analytics. Wix has it under Marketing & SEO → Marketing Integrations. Shopify uses the Google channel app and supports server-side enhanced measurement via checkout extensibility — see the dedicated Shopify tutorial.
GA4 has a 35-day grace period — deleted properties go to a Trash Can (Admin → Trash) and can be restored. After 35 days, deletion is permanent and there is no recovery path. Be careful which property you're looking at when you click Delete.
No. GA4 standard is free and supports up to 10 million events/month per property. GA360 (the paid tier) starts at ~$50K/year and is only relevant for enterprises with very high traffic, complex BigQuery needs, or contractual SLAs.
Google Analytics 4
GTM is the right install path for any site that runs more than one tracking pixel. It's also where most DIY installs go sideways — wrong trigger, wrong variable, wrong fire order. Here's the path that actually works.
Google Analytics 4
GA4 renamed Conversions to Key Events in late 2024. The name change matters less than what most owners get wrong: marking too many things as Key Events, which destroys Smart Bidding and inflates every report.
Google Analytics 4
GA4 Realtime is supposed to show traffic within 60 seconds. When it shows zero — and your site is clearly getting visits — the cause is one of about six things. This is the diagnostic order.
Google Analytics 4
DIY GA4 is a great idea — until it isn't. This is the honest framework: when the cost of unreliable data exceeds the cost of hiring help, and how to tell which side you're on.