Service

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

Who it is for

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
Symptoms

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 gclid field 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 I do

What the work covers

01

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.

02

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.

03

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.

04

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.

05

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.

06

Upload monitoring

A check that uploads keep arriving and matching in each platform, with the diagnostics reports reviewed after go-live.

How it works

Three steps

01

Decide what counts

We agree which lifecycle stages and deal stages count as conversions, and what each is worth.

02

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.

03

Verify matches

Test leads go through the funnel. I confirm each conversion reaches each platform and matches the right click, then document the setup.

Scope and timeline

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.

What you get

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
Architecture

How the pieces connect

  1. 01
    Ad click
    `gclid`, `gbraid`, `wbraid`, `li_fat_id`, `fbclid`
  2. 02
    Form
    Click IDs and email captured into HubSpot
  3. 03
    HubSpot
    Lifecycle stage or deal stage changes
  4. 04
    Match keys
    Click ID plus SHA-256 hashed email
  5. 05
    Ad platforms
    Google Ads, Meta CAPI, LinkedIn CAPI
The click ID is captured on the first visit and stored in HubSpot. When the contact moves to a qualified stage, the conversion goes back to the platform with the click ID and hashed email.
Questions

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.