---
title: How to Connect Google Ads, GA4, GTM and HubSpot for Offline Conversion Tracking
url: https://andreivisan.com/connect-google-ads-ga4-gtm-hubspot-offline-conversion-tracking/
date: 2026-10-26T03:44:01+00:00
modified: 2026-10-26T03:44:01+00:00
lang: en
---

# How to Connect Google Ads, GA4, GTM and HubSpot for Offline Conversion Tracking

If you are working out how to connect Google Ads, GA4, GTM and HubSpot for offline conversion tracking, start with the commercial outcome, not the tags. The point is not to prove that a form was submitted. It is to tell Google Ads which clicks became qualified leads, opportunities, customers and revenue.

That distinction matters in B2B and SaaS. A campaign can produce an attractive cost per lead while sales rejects half the enquiries. If Google Ads only sees the form fill, it will find more people likely to complete forms. If it receives qualified pipeline data from HubSpot, it has a better signal for finding people more likely to buy.

GA4, Google Tag Manager and HubSpot each have a role here. But they are not a single chain where every conversion must pass through GA4. In most cases, HubSpot is the source of truth for offline outcomes and Google Ads is where those outcomes are imported for bidding. GA4 adds behavioural context and validation. GTM captures the identifiers that make the match possible.

## The measurement architecture before you touch GTM

A reliable setup has four jobs:

- Google Ads generates and appends a click identifier, usually GCLID, to the landing-page URL.
- GTM reads that identifier and stores it in a first-party cookie.
- HubSpot receives the identifier with the form submission and keeps it on the contact record.
- When the contact reaches an agreed sales stage, HubSpot sends or exports that conversion to Google Ads.

You should also capture the landing page, campaign parameters, conversion timestamp and consent status where applicable. GCLID is the critical field for standard offline conversion imports. Google may use other identifiers, such as WBRAID and GBRAID, in particular privacy and device scenarios, so do not design the system around GCLID alone if your traffic mix requires broader coverage.

The hard part is not installing code. It is deciding what counts as a conversion worth optimising towards.

For a sales-assisted SaaS business, that might be a sales-accepted lead first, then an opportunity created, then closed-won revenue. For a product-led business, it could be an activated trial or a trial that passes a product-qualified threshold. A generic lifecycle stage called “MQL” is not automatically useful. It only works if sales treats it consistently and it has a meaningful relationship with revenue.

## Set conversion actions around pipeline quality

Create separate Google Ads conversion actions for each stage you plan to send back. Name them plainly: Qualified Lead, Opportunity Created and Closed Won are better than vague labels such as Conversion 3.

