
Set up Google Analytics 4 in five moves: create a GA4 account and property → add a web data stream → copy your Measurement ID (starts with “G-”) → install the tag via Google Tag Manager, a CMS plugin, or manual gtag.js → verify in Realtime or DebugView. First data typically appears within 30 minutes. You need at least Editor access at the property level to complete the setup.
Quick-start checklist:
A working GA4 implementation requires the right property settings, a verified tag, and at least one marked conversion before your data is worth acting on.
| Point | Details |
|---|---|
| Create property first | Set the correct time zone and currency at property creation — these affect how sessions and revenue are reported. |
| Choose your install method | GTM for flexibility, CMS plugin for speed, manual gtag.js for simple static sites. |
| Verify before trusting data | Confirm the tag fires in Tag Assistant and check Realtime reports; data appears within a short time. |
| Mark at least one conversion | Toggle a key event (form submit, purchase) as a conversion in Admin > Events before running any campaigns. |
| Tech Business Development | Offers a full GA4 setup and handover service — tag implementation, event design, QA, and documentation included. |
Google’s official Analytics setup documentation walks you through the exact sequence: account first, then property, then data stream. Here is what each step looks like in practice.
Go to analytics.google.com and sign in with a Google account. If you have no existing Analytics account, click Start measuring. Otherwise, go to Admin (the gear icon, bottom-left) and click Create > Account.
Fill in the Account name (usually your company or client name), then click Next to create a property. The property is the container for your website’s data. Give it a clear name (e.g., “My Business Website”), set your Reporting time zone to match where your business operates, and choose the correct Currency. These two fields affect how sessions and revenue are reported, so get them right from the start.
You will also be asked for Industry category, Business size, and Business objectives (e.g., generate leads, drive online sales). These settings personalise the default report layout GA4 shows you. They do not affect raw data collection, but choosing accurate values means your out-of-the-box reports will be more relevant.
Editor role required: only users with Editor access at the property level (or higher) can create properties and data streams. If you are setting up GA4 for a client, confirm you have been granted that role before starting.
After creating the property, GA4 prompts you to add a data stream. Select Web, then enter your site’s primary URL (include the correct protocol: https://) and a Stream name. Click Create stream.
On the next screen, toggle Enhanced measurement to on. This single switch automatically tracks page views, scrolls (90% depth), outbound clicks, file downloads, site search queries, video engagement (YouTube embeds), and form interactions — without writing a single line of custom code. For most beginners, enhanced measurement alone covers the majority of what they need to measure.
Your Measurement ID (formatted as G-XXXXXXXXXX) appears at the top of the data stream detail page. This is the ID you will paste into GTM, your CMS plugin, or your gtag.js snippet. To find the full tag snippet, click View tag instructions on the same page, then choose either Install manually or Install with a website builder or CMS.
Pro Tip: Bookmark the data stream detail page. You will return here often to grab the Measurement ID, check stream status, and review enhanced measurement settings. The path is Admin > Data Streams > [your stream name].
Three methods exist: Google Tag Manager (GTM), a CMS plugin or native integration, and manual gtag.js. The right choice depends on your site setup and how much control you want over future tag changes.
Use GTM if you plan to add more tags later (Google Ads, Facebook Pixel, etc.), want to manage everything from one place, or need granular event tracking without touching code repeatedly. GTM is the professional standard for a reason.

Use a CMS plugin or native field if you are on WordPress, Shopify, Wix, Squarespace, or HubSpot and want the fastest possible setup without touching code at all.
Use manual gtag.js if your site is a simple static HTML site, you have no CMS, and GTM feels like overkill.
GTM’s documentation describes this as the recommended approach for professional, scalable implementations. Here is the exact flow:
<head> tag and the second part immediately after the opening <body> tag on every page of your site.Pro Tip: Always test in GTM Preview before publishing. A tag that shows “Tags Fired” in Tag Assistant is confirmed working — publishing without this check is the most common reason beginners spend an hour wondering why no data appears.
Many platforms accept your Measurement ID directly, no code required. Google’s CMS setup guide lists which platforms support native G- ID entry.
Platforms that accept a G- Measurement ID natively:
| Platform | Native G- ID support | Recommended approach |
|---|---|---|
| WordPress (Site Kit) | Yes | Install Google Site Kit plugin, connect GA4 |
| Shopify | Yes | Online Store > Preferences > Google Analytics field |
| Wix | Yes | Marketing & SEO > Google Analytics |
| Squarespace | Yes | Analytics > Google Analytics |
| HubSpot | Yes | Settings > Tracking & Analytics > Tracking Code |
| WooCommerce | Yes (via plugin) | Use Site Kit or a dedicated GA4 plugin |
| Magento | Partial | Paste gtag.js into custom HTML block |
For WordPress, the cleanest approach is Google’s own Site Kit plugin. Install it, connect your Google account, and it handles the Measurement ID placement automatically. If you prefer a lighter plugin, paste the G- ID into any plugin that has a dedicated GA4 field.
For Shopify, go to Online Store > Preferences and paste the G- ID into the Google Analytics field. Shopify handles the rest.
For platforms that only accept a UA- ID (older setups), paste the full gtag.js snippet into a custom HTML block or contact your CMS vendor to request native GA4 support.
Google’s tag setup guide describes the manual install as copying the snippet from Admin > Data Streams > [your stream] > View tag instructions > Install manually.
The snippet looks like this (your actual G- ID replaces the placeholder):
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-XXXXXXXXXX');
</script>
Paste this block immediately after the opening <head> tag on every page of your site. If your site uses a shared header template, adding it once there covers all pages.
| Factor | Google Tag Manager | CMS plugin / native | Manual gtag.js |
|---|---|---|---|
| Setup speed | Moderate | Fast | Fast |
| Flexibility | High — add any tag later | Low — GA4 only | Low — code edits needed |
| Debugging | Excellent (Tag Assistant) | Limited | Basic (browser console) |
| Long-term maintainability | Excellent | Good for simple sites | Poor at scale |
| Coding required | Minimal | None | Basic HTML |
| Best for | Professional or growing sites | Beginners on major CMSs | Simple static sites |
For most small business owners, a CMS plugin gets you running in under 15 minutes — see our Google Business Profile setup: a guide for UK small businesses for helpful step-by-step advice. If your site will ever run more than one marketing tag, set up GTM now and save yourself the headache later. The Analytics Mania walkthrough covers real-world GTM examples in detail if you want a deeper reference.
Verification is not optional. A tag that looks installed but fires on the wrong pages, or fires twice, corrupts your data from day one.
Three ways to confirm your tag is working:
Common verification problems and quick fixes:
<head>, or a caching plugin is serving an old version of the page. Clear your site cache and test again.Pro Tip: Test in an incognito browser window with your ad blocker disabled. Ad blockers and browser extensions frequently suppress GA4 tags, which makes it look like the installation failed when it actually worked fine.
GA4 is built entirely around events. Every interaction — a page view, a button click, a form submission — is recorded as a named event with optional parameters. This is a fundamental shift from Universal Analytics, which tracked pageviews and “hits” as separate data types. The event-based model gives you far more flexibility for cross-platform tracking and custom reporting.
With enhanced measurement enabled, GA4 collects these events without any custom code:
page_view — every page loadscroll — when a user reaches 90% of a pageclick — outbound link clicksfile_download — PDF, ZIP, and other file downloadsview_search_results — on-site search queriesvideo_start, video_progress, video_complete — YouTube embedsform_start, form_submit — form interactions (where detectable)When you need to track something enhanced measurement does not cover (a specific button click, a custom form, a checkout step), you have two options:
lead_form_submit event when a page_view fires on your thank-you page URL).contact_form_submit), add parameters, and set the trigger to the relevant interaction (a click on a specific button, for example).GA4 event naming conventions to follow:
add_to_cart, not Add To Cart)purchase, generate_lead) so GA4’s built-in reports populate correctlyIn GA4, go to Admin > Events. Find the event you want to track as a conversion and toggle Mark as conversion to on. GA4 will now count every instance of that event as a conversion in your reports.
To verify it is firing, open DebugView and trigger the conversion on your site. The event should appear highlighted in the DebugView stream within seconds.
Migrating from Universal Analytics: UA goals map roughly to GA4 conversions, but the logic is different. A UA destination goal (thank-you page visit) becomes a page_view event filtered by page path in GA4. A UA duration goal has no direct GA4 equivalent — you would need a custom event. Plan your conversion list before migrating rather than trying to replicate UA goals one-for-one. For tracking campaign performance accurately, getting conversions right from the start matters more than any other configuration step.
Once your tag is verified and events are flowing, spend 20 minutes on these settings. Most beginners skip them and regret it later.
Navigate to Admin > Property settings to review your property name, time zone, and currency. Then work through these:
GA4 collects user data, which means consent matters. If your site serves users in jurisdictions with privacy laws (GDPR in Europe, CCPA in California), you need a consent management platform (CMP) integrated with GA4’s Consent Mode.
Consent Mode tells GA4 how to behave when a user declines cookies. With it enabled, GA4 uses modelled data to fill in gaps from users who opted out, rather than dropping them entirely. Without it, you lose data and potentially violate privacy regulations.
For most small business sites, a CMP like Cookiebot, OneTrust, or a similar tool handles the consent banner and passes consent signals to GA4 automatically. Check that your CMP supports Consent Mode v2, which is the current standard.
Pro Tip: If privacy or page-load performance is a concern, look into server-side tagging via GTM’s server container. It moves tag execution off the user’s browser, reduces client-side JavaScript load, and gives you more control over what data leaves your server. It requires a server container setup and a small hosting cost, but for high-traffic sites it is worth the investment.
The GA4 Setup Assistant inside Admin is a useful guided checklist for beginners to track progress through core configuration steps and confirm fundamentals are in place before moving on.
Run through this list in order when data looks wrong or is not showing up at all.
When no data appears:
Common errors and fixes:
Quick debugging commands:
dataLayer in your browser’s developer console (F12 > Console) to see if GA4 events are being pushed.DIY setup works well for a straightforward single-domain site with basic conversion tracking. A few scenarios call for professional help:
A proper professional engagement covers more than just pasting a tag. Expect:
A GA4 setup done right is not just a tag on a page. It is a documented measurement plan — every event named, every conversion justified, every permission assigned deliberately. When something breaks six months later (and something always does), that documentation is the difference between a 10-minute fix and a full audit.
GA4 has two levels of access management: account level and property level. Getting this right protects your data and keeps your team working efficiently.
Go to Admin > Account access management to manage who can see or edit across all properties in the account. Go to Admin > Property access management to set permissions for a specific property only. Property-level permissions override account-level ones when they are more restrictive.
GA4 roles and what they allow:
Add a user by clicking Add users in either access management screen, entering their Google account email, and selecting the appropriate role. Remove access immediately when a team member or agency relationship ends. Leaving stale Editor or Administrator access is a common and avoidable data security risk.
Linking GA4 to Google Search Console (GSC) brings organic search query data directly into GA4 reports, so you can see which search terms drive traffic alongside on-site behaviour. This is one of the highest-value integrations available for free.
Step-by-step:
The link takes effect within 24 hours. Once active, go to Reports > Acquisition > Search Console in GA4 to see organic queries, clicks, impressions, and click-through rates alongside GA4 session and conversion data.
A few things to know: GSC data in GA4 is available for the past 16 months only, and it appears at the session level (not the user level). If your site is new to GSC, verify ownership there first before attempting the link. For a broader look at how GA4 data feeds into marketing analytics workflows, the integration with Search Console is usually the first recommended step after basic setup.
If your website spans more than one domain (for example, yourbrand.com and yourshop.yourbrand.com or a separate checkout domain), GA4 treats users crossing between them as separate sessions by default. Cross-domain tracking fixes this so a single user journey is counted as one session.
Step-by-step:
yourbrand.com, checkoutdomain.com). Use the Contains match type for flexibility.GA4 automatically appends a _gl parameter to links between the listed domains, which carries the session identifier across. No additional code is needed when using the gtag.js or GTM installation.
For subdomains (e.g., shop.yourbrand.com and blog.yourbrand.com): GA4 handles subdomains of the same root domain automatically when they share the same Measurement ID. You only need the cross-domain configuration for entirely separate domains.
After setup, verify by navigating from one domain to the other while Tag Assistant is active. The _gl parameter should appear in the URL of the destination page, and DebugView should show a continuous session without a new session_start event firing on the second domain.
GA4 is built for cross-platform measurement, which means a single GA4 property can hold multiple data streams: one for your website, one for your iOS app, and one for your Android app. All streams feed into the same property, so you can analyse web and app behaviour together.
To add an app stream:
GoogleService-Info.plist (iOS) or google-services.json (Android) configuration file provided by GA4.For most small business website owners, app streams are not immediately relevant. If you have a mobile app alongside your website, the key advantage of GA4 is that both streams share the same event schema, so a purchase event on your app and a purchase event on your website roll up into the same conversion report. That unified view is something Universal Analytics could never provide cleanly.
The most common mistake is treating GA4 setup as a one-time task. You paste the tag, see data in Realtime, and move on. Six months later, you discover your conversion count is inflated because you never filtered out internal traffic, or your “leads” conversion is firing on every page load because the thank-you page URL was too broadly matched.
The second most common mistake is skipping the Measurement ID check. A single digit wrong in the G- ID and your data goes nowhere. Always copy-paste the ID directly from the data stream page rather than typing it manually.
Three habits that keep GA4 clean long-term:
Spending hours in GTM and DebugView is not the best use of your time if you are running a business. Tech Business Development sets up GA4 from scratch — account and property creation, GTM container, custom event design, Google Ads and Search Console linking, user permissions, and a full QA handover with validation screenshots — so you get clean data from day one without the trial and error.

