- Most GA4 fixes apply only from the day you make them, so record the date and do not compare across it.
- Check that one page load sends one page_view and one real enquiry produces exactly one key event.
- Exclude internal and developer traffic, list payment and booking domains as unwanted referrals, and keep UTMs off internal links.
- Choose 14-month retention, set the time zone and currency you report in, test consent behaviour, and link Google Ads with auto-tagging on.
Most GA4 problems on lead-generation websites are not exotic: a tag that loads twice, a key event on the wrong action, test submissions counted as enquiries, a payment page that takes the credit for a lead. Each one is quiet. The reports still fill up with plausible numbers, and the damage shows up later, when Google Ads optimises towards the wrong signal or a board report shows leads sales never received.
Below are the setup mistakes that most often distort lead reporting on corporate and B2B sites, each with the signs to look for, how to check with Google’s own tools and documentation, and the fix. How to build lead key events for forms, calls and WhatsApp is covered in our guide to tracking leads as GA4 key events.
Before you start: three tools and one rule
Almost everything below can be checked with free Google tools:
- Tag Assistant (tagassistant.google.com) lists the tags on a page and the hits they send as you browse (Tag Assistant Help: Troubleshoot with Tag Assistant).
- DebugView shows the events GA4 collects from your device in real time with debug mode on (Analytics Help: Monitor events in DebugView).
- Tag Diagnostics and Tag coverage, in the Google tag settings, flag issues such as a tag that stopped sending data or consent commands out of order, and list which pages have loaded your tag (Tag Diagnostics; About the Tag coverage summary).
The rule: most GA4 fixes apply only from the moment you make them. In Google’s words, marking a key event “doesn’t change historic data” and data filters “do not affect historical data”. So record the date of each fix, and do not compare the months either side of it as if nothing changed.
Collection mistakes: what the tag records
1. The tag is installed twice
Signs to check. Views per session look unusually high, or events arrive in pairs. A duplicate is not the only possible explanation, but it is worth ruling out first, especially after a redesign or plugin change: a theme or WordPress plugin may have its own “Google Analytics” field while the Google tag was also added through Tag Manager or pasted into the header.
How to check. In Tag Assistant, the same G- ID listed more than once is the giveaway; in DebugView, one page load should produce one page_view. On a single-page application, also check whether a manually sent page view and enhanced measurement’s page views on browser-history changes are both firing for the same screen (Google describes the browser-history setting of that option in Analytics Help: Enhanced measurement events).
Fix. Keep one installation method, remove the rest and retest every template, including thank-you and landing pages.
2. The key event is marked on the wrong event
Signs to check. GA4 reports far more “leads” than the inbox or CRM received, sometimes close to the number of sessions. Causes worth checking include a page_view marked as a key event (it fires on every page), a form_start marked instead of a confirmed submission, or a “Contact us” button click counted as a lead when it only opens the contact page.
How to check. Go through the Key events list and ask of each one: would a salesperson want to know this happened? Then compare a week of key events with enquiries actually received.
Fix. Unmark the wrong events and mark the right ones. Unmarking does not change data already collected, and a new key event counts only from when it is marked (Analytics Help: Mark events as key events). If a page_view is genuinely the right signal, as with a thank-you page, create a separate event for that one URL and mark only that. Standard properties allow up to 30 key events; a lead site needs a handful, clearly named.
3. Form success is never recorded, or recorded when it did not happen
Signs to check. Form leads in GA4 sit at zero while the inbox fills up, or the count is higher than real submissions.
How to check. Submit a real test enquiry with DebugView open, then run three tests. Does the form show its success message on the same page? If so, an event built on a thank-you URL will never fire. Can the thank-you page be reached from the menu, sitemap or search results? If so, ordinary visits may be counted as leads. Does a “submit” event still fire when a required field is left empty? If so, it is counting attempts, not enquiries.
Fix. Record the lead on confirmed success: an event sent when the form accepts the submission, or a thank-you page only the form can reach. A WhatsApp or phone tap is a signal of intent, not a confirmed conversation, so keep it separate from form leads.
Traffic-source mistakes: who gets the credit
4. Internal and developer traffic is counted
Signs to check. Leads named “test”, or the office’s own city near the top of location reports. Staff, agencies and developers visit their own contact pages often, and on a low-traffic site that can be enough to distort the figures.
How to check. Look for internal-traffic rules in the web stream’s tag settings and for data filters in Admin. If neither exists, nothing is excluded.
Fix. Define internal traffic by IP address or range; GA4 then adds a traffic_type parameter to matching events. Create an Internal traffic data filter, leave it in Testing to confirm it catches the right sessions, then activate it. Google is explicit that active filters are permanent, excluded data “is never processed”, and a filter can take 24 to 36 hours to apply (Analytics Help: Filter out internal traffic). A separate Developer traffic filter removes activity from developers using debug mode (Analytics Help: Data filters). IP rules miss staff on mobile data or at home, so also mark test enquiries clearly and remove them from lead counts.
5. Payment or booking domains appear as referrals
Signs to check. A payment gateway, booking tool or hosted form provider appears as a top referral source with a high key event rate, because visitors leave to that domain and return to your thank-you page.
How to check. In traffic acquisition, look for referral domains that are steps in your own conversion journey rather than sites that send new visitors.
Fix. List those domains as unwanted referrals in the web stream’s tag settings. Google’s own example is this case: an ecommerce site whose users return after checking out on a third-party payment processor’s domain. You can list up to 50 per data stream, and your own domain and subdomains are not counted as referrers in the first place. A session already credited to a domain before you list it stays credited to it, so expect the fix to show only from that point (Analytics Help: Identify unwanted referrals). If you own and tag that domain, use cross-domain measurement instead.
6. The journey spans domains and cross-domain is not configured
Signs to check. Your own second domain appears as a referral, or users and sessions look inflated.
How to check. Click from one domain to the other and look at the destination URL. With cross-domain measurement working it carries a _gl parameter. Without it, Google says Analytics creates new cookies and IDs on each domain, so one person on one device is counted as two users and two sessions (Analytics Help: Set up cross-domain measurement).
Fix. Both domains must use the same G- tag ID from the same web stream. Add them under Configure your domains in the stream’s tag settings and retest; Google lists redirects and script-driven navigation as common reasons _gl is lost.
7. UTM parameters are used on internal links
Signs to check. Campaign reports show names such as “homepage-banner” or “menu” as sources, and some leads are credited to your own website.
How to check. Look for utm_ in the URLs of your own banners, menus and buttons.
Fix. Our advice is to remove them. Google’s help page does not address internal links directly; it presents UTM parameters as a way to “identify the campaigns that refer traffic” (Analytics Help: URL builders: Collect campaign data with custom URLs). On an internal link the label describes your banner, not how the visitor arrived, and if that URL is shared or bookmarked, a later visit may be credited to it. Track internal banners with a click event instead. On external links, Google’s page says to always include utm_source, utm_medium and utm_campaign, and that missing parameters produce “(not set)” values. Be careful, too, about adding manual UTMs to auto-tagged Google Ads URLs: Google notes that events can end up credited to the UTM source rather than Google Ads, and that including manual campaign values alongside Google Click ID values “can lead to misattribution” (Analytics Help: Scopes of traffic-source dimensions).
Property settings nobody revisits
8. Short data retention
Signs to check. Standard reports show a full year, but an exploration or funnel report comparing this quarter with last year comes back empty or partial.
How to check. In Admin, in the property column, open Data settings, then Data retention. Standard properties offer 2 or 14 months, and the setting also covers key events data. Retention limits explorations and funnel reports, not standard aggregated reports (Analytics Help: Data retention).
Fix. For most lead sites, choose 14 months so explorations can look year on year. An increase applies to data already collected that has not yet been deleted, so change it early. If a standard property becomes a Large property, Google automatically reduces event-level retention to 2 months.
9. Reporting time zone and currency that do not match the business
Signs to check. Daily lead counts never line up with the CRM, because GA4 closes the day hours before or after your sales team does. Lead values or revenue appear in a currency your finance team does not use.
How to check. Both are chosen when the property is created and are easy to accept without thinking, so check the reporting time zone and currency in the property’s details. The time zone is “used as the day boundary for reports”, and changing it “only affects data going forward” (Google Analytics Admin API: REST Resource: properties; Analytics Help: Set up Analytics for a website and/or app).
Fix. Use the time zone your business reports in, for example Riyadh, Dubai, Cairo or Doha, note the change date, and set the currency you report in. Google’s currency reference says that, unlike a time zone change, a currency change affects historical data too, converting it to the new currency (Analytics Help: Currency reference).
Consent and connection mistakes
10. The consent setup blocks more than intended
Signs to check. Users, sessions and leads fall sharply on the day a cookie banner goes live, or DebugView shows nothing during testing.
How to check. Find out which consent mode you run. In basic consent mode, Google tags do not load until the user interacts with the banner, and if consent is not given “no data is transferred to Google at all”. In advanced mode, tags load with consent denied by default and send measurements without cookies until the user chooses (Google Tag Platform: Consent mode overview). Test by accepting on one visit and rejecting on another while watching Tag Assistant. DebugView does not show events from a browser that has not consented to analytics cookies, so a blank DebugView does not prove the tag is broken. Tag Diagnostics also flags a property that always sends a denied ad_user_data signal, which can point to a misconfigured consent setup.
Fix. Set the default consent state before any Google tag command, on every page, and send an update the moment the visitor chooses; Google warns that an update sent as the page unloads may be cancelled by the browser before it completes (Google Tag Platform: Set up consent mode on websites). The aim is to lose only what visitors chose not to share. Defaults for Gulf and Egyptian sites are covered in our consent mode guide; this is not legal advice, so check your market’s rules with your advisers.
11. GA4 is not linked to Google Ads
Signs to check. Google Ads cannot use your GA4 key events when you create conversions, and Google Ads cost and click data are missing from GA4 reports.
How to check. In GA4 Admin, under Product links, open Google Ads links. Linking needs Editor or Administrator access in GA4 and Admin access in Google Ads (Analytics Help: Connect Google Ads to Google Analytics).
Fix. Link every Ads account that sends traffic to the site; the linking flow includes an option to turn on auto-tagging, which appends a Google Click ID to ad URLs. Google says linked Google Ads data appears in Analytics reports within 48 hours, and that deleting a link stops data flowing between the two, including key event imports. For bidding on the right signals, see our performance marketing service. If campaigns are getting clicks but no recorded leads, this diagnosis walks through the rest of the path.
A self-check you can run in one sitting
If you have time for one pass through your own property, use this order; each step depends on the one before:
- Tag: one Google tag per page, on every template (Tag Assistant, Tag coverage).
- Consent: accept and reject both behave as intended.
- Lead events: a real test enquiry produces exactly one key event; a failed submission produces none.
- Key events list: nothing that fires on ordinary browsing.
- Filters: internal and developer traffic excluded, tested before activation.
- Sources: payment and booking domains listed as unwanted referrals; your own domains linked with cross-domain; no UTMs on internal links.
- Settings: retention 14 months, correct time zone and currency.
- Google Ads: linked, auto-tagging on, the right key events used for bidding.
GA4, Google Ads and your CRM will still differ after every fix: they count different things, and consent choices mean some visits are never measured. The goal is that each remaining gap has a known reason, not that the numbers match.
RX has implemented analytics and tracking setups for multiple client websites, and offers a tracking audit, a setup and integration project or monthly management, with accounts staying in the client’s name. If you would rather have the check done for you, see Analytics, Tracking and Conversion Measurement.
Frequently asked questions
How do I know if my GA4 tag is installed twice?
Open a page with Tag Assistant and check whether the same G- tag ID is listed more than once, then confirm in DebugView that a single page load sends one page_view event, not two.
Will fixing GA4 settings correct my past data?
Mostly not. Google states that marking a key event does not change historic data, data filters do not affect historical data and a time zone change applies only going forward. Increasing data retention does apply to data not yet deleted, and a currency change converts historical values.
What data retention setting should a lead-generation site use?
Standard GA4 properties can choose 2 or 14 months. Most lead sites should choose 14 months so explorations and funnel reports can compare year on year. Standard reports are not limited by this setting.
Why does a payment or booking website show up as a referral in GA4?
Visitors leave your site for that domain and return to your confirmation page, so GA4 records the return as a referral. Add the domain to the unwanted referrals list in the web stream's tag settings; it does not fix past data.
Should GA4 lead numbers match my CRM after these fixes?
No. GA4, Google Ads and the CRM count different things, and visitors who decline consent are not fully measured. After a clean setup, each remaining gap should have a known reason.
- Google Tag Assistant Help, Troubleshoot with Tag Assistant.
- Google Analytics Help, Monitor events in DebugView.
- Google Analytics Help, Troubleshoot tag issues with Tag Diagnostics.
- Google Analytics Help, About the Tag coverage summary.
- Google Analytics Help, Enhanced measurement events.
- Google Analytics Help, Mark events as key events.
- Google Analytics Help, Filter out internal traffic.
- Google Analytics Help, Data filters.
- Google Analytics Help, Identify unwanted referrals.
- Google Analytics Help, Set up cross-domain measurement.
- Google Analytics Help, URL builders: Collect campaign data with custom URLs.
- Google Analytics Help, Scopes of traffic-source dimensions.
- Google Analytics Help, Data retention.
- Google for Developers, REST Resource: properties (Google Analytics Admin API).
- Google Analytics Help, Set up Analytics for a website and/or app.
- Google Analytics Help, Currency reference.
- Google for Developers (Tag Platform), Consent mode overview.
- Google for Developers (Tag Platform), Set up consent mode on websites.
- Google Analytics Help, Connect Google Ads to Google Analytics.



