Problem

Why Google Ads isn't seeing your offline conversions from HubSpot

Google Ads can only credit an offline conversion it can tie back to an ad click, either through a click ID (gclid, gbraid or wbraid) stored on the contact or through hashed contact data matched with Enhanced Conversions for Leads. Most missing conversions come from four breaks: the click ID never reached HubSpot, the HubSpot conversion event is missing or mapped to the wrong lifecycle stage, the conversion action in Google Ads is set up wrong, or the upload falls outside Google's time windows. For EEA, UK and Swiss traffic, missing consent signals add a fifth.

By Vladimir Cvetkoski · Last updated

Root causes

The 7 most common causes, and how to check each one

  1. 01

    The click ID never reaches HubSpot

    Google adds gclid to the landing URL when auto-tagging is on. HubSpot stores it in the Google ad click id property (hs_google_click_id). If auto-tagging is off, a redirect strips the parameter, or the form drops it, there is nothing to match on. Clicks from some iOS campaigns carry gbraid or wbraid instead of gclid. HubSpot's documentation only covers gclid, so keep the other two in your own properties with hidden fields if you want to upload them.

    How to check
    1. 01In Google Ads, open Admin > Account settings and confirm Auto-tagging is on.
    2. 02Add ?gclid=capture-test to a landing page URL, submit a form with a new email address and check the contact's Google ad click id property.
    3. 03Build a contact view: Original Source is Paid Search, Google ad click id is unknown. Those contacts can only be matched by hashed contact data.
  2. 02

    The HubSpot conversion event is missing or newer than the conversions

    HubSpot sends lifecycle stage changes to Google Ads through ad conversion events, set up on a connected Google Ads account. Only stage changes that happen after you create the event are sent, and a contact needs either a Google ad click id or contact data you agreed to share. Anything that moved stage before the event existed will never reach Google.

    How to check
    1. 01In HubSpot, go to Marketing > Ads, open the ad conversion events for your Google Ads account and confirm an event exists for each stage you expect.
    2. 02Compare each event's creation date with the dates of the conversions you are missing.
    3. 03Check the Google Ads account is still connected in HubSpot's ads settings and the connection shows no errors.
  3. 03

    Lifecycle stage mapping does not match how sales works

    The event fires when a contact enters the mapped lifecycle stage. If sales qualifies leads on deals and never touches lifecycle stage, the event never fires. If a workflow jumps contacts straight past the mapped stage, test with one contact whether the event fires before you rely on it.

    How to check
    1. 01Count contacts with a Date entered Sales Qualified Lead (hs_v2_date_entered_salesqualifiedlead) in the last 30 days, or the date property for whichever stage you mapped.
    2. 02Compare that count with the conversions Google Ads shows for that action over the same click dates.
    3. 03Ask sales which field they actually update when a lead qualifies. Map the event to that.
  4. 04

    Enhanced Conversions for Leads is off or not matching

    Without a click ID, Google can only match a lead by hashed email or phone through Enhanced Conversions for Leads. That needs enhanced conversions turned on in Google Ads, Google's data terms accepted, and HubSpot set to share contact data on the conversion event. Matching works best when the Google tag on your site also sends the hashed email at form submit, so Google has both sides.

    How to check
    1. 01In Google Ads, open Goals > Settings and confirm enhanced conversions is on and the data terms are accepted. Since 2026, one switch covers both web and leads.
    2. 02In the HubSpot conversion event, confirm email (and phone, if you collect it) is selected for sharing.
    3. 03Open the conversion action in Google Ads and read its Diagnostics tab for enhanced conversion match and coverage warnings.
  5. 05

    The conversion action is set up wrong in Google Ads

    A secondary conversion action only shows in the All conv. column and is not used for bidding, unless it is part of a custom goal. Counting set to Every counts the same lead several times. A click-through conversion window shorter than your sales cycle rejects uploads for older clicks. No value, or the same value for every stage, gives bidding no reason to prefer a customer over a form fill.

    How to check
    1. 01In Goals > Conversions > Summary, open the action and check Primary or Secondary, Count, Click-through conversion window and Value.
    2. 02In the campaigns view, add the Conversions and All conv. columns and segment by Conversion action. A conversion only in All conv. is secondary.
    3. 03Set Count to One for lead and pipeline stages unless you have a specific reason not to. If you upload gbraid or wbraid, Google requires Count set to Every.
  6. 06

    Uploads fall outside Google's time windows

    Google does not import offline conversions uploaded more than 90 days after the click, or more than 63 days for Enhanced Conversions for Leads. A new conversion action needs a few hours before it accepts uploads, and imported conversions take about 3 hours to show. They are reported against the click date, not the upload date. In a long B2B sales cycle, a stage like Customer can land too late to ever count.

    How to check
    1. 01For recent customers in HubSpot, measure the days between first visit and the mapped stage date. Anything near or past 63 days needs an earlier stage.
    2. 02Review conversions for a date range at least a week old, not yesterday, because recent clicks keep filling in.
    3. 03In Google Ads, check Goals > Conversions > Uploads for upload history, then open the offline data diagnostics from the conversion action's status in Goals > Summary and look for errors such as expired or too-recent clicks.
  7. 07

    Consent signals are missing for EEA, UK and Swiss users

    Google requires consent signals for users in the EEA, the UK and Switzerland. ad_user_data controls whether user data can be sent to Google for advertising. If your Consent Mode setup sends it as denied, or never sends it, conversions from those users may not be attributable. HubSpot's Google Ads conversion events have their own consent setting: you pick the contact property and value that records consent, and Google then only uses contacts with consent for measurement and optimization.

    How to check
    1. 01Open Tag Assistant on your site, accept the banner and check the consent state shows ad_user_data as granted.
    2. 02Repeat after declining and confirm it switches to denied. A value that never changes means the banner is not wired to Consent Mode.
    3. 03Check the conversion action's Diagnostics tab for consent-related warnings.
