Here's a scenario I see in nearly every B2B account I review: the campaign with the most leads gets scaled because it's "performing best." Three months later, CRM data shows 90% of those leads never went anywhere—while a different campaign with fewer, more expensive leads delivered 80% of actual revenue. The ad platform didn't know that. It optimized on the only signal it received: form fills.
That's the core of offline conversion import: Google Ads and Meta only know what you tell them. If the only signal they receive is "form filled," their bidding algorithms—which are extremely good at finding more of exactly that signal—will chase more form fills, regardless of the quality of what comes in.
The Mechanism: From Form Fill to Closed Order
Offline conversion import (OCI) is the process of sending data back to the ad platform about what actually happened to a lead after it left your website—qualified or not, how far it progressed in the pipeline, and eventually whether it became a closed, paying customer. The platform ties that information back to the original campaign, ad group, and often the specific keyword or ad that generated the lead.
The result is that the bidding algorithm no longer optimizes for "as many leads as possible." It optimizes for "as many leads as possible that resemble the ones that historically became closed orders." That's a fundamentally different optimization task, and it requires the platform to get access to data it would otherwise never see.
How to Build the Feedback Loop in Practice
Step 1 — Match key. Every lead needs a unique identifier that follows it from form fill to CRM to closed order—typically GCLID (Google Click ID) or an equivalent click ID, stored as a hidden field in the form and synced to the CRM on submission.
Step 2 — Pipeline stages as conversion events. Instead of sending only one conversion event ("lead"), define multiple stages as separate conversions with associated value: MQL, SQL (sales-qualified), Opportunity, and Closed Won. Each stage gets sent back to the platform as the lead moves through the pipeline—typically via a daily or weekly running integration between CRM and ad platform.
Step 3 — Value-based bidding. Once the platform has enough data on which leads actually convert to revenue, you can switch from "maximize number of conversions" to "maximize conversion value" as a bid strategy. This is where the real gain happens: the algorithm starts actively deprioritizing the keywords, ads, and audiences that historically generated leads that never converted to revenue—even if those leads were cheap to generate.
What Most Get Wrong
The most common mistake is importing data too infrequently or too late. If Closed Won data only gets sent back three months after the original click, the bidding algorithm has long since optimized further based on incomplete information, and the historical learning is lost. The closer you can get to real-time or weekly syncing, the faster the platform learns the right patterns.
The second common mistake is importing all pipeline stages with equal weight. An "Opportunity" and a "Closed Won" shouldn't count the same—value should reflect the actual probability and size of each stage, so the algorithm understands the difference between "interested" and "paying."
The Effect in Practice
For a client with an average four-month sales cycle, implementing full OCI with value-based bidding reduced cost-per-closed-deal by 34% over two quarters—not because more leads came in, but because budget was automatically reallocated away from the campaigns that historically produced leads that never closed.
One non-negotiable element is required for this to work: clean, consistent CRM data. If your sales team doesn't consistently update deal stages, or if the CRM is full of duplicates and stale fields, OCI will simply feed the ad platform noise—and noise scales just as efficiently as signal. Fix the data quality first. Then build the feedback loop.