Having tracking is easy. Trusting it is harder. The ad platform reports one number, Google Analytics reports another, and the sales team counts a third.
You don’t need to become a technician to fix this. You need to know what each tool is for, what it can’t see, and the order to set things up.
What GA4 measures
Google Analytics 4, or GA4, records what people do on your website as events. A page view is an event. So is a scroll, a click on your phone number, a form submission or a purchase.
You then mark the few that matter to the business as key events: an enquiry sent, a call started, an order placed. GA4 used to call these conversions, and you will still see that word in Google Ads.
GA4 also shows where each visit came from. What it can’t show is what happened after the visitor left your site. The phone call, the WhatsApp conversation and the final sale are recorded elsewhere, usually in your CRM.
What Google Tag Manager is for
A tag is a small piece of code that sends information to a tool such as GA4, Google Ads or Meta. Without a tag manager, every new tag or change means editing the website’s code.
Google Tag Manager, or GTM, replaces that with one container, added to the site once. After that, tracking is managed from one place. Tags decide what is sent and to which tool. Triggers are the rules for when a tag fires, such as a page view, a button click or a form submission.
Changes are published as versions, so you can roll back if something breaks. GTM does no reporting of its own, though. It delivers data to the tools that do.
Why the Meta Pixel alone misses conversions
The Meta Pixel is a script that runs in the visitor’s browser. When someone views a page or sends an enquiry, the browser tells Meta, and Meta tries to match that action to someone who saw or clicked your ad.
The weak point is the browser. Anything that stops the script, or stops it recognising the visitor, leaves a real conversion that Meta never hears about.
- Ad blockers. Many stop the Pixel from loading at all.
- Browser privacy features. Safari, Firefox and others limit the cookies the Pixel relies on, or shorten how long they last.
- iOS privacy changes. Since iOS 14.5, apps must ask permission before tracking people across other companies’ apps and websites. When someone declines, Meta can connect less of what they do afterwards to the ad they saw.
The result is under-reporting. Campaigns can look weaker than they are, and Meta has fewer conversions to learn from. How much goes missing varies by business and audience, so be wary of anyone who quotes a single figure.
What the Conversions API does
The Conversions API, often shortened to CAPI, sends events to Meta from a server instead of the browser. When your website or shop platform records an enquiry or an order, its server reports the event to Meta directly. An ad blocker or a dropped connection in the visitor’s browser doesn’t stop it.
Meta recommends running both: the Pixel in the browser and the Conversions API on the server. To stop the same purchase being counted twice, the browser event and the server event are sent with the same event name and the same event ID. When Meta receives two events that match on both, it keeps one and discards the other. This is called deduplication.
Two cautions. If the event ID is missing or doesn’t match, conversions can be counted twice, which inflates your results. And the Conversions API is not a way around consent. It is a more reliable way to send data you are allowed to send. It narrows the gap. It doesn’t close it.
Consent comes first
All of this sits behind one rule: tags should respect the visitor’s cookie choice. The banner records that choice and passes it to Tag Manager, and each tag fires only with the right permission. Google’s tags can also read it through consent mode and adjust what they collect. The same choice should apply to events sent from your server.
The legal detail differs by country, and it is stricter for visitors from the UK and the EU, so check what applies to your customers. Either way, some visitors will not be tracked, and that is how it should be.
UTM parameters: label every campaign link
GA4 reports campaigns reliably only when the link says where the click came from. UTM parameters are short labels added to the end of a campaign link. Three do most of the work:
- utm_source is where the click came from, such as facebook, google or newsletter.
- utm_medium is the type of traffic, such as paid_social, cpc or email.
- utm_campaign is the name of the campaign, such as october_offer.
Google Ads can label its own clicks automatically once it is linked to GA4. Almost everything else, including Meta ads, email and links you share on WhatsApp, needs UTMs added by you. Without them, paid clicks get mixed in with unpaid visits.
Agree one naming convention and keep it in lower case, because GA4 treats Facebook and facebook as two different sources. Never put UTMs on links between your own pages, because they overwrite where the visitor really came from.
Why the numbers never match exactly
Even with everything set up well, your ad platforms, GA4 and your CRM will not show the same numbers. They are not measuring the same thing.
- Different attribution models and windows. Each ad platform only sees its own ads, and credits itself when a conversion follows one within its own time window, which differs from platform to platform. If a customer clicks a Meta ad on Monday and a Google ad on Wednesday before buying, both platforms can claim the sale. GA4 counts one sale.
- View-through conversions. Ad platforms can count someone who saw an ad, didn’t click, and converted later. GA4 only knows about people who arrived on your site, so it never sees the view.
- Cross-device journeys. Someone taps an ad on their phone and buys on a laptop later. A platform they are logged in to on both devices may connect the two. Cookie-based analytics often sees two separate people.
- Blocked tags and declined consent. Each tool loses a different slice of visitors, and the ad platforms fill some of their gaps with modelled estimates.
- Your CRM counts people, not events. It includes the lead who phoned or messaged without touching the website, and leaves out the duplicates, tests and spam that a tag will happily count.
So stop asking which number is right. Use the ad platform to manage campaigns inside that platform, GA4 to compare channels, and the CRM as the record of who became a customer.
The goal is not matching numbers. It is a gap you can explain.
A gap that suddenly widens is the useful signal. It usually means a tag has broken or a form has changed.
A practical setup order
Each step depends on the one before it.
- Decide what counts. List the few actions that matter, and give each one a single name.
- Install GTM once. Move existing tags into it, so nothing fires twice.
- Connect the consent banner. Do this before any analytics or advertising tag goes live.
- Set up GA4. Add your events and mark the key events.
- Add the Meta Pixel. Send the same actions as Meta events, such as Lead and Purchase.
- Add the Conversions API. Use your platform’s integration or server-side tagging, with a shared event ID for deduplication.
- Label every campaign link. Write the UTM naming convention down.
- Carry the source into your CRM. Store the UTM values with each lead, so you can see which campaign produced which customer.
- Test, then document. Record what is installed and who owns it.
A short testing checklist
Check these before you rely on the numbers.
- GTM preview mode. Open your site through Tag Manager’s preview, complete each action yourself, and check that the right tag fired once.
- GA4 DebugView. While preview mode is running, your events appear in DebugView almost immediately. Check the event names and that your key events are marked.
- Meta Events Manager test events. The Test events tool shows what Meta receives as you browse. Server events need the test code shown there. Confirm that each event arrives from both browser and server, and is shown as deduplicated.
- Consent, both ways. Decline the banner and confirm the tags behave as they should for a visitor who said no. Then accept and confirm they fire.
- One test lead, end to end. Follow a link with UTMs and send a single enquiry. It should appear once in GA4, once in Meta and once in your CRM, with its source attached.
GA4’s standard reports can take a day or more to update, so use DebugView and the Realtime report while testing.
The takeaway
Tracking you can trust is not about collecting more data. It is about knowing what each number means, where its blind spots are, and why one tool differs from the next.
Set it up in order, test it properly, and check it again whenever the site changes, because tracking tends to break quietly. That gives you something better than a guess to base budget decisions on.