Connect your CRM to your campaigns without the machinery

“Your leads are worthless.” The sales rep said it at every monthly review. The Google Ads account, meanwhile, showed a falling cost per contact and a line going up. Both were right. They were not measuring the same thing.

The rep was looking at his spreadsheet: out of a hundred enquiries that month, eleven had turned into a meeting and three had signed. The Ads account counted a hundred conversions. It counted them all the same, it bid on them all the same, and every morning it went back out to find the other ninety-seven.

A campaign cannot optimise for a quality that was never sent back to it.

1. The problem is not the tool, it is the broken thread

I often see this subject attacked from the connector end. Which tool links the sales system to Google Ads, which integration, which subscription, which provider. That is the wrong first question.

The right one: does the enquiry that lands in your customer file still carry a trace of the click that produced it? In nearly every account I take over, it does not. The form passes on a name, an email, a message. The origin vanished the second the page was submitted.

As long as that thread is broken, no connector will repair it. A connector carries data, it does not manufacture it. So I always start with the chain, as with what Google Analytics 4 can no longer see: you fix the thermometer before arguing about the temperature.

2. The click identifier, the only real piece of engineering

Google gives every click an identifier, the GCLID (Google Click Identifier). It is appended to the destination address as soon as auto-tagging is switched on. It is a token: it points to one specific click, with its ad, its keyword and its date.

The work comes down to three moves, and Google sets them out itself on its page about setting up offline conversions with the GCLID: turn on auto-tagging, add a hidden field to the form, and place a script on your pages that reads the parameter from the address, stores it in local storage and copies it into that field on submission. The example script Google provides keeps the value for ninety days.

Two details cost you dearly when you miss them. The script goes on every page, not just the landing page. Google recommends this explicitly, and without it you lose every visitor who arrives on an article and fills in the contact form three days later. And the GCLID is case sensitive. A sales system that lowercases everything on save will make your entire upload useless.

Google now pushes one step further with enhanced conversions for leads, which add a hashed email address collected by the tag to the click identifier. Its documentation claims a median 10% lift in conversions when you combine the two. A vendor figure, to be taken as such, but the logic holds: two matching keys beat one, especially when the first fades along with cookies. Even then, Google asks you to keep sending GCLIDs, because that is what ties the conversion to a specific click rather than to an account.

3. What you send back, and above all when

Once the identifier sits next to the contact, what remains is to send back the stage you actually care about: meeting held, quote signed, customer. Not the enquiry. The campaign already knows about the enquiry, it produced it.

Timing is the constraint nobody reads before starting, and it is the one that decides whether the project is feasible at all. Google Ads pulls back ninety days of history on every run when the source is a file (Cloud Storage, Amazon S3, HTTP, SFTP, Google Sheets), but only fourteen days when the source is a data warehouse or a connected sales system such as Salesforce or HubSpot. Meta is stricter still: its conversions interface refuses any event dated more than seven days ago, and it rejects the whole request without processing a single one of the other events it contained.

Hence a rule I apply everywhere: you send daily, or you do not send. An automated daily export, however crude, beats a beautiful integration that fires on Monday morning. A badly timed weekly upload sends nothing, and it sends nothing silently.

4. Meta publishes its entry criteria. Read them before you sign.

This is the part I find most honest at Meta, and by far the least read. Before you plug anything in, its documentation on connecting a sales system to the conversions interface lists the conditions under which the optimisation works: use Instant Forms (Lead Ads), generate at least two hundred enquiries a month, be able to upload at least once a day, target a stage that occurs within twenty-eight days of the enquiry, and whose conversion rate sits between 1% and 40%.

Take those five lines and hold them against your business. A tradesperson getting fifteen enquiries a month fails the first. A firm with a four-month decision cycle fails the fourth. In both cases the integration will produce nothing, and the development will have been paid for. Meta also states two to four weeks of learning before the model reaches full effect: this is not a project you judge after ten days.

That does not mean doing nothing. It means not doing this. Below two hundred enquiries a month the statistical material is missing, and the effort is better spent elsewhere: on the content of the form and on manual sorting, both perfectly profitable at that scale.

What you want to send back Where it plugs in The constraint that decides
The sales stage that matters (meeting, signature) Google Ads, offline conversion import 90 days by file, 14 days by warehouse or connected system
The same stage on Meta Conversions interface, feed from the sales system 7 days maximum, and the whole request fails beyond that
The customer’s real value, not just the fact they signed Both, through conversion value Margin has to come back, not just revenue
Nothing, for now A manual export and hand sorting Under 200 enquiries a month: the machine will not learn

5. The three settings people get wrong

The conversion action fed too early. Google asks you to wait four to six hours after creating it before sending the first data. Below that, it can take two days to show up. Meanwhile you are hunting for an error that does not exist.

The event name. If you track the same stage across several accounts, spelling and capitalisation must match exactly from one account to the next. Google is explicit about it. “Qualified lead” and “Qualified Lead” are two separate actions, and half your uploads go into the wrong one.

The status of the action. A conversion is either primary, and therefore used by bidding, or secondary, and merely observed. Sending your signatures beautifully into an action left as secondary changes absolutely nothing about what the campaign chases the next day. That is the number one case behind “we plugged it all in and nothing happened”.

6. What the regulation changes, and what it does not

What you send to the platforms is hashed first, in SHA-256. That is good practice and it reduces risk, but it does not take the data out of scope. The CNIL, the French data protection authority, is explicit: data produced by a cryptographic hash of an email address or an identifier counts as pseudonymisation, not anonymisation. It remains personal data and remains subject to the GDPR (General Data Protection Regulation). So the processing belongs in your register, the notice has to be given, and the legal basis has to hold.

Then consent. Google states in its own documentation that it is on the advertiser to inform users and obtain consent where the law or its own policies require it. In practice, the script that stores the click identifier writes on the visitor’s device: it fires after consent, not before. Same trade-off as in consent mode: you lose a little coverage, you keep the right to operate.

7. My minimum version, the one I put in first

On an account starting from nothing, I never begin with the full integration. I put four things in place, in this order.

The fourth is not technical, and it is the only one that can sink the project. If the rep does not qualify his enquiries, no plumbing will stand in for him. That gets said at kick-off, not in month three.

The difference shows up quickly. With a training provider I work with, measurement gave a cost per acquisition of €3.73 on Meta against €7.71 cost per action on Google. The budget call looked settled. Going back through the first sign-ups by hand, only a fraction matched the intended audience. The cheapest channel per contact was not the cheapest per enrolled customer. That gap is exactly what a returned sales stage fills, and it is why I connect it before settling a budget split.

The rest comes when volume justifies it: server-side collection, covered in server-side tracking, then sending value rather than counts, which is the next step up for a director’s dashboard.

In the crucible: what is left once the thread is restored

The subject looks technical, and it barely is. A hidden field, a stored identifier, a column kept by a sales rep and a daily export: that is the whole substance. The rest is joinery.

What you gain is not one more dashboard. It is that the campaign stops chasing volume and starts hunting for what actually turns into customers. The lead here is the conversion counted without distinction, a hundred enquiries weighed the same. The gold is the same spend aimed at the three that sign.

Need clarity on your measurement chain?

I take the whole tracking chain back in hand: identifier capture, sales stages sent back, campaigns steered on the right conversion. See the analytics and tracking expertise, the SEA expertise or the CRO expertise.

Related articles

ANALYTICS

Attribution in 2026: what GA4 can no longer see

2026
ANALYTICS

The dashboard a company director actually reads

2026
EXPERTISE

Service: analytics, tracking and data-driven steering

Resource