Measure first, then open the ad budget

You ran ads for a month. The dashboard has clicks, impressions, even a row labelled "conversions". And yet at the end of the month you cannot answer the simplest question there is: where did this month's actual customers come from?

The conversation usually ends the same way — "ads don't work for us". But in most cases the ads are not the problem. The system meant to show you what works was either never set up or set up wrong. And that is not just a reporting inconvenience.
"The ads don't work" is usually a measurement problem
When a campaign underperforms there are three suspects: the offer and creative, the targeting and budget, and the measurement. The order matters, because you cannot judge the first two until the third is correct. With broken measurement you are not comparing a strong creative against a weak one — you are comparing two numbers that mean nothing.
There is a second, more serious point. A modern ad platform is not a scoreboard. It reads the signal you send back and uses it to decide who sees your ads next. A wrong signal does not merely blind you — it teaches the system the wrong lesson. The algorithm will go looking for more of whatever event you highlighted. If that event is "opened the form", it will find you people who open forms and never fill them in — and it will be very good at it.
Measurement is not a technical item at the bottom of the "we'll add it later" list. It is the steering. When the site and the ads go to different teams the problem gets worse — we wrote about building web and marketing together separately.
Decide first: what actually counts as a conversion
This is the step that gets skipped most often. "Conversion" ends up being whatever the platform offers by default — a pageview, a click on the phone number, a form open. Those get picked because they are easy to count, not because they mean anything to the business.
The right question: which event, when it happens, means the business gained real value?
For a services company it is almost never a click — it is a submitted enquiry, or a call past an agreed length. For an online shop it is a paid order, not an add-to-cart. In long-cycle B2B you sometimes have to settle for "requested a proposal", because the contract is signed months after the click — a deliberate compromise, and worth naming as one.
A few working rules:
- Pick one primary conversion. Everything else is a supporting event — those are for diagnosis, not for optimisation targets.
- Send a value when you know it. Otherwise the platform treats a small order and a large one as identical, and steers your budget toward the cheap, worthless outcome.
- One event, one name. It has to be called the same thing in all three systems. "lead", "Lead" and "form_submit" become three separate events, and a few months later nobody can say which is the real one.
Write this definition down and agree on it. One sentence is enough — but without it, everything after it is guesswork.
A signal can die silently in three places
Conversion tracking lives in three places, and they are not redundant copies — they are three independent witnesses. When they agree, you can trust the number. When they disagree badly, the gap itself is the finding.
The browser pixel
This is the most fragile link, because it runs on the user's device. Blockers stop the script. Browser restrictions shorten cookie lifetimes. A consent banner can block the script until the visitor chooses — and some visitors never choose either way. On single-page sites the event may not re-fire when the URL changes without a reload. Sometimes the failure goes the other way: the thank-you page is reachable by anyone, someone bookmarks it, and every visit writes you a phantom conversion.
The server side (Conversions API)
Server-side sending exists to recover the signal the browser lost. It also breaks silently. The most common failure: the same conversion goes out from both the browser and the server without a shared event ID, so the platform counts it twice. Your customer count comes out too high and your cost per customer too low — and that number encourages you to raise the budget on the strength of a success that never happened.
The second: the server sends the event but omits the data needed to match it. The platform receives it and cannot tie it to any ad click. The conversion lands under "other" sources, and the ads look useless.
GA4
GA4 is a separate system with its own rules. An event does not become a conversion just because it was sent — you have to mark it as a key event on purpose. GA4 and the ad platform also assign credit over different windows and models, so the numbers will never match exactly. That is expected, not a defect. The warning sign is different: one system showing dozens of conversions while the other shows zero. That gap is not an attribution model, it is a break. Setting GA4 up properly is a job in itself: digital analytics and GA4 setup.
And if your own team, contractors and test submissions are not filtered out, the first week of data is already contaminated.
"Installed" does not mean "working"
The most important sentence in this whole subject. Code on the site means one thing: the code is on the site. The only proof an event fires is real traffic.
Walk the customer's path end to end yourself — not on a desktop, but on a real phone, over mobile data, with the consent banner left as an ordinary person leaves it. Then confirm the event shows up in all three places: once, with the right name and the right value.
Then try to break it:
- Submit an empty or invalid form — nothing should be recorded.
- Refresh the thank-you page — no second conversion.
- Open the thank-you URL directly — again, nothing.
- Check that the ad click parameter survives to the end of the journey. A domain redirect or a script that strips query parameters is the quietest expensive failure on this list.
And do it per form and per language. On multilingual sites it is normal to find only the default-language form instrumented, while enquiries from the other languages stay invisible for months.
Conversion tracking: the checklist before the first manat
Before you open the ad account, every item here has to be closed out:
- The primary conversion, its value and the supporting events are agreed in writing.
- Event names match across all three systems; browser and server sends share an identifier.
- The full journey was walked on a real device and the event appeared in all three places, once.
- Invalid submissions, refreshes and direct visits create no false conversions.
- The ad click parameter survives every redirect.
- Internal traffic and test submissions are filtered out.
This takes a few days. A budget opened without it takes months to unwind.
What broken tracking costs you during the learning period
When a campaign starts, the platform does not yet know your best audience — it looks for a pattern in the conversions you send it. That is the learning period, and part of the spend there genuinely goes into learning. That is fine.
What is not fine is showing the system the wrong event while it learns. Then you lose twice: the money is gone, and the platform has learned a pattern of behaviour that is worthless to you. Fixing the measurement later does not clear that old learning — you effectively start over.
The most expensive loss, though, is not the money. It is the decision. On broken data you conclude "this channel doesn't work for us" and switch off the channel that was actually producing customers. Or the reverse — you scale the campaign that produces nothing, because on the dashboard it looks cheap. Bad measurement does not sell you a bad campaign; it sells you a bad decision, and you follow it for months.
Nor can you backfill. Fixing tracking today does not fix last month's data — those weeks stay unusable.
For us this is a written rule, not a preference: no ad budget is opened until conversion tracking has been verified firing for real. It is not an upsell, it is the condition for starting. The management fee is invoiced separately from ad spend, there is no markup on media, and the accounts stay in your name — so from the first month you can see which ad brought which customer in your own dashboard, not on our word. Performance ad management starts from that same rule.