How to integrate HubSpot and ad platforms in 7 simple steps
Last updated: 26 August 2026
You've spent a fortnight building a campaign. The ads are live, the leads are landing, and then someone asks the simple question: which channel actually produced them?
Google Ads says 40. HubSpot says 22. Meta claims 15 of the same ones. Your gut says none of these numbers are right.
You're not doing it wrong. You're running six channels through one CRM, and each of those channels has its own idea of what counts as a conversion. The fix isn't a magic setting. It's knowing exactly what each connection can and can't do, then building your reporting on top of the truth instead of the hope.
We will walk you through connecting your website, HubSpot and every major ad platform. We'll also tell you where the connections stop, because that's the part most guides leave out.
All six connect natively. They don't all measure the same way.
Here's the bit that causes most of the confusion. People talk about "connecting your ads to HubSpot" as if it's one thing. It isn't. Connecting the account is the easy part, and it's where most setups stop. What each connection can actually measure underneath varies, and knowing that up front saves you a week of chasing data that was never going to arrive.
| Channel | How it connects to HubSpot | Lead form sync | Contact level attribution |
|---|---|---|---|
| Google Ads | Native in the ads tool | Lead form extensions | Yes, via auto-tracking |
| Meta Ads | Native in the ads tool | Yes | Yes, via auto-tracking |
| LinkedIn Ads | Native in the ads tool | Yes, Lead Gen Forms | Yes, via auto-tracking |
| TikTok Ads | Native in the ads tool | Yes, Instant Forms | Yes, via auto-tracking |
| ChatGPT Ads | Native in the ads tool | No lead forms in the format | Yes, via auto-tracking |
| Reddit Ads | Native in the ads tool | Yes, lead gen forms | Yes, via auto-tracking |
Six connections, one ads tool. That's a genuinely new position, and it changes what's possible: Reddit and ChatGPT Ads spend can now sit next to Reddit and ChatGPT Ads revenue without a middleware layer in between.
Two things worth knowing before you treat all six as identical.
ChatGPT Ads has no lead forms. The format is a short title and about 100 characters of body copy, running on fixed CPM rather than a bidding strategy. Every conversion is a click through to your site, so your landing page carries the entire load.
Reddit and ChatGPT are the newest connections in the tool. They work, but they haven't had years of edge cases documented by other people. Test them yourself rather than assuming your Google Ads playbook transfers, and expect the reporting depth to keep improving.
Quick guide: connect HubSpot to your ad platforms in 8 steps
- Audit what you've already got. Every ad account, pixel, tag, form, conversion event and half finished integration.
- Map what each connection actually gives you. Reporting, tracking, lead sync and attribution vary by channel and by format.
- Get your permissions sorted first. Ads publishing in HubSpot, Account Manager or equivalent in the network.
- Install tracking once, deliberately. HubSpot tracking code, then platform pixels and server side events. No duplicates.
- Connect every account. Google, Meta, LinkedIn, TikTok, Reddit and ChatGPT Ads through Marketing then Ads.
- Define your conversion events before you sync them. Decide what a lead actually is, then map it.
- Standardise UTMs and test every format you run. One convention, applied everywhere, tested in a private window.
- Build two reporting views. Platform performance in one, CRM outcomes in the other. Label both clearly.
Connection, tracking, lead sync and reporting are four different things
Before you touch a single setting, get these four straight in your head. Most "the integration is broken" conversations are actually one of these four working exactly as designed while someone expected a different one.
- Connection: can HubSpot see this ad account at all?
- Tracking: can HubSpot tie an ad click to a website visit and a contact record?
- Lead sync: can a form filled in inside the ad platform create a contact in HubSpot?
- Reporting: can HubSpot show you impressions, clicks, spend and conversions from the network?
These don't arrive as a set. A campaign can report beautiful click volumes in HubSpot while offering nothing at contact level. A LinkedIn Lead Gen Form can push contacts straight into your CRM while the website journey behind it stays invisible. Both of those are normal. Both are only a problem if nobody wrote them down.
The teams who trust their numbers aren't the ones with perfect tracking. They're the ones who documented where the tracking stops.
The step by step build
1. Audit your current stack
Before you change anything, write down what you've got. Not from memory. From the actual accounts.
For every channel, record the account name, account ID, who owns the login, the connection type, the tracking method, the lead form setup, the destination URL structure and the conversion events currently firing.
Then do the same for your website. Open the source, or open Tag Manager, and list every script: HubSpot tracking code, GTM containers, analytics, platform pixels, server side events, anything custom a developer added in 2022 and forgot to mention.
Also write down which ad formats you actually run. Search, Performance Max, video, feed, Stories, Reels, in-feed, Instant Forms, promoted posts, AI placements. This matters more than people expect. One format working is not proof the account works.
Pay particular attention to redirects, link shorteners, duplicated pixels and lead forms that exist in two places. That's where your duplicate contacts and inflated conversion counts are hiding.
2. Map what each connection gives you
Use the table above as your starting point, then verify it inside your own portal. For every channel you run, write down four things: what reporting arrives in HubSpot, whether the ad formats you use support contact level attribution, whether lead forms sync, and what you'll still need to pull from the ad network itself.
Do this per format, not per channel. Search behaves differently to Performance Max. Reels behave differently to a Meta lead form. A ChatGPT ad has no form at all.
Doing this in advance stops the most expensive mistake in the whole process, which is promising your leadership team a single unified dashboard and then quietly discovering one format can't feed it.
3. Sort your permissions
Boring, and the most common reason a connection fails halfway through.
In HubSpot, the person connecting needs Ads publishing permission. If that comes through a permission set, the set needs updating.
In the ad network, they need the right level of access, usually Account Manager or equivalent, and they need to accept every permission HubSpot requests during the connection flow. Skip one and the connection looks fine but half the data never moves.
Two Google Ads specifics worth knowing before you start:
- Only individual Google Ads accounts connect to HubSpot. Manager accounts can't. Connect each child account separately.
- Cancelled Google Ads accounts can't connect, and a connected account that gets cancelled will be disconnected with an error showing in HubSpot.
For Meta, each teammate connects with their own Meta login and needs access to the ad account, the Facebook Page and the leads if lead forms are in play. Shared logins cause trouble here.
4. Install tracking properly
Start with the HubSpot tracking code sitewide. Then add the platform tracking you actually need for the campaigns you're actually running.
Google Ads: review auto-tagging and your tracking templates. Use full final destination URLs, not shortened or redirected ones, because redirects strip parameters. Performance Max and Demand Gen give you less granular reporting than Search, so set expectations before someone asks for keyword level detail.
Meta Ads: Meta Pixel plus the Conversions API if you're serious about signal quality post iOS. Test Feed, Stories, Reels and lead gen separately. They behave differently.
LinkedIn Ads: Insight Tag, plus Lead Gen Form mapping if you're using them. Conversions API is worth the setup effort for B2B, especially with long cycles where the deal closes months after the click.
TikTok Ads: TikTok Pixel plus the Events API. Decide early which event actually means something to your business. A video view, a landing page visit and an Instant Form submission are three wildly different levels of intent.
Reddit Ads: Reddit Pixel plus the Conversions API alongside the HubSpot connection. Reddit's dynamic parameters, things like campaign ID, ad group ID and ad ID, are worth using in your UTM structure so you keep granularity even where the native reporting summarises.
ChatGPT Ads: auto-tracking handles the parameters. There's no form to sync, so every conversion depends on your landing page. Point these ads at your strongest converting page, not your homepage.
One rule across all of it: respect consent. A pixel that fires twice, or fires before consent, or fires after a redirect, gives you a dashboard built on rubbish.
5. Connect your accounts
In HubSpot, go to Marketing then Ads, or Settings then Marketing then Ads. Click connect account and choose your network.
Connect each account separately. Select the right business, page, pixel and ad account. Leave auto-tracking on unless you have a specific reason not to, because that's what appends the HubSpot tracking parameters that make contact level attribution possible.
Then check what actually appeared. Depending on the network you should see campaigns, ad groups or ad sets, individual ads, lead forms, audiences, spend, clicks and impressions. Campaigns usually sync within half an hour.
Write down what turned up and what didn't. The gaps are your reporting caveats.
6. Define conversion events before you sync them
This is the step most teams skip, and it's the one that determines whether your ad platforms optimise towards revenue or towards noise.
Define your stages first. New lead, qualified lead, booked meeting, opportunity, closed customer. Then decide which of those you send back to the platforms for optimisation and which you keep for reporting only.
Map each one to a real HubSpot trigger: a specific form submission, a lifecycle stage change, a meeting booked, a deal stage. Not a vague conversion.
Then feed the good stuff back. Offline conversions, sent from HubSpot to Google and Meta, are where the real gains sit. Optimising towards a form fill teaches the algorithm to find people who fill in forms. Optimising towards a closed deal teaches it to find people who buy. Those are not the same audience.
Use one definition per funnel stage across every channel. If TikTok calls something a lead and LinkedIn calls the same action an opportunity, you'll spend the next quarter arguing about a difference that only exists in your naming.
7. Standardise your UTMs
Auto-tracking handles a lot of this for you, but it doesn't handle your organic, email, partner or offline links. UTMs are still the thread holding the whole picture together.
Pick your source values once and never deviate:
googlefor Google Adsmetafor Meta Adslinkedinfor LinkedIn Adstiktokfor TikTok Adsredditfor Reddit Adschatgptfor ChatGPT Ads
Then set your mediums. Something like cpc, paid-social, paid-community and paid-ai gives you sensible groupings without inventing a new one every month.
Lowercase. Hyphens, not spaces. No special characters. Predictable campaign names. And don't rename a live campaign midway through unless you've thought through what it does to your historical reporting.
Test the final URL in a private browser window and confirm the visit creates the source and campaign data you expected in HubSpot. Then check it survives your redirects and your landing page builder, because both love eating parameters.
8. Test the whole journey, format by format
Six channels feeding one CRM means testing isn't optional.
For website campaigns, click a real ad or use a controlled test URL, land on the page, submit the form and open the contact record. Check original source, campaign, first touch and any custom properties you're relying on.
For in-platform lead forms, submit a test on the network itself and check field mapping, consent capture, contact creation, duplicate handling and whoever is supposed to get the notification.
For each test, answer three separate questions:
- Did the platform record the click or conversion?
- Did HubSpot receive the contact or event?
- Did HubSpot attribute it to the right channel and campaign?
The answers won't always match, and that's fine. Document the mismatch rather than forcing the numbers together.
If something appears in HubSpot but not the platform, or the other way around, the usual suspects are consent settings, ad blockers, expired tokens, wrong permissions, redirected URLs, duplicate events and misconfigured lead forms. In roughly that order of likelihood.
9. Build reporting around outcomes, not activity
Build two views and label them honestly.
Platform view: spend, impressions, clicks, CTR, CPC, platform-reported conversions. This is what you use to optimise delivery, because each network sees engagement data HubSpot never will.
CRM view: leads, qualified leads, meetings, deals, customers, cost per lead, customer acquisition cost, revenue. This is what you use to make budget decisions.
Break both down by channel. Add time comparisons and campaign filters. Be careful with blended totals, because a platform claiming a conversion HubSpot attributes elsewhere is not an error to average away. Showing both numbers side by side, clearly labelled, builds more trust than one tidy figure nobody can explain.
What each channel is actually good at
There's no best channel. There's only the right mix for your audience, your offer and your buying cycle.
Google Ads catches people who already know they have the problem and are shopping for the answer. Highest intent, highest competition, and your costs move with your market.
Meta Ads carries broad reach, visual storytelling and genuinely good lead gen forms across Facebook and Instagram. Strong for optimisation. Treat its attribution as one opinion rather than the truth.
LinkedIn Ads targets by role, industry and company size better than anything else. Costs more per lead and often justifies it on deal value. Worth the Conversions API work.
TikTok Ads creates demand rather than capturing it. Your creative does most of the work, and your follow up experience does the rest.
Reddit Ads reaches people researching a specific problem inside communities that will smell a bad ad instantly. Context and honesty matter more than reach here. Long consideration windows too, so give it time before you judge it on last click.
ChatGPT Ads puts you in front of people asking an AI about your category. Very high intent, very little room for creative, and no form to hide behind. Test budget territory if you're already working on AI search visibility.
The channel reporting the most conversions is rarely the channel producing the best customers. Judge on pipeline progression and revenue, not conversion count.
What goes wrong, and how you spot it
Integration problems start small and compound quietly.
Duplicate tracking. One person triggers a website pixel, a server side event and a lead form sync. Three signals, one human, inflated numbers and an algorithm learning the wrong lesson.
Lost attribution. A redirect, a link shortener or a consent rule strips your parameters. The ads keep running, the leads keep arriving, and HubSpot files them all under direct traffic.
Lead sync failures. Someone changed a permission, a field mapping broke or a token expired. The form still works. The contact never arrives. Nobody notices until the monthly report looks thin.
Data silos. The same campaign named three different ways across three platforms, showing up as three sources. Standardised naming prevents this entirely, and nothing else really fixes it after the fact.
Assumed coverage. Someone builds a dashboard that treats all six channels as measuring identically, then defends a budget decision with a column that was never comparable. Connecting an account is not the same as verifying what it reports.
Run a test conversion through every live channel monthly. It takes twenty minutes and catches all five.
Why your ad platforms and your CRM will never agree
Because they're answering different questions with different data.
Picture a real buyer. They see a TikTok video on the train. A week later a Meta ad turns up in their feed. They read a Reddit thread about the problem, ask ChatGPT to compare three vendors, then search your brand name on their laptop and fill in your form.
TikTok reports the view. Meta reports the impression. Reddit reports the engagement. Google claims the final click. HubSpot records one contact and whatever source it could observe. Your analytics platform applies a fourth model and produces a fifth answer.
Nobody is lying. Every platform has its own attribution window, identity signals, conversion rules and reporting delays. Add cross device behaviour and privacy restrictions and exact matching becomes impossible, not difficult.
So stop chasing it. Set a hierarchy instead:
- HubSpot is your source of truth for contacts, pipeline and revenue.
- Each ad platform is your tool for optimising delivery inside that channel.
- Consistent UTMs and campaign naming are how you compare trends over time.
That's a measurement framework. Matching numbers is a hobby.
How Refuel Creative helps
We own the whole join, not one platform at a time.
As Adelaide's longest serving and only Platinum HubSpot partner, a Google Premier Partner and a Meta Business Partner, we spend our days in the gap between these systems. That gap is usually where the leads go missing, and it's usually where every vendor points at every other vendor.
We'll audit your existing setup, find the duplicate tracking, sort your UTM structure, define your conversion events properly and build reporting that separates platform performance from CRM reality. Where a connection reports less than people assume, we'll tell you and label it, rather than letting a dashboard imply a precision it hasn't got.
You also get the documentation and the training, so your team can maintain it when the next ad format launches.
Book a video call or send us an email and let's map out what your integration should actually look like.
FAQs
How long does this take?
Connecting one account takes under an hour if your permissions are right. A full build across six channels, with conversion events, offline conversion feedback, UTM standardisation, format by format testing and dashboards, is more like two to four weeks. The connecting isn't the slow part. Agreeing on what a qualified lead means is.
Can I connect multiple ad accounts to one HubSpot portal?
Yes, and you'll need to for Google, because manager accounts can't connect. Each individual account connects separately. Name them clearly and check the right campaigns and lead forms are attached to each one.
What permissions do I need?
Ads publishing permission in HubSpot, plus the right access in each network, usually Account Manager or equivalent. Accept every permission HubSpot requests during the connection flow. For Meta, connect with your own login and make sure you've got ad account, Page and leads access.
Can HubSpot track every ad format?
No. Coverage varies by platform and by format. Some formats give you impressions and clicks without contact level attribution. Others sync lead forms while offering limited website tracking. Test each format you plan to run and note the limits in your reporting.
Does HubSpot connect to Reddit Ads?
Yes, natively in the ads tool. This is a recent addition, so if you last looked into it a while ago and built a workaround with a third party connector, it's worth revisiting. You may be paying for middleware you no longer need.
Is ChatGPT Ads worth connecting yet?
If you're already investing in AI search visibility, yes. It's a native connection now, so the setup cost is low. Just remember there's no lead form in the format, so your landing page does all the converting. Start with a test budget and a page you already know performs.
Why don't my HubSpot conversions match my ad platform conversions?
Different attribution windows, different identity signals, different conversion definitions and different reporting delays. Treat HubSpot as truth for contacts and revenue, and platform data as an optimisation signal.
Do I need Google Tag Manager?
Not strictly. It helps a lot once you're managing several pixels, server side events and consent rules, mainly because of version history and the ability to change tags without a developer. If you're running two channels and one form, you can skip it.
Which channel should I connect first?
Whichever one you're spending the most on. Get that one measuring properly, prove the reporting works end to end, then add the next. Connecting all six on day one gives you six half finished integrations and no idea which one is lying.
How often should I audit this?
Quarterly as a baseline, plus after any website rebuild, CRM change, privacy update, new ad format or permission change. Run a live test conversion through every active channel monthly. Drift is easier to fix in a week than in a quarter.