Sprites LogoSprites.ai
CustomersPricing
Sign in
Get a demo
Start 7-day trial→→
Start 7-day trial→→
Sprites LogoSprites.ai
  • Run adsMeta AdsFacebook and Instagram, scaledGoogle AdsSearch, PMax and ShoppingLinkedIn AdsB2B targeting and ABMTikTok AdsShort-form video that convertsReddit AdsReach communities by intentGoal OptimizationHit your ROAS or CPL target
    Create & researchAd GeneratorOn-brand ads for any channelCreative AnalyticsThe hooks and angles that winCompetitor IntelligenceRivals' ads, SEO and AI reachMarket ResearchAudience insight, with sources
    SEO & AI visibilityAI SEO ContentArticles written and publishedAI VisibilityGet cited in AI answersSEO Site AuditPrioritized fixes, site-wideKeyword & Traffic ResearchWhere the searches and gaps are
    Meet SpritesYour AI ads team, on every channelResearches, builds and launches campaigns, then optimizes them daily. You approve every change.Scale the winner +$600/dayApprovePaused 14 wasted keywords+ SEO & AI searchStart 7-day trial
  • By teamStartups & SMBsSenior marketing, no headcountMarketing teamsMore campaigns, same teamAgenciesEvery client, one workspaceEnterpriseApprovals, governance, scale
    By businessB2B & ABMPipeline from target accountsEcommerce & D2CProfitable ROAS at scalePLG SaaSSignups and trials, not clicksMobile appsInstalls that become usersFintechCompliant growth for financeHealthtechCareful, compliant growth
    Helghardt Avenant68% lower CPL in 6 weeksCustomer storyHow Rehive took its ABM playbook back from two agenciesHelghardt Avenant · Founder & CEO, RehiveRead the story
  • Ads LibraryReal ads from Meta, Google, LinkedIn, TikTok, Reddit and moreBlogIdeas and playbooks for modern marketingPrompt GalleryReady-to-run prompts for your next campaign
    Free toolsGlossaryReviewsCompare Sprites
  • Customers
  • Pricing
Sign in
Get a demo
Start 7-day trial→→
  1. Home/
  2. Attribution/
  3. hubspot vs facebook ads leads

Attribution · Sprites diagnoses this

HubSpot vs Meta Ads: why the leads don't add up

Meta counts every lead form submit and every pixel lead it can attribute, including after a view or an engagement. HubSpot keeps one contact per person and files them under the first source it saw, and lead form contacts only arrive if the sync is set up. Unsynced lead forms and first-touch source explain most of the gap.

Start 7-day trial →Do it by hand

$1 today. Cancel anytime before day 7.

What Sprites checks

4 checks
  • ✓Meta leads210 in 30 days
  • ?HubSpot Paid Social contacts124 in 30 days
  • !Lead form sync1 of 3 forms connected
  • ?Duplicate contacts17 leads already in CRM
Illustration of a typical broken account. Your own readout comes from your account.

Why it happens

Lead forms not synced

  1. Lead forms not synced

    Meta instant form leads only reach HubSpot when that form is connected in HubSpot. A new form launched without the connection collects leads HubSpot never sees.

  2. Existing contacts

    A lead who is already in HubSpot keeps their original source. Meta counts a new lead; HubSpot adds activity to an old contact.

  3. View and engage credit

    For website leads Meta credits people who saw or engaged with an ad in the last day. HubSpot has no record of that view and files them by the visit it tracked.

  4. Missing UTMs on website ads

    Website traffic from Meta without URL parameters lands as Social Media or Direct Traffic in HubSpot, not Paid Social. See UTM parameters stripped.

