You built the campaign. You ran the ads. Leads came in. But when you pull the HubSpot campaign report, it shows zero contacts influenced, zero deals influenced, and attribution credit sitting nowhere. The dashboard is empty.
This is one of the most common reporting problems in HubSpot, and it has a clear set of causes.
How HubSpot campaign attribution actually works
HubSpot doesn't automatically detect that a lead came from your campaign. It relies on two systems working together: the HubSpot tracking code (which captures page visits and form submissions) and campaign asset association (which connects specific emails, forms, landing pages, ads, and blog posts to a campaign record).
If either system has a gap, attribution breaks.
The four reasons campaigns show zero attribution
1. The tracking code isn't on every page.
If a contact visits your pricing page, reads your blog, or submits a form on a page without the HubSpot tracking code, that activity is invisible. This is especially common when you have a mix of HubSpot CMS pages (tracking code included automatically) and external pages (you add it manually). Check: Reports > Analytics Tools > Traffic Analytics. If you see sessions on pages that don't appear in HubSpot's page-level breakdown, the tracking code is missing there.
2. Paid traffic isn't using UTM parameters.
For external traffic (Google Ads, LinkedIn, Meta), HubSpot ties the visit to a campaign via UTM tags in the URL. If your ad URLs don't include utm_campaign, HubSpot has no way to know which campaign brought that visitor in. This is the most common cause of zero attribution in portals running paid ads. Every paid link needs UTM parameters for this to work.
3. Campaign assets are not associated.
Creating a campaign record in HubSpot does not automatically pull in related content. You have to explicitly associate each asset (emails, landing pages, forms, CTAs, blog posts, ads) to the campaign. If your campaign record exists but has no assets attached, it will never get attribution credit.
4. The wrong attribution model is selected.
HubSpot offers multiple attribution models: first touch, last touch, linear, U-shaped, full path. If the model selected doesn't match how your team thinks about credit, the numbers will look wrong even when the data is correct. This isn't technically zero attribution, but it makes the report feel broken.
How to audit in 20 minutes
- Open the campaign record and check the "Assets" tab. Count how many assets are associated. If it's zero, that's your answer.
- Pull a sample of contacts who converted during the campaign period. Check their "Original Source" property. If most say "Direct Traffic" or "Offline Sources," UTM tagging is the problem.
- Go to Settings > Tracking & Analytics > Tracking Code. Verify the installation matches what's on your site.
The longer fix
Attribution accuracy is a process problem as much as a technical one. The right fix is a pre-launch checklist: before any campaign goes live, confirm that UTMs are on all paid links, all assets are associated to the campaign record, and the tracking code is verified on every destination page. That checklist catches 90% of attribution failures before they happen.