Key takeaway: Conversion tracking is not a plugin you install once. It is a chain of six links — define, implement, mark, import, consent, verify — and breaking any single link quietly corrupts every campaign decision downstream. Fixing measurement is almost always cheaper than optimising on top of a broken signal.
Why does bad conversion data cost more than a bad campaign?
Modern ad platforms optimise almost entirely on the conversion signals you feed them. That is the whole design: give Google or Meta a definition of success, and the system hunts for more people who look like the ones who already converted. The consequence is uncomfortable. If the only thing you count is a page view, the algorithm becomes excellent at buying cheap page views. If you count every button click as a lead, it finds clickers rather than buyers. In both cases the platform does exactly what you asked — the mistake was in the request.
A weak campaign wastes its own budget. A broken tracking setup wastes the budget of every campaign attached to it, permanently, because it mangles the learning loop rather than one flight of ads. And it rarely announces itself: the dashboard keeps drawing graphs. What disappears is the connection between the numbers and the business — reports show 40 leads, the inbox received nine, and nobody can explain the gap.
What actually changed since Universal Analytics?
If your instincts were formed in the Universal Analytics era, several defaults have moved. Universal Analytics stopped processing standard-property data in mid-2023, so GA4 is now the only Google Analytics in play. GA4 is event-based: there are no separate goals or per-pageview conversion reports, every interaction is an event, and what used to be called a conversion is now a key event. Reporting is largely session- and user-scoped, attribution leans on data-driven models, and on the free tier event data retention defaults to two months, extendable up to fourteen.
The practical effect is simple. If you never explicitly configured events, a GA4 property still collects plenty of page views and almost no business signal. Everything that matters in this article starts from that gap.
Step 1: How do you define a conversion before touching a tag?
Write the definition in business language before opening any tag manager, because a naming convention cannot rescue an undefined outcome. For most service businesses there is exactly one macro-conversion: a submitted enquiry, a booked call, or a completed checkout. Everything else is a micro-conversion — phone clicks, WhatsApp clicks, pricing-page views, brochure downloads. Micro-conversions are excellent diagnostics for drop-off, and poor things to bid against.
- Macro-conversion. The enquiry, booking or purchase. This is the only thing a bidding strategy should chase.
- Value. Attach a monetary number — average deal size, or booking value — so smart bidding can prefer a qualified lead over a cheap one.
- Volume. Strategies with a cost-per-acquisition target need a steady stream of conversions to learn against. With only a handful per month, start on maximise clicks and treat any target as guidance, not as a promise.
- Definition of done. The precise page or state that proves the conversion happened — the thank-you URL, the order confirmation, the calendar confirmation screen.
One honest caveat: a lead is not revenue. Tracking form submissions measures interest, not income. The moment you can feed qualified-lead status back — even weekly, by hand — your campaigns start optimising toward pipeline instead of raw counts.
Step 2: Why install one Google tag instead of five?
Duplicate tags are the most common cause of impossible reports, and they arrive innocently: a theme or plugin ships its own snippet, an old agency leaves one behind, a developer hard-codes gtag inside the thank-you page template. Three tags firing on one submission triple the conversion count without tripling your customers, and the platform then happily pays more per "conversion" than your business can afford.
Choose one delivery method and remove the others. Either place the Google tag (gtag.js) directly in the site head, or run a single Google Tag Manager container — never both for the same events. Then confirm with Tag Assistant or GA4 DebugView that each event fires exactly once per action. On a hand-coded site with no page builder, a single gtag block is usually the simpler and faster option; Tag Manager earns its overhead when non-developers need to publish tags regularly or when several platforms are managed at once.
Step 3: Which events should you actually build?
Build the smallest set of events that maps to real outcomes, and name them consistently in snake_case, because report readability decays the moment naming becomes improvisational. A workable starting set looks like this.
- generate_lead — fired on the thank-you page or on a confirmed form callback, never on the click of the submit button. A click that fails validation is not a lead.
- book_call — fired when a booking widget or calendar confirms, not when the calendar opens.
- purchase — fired on the order confirmation page with value, currency and a unique transaction id.
- contact_click — phone, WhatsApp or email clicks, with the channel passed as a parameter.
- pricing_view or service_view — micro-conversions that explain where people drop out of the funnel.
Three implementation rules save hours of debugging later. Fire on confirmed success rather than intent. Pass the parameters you will genuinely filter on — form location, service requested, currency, value — because adding them after the fact means historical data you cannot segment. And guard purchase events against duplication: if a confirmation page can be refreshed, a reloaded order must not become a second sale. On a Stripe-style checkout the usual pattern is to fire purchase on the success page using the checkout session as the transaction id, then confirm that the same id never appears twice in GA4.
Step 4: How do you get GA4 conversions into Google Ads?
GA4 can host the event, but Google Ads bids on what Google Ads knows about. Mark the event as a key event in GA4 (Admin, then events, then mark as key event), then import it in Google Ads under goals and conversions, choosing the Google Analytics 4 import. Imported conversions arrive as secondary by default: they appear in reporting but do not influence bidding. That default is a safety feature. Once the counts match reality across a couple of weeks, set the conversion to primary so the bidding algorithms can use it.
The alternative is a native Google Ads conversion tag fired by the same trigger. That works perfectly well, but never run both for the same outcome, or you will count each lead twice and wonder why the cost per lead looks double what the CRM suggests.
Whichever path you take, auto-tagging must be enabled in the Ads account. Without it, ad clicks arrive without the GCLID parameter, and Google Ads cannot reliably tie a GA4 event back to the click that caused it — imports then look empty or under-counted for reasons that have nothing to do with the website. Two smaller settings deserve a decision rather than a default: the conversion window, and whether a conversion counts once per click or on every occurrence. For lead forms, one per click is usually the honest choice; for e-commerce, count every purchase.
If you collect hashed customer data such as email or phone with proper consent, enhanced conversions improve match rates, particularly on mobile where cookie coverage is thinner. Think of it as recovering measurement you are already entitled to, not as a way around consent.
Step 5: What does tracking mean for Swiss and EU privacy rules?
Conversion tracking is a consent problem before it is a technical one. Switzerland's revised data protection framework has been in force since September 2023, and any visitor from the EU falls under the GDPR. In practice: no analytics or advertising cookies before consent, a banner where refusing is as easy as accepting, and — when advertising into the EEA — Google Consent Mode configured with its four parameters, all set to denied by default and updated the moment a visitor makes a choice.
The technical detail that matters is wait_for_update. Consent Mode can model part of the measurement from unconsented traffic, but only if the tags are configured to wait for the consent signal instead of firing immediately on page load. A banner without consent mode, or consent mode without a banner, produces a spreadsheet you can neither legally nor statistically trust.
Knowing exactly which tags fire, and when, is also what separates a defensible privacy position from a hopeful one. If you cannot answer "what data leaves the browser before consent" for your own site, the honest answer is that you have a compliance question and a measurement question at the same time.
Step 6: How do you verify the chain before trusting it?
Test with a real submission, not a simulated one. Send a test enquiry with a recognisable name, run a test-mode checkout, and watch the chain react in GA4 DebugView and in the Google Ads conversion status. Then check four things.
- The event. It appears exactly once in DebugView, with the parameters you expect and the correct key-event flag.
- The status. Google Ads shows recent activity on that conversion — a recording status rather than "no recent conversions" once real traffic lands.
- The reconciliation. Pick one date range and compare Google Ads, GA4 and your CRM or booking log. Small gaps are normal: attribution windows, consent, cross-device journeys. A factor of two is a bug.
- The noise. Filter your own visits and your team's, or repeated internal testing inflates the very numbers you are optimising against.
Google Ads conversion status is widely misunderstood, by the way. A low-volume service business may legitimately have no recent conversions while everything is configured correctly, and a conversion that "dropped" overnight is often just conversion lag — the credit for a click arriving days later. Verify configuration before you rewrite campaigns.
What should the monthly routine look like?
Once measurement is trustworthy, maintenance is short. Reconcile the three sources above against leads actually received, review which campaigns produce qualified leads rather than merely cheap ones, and check whether anything started firing twice after a site update, a plugin installation or a CMP change — duplicate firing is the classic post-refresh regression. Keep a one-page record of which tag fires which event and where. The next developer who touches the site will thank you, and your reports survive the change of hands.
What does a correct setup look like in practice?
On a recent hotel project I rebuilt the booking funnel around a single tracked outcome: the Stripe checkout confirmation. Menu views, room-page engagement and phone clicks are all recorded as diagnostic events and never as bidding targets. Everything else followed the same six steps — one tag, one purchase event with a unique transaction id, enhanced conversions, consent mode with denied defaults, and a manual test order verified in Ads before the budget moved. The full story of that build is in the Le National Montreux case study.
That is the pattern worth copying: decide what business outcome you are buying, make one event prove it, and only then let the platform optimise. If the pages doing the converting are weak in the first place, no amount of measurement help will rescue them — the conversion fixes worth testing first are the natural next step, and if tracking is part of a wider technical review, the SEO audit checklist shows where measurement fits among the fundamentals.
Frequently Asked Questions
Want to know whether your tracking is telling the truth? I audit GA4 and Google Ads setups for Swiss and French-speaking businesses, then rebuild the measurement chain so every campaign decision rests on data you can defend.