The setup is fast, the deliverables are documented, and you know exactly what is being tracked and why. No guessing whether the tag fired, no discovering six months later that conversions were double-counted. If you want a working GA4 implementation without the DIY learning curve, see what’s included in the services and get in touch to book a setup consultation.
Official documentation and practical references used to build this guide:
FAQ
What is a GA4 Measurement ID and where do I find it? Your Measurement ID is a unique identifier for your GA4 data stream, formatted as G-XXXXXXXXXX. Find it at Admin > Data Streams > [your stream name]. It appears at the top of the stream detail page.
How long does it take for GA4 data to appear after installation? Realtime reports show hits within a minute or two. Full data processing for standard reports takes up to 30 minutes after the tag first fires.
Can I use GA4 and Universal Analytics at the same time? Universal Analytics stopped processing data in July 2023. GA4 is the current standard. You cannot send new data to a UA property.
Do I need Google Tag Manager to use GA4?
No. GTM is recommended for professional setups, but you can install GA4 directly via a CMS plugin or by pasting the gtag.js snippet into your site’s <head> tag.
What is enhanced measurement and should I enable it? Enhanced measurement automatically tracks scrolls, outbound clicks, file downloads, site search, and video engagement without custom code. Enable it for every web data stream — there is no downside for most sites.
How do I know if my GA4 tag is firing correctly? Use Tag Assistant at tagassistant.google.com to see which tags fire on each page, and check GA4’s Realtime report to confirm active users appear when you browse your site.
What permissions do I need to set up GA4? You need Editor access at the property level to create data streams, configure events, and manage tag settings. Administrator access is required to manage user permissions and delete properties.
How do I exclude my own visits from GA4 data? Go to Admin > Data filters and create a filter based on your IP address. This prevents your own browsing from inflating session and event counts.