Skip to content

Behind the scenes8 min read

Offline conversions: connecting Google Ads and Meta Ads to your CRM

Send the qualified enquiries and sales in your CRM back to Google and Meta: the method for knowing which ad signs contracts, and putting the budget there.

By Diego Penaloza Lopez ·

Contents
  1. The problem: the click and the sale live in two tools
  2. How offline conversions work
  3. On Google Ads: import and enhanced conversions
  4. On Meta Ads: the Conversions API with CRM events
  5. Which stages to send back, and with what value
  6. Timing, consent and the nFADP
  7. What it changes in how you manage campaigns
  8. Automating enrichment and uploads
  9. Key takeaways
  10. FAQ
Tracking system connecting the CRM to Google Ads and Meta Ads to send back offline conversions

A service SME, a B2B company or an estate agency does not sell online. It receives an enquiry through a form, calls back, sets an appointment, sends a proposal, and sometimes signs weeks later. Meanwhile, Google Ads and Meta Ads keep optimising on the only thing they can see: the submitted form. Offline conversions close that gap.

The problem: the click and the sale live in two tools

The ad platform knows the click, the campaign, the ad and the form. The CRM knows the prospect, their status and the signed contract. Between the two, there is no link. The result: the ad dashboard counts every enquiry the same way, the serious one and the fake phone number alike.

That is where the algorithm goes astray. Google’s and Meta’s automated bidding looks for people who resemble those who converted. If the conversion is “form submitted”, it finds people who happily fill in forms. Not necessarily people who buy.

How offline conversions work

  1. Capture an identifier with the enquiry. When a visitor arrives from an ad, the URL carries a click identifier: `gclid` for Google, `fbclid` for Meta. The form stores it in a hidden field, along with the email and phone number entered.
  2. Track the status in the CRM. The enquiry enters the CRM with its identifier. The salesperson moves the status forward: qualified, appointment, proposal, sale, or lost.
  3. Send the stage back to the platform. At each useful status change, the CRM transmits the click identifier, or the hashed email and phone number, with the name of the stage, its date and its value.
  4. Let the platform match it. Google or Meta finds the original click and attributes the sale to the right campaign, the right ad group, the right ad.

Hashing data means turning it into an unreadable fingerprint (SHA-256 in practice) before sending it. The platform compares that fingerprint with those of its own users, without receiving the address in plain text. Everything starts with a clean source: if the origin of each enquiry is not recorded, see tracking enquiries by channel first.

On Google Ads: import and enhanced conversions

Google offers two routes, which are often combined. Offline conversion import relies on the `gclid`: you create one conversion action per stage, then send sales through a scheduled file, a CRM connector or the API. Enhanced conversions for leads rely on the hashed email or phone number, sent once with the form and again from the CRM. They take over when the click identifier is missing, for example when a browser has stripped it.

Once sales are flowing back, you can tell Google which stage to optimise for: the qualified enquiry rather than the form, then the sale when volume allows.

On Meta Ads: the Conversions API with CRM events

Meta receives CRM stages through its Conversions API, a server-to-server connection. Each event carries the name of the stage, its date, its value and hashed identifiers (email, phone), plus the click parameter derived from the `fbclid` when there is one. For instant forms filled in on Facebook or Instagram, the lead ID provided by Meta serves as the key.

Meta can then optimise lead generation campaigns on lead quality, meaning the enquiries that move through your funnel, rather than on their number alone. The technical setup is described on our tracking and data page.

Which stages to send back, and with what value

Sending back only the sale seems logical, but an SME rarely signs enough contracts for an algorithm to learn quickly. So you send several stages, from the most frequent to the rarest, each with a value that reflects what it is worth to you.

Scroll the table horizontally ↔

StageWhen to send itValue sent
Qualified enquiryThe salesperson confirms a real need and a budgetCHF 200
AppointmentAn appointment or viewing has taken placeCHF 500
SaleThe contract is signedMargin on the contract, for example CHF 5,000
Stages sent back and values (fictional example)

The value of intermediate stages is easy to work out: if one appointment in ten leads to a contract earning CHF 5,000 in margin, an appointment is worth about CHF 500. Send margin rather than revenue when your contracts vary widely in profitability.

  • Timing. The platforms only accept an offline conversion within a limited window after the click. An automatic daily upload avoids losing quick sales and feeding the algorithm too late. For very long cycles, you optimise on the most advanced stage that falls within the window.
  • Consent. Capturing the click identifier and sending data follow the choice made in the cookie banner. Without consent, nothing is sent; the platforms then fill the gap with their own modelling.
  • Hashed data. Email and phone number are sent hashed, never in plain text. Under the nFADP, the Swiss Federal Act on Data Protection, they are still personal data: hashing reduces the risk, it does not remove the duty to inform.
  • Privacy policy. It must mention the transfer of data to Google and Meta to measure campaigns, the basis for this processing and the right to object.

What it changes in how you manage campaigns

With sales in the platforms, you no longer compare campaigns on cost per form, but on cost per qualified enquiry and per contract. A campaign that produces many cheap enquiries may turn out to be the least profitable; another, more expensive per form, may sign more. The budget then follows the campaigns that sign, and bidding learns to find customers rather than form fillers.

Automating enrichment and uploads

Sending data back only works if the CRM is up to date. A forgotten status is a sale the platform will never see. So two things are automated: enriching the CRM (qualifying the enquiry, linking it to the right channel, updating the status) and the daily upload of stages to Google and Meta. AI agents can handle qualification and data entry; the salesperson approves instead of retyping.

At Masini Groupe, an estate agency, the setup combines a website, acquisition on Meta and a custom CRM that automatically qualifies each enquiry. All channels are attributed, that is 100%, and qualified enquiries were multiplied by 10 in 12 months, compared with the period when the agency relied on property portals alone.

“Our agents spend their time selling, not typing.”
Masini Groupe

Key takeaways

  1. 01The platforms optimise on what you send them: a form attracts forms, a sale attracts customers.
  2. 02Offline conversions link the click to the sale through the click identifier or the hashed email and phone number.
  3. 03Sending back several stages with a value gives the algorithm enough signal, even with few contracts.
  4. 04A CRM kept up to date, ideally automatically, is the condition for the budget to go to the campaigns that sign.

FAQ

Frequently asked questions

At a minimum, you need a place where each enquiry keeps its click identifier and status. A spreadsheet can do for a manual import, but a CRM lets you automate uploads and avoid omissions.

The platforms need a steady volume of conversions. If you sign few contracts, optimise on a more frequent stage, such as the qualified enquiry or the appointment, and send the sale back as well.

Yes, if the data is sent hashed, if uploads respect the consent given in the cookie banner and if the privacy policy mentions this transfer to Google and Meta.

Share

Related case · Masini Groupe

From no active acquisition to a system that generates, qualifies and follows up every enquiry.

×10
qualified enquiries generated
Read the Masini Groupe case
Diego Penaloza Lopez

The author

Diego Penaloza Lopez

Founder, Contrast

Diego Penaloza Lopez founded Contrast in Neuchâtel after ten years in digital marketing, first in e-commerce, then in services. He personally runs the agency’s campaigns, pages and client follow-up.

LinkedInAbout Contrast

Want to know what this means for your business?

A direct conversation with the person who writes these articles and runs the campaigns.