How do I check that my Google Analytics 4 setup is tracking the right things?
You check a Google Analytics 4 setup by comparing what your business counts as success with what your property actually records. Write down the handful of actions that mean a visitor became a lead or a customer, such as submitting the contact form, starting a trial, or completing a purchase. Then confirm three things for each one: that your site sends an event when it happens, that the event is marked as a key event, which is what Google Analytics now calls a conversion, and that it fires once per action rather than twice or not at all. After that, check that the traffic behind those conversions is credited to the right sources, and that the property's settings aren't quietly trimming or shifting your data.
Google Analytics gives you the tools to check this by hand. The Realtime report shows the events arriving in the last 30 minutes, so you can submit a form on your own site and watch for the event. DebugView, under Admin, shows every event and its parameters from a browser you've put in debug mode with Google's Tag Assistant. The Events report lists every event your site sent over a period with its count, and the key events list shows which of them count as conversions. The admin settings hold everything else: your data streams, enhanced measurement, data retention, attribution, the list of unwanted referrals, and the filters that exclude your own team's visits.
What these tools don't do is tell you what's missing. Google Analytics can only show the events your site sends, so a demo form that never fires an event simply doesn't appear anywhere. Enhanced measurement records page views, scrolls, outbound clicks, and some form submissions automatically, but it often misses forms embedded from another tool, such as HubSpot or Typeform. An event can also be recorded perfectly and never marked as a key event, or a thank-you page can be marked as a key event and count again every time someone refreshes it. None of this raises an error. The reports just show the wrong number with full confidence.
A good audit ends with a short, ranked list: what's wrong, how much it distorts the numbers you make decisions with, and the exact fix for each problem. Kite runs that audit for you. It starts from what it knows about your business, reads your Google Analytics property, walks through your site to see what actually fires, and tells you what to fix first.
How to get started
Start by asking Kite to check your setup:
"Can you audit our Google Analytics setup? I'm not sure it's tracking our demo requests properly."
Kite is an AI marketer. It researches your business, builds a growth strategy, and ships the work that brings you new customers. From that research, it already knows what your site sells and which pages lead to a signup, a demo request, or a purchase. So it proposes the list of conversions the audit should check, such as demo form submitted, trial started, and newsletter signup. Confirm the list or change it, and Kite starts.
You can work with Kite in the Kite web app or in Slack. Connect your Google Analytics account through OAuth so Kite can read your property. If your account can see more than one property, Kite lists them with their data streams and confirms which one measures the site you're asking about.
Reading your property is routine work, so Kite starts as soon as the account is connected and reports what it finds in the conversation. It tells you before it changes a property setting, and it asks for your approval before it publishes any change to your website.
How Kite audits your Google Analytics 4 setup
Is this the right property for your site?
Kite first confirms that the property it's auditing is the one your site actually reports to. It lists the data streams on the property and reads each web stream's measurement ID and website address. Then it renders your homepage and a few key pages and reads which Google tag each one loads. A page that loads a measurement ID from a different property, or two different IDs, sends its data somewhere you aren't looking.
It also reads the property's settings, including its time zone, currency, and industry category. A time zone that doesn't match your business shifts every day's numbers by several hours, which makes a Monday campaign look like it landed on Sunday. A currency that doesn't match your prices makes every purchase value wrong. These are two of the few settings Kite can change directly, so it proposes the correction and makes it once you agree.
Does every conversion you care about get recorded?
Kite checks each conversion on your list against the events your site actually sends, because this is the problem that does the most damage. It runs a report of every event the property received over the last few weeks with how often each one fired, and it reads your list of key events. It also reads any event create rules on your data stream, which are rules that turn one event into another, such as a page view of your thank-you page into a generate_lead event.
For each conversion, Kite reaches one of a few verdicts:
- Recorded and marked. The event fires and is a key event, so Google Analytics counts it as a conversion.
- Recorded but not marked. The event fires, but it isn't a key event, so your conversion reports leave it out.
- Not recorded. No event matches the action, which is common with forms embedded from another tool or signup buttons that open a separate app.
- Marked but not a conversion. A key event such as
scrollorpage_viewinflates your conversion count with actions that aren't conversions.
To see what really happens, Kite opens your site in a browser and clicks through the path to each conversion, then checks the Realtime report for the events that arrived. If completing the action would create a real lead or order, Kite asks you before it does.
Kite's Google Analytics connection can read your key events but can't mark or unmark them, so Kite tells you exactly which event to mark and where. For an event that's missing, it names the event and the parameters it should carry, such as a form_name on a lead event, so the developer or the person who manages your tags knows exactly what to add.
Is each conversion counted once?
Kite looks for conversions that are counted more than once, because a doubled number looks like good news and rarely gets questioned. It compares each key event's count with the number of users and sessions that triggered it. A lead event that fires twice per session for most visitors usually means the event is sent by two tags at once, or by both a tag and an event create rule. A thank-you page marked as a key event counts again every time someone reloads or revisits it.
Kite also checks for pages that load Google's tag twice, such as once directly and once through Google Tag Manager, which doubles page views as well as events. When you've connected the tool where your conversions actually land, such as HubSpot for leads or Stripe for payments, Kite compares the count in that tool with the count in Google Analytics for the same days. A modest gap is normal, because some visitors block analytics. A gap of half or double points to a tracking problem.
Is the traffic credited to the right source?
Kite reads where your sessions and conversions come from, because a conversion credited to the wrong source sends your budget to the wrong channel. It runs a report of sessions and key events by source, medium, and default channel group, and it reads the channel groups defined on the property.
It looks for the patterns that mean credit is going astray:
- Your own domain or a payment page as a referrer. When
checkout.stripe.comor your own app's domain shows up as a source of conversions, the visitor's original source was lost at that step. The fix is to add the domain to the unwanted referrals list, or to set up cross-domain measurement when your site and app live on different domains. - A large share of Unassigned traffic. Google Analytics puts sessions it can't match to a channel into Unassigned, which usually comes from UTM tags with unusual mediums.
- The same source spelled several ways. Values such as
facebook,Facebook, andfbsplit one channel into three rows and hide its real total. - Direct traffic that's out of proportion. A high share of direct traffic on deep pages often means links in emails or ads are missing UTM tags.
Kite also checks whether a Google Ads account is linked to the property when your research shows you run Google Ads, since without the link, Google Analytics can't attribute those conversions to campaigns and keywords. It reads the attribution settings too, including the attribution model and how many days back a click can still earn credit.
Is anything polluting the data?
Kite checks for data that doesn't belong to your real site, because it inflates traffic and dilutes your conversion rate. It runs a report of events by hostname, which shows every domain that sent data to the property. A staging site, a local test copy, or an unfamiliar domain sending fake hits will show up there. It also looks for bursts of sessions from one source with almost no engagement, which is the usual sign of bot traffic that Google Analytics didn't catch on its own.
Visits from your own team are harder to spot in reports, so Kite tells you how to define your office or home addresses as internal traffic and turn on the filter that excludes them. On a small site, a few people checking the pricing page every day can make it look far healthier than it is.
Are your settings keeping the data you'll need?
Kite reads the settings that decide how much your reports can show, and it checks them last because they rarely change the numbers you see today. It reads the data retention period, which is two months by default and limits how far back an exploration can reach. Most businesses want the longer setting of fourteen months, so Kite tells you where to change it.
It also reads your custom dimensions and metrics and compares them with the parameters your events actually send. A parameter such as plan_name or form_name is sent with every event but stays invisible in reports until it's registered as a custom dimension, so Kite registers the ones you'll want to report on. Registration only applies from that day forward, which is a good reason to do it now. It also reads whether Google signals is turned on, and it reads the property's annotations, which often record a site launch or tracking change that splits the data into a before and an after.
What Kite reports back
Kite reports the audit in the conversation where you asked, starting with the problem that distorts your numbers the most. Each finding says what's wrong, how Kite found it, which reports it affects, and how much it changes them, such as "your demo requests are undercounted because the embedded form never sends an event." Then it gives the fix and says who makes it: Kite, you in the Google Analytics admin screens, or whoever edits your site's code or tags. When the audit is too long for one message, Kite publishes it as a findings page and links to it. It also saves the audit to your team's knowledge base, so the next audit can show what changed.
From there, Kite makes the fixes it can. It corrects the time zone or currency, registers custom dimensions and metrics, and archives custom dimensions nobody uses anymore. On a site Kite builds, or one it works on through your GitHub repository, it can add a missing tag or event to the site's code, and it asks for your approval before publishing. For fixes that live in Google Analytics' own settings or in Google Tag Manager, it gives you the exact steps, then checks the Realtime report and the event counts afterward to confirm the fix worked.
If you'd like your setup checked regularly, ask Kite to repeat the audit every month and send the results where you choose. Each run compares the new findings with the last audit, so a form that stops firing after a site redesign shows up before a month of conversions goes missing.
What the finished work contains
When Kite finishes, you know which of your numbers you can trust, which ones are wrong and by how much, and what to fix first.
The conversion check
Every conversion on your list with its verdict, the event behind it, how often it fired, and whether it's marked as a key event.
Ranked findings
Every problem Kite found, ordered by how much it distorts your conversion and traffic numbers, with the evidence and the reports it affects.
The fix for each finding
The exact change, where it's made, and who makes it, whether that's Kite, you in Google Analytics, or the person who edits your site or tags.
Changes Kite made
The settings it corrected and the custom dimensions and metrics it registered, so your team knows what's different in the property.
A saved baseline
The audit stored in your team's knowledge base, so the next check can show what was fixed and what broke.
Common questions
Where do I find my Google Analytics measurement ID?
Your measurement ID is in Admin, under Data collection and modification, in Data streams. Open the web stream for your site and the ID appears at the top, starting with "G-". That ID is what the Google tag on your pages needs to load, so a page carrying a different ID is reporting to a different property.
What's the difference between DebugView and the Realtime report?
The Realtime report shows events from every visitor in the last 30 minutes, while DebugView shows each event and its parameters from browsers you've put in debug mode. Use Realtime to confirm that an event arrives at all, and DebugView to check that it arrives once and carries the right parameters.
How often should I audit my Google Analytics setup?
Audit your setup whenever your site changes in a way that touches tracking, such as a redesign, a new form tool, or a move to a new domain, and check it every month in between. Tracking usually breaks silently during site changes, and a monthly check keeps the gap in your data to a few weeks at most.
Does Kite need Google Analytics to measure a site it hosts?
No. Kite's built-in analytics record visitors, top pages, referrers, form submissions, calls to action, and conversion funnels on every site it hosts. Connect Google Analytics when your site is hosted somewhere else or when your team already relies on its reports.