Self-check

Checklist

  1. 01Confirm auto-tagging is on in Google Ads.
  2. 02Click through a tagged ad URL and confirm gclid survives all redirects to the form page.
  3. 03Check Google ad click id is filled on recent Paid Search contacts.
  4. 04Confirm the Google Ads account is connected in HubSpot and a conversion event exists for each stage you want to send.
  5. 05Check each conversion action: Primary or Secondary, Count, click-through window and Value.
  6. 06Turn on Enhanced Conversions for Leads and share hashed email from the HubSpot event.
  7. 07Compare your sales cycle with the 90 and 63 day upload limits. Use an earlier stage if the mapped one is usually too late.
  8. 08Check Consent Mode sends ad_user_data correctly for EEA, UK and Swiss visitors.
  9. 09Wait a few days, then compare HubSpot stage counts with Google Ads conversions by click date and read the diagnostics.
When it is not a quick fix

When to get help

If click IDs are missing, stages do not match how sales works, or your sales cycle is longer than Google's upload windows, this needs more than a settings change. Offline conversions covers capturing click IDs, mapping the right stages, setting up the conversion actions and checking the data actually lands in Google Ads.

Questions

Common questions

Usually both, with different jobs. An earlier stage, such as a qualified lead, has enough volume and arrives fast enough to be a primary conversion for bidding. Closed deals are often too few and too late for the upload window, so they work better as a secondary action or as value on the earlier one.

Not with the built-in integration. HubSpot's Google Ads conversion events work on contact lifecycle stage changes and form submissions, each with a fixed value you set. Sending deal stages or deal amounts means mapping deal progress to lifecycle stages, or a custom upload through Google's Data Manager API.

Yes. With Enhanced Conversions for Leads, the tag sends the hashed email at form submit, which is what Google matches the later upload against. It also carries your Consent Mode signals. Without it, matching relies on the offline data alone.