Every platform says it is working, and your bank balance disagrees
Google Ads says it drove forty conversions last month. Meta says thirty. Your sales team says maybe six of the enquiries were any good, and they are not sure where those came from. When you ask the agency which campaign produced the customers you actually signed, the answer is a chart of clicks.
So budget decisions get made on gut feel. The campaign with the nicest-looking cost per lead gets more money, even though its leads might be students, competitors and people who never answer the phone.
Why the numbers never line up
Ad platforms can only see what happens on your website. A form submission is the last thing they know about. Everything after that, the call, the quote, the signed contract, happens in your CRM, your inbox or a spreadsheet, and that information never goes back.
- The click identifiers (gclid for Google, fbclid for Meta) are in the landing page URL but are thrown away when the form is submitted.
- Leads are entered into the CRM by hand, without source information.
- Phone enquiries are not linked to any campaign at all.
- Each platform counts conversions its own way and takes credit for the same lead.
- The sale happens weeks later, long after anyone would think to link it back.
The cost of guessing
The direct cost is money spent on campaigns that produce enquiries but not customers. The less obvious cost is that the platforms' automated bidding is optimising for the wrong thing. If you tell Google a form fill is a conversion, it will find you more form fills, including the junk ones.
| What you measure | What the platform learns to find |
|---|---|
| Clicks | People who click |
| Form submissions | People who fill in forms, good or bad |
| Qualified leads | People who match your criteria |
| Closed sales and their value | People who buy |
How we connect ads to customers
- We capture click identifiers and UTM parameters on arrival and store them in a first-party cookie so they survive page changes.
- Every form on the site passes those values through as hidden fields, and the lead record in HubSpot, Salesforce, Pipedrive or your own system stores them.
- For phone leads, we add call tracking numbers per campaign, or log calls against the session where possible, so calls get a source too.
- We add clear lead stages to the CRM (qualified, quoted, won, lost) with the deal value, if they do not exist already.
- When a deal is won or a lead is qualified, the CRM sends that outcome back to Google Ads and Meta through their offline conversion APIs, with the original click identifier.
- A report groups leads, qualified leads and revenue by campaign and ad, built from your CRM rather than from the platforms' own dashboards.
Where server-side tagging is needed because browsers block scripts, we set it up so the capture step is reliable. We also respect consent choices: if someone declines tracking, we do not store their identifiers.
What you can do once it is connected
You open one report and see, per campaign, how many enquiries it produced, how many your team judged worth pursuing, and how many became paying customers with the value attached. Budget conversations with your agency change from cost per lead to cost per customer.
Over a few sales cycles, the ad platforms start receiving real outcomes and their bidding has something better to aim at. That part depends on your volume, and we will tell you honestly if your numbers are too small for it to help much.
Signs you need this
- You cannot name the campaign behind your last five customers.
- Your ad platforms report more conversions than your sales team has seen.
- Leads go into the CRM with no source recorded.
- Budget moves between campaigns based on cost per lead only.
- A decent share of enquiries come by phone and are never attributed.