Cross-source reports

Ad spend and pipeline in one report.

Finding out what your ad budget brings in usually means someone stitching together exports from three tools. In one call, the agent pulls spend from Google Ads, LinkedIn Ads and Meta Ads and contacts and deals from HubSpot, and the Data Hub matches them to campaigns. You get cost per opportunity, open pipeline, won revenue and ROAS back.

  • Campaign ROI and channel view
  • First or last touch
  • Recalculated on every call
insights__campaign_roiExample · Q4
  • brand_search_q4Google Ads
    Cost
    €3,912
    Cost/opp.
    €435
    Pipeline
    €84,000
    ROAS
    4.1
  • abm_fintech_dachLinkedIn Ads
    Cost
    €6,240
    Cost/opp.
    €1,040
    Pipeline
    €132,000
    ROAS
    2.6
  • webinar_oktLinkedIn Ads
    Cost
    €1,850
    Cost/opp.
    €1,850
    Pipeline
    €12,000
    ROAS
    –

2 UTM values without a matching campaign, listed for mapping.

The problem

Spend lives in the ad account, revenue in the CRM

Google Ads knows the clicks, LinkedIn and Meta the impressions, HubSpot the deals. To connect them, someone exports spreadsheets, matches UTM parameters by hand and does the math in Excel. By the time the numbers are ready the month is over, and nobody double-checks the matching anymore.

How it works

What the Data Hub does.

Ad spend from Google Ads, LinkedIn Ads and Meta Ads against deals and revenue in HubSpot, in a single call.

  1. 01

    Campaign ROI

    For each campaign you get spend, contacts, deals, cost per contact and per opportunity, deal value, open pipeline, won revenue and ROAS. UTM values that couldn't be matched to a campaign are listed separately, and the agent can assign them to a campaign on the next call.

  2. 02

    Channels

    For each traffic source in HubSpot (paid search, paid social, organic search, direct and the rest) you get contacts, deals and revenue. For paid search and paid social, the hub adds ad spend, cost per lead and cost per opportunity.

  3. 03

    Matching and attribution

    The Data Hub matches campaigns by the name in utm_campaign, as HubSpot stores it in its traffic sources, or by campaign ID.

    • First touch (Original Source) or last touch (Latest Source)
    • Deals take the source of their oldest associated contact
    • Based on contacts and deals created in the selected period
    • Amounts in HubSpot's company currency. If currencies differ, the hub skips ROAS and says so.
  4. 04

    What you need

    HubSpot plus at least Google Ads, LinkedIn Ads or Meta Ads. Each source is queried through its own connection, so access levels and allowed accounts apply just as they would for a direct call. The reports are read-only, need no approval and come with the Reporting and Campaign management templates. The Ad ROI review playbook walks the agent through the analysis.

  5. 05

    Checked figures, nothing stored

    Report results carry the same data context, including definitions of each metric, and the agent can check its figures against a fresh calculation with the fact check. Nothing is stored along the way: the log records the call, not the numbers.

Limits

What you should know.

  • A report is only as good as your UTMs. Campaigns without utm_campaign or with a different name end up as “unmatched”.
  • Ad spend comes only from Google Ads (paid search) and from LinkedIn Ads and Meta Ads (paid social). On the CRM side, the reports only use HubSpot so far, not Salesforce. Each call reads at most 10,000 contacts and 10,000 deals (3,000 by default), and the hub doesn't convert currencies.
  • Google prohibits hosted intermediary layers that provide Google Ads functionality to multiple unrelated businesses. The Google Ads tools are therefore meant for your own company's agents and your own ad accounts.
FAQ

Frequently asked questions.

›Do I need a BI tool or a data warehouse?

No. The Data Hub queries the vendors directly on every call and combines the numbers. There's no data warehouse for anyone to maintain.

›What about campaigns whose UTMs don't match?

They show up as “unmatched” with their UTM value. The agent can assign them to a campaign on the next call, and you see right away where tracking needs fixing.

›Does it work with multiple currencies?

Amounts come in HubSpot's company currency. If your ad accounts use a different currency, the hub doesn't calculate ROAS and says so. It doesn't convert currencies.

›Can the agent change anything here?

No, the reports are read-only. They're also only available on MCP servers where you've enabled them.

See it with your own tools.

In 30 minutes, we'll show you the Data Hub with your own tools and your use case.