How to line them up, step by step

  1. Connect every lead form

    In HubSpot go to Marketing, Ads, open the Meta account and check Lead syncing lists every active lead form as connected.

  2. Count new vs existing contacts

    Build a HubSpot contacts report for the same 30 days on Create date, broken down by Original Source, and a second one on Recent conversion to catch existing contacts.

  3. Compare click-only

    In Ads Manager use Compare attribution settings and add 7-day click. Compare that with HubSpot Paid Social contacts.

  4. Tag website ads

    Set URL parameters on every Meta ad that sends traffic to your site, with a paid utm_medium so HubSpot files it as Paid Social.

Steps checked against HubSpot Knowledge Base: Sync leads from Facebook lead ads; HubSpot Knowledge Base: Understand the original source and latest source properties; Meta Business Help Center: About attribution settings.

Sprites diagnoses this

Sprites diagnoses it

Sprites lines up your HubSpot contacts and Meta leads and shows where they split.

What Sprites does

  • Reads HubSpot contacts, deals and lifecycle stages by source for any date window, read-only.
  • Pulls Meta leads and cost per lead per campaign on the same basis as Ads Manager.
  • Follows Meta leads into the pipeline, to MQL, SQL and closed deals, so campaigns are judged on revenue.

What it doesn't do

  • It does not connect lead forms or write anything to HubSpot.
  • It does not send HubSpot stages back to Meta.
Start 7-day trial →

Questions

Why are my Facebook leads not showing up in HubSpot?

The lead form is not synced, or the person was already a contact and HubSpot added the submission to their record instead of creating a new one.

Why does HubSpot file Meta leads as Social Media instead of Paid Social?

The visit had no paid UTM. HubSpot read the facebook.com referrer and filed it as organic social.

Which number should I trust for Meta?

HubSpot for pipeline and revenue. Meta for optimizing inside Meta. Judge campaigns on cost per SQL, not cost per lead.

Do Meta lead form leads have a gclid or UTMs?

No. Instant form leads never visit your site, so HubSpot sources them from the sync, not from tracking parameters.

More: Tool vs ad platform

  • HubSpot vs Google Ads: why your lead counts differ
  • GA4 vs Meta Ads conversions: why Meta reports more
  • Meta ads attribution settings
  • Multi-touch attribution
  • GA4 vs Google Ads conversions: why the numbers don't match
  • GA4 vs LinkedIn Ads conversions: why they never match
  • PostHog vs Google Ads: why your signups don't match
  • PostHog vs Meta Ads: why Meta claims more conversions
  • PostHog shows fewer LinkedIn signups than Campaign Manager
  • HubSpot vs LinkedIn Ads: why the leads don't match
  • Google Ads and Meta both claim the same sale

Hubs

  • Why your tools disagree on conversions
  • Fix your ad account
  • Fix Google Ads problems
  • Fix your Meta ads
  • Fix your LinkedIn ads
  • Fix your Reddit ads
  • Fix Microsoft Ads problems

Reference

  • Attribution, defined
  • PostHog MCP server
  • Google Analytics MCP server
  • Google Ads MCP server
  • Incrementality
  • Marketing mix modeling
  • Ad specs

See where it breaks

Connect your accounts. Sprites reads them side by side and shows you exactly where the numbers split.

Start 7-day trial →Get a demo

Get the free AI-First Marketing Playbook

Packed with proven tactics, creative inspo, and automation tips to help you grow faster with less guesswork.

By clicking send you agree to the Terms and Conditions

Pillars

AI Marketing AgentVibe MarketingAI VisibilityAI Marketing AutomationAI for Meta AdsAI for Google AdsAI for LinkedIn AdsAI SEOAds LibraryChatGPT AdsAI AdsMCP Server

For Teams

For AgenciesFor EcommerceFor FintechFor HealthtechFor EnterpriseFor FreelancersFor Marketing Teams

Prompts Gallery

Marketing Campaign BuilderGoogle Ads Search Campaign BuilderCompetitor Meta Ads AnalyzerSEO Audit + Plan GeneratorGoogle Ads Campaign OptimizerGoogle Ads: PMax Campaign Builder

About

CustomersReviewsBlogTerms of ServicePrivacy PolicyDPACareersSitemap
Sprites TextWizard