Choose one [primary conversion for bidding](https://andreivisan.com/best-bidding-strategy-for-saas/) at first. This is usually the earliest stage that is both commercially credible and available in enough volume. If your business generates 20 qualified leads a month but only three opportunities, optimising directly to opportunities may leave Smart Bidding with too little data. In that case, use qualified leads as the primary goal and import opportunities and revenue as secondary observations.

There is no universal threshold, but volume and delay matter. A 90-day enterprise sales cycle needs a different approach from a 14-day demo-to-close motion. Google Ads needs timely feedback, while your leadership team needs revenue reporting. Those are related needs, not identical ones.

Assign values where you can defend them. A fixed value for a qualified lead can be useful for early optimisation. Opportunity values can reflect expected pipeline value. Closed-won conversions should use actual revenue or, better still for many SaaS businesses, an agreed contribution-based value. Do not invent values merely to make reports look more sophisticated.

## Configure Google Ads, GA4 and GTM correctly

In Google Ads, enable auto-tagging. This appends the GCLID to ad clicks. Then create offline conversion actions with the right conversion window. Set a window that reflects the realistic time from click to the stage being imported. A short window will quietly exclude valid long-cycle deals.

In GTM, create URL variables for GCLID, WBRAID and GBRAID. Use a tag that writes available identifiers to first-party cookies, then build a first-party data layer or form-field process that makes those values available when a HubSpot form is submitted.

There are several ways to pass the values into HubSpot. A common route is hidden HubSpot form fields mapped to contact properties. The practical requirement is simple: inspect a real test contact and confirm the click identifier is present, complete and does not disappear when the contact returns later.

Be careful with cross-domain journeys. If an advert lands on your main site but the demo form sits on a different subdomain or booking tool, the identifier can be lost before HubSpot ever sees it. Test the complete route, including consent banners, redirects, calendar tools and thank-you pages. A tag firing in GTM preview mode is not proof that offline tracking works.

GA4 should record key lead events such as form submissions, demo requests and trial starts. Mark the appropriate events as key events for analysis, but do not treat GA4 as the CRM. Its value is in understanding the path: which campaigns, landing pages and audiences generate leads, and where users drop out. It can also help diagnose discrepancies between web events and HubSpot submissions.

For privacy compliance, configure consent handling before collecting or storing advertising identifiers. The right implementation depends on your consent model, markets and legal advice. Do not use offline conversion tracking as a reason to retain personal data beyond your stated policy.

## Connect HubSpot stages to Google Ads offline conversions

HubSpot needs a reliable way to identify the relevant lifecycle or deal event. This may be a workflow triggered when a contact becomes sales accepted, when a deal is created, or when a deal closes. The correct trigger depends on how your sales team actually works.

For straightforward cases, HubSpot's Google Ads integration may support the lifecycle-stage sync you need. For more control, use a scheduled export, a middleware tool or the Google Ads API to upload conversions. The choice is operational, not ideological:

- Native integration is quicker to maintain but may be limited by the stages, values and attribution fields available.
- Spreadsheet uploads are acceptable for proving the model with low volume, but become fragile as spend and lead volume rise.
- API or middleware automation gives more control and fewer manual failures, but needs clear ownership and monitoring.
- A warehouse-led setup suits businesses already modelling [multi-touch attribution](https://andreivisan.com/best-attribution-models-for-saas/), though it is excessive for many teams.

Every upload needs the click identifier, conversion name, conversion date and time, and value and currency where used. Use the actual date when the lifecycle stage changed, not the original form-fill date. Google Ads needs to understand the delay between click and commercial progress.

Avoid importing the same outcome twice. For example, a HubSpot integration and a manual file could both send an opportunity conversion. Duplicates distort performance and can push bidding towards false signals. Keep a simple data dictionary showing each conversion action, source system, trigger, owner, value logic and whether it is primary or secondary.

## Validate the full journey, not just the dashboards

Run a controlled test from a real Google Ads click where possible. Submit the form, find the contact in HubSpot, confirm the identifiers and campaign data, move the record through the selected stage, then confirm the conversion appears in Google Ads after processing. Record the dates at every step.

Expect reporting differences. GA4 may attribute a lead differently from Google Ads. HubSpot may report based on first touch, original source or deal association. Google Ads reports its own ad interactions and attribution settings. These tools answer different questions, so forcing their totals to match exactly is wasted effort.

What should match is the underlying record trail. You should be able to take a sample of qualified leads and explain how each reached HubSpot, which campaign information was captured, when the sales stage changed and whether Google Ads received the outcome.

## Use the data without making bidding worse

Do not switch every campaign to automated bidding on imported revenue on day one. First check match rates, stage consistency, lag and volume. If only a small share of qualified leads contains a usable click ID, Google Ads is learning from a biased sample. Fix capture and consent gaps before changing strategy.

Once the data is dependable, review performance by qualified lead rate, opportunity rate, pipeline value, win rate and customer acquisition cost. Cost per lead remains useful as an early diagnostic, but it is not the decision metric. A more expensive campaign that produces opportunities may be far more efficient than a cheap campaign that produces poor-fit enquiries.

The useful next step is a short [measurement audit](https://andreivisan.com/audits-and-sprints/): trace one real lead from Google Ads click to HubSpot stage and back into Google Ads. That exercise usually shows whether the problem is tagging, CRM process, attribution design or the quality of the offer itself.
