HubSpot + Google Ads: the offline conversion import (OCI) setup that fixes lead quality
The point of connecting HubSpot to Google Ads is to stop optimizing to raw form fills and start optimizing to leads that become customers. By feeding HubSpot lifecycle stages and closed-won revenue back to Google Ads as offline conversions, Smart Bidding learns to chase qualified pipeline. This is the single highest-impact integration for any lead-gen account.
A 47-point written audit of your Google, Meta or Shopping account, back in five business days.
Get your auditBook a callWhat this integration unlocks
- Offline conversion import (OCI) so bidding optimizes to qualified leads, not form fills
- Lifecycle-stage mapping from MQL to SQL to closed-won as distinct conversion signals
- Revenue-value optimization by attaching deal value to the closed-won event
- Cleaner lead quality as the model learns which sources actually convert
- A true cost-per-customer view instead of a misleading cost-per-lead
Setup steps
- 1
Capture the GCLID on every form submission
Offline conversions depend on the Google Click Identifier, the GCLID, being stored with each lead. Configure your site so the GCLID from the ad click is captured and written to a hidden field on the HubSpot form, then stored on the contact record.
Without the GCLID, Google cannot tie a later closed deal back to the click that produced it, so this step is the foundation. Verify that new contacts created from paid clicks actually have a GCLID stored before going further.
- 2
Agree the lifecycle stages you will send back
Decide, with sales, which HubSpot lifecycle stages map to Google Ads conversion actions. A common setup sends a qualified stage such as SQL, and closed-won, as separate conversion actions, so bidding can optimize to the qualified stage while you track revenue on the close.
The definitions matter more than the plumbing: a loose qualified stage teaches the model to buy loose leads. Fix the stage definitions before wiring anything, because the integration will faithfully optimize toward whatever you send.
- 3
Connect HubSpot to Google Ads for offline conversions
Use HubSpot's native Google Ads integration or a connector to send offline conversions. Map each chosen lifecycle stage to its Google Ads conversion action, with the stored GCLID and the timestamp of the stage change.
For revenue optimization, attach the deal amount to the closed-won conversion so Google can bid to value, not just count. Confirm the conversions appear in Google Ads with the right action, value, and timing before trusting them.
- 4
Switch bidding to the qualified conversion
Once qualified-stage conversions are flowing reliably, change the campaign's optimization target from the raw form fill to the qualified stage, or to conversion value where you send deal amounts.
Respect data volume: qualified leads are rarer than form fills, so a thin account may need to optimize to an earlier qualified stage first and move deeper as volume grows. The direction is what matters, teach Smart Bidding to value quality, and it buys more of it.
- 5
Report on cost per qualified lead and per customer
Rebuild reporting around the metrics that matter now: cost per qualified lead and cost per customer, not raw cost per lead. Expect raw CPL to rise as the model filters out cheap junk, and judge success on the quality-adjusted numbers falling instead.
Keep the HubSpot feedback flowing continuously so the model keeps learning, and revisit the stage definitions with sales periodically, because lead quality is a loop you maintain, not a one-time wiring job.
Common issues
Fix. Almost always a missing or unstored GCLID. Confirm the GCLID is captured on the form, written to the contact, and passed with the conversion. Google also requires the click to fall within the conversion window, so very old leads will not import.
Fix. Usually too little volume at that stage for Smart Bidding to learn. Optimize to an earlier qualified stage with more volume, or use a portfolio strategy to pool conversions, then move deeper as data grows.
Fix. The deal amount must be mapped to the conversion value field in the integration. Check the field mapping and that deals have an amount set before the closed-won stage fires.
Fix. Revisit the qualified-stage definition with sales. If the stage the model optimizes to is too loose, it will keep buying loose leads. The fix is a tighter, agreed definition, not more bidding changes.
Common questions
Want this checked on your own account?
A 47-point written audit of your Google, Meta, or Shopping account. Five business days, no sales call.

