Offline conversion import for Google and Meta Ads: optimise leads for closed-deal value

Your CPL is falling, the dashboard is green, and sales still says hardly any of the leads are worth a call. That is not bad luck, it is the logic of the system. When you optimise campaigns for a submitted form, you are paying the algorithm to find the cheapest possible forms. Importing offline conversions into Google Ads and Meta changes the target: away from the form, towards the closed deal.
Importing offline conversions means your CRM tells Google Ads and Meta which leads became qualified and which ones bought, including the value. Google handles this with enhanced conversions for leads or the offline conversion import via GCLID, Meta with the Conversions API for CRM and the "conversion leads" performance goal. From then on, the platforms bid for leads that bring revenue instead of forms that are cheap.
Why optimising for form fills produces bad leads
Smart Bidding and Meta's delivery system learn from the signal you give them. If that signal is "form submitted", every form is worth the same: the student downloading a whitepaper and the procurement lead with a signed-off budget. The algorithm looks for the people most likely to fill in a form, at the lowest price. Those are rarely the people who sign contracts.
The problem compounds with every optimisation cycle. Campaigns that bring lots of cheap leads get more budget. Campaigns that bring fewer, pricier but better leads get throttled. You end up with a low CPL and a high CAC. Google states the goal plainly in its best practices for lead quality: automated bidding should optimise towards valuable business outcomes "rather than just lead volume".
The fix is not a better form, it is a better signal. Your CRM knows which leads turned into opportunities and which deals were won. The ad platforms don't. Offline conversions close exactly that gap.
Offline conversions in Google Ads: enhanced conversions for leads and GCLID import
Google offers two ways to send conversions back from your CRM. Both reach the same goal but match conversions differently.
The classic route: offline conversion import with GCLID
With auto-tagging switched on, Google appends a unique click ID, the GCLID, to every ad click. Your website reads it from the URL, stores it with the form submission and writes it into the CRM. When the lead is later qualified or won, you upload the GCLID, conversion name, timestamp and value. Google notes that the GCLID is case-sensitive, so a CRM field that silently reformats text will quietly break your matching.
The recommended route: enhanced conversions for leads
Google calls enhanced conversions for leads an "upgraded version of offline conversion import" and lists it in its help centre as the recommended method. Instead of relying only on the GCLID, the Google tag captures hashed contact details such as email address or phone number when the form is submitted. Later you upload the same hashed data alongside the offline conversion, and Google matches the two. According to Google, advertisers see a median of 10% more conversions this way than with the standard offline import. You should still send the GCLID whenever you have it.
One important planning point: according to Google's help documentation, offline conversion imports and uploads for enhanced conversions for leads have run through the Data Manager API since June 15, 2026, and are blocked in the Google Ads API. If your integration still uses the old Google Ads API route, check it now. The simplest path is Google Ads Data Manager, which connects sources such as Salesforce, HubSpot, BigQuery or Google Sheets directly.
Values, adjustments and value-based bidding
An upload without a value is only half as useful. According to Google's offline import FAQ, if you bid with target CPA, target ROAS or maximise conversion value, you need to upload all conversions with values attached. For value-based bidding, Google requires at least two distinct values across your conversion goals, and for target ROAS it cites at least 15 conversions in the last 30 days.
If a value changes later, for example because the deal closes smaller than expected, use conversion adjustments: "restate" changes the value, "retract" removes a conversion entirely. For offline conversions without an order ID, adjustments are matched by GCLID and conversion time.
Meta: Conversions API for CRM and the "conversion leads" goal
Meta solves the same problem with the Conversions API for CRM. You send lead stages from your CRM to Meta, and Meta uses the "conversion leads" performance goal to optimise for the stage that matters to you. One limitation up front: according to Meta's developer documentation, the conversion leads performance goal currently only works with lead ads, meaning instant forms on Facebook and Instagram.
Meta lists clear requirements:
- at least 200 leads per month,
- data uploaded at least once a day,
- the target stage happens within 28 days of lead creation,
- the target stage has a conversion rate between 1% and 40%.
Meta matches events most reliably via the 15- to 17-digit lead ID, which you store in your CRM. If it's missing, you send customer information such as click ID, email or phone number instead. How well Meta can match your server events to accounts is measured by event match quality, a score out of 10. The more clean customer data you send, the better the matching.
Plan for the time it takes. Meta estimates under a day to connect your CRM via a Meta Business Partner, or 3 to 4 weeks for a custom build, plus 1 to 2 days of data validation and a learning phase of 2 to 4 weeks.
Privacy and consent in the EU: hashing alone is not enough
Hashed data is not a free pass. Hashing makes plain-text data unreadable, but it doesn't replace a legal basis. This section isn't legal advice, it's an overview of what the platforms require technically. Work out the details with your data protection adviser.
Meta's documentation requires email and phone number to be hashed with SHA-256. Normalise first: email trimmed and lowercased, phone number stripped of symbols and leading zeros but including the country code. The lead ID, on the other hand, is not hashed. Google likewise describes matching on hashed customer data.
For users in the EEA, Google requires you to collect consent and pass consent signals to Google. In Consent Mode, the ad_user_data parameter controls consent to send user data to Google for advertising purposes. Without that consent, there is no basis for enhanced conversions. In practice, your data pipeline has to carry the consent status for every lead, not just the contact details.
Put a value on every funnel stage: MQL, SQL, opportunity, won
Before you upload anything, marketing and sales need a shared definition of each stage. An "SQL" that every rep interprets differently produces a noisy signal. How to score leads automatically is covered in our article on AI lead scoring. Here, the job is to translate stages into money.
The simplest approach: expected value equals average deal value multiplied by the probability of closing from that stage.
Worked example (hypothetical figures): A B2B service firm has an average deal value of €12,000. Its CRM shows these close rates: MQL 5%, SQL 20%, opportunity 40%, won 100%. That gives values of €600 per MQL, €2,400 per SQL, €4,800 per opportunity and €12,000 per won deal. For won deals, overwrite the flat value with the actual contract value.
Google recommends choosing a single funnel stage as your bidding goal rather than optimising for goals from several stages at once. That stage should have a short conversion delay, ideally under 7 days according to Google, and produce at least 15 conversions a month. For many B2B companies that makes SQL the sensible bidding goal, not "won": closed deals happen too rarely and too late.
Upload windows: how long after the click can you still upload?
This is where a few days decide whether you lose data. According to Google's offline import FAQ, Google stores the GCLID for 90 days, so conversions with a GCLID can be uploaded up to 90 days after the click. For enhanced conversions using personal data, the same page gives 63 days. Adjustments are possible up to 55 days after the conversion was first recorded. After creating a new conversion action, wait 4 to 6 hours before uploading.
At Meta, the target stage has to happen within 28 days of the lead being created. A three-month sales cycle doesn't work as an optimisation target; qualification after two weeks does.
The rule that follows is simple: pick as your bidding goal the stage that reliably happens within these windows. Upload later stages anyway, so you can measure them and confirm the values.
In practice: set up offline conversions in seven steps
- Define the stages. Marketing and sales agree in writing when a lead counts as MQL, SQL, opportunity and won. Each stage gets a required field with a timestamp in the CRM.
- Capture the IDs. Turn on auto-tagging in Google Ads and store the GCLID with the form. For Meta lead ads, pull the lead ID into the CRM. Also store email and phone number together with the consent status.
- Activate enhanced conversions for leads. The Google tag captures hashed contact details on form submission. Check your Consent Mode setup before going live.
- Calculate values. Derive the expected value per stage from deal value and close rate, as in the example above.
- Automate the upload. Google recommends daily uploads, Meta requires at least one per day. Use Data Manager, a native CRM integration or a Meta Business Partner instead of manual CSV files.
- Stabilise the signal, then switch. According to Google, upload values for at least three weeks or one to two conversion cycles, whichever is longer, before changing your bid strategy to value-based bidding.
- Report new KPIs. Replace CPL in your reporting with cost per SQL and cost per closed deal.
Steps 2 and 5 are where most setups fail on the technical side. If tag, CRM and consent need to be wired together properly, a clean tracking and analytics setup pays for itself.
Worked example: CPL versus cost per closed deal
Worked example (hypothetical figures): Two campaigns each spend €10,000.
Campaign A optimises for form fills and brings 200 leads. CPL: €50. Ten percent become SQLs, so 20 SQLs. Cost per SQL: €500. Two deals close. Cost per closed deal: €5,000.
Campaign B optimises for SQLs and brings 100 leads. CPL: €100. Thirty percent become SQLs, so 30 SQLs. Cost per SQL: about €333. Five deals close. Cost per closed deal: €2,000.
In a form-based report, campaign B looks twice as expensive. In the CRM it brings in more than twice as many customers. Without offline conversions, Smart Bidding would shift budget from B to A. With offline conversions, the opposite happens. The formula stays simple: cost per stage equals ad spend divided by the number of leads that reached that stage.
When is the effort worth it?
Offline conversions pay off as soon as there is a sales process between lead and revenue and your lead quality varies a lot. They are less useful when volume is low: below 15 target-stage conversions a month on Google, or 200 leads a month on Meta, the algorithms lack the data. In that case it is often smarter to use an earlier stage such as MQL as the bidding goal and only measure the later stages for now.
The real lever is less about technology than discipline. A CRM that sales doesn't maintain sends no signals either. Bringing bid strategies, signals and budget together is the core of performance marketing that steers on revenue instead of clicks.
FAQ
Do I still need the GCLID for offline conversions in Google Ads?
Yes, if you have it. Google recommends enhanced conversions for leads as the method but advises sending the GCLID whenever it's available. Without a tag that captures hashed contact details, the GCLID is mandatory.
Does Meta's "conversion leads" goal work with leads from my website?
According to Meta's developer documentation, the conversion leads performance goal is currently only compatible with lead ads, meaning instant forms. You can still send and measure website leads through the Conversions API, but you can't optimise for them with this goal.
Which funnel stage should I optimise for?
The latest stage that has enough volume and happens quickly enough. Google cites at least 15 conversions a month and ideally under 7 days of delay; Meta requires the stage to happen within 28 days and a conversion rate between 1% and 40%.
Sources
- Google Ads Help: About enhanced conversions for leads, retrieved October 8, 2026
- Google Ads Help: About offline conversion imports, retrieved October 8, 2026
- Google Ads Help: Offline conversion imports FAQs, retrieved October 8, 2026
- Google Ads Help: Set up offline conversion imports using Google Click ID (GCLID), retrieved October 8, 2026
- Google Ads Help: About conversion adjustments, retrieved October 8, 2026
- Google Ads Help: Best practices for generating high-quality leads, retrieved October 8, 2026
- Google Ads Help: Conversion Values Best Practices, retrieved October 8, 2026
- Google Ads Help: About Smart Bidding using value-based bidding for Search and Shopping, retrieved October 8, 2026
- Google Ads Help: Updates to consent mode for traffic in the EEA, retrieved October 8, 2026
- Meta for Developers: Conversions API for CRM integration, retrieved October 8, 2026
- Meta for Developers: Customer Information Parameters, retrieved October 8, 2026
- Meta for Developers: Dataset Quality API, retrieved October 8, 2026
Want more of the attention you get to turn into customers? Let’s spend 15 minutes on your setup, free and without a pitch deck. Book your free call


