Offline conversions from HubSpot to Google Ads, Meta and LinkedIn
Offline conversions tell your ad platforms which clicks turned into qualified leads and customers in HubSpot, not just which ones filled in a form. Without them, Google Ads, Meta and LinkedIn optimize for whoever fills in forms most, which in B2B often means students and competitors. I set up the capture, the matching and the upload so each platform learns from the outcomes you actually care about.
By Vladimir Cvetkoski · Last updated
This is for you if
- →B2B companies running Google Ads, LinkedIn or Meta campaigns with a sales cycle longer than a few days
- →Teams using HubSpot lifecycle stages or deals to track which leads are qualified
- →Marketing leaders who see plenty of form fills from paid campaigns and very little pipeline
- →Companies moving to Smart Bidding or value-based bidding that need the right signal first
Signs you need this
- →Google Ads reports conversions but nobody can say which of them became pipeline. See offline conversions missing.
- →Campaigns optimize toward cheap leads that sales disqualifies.
- →The
gclidfield in HubSpot is empty on most paid contacts, or does not exist. - →HubSpot conversion events were set up once, but nobody checks whether they still sync.
- →UTMs and click IDs are lost before they reach HubSpot. See HubSpot form UTMs missing.
What the work covers
Click ID capture
Every Google gclid, gbraid and wbraid, plus Meta fbclid and LinkedIn li_fat_id, stored on the contact at form submission and kept through later visits.
Lifecycle stage mapping
A clear decision on which HubSpot stages count as conversions, for example Marketing Qualified Lead, Sales Qualified Lead, Opportunity and Customer, and which one each campaign should optimize for.
Conversion action setup
Conversion actions created in Google Ads, Meta and LinkedIn with the right category, counting method, attribution window and primary or secondary status.
Matching with hashed email
Google Enhanced Conversions for Leads, Meta Conversions API and LinkedIn Conversions API matched with hashed email as well as click IDs, so conversions still match when a click ID is missing.
Conversion values
A value per stage, or the deal amount when the deal closes, so bidding can tell a small lead from a large one.
Upload monitoring
A check that uploads keep arriving and matching in each platform, with the diagnostics reports reviewed after go-live.
Three steps
Decide what counts
We agree which lifecycle stages and deal stages count as conversions, and what each is worth.
Capture and connect
I fix click ID capture in HubSpot, then connect each platform through HubSpot's ads integration, a server-side setup or a scheduled upload, whichever fits.
Verify matches
Test leads go through the funnel. I confirm each conversion reaches each platform and matches the right click, then document the setup.
Typical scope
- Platforms
- Google Ads, Meta and LinkedIn, one or all three
- Timeline
- Most fix projects complete within 1 to 2 weeks
- Access needed
- HubSpot admin, GTM, and admin on each ad account
Ad platforms take time to learn from a new signal. Bidding changes are best made after the new conversions have been arriving consistently for a few weeks.
At the end you have
- →Google Ads, Meta and LinkedIn see which clicks became qualified leads and customers
- →Bidding that can optimize for pipeline instead of raw form fills
- →Click IDs stored on every paid contact in HubSpot
- →A documented mapping from HubSpot stages to ad platform conversions
How the pieces connect
- 01Ad click`gclid`, `gbraid`, `wbraid`, `li_fat_id`, `fbclid`
- 02FormClick IDs and email captured into HubSpot
- 03HubSpotLifecycle stage or deal stage changes
- 04Match keysClick ID plus SHA-256 hashed email
- 05Ad platformsGoogle Ads, Meta CAPI, LinkedIn CAPI
Offline Conversions: common questions
Yes, partly. HubSpot's ads integration can create conversion events that sync lifecycle stage changes and form submissions to Google Ads using Enhanced Conversions, and to Meta and LinkedIn through their Conversions APIs, each with a fixed value you set. It works well when click IDs and emails are captured correctly. Deal stages or deal amounts need stage mapping or a custom upload, which for Google Ads now goes through the Data Manager API.
gbraid and wbraid are click IDs Google uses instead of gclid for some iOS traffic. Google accepts them in offline conversion imports, alongside gclid and hashed contact data, so capturing all three plus a hashed email gives the most matches. Conversion actions that receive them must count every conversion.
Emails are normalized and hashed with SHA-256 before they leave HubSpot or your server, and the platforms use them only for matching. You still need a lawful basis and the right consent signals, especially for EU and UK contacts. That is a question for your privacy lead or lawyer, and I build the setup to respect what they decide.
Usually the earliest stage that sales actually trusts, often Sales Qualified Lead or Opportunity. Optimizing on Customer alone sends too few conversions for bidding to learn. We pick one primary conversion and keep the others as secondary for reporting.
For Google Ads, standard click ID imports must arrive within 90 days of the click, and Enhanced Conversions for Leads uploads more than 63 days after the last click are not imported. Meta's Conversions API only accepts events from the last 7 days (62 days for offline store events), and LinkedIn's accepts conversions from the last 90 days. Long B2B cycles therefore need an early-stage conversion as well as the closed deal, and uploads that run daily, not monthly.
Related problems and services
Google Ads not seeing offline conversions
Google Ads only credits a lead it can tie to a click. Missing click IDs, wrong conversion settings and upload windows are the usual breaks.
Read more →ProblemHubSpot form UTMs missing
UTMs only reach a HubSpot contact if something reads them from the URL and sends them with the form. Usually something in between drops them.
Read more →ServiceServer-Side Tracking
Tracking that keeps working when browsers block your data. Server-side GTM for GA4, Google Ads, Meta and LinkedIn, added to the GTM you already have.
Read more →ServiceThe Fix
A one-time engagement to fix specific attribution problems, scoped and priced before any work starts. You get a working fix and written notes on what changed.
Read more →From $2,000Attribution Audit
A fixed-scope audit of how your ad clicks, forms and CRM connect. You get a written report of every leak, ranked by cost, and a fix plan.
Read more →Describe what you are seeing
Send a few lines about what looks wrong. I reply within 1 business day and tell you whether it needs an audit, a fix, or nothing at all.