Multi-Touch Attribution for Content Marketing: How to Prove Every Blog Post’s ROI

    Muiz Thomas

    Muiz Thomas, Founder & CEO, AttributeIQ

    · 9 min read

    One of the stranger things about content marketing is that the more successful your program becomes, the harder it can be to explain why it’s working.

    A prospect reads a blog post in January. Comes back through organic search a few weeks later. Downloads a guide. Attends a webinar. Eventually books a demo and becomes a customer six months after their first visit. Everyone involved understands that content played a role in that journey. The challenge is figuring out which content, how much influence it had, and whether the investment was actually worth it.

    Multi-touch attribution exists to solve that problem. Instead of giving all the credit to the first or last interaction, it looks at the entire journey and shows which blog posts contributed along the way.

    In this guide, I’ll show you how to use GA4, HubSpot, and AttributeIQ to connect content consumption to real pipeline and revenue so you can finally answer the question every content team gets asked: which blog posts are actually generating ROI?

    Three Things to Check Before You Run Your First Attribution Report

    Most of this you likely already have. But AttributeIQ needs all three pieces in place before it can connect your blog content to actual pipeline, so it’s worth a two-minute check before you get started.

    #

    Requirement

    Why You Need It

    1

    A conversion event firing in GA4: demo_request, trial_signup

    This is the outcome you’re attributing back to blog posts. If it’s not tracked, there’s nothing to connect. Most teams already have this set up for basic conversion tracking. If you don’t, it takes about five minutes in Google Tag Manager.

    2

    A HubSpot account (any tier, including free CRM)

    HubSpot is where a form fill becomes a contact, a pipeline stage, and eventually a closed deal. AttributeIQ pulls that information in so your blog attribution has actual revenue numbers attached to it, not just conversion counts.

    3

    An AttributeIQ account

    14-day free trial, no credit card required. Long enough to connect both platforms, run your first attribution report, and see which blog posts are actually influencing deals, before you spend a penny.

    How to Use AttributeIQ to See Which Blog Posts Are Actually Generating ROI

    The setup is lighter than you’d expect. Connect GA4, connect HubSpot, and AttributeIQ starts reconstructing the full journey behind every conversion, which posts were involved, in what order, and what the deal closed for.

    Step 1: Connect Your GA4 Property to AttributeIQ

    Once you’ve created your AttributeIQ account, the first thing you’ll do is connect GA4. This takes about three minutes and requires no engineering involvement.

    AttributeIQ will ask you to select which GA4 property to connect. If you have multiple properties, pick the one where your main conversions are tracked.

    2

    Select Your GA4 Property

    nexa-marketing (GA4)
    nexa-marketing (GA4 Property)Current
    nexa-prod (GA4 Property)
    nexa-staging (GA4 Property)
    client-brightwave (GA4 Property)
    Continue
    or+ Add another property

    What AttributeIQ does with this connection:

    AttributeIQ doesn’t read from the GA4 interface, it reads from your raw BigQuery event export. This matters because the GA4 interface shows you sampled, aggregated data. BigQuery has every individual event, every session, every page view, unsampled and in full. That’s what makes individual journey reconstruction possible. When you see a journey in AttributeIQ, it’s not a model or an estimate, it’s a real sequence of real page views from a real browser session.

    Step 2: Connect HubSpot to Match Journeys to Real Deals

    GA4 alone can tell you which pages were visited by users who converted. What it can’t tell you is who those users were, what company they’re from, or what deal value is attached to their journey. That’s what HubSpot unlocks.

    Go to Settings → Integrations → HubSpot inside AttributeIQ and click Connect HubSpot. You’ll be taken through a standard OAuth flow, authorise access, get redirected back, and you’ll see your portal ID confirmed and the status showing “Connected.”

    Property

    NexaPathora
    HS

    HubSpot CRM

    Portal ID: 146264324

    ConnectedDisconnect

    Sync Contacts

    Pulls contacts with a ga4_client_id property and their associated deals into your account. Last synced 6/7/2026 (96 contacts).

    Contacts sync automatically every 6 hours.

    The matching logic:

    When someone submits your demo form, GA4 fires a conversion event and HubSpot creates a contact. AttributeIQ reads the ga4_client_id from that form submission and writes it to the HubSpot contact record. From that point, every page that person visited, before and after the form fill, gets connected to their name and deal value.

    Step 3: Find Your Demo Conversions in the Multi-Touch Tab

    In AttributeIQ, go to Multi-Touch Attribution in the left nav. We’re using demo_request as the conversion event throughout this post, so what you’ll see here is every blog post that appeared in a journey that ended with a demo request, broken down by the role each post played.

    AttributeIQAttributeIQ
    7 days
    demo_request

    Multi-Touch Attribution

    See every page influencing conversions, with journey position breakdown.

    2 days
    7 days
    28 days
    More
    Page containsblog

    Total Conversions

    46

    Avg Journey Length

    1.1

    Most Influential

    /blog/ai-seo-...

    Top Mid-Journey

    /blog/measuring-...

    All Pages
    Solo Closer
    Entry
    Mid-Journey
    Closer
    Recurring
    13 pages

    Page Coverage

    Reach by page (% of converting journeys). Colour = journey role

    /blog/sales-pipeline-stages
    88%
    /blog/how-to-forecast-sales
    85%
    /blog/b2b-sales-lead-scoring
    72%
    /blog/automating-follow-up-emails
    68%
    /blog/sales-rep-onboarding
    52%
    /blog/reducing-sales-cycle-length
    50%
    /blog/crm-dashboard-metric
    38%
    0%2%4%6%8%
    PageReachJourneysRole Distribution
    /blog/sales-pipeline-stages
    88%of journeys22
    /blog/how-to-forecast-sales
    85%of journeys21
    /blog/b2b-sales-lead-scoring
    72%of journeys22
    /blog/automating-follow-up-emails
    68%of journeys17
    /blog/sales-rep-onboarding
    52%of journeys13
    /blog/reducing-sales-cycle-length
    50%of journeys12
    /blog/crm-dashboard-metric
    38%of journeys9
    Entry
    Mid-journey
    Closer
    1 / 2 →

    Here’s what each part of the dashboard is telling you:

    #

    Metric

    What It Means

    1

    Total Conversions

    The number of demo requests where the buyer visited at least one blog post before converting. This is the pool everything else is calculated against. Change the date range and the number updates, along with every reach percentage and journey count below it.

    2

    Avg Journey Length

    The average number of pages a buyer visited before requesting a demo. A 1.1 average, like you see here, means most people converted after reading a single blog post. A higher number (say, 4 or 5) would suggest buyers are doing more research before they’re ready to talk. Neither is good or bad, it’s context for how your funnel actually works.

    3

    Most Influential

    The page that appeared in the highest percentage of converting journeys, regardless of role. It doesn’t mean it closed the most deals, it means it showed up most consistently across the widest range of buyers.

    4

    Top Mid-Journey

    The page that appeared most often in the middle of journeys. If a post keeps showing up here, buyers are returning to it during consideration. It’s not pulling them in, but it may be what’s keeping them moving.

    5

    Page Coverage Chart

    The bar chart above the table ranks every blog post by reach, with each bar colour-coded by journey role. Mostly teal means it’s an entry page, mostly grey means mid-journey, mostly purple means it’s a closer.

    6

    Reach

    The percentage of converting journeys that included this page.

    7

    Journeys

    The raw number of converting journeys this page appeared in.

    8

    Role Distribution

    The bar on the far right of each row shows the breakdown of journey roles for that page across all its appearances: Entry, Mid-Journey, Closer. A page that’s almost entirely Entry is a top-of-funnel puller. A page that’s mostly Closer is doing the final convincing. The interesting ones are the mixed bars, pages that play different roles for different buyers depending on where they are in their cycle.

    See which content pieces
    actually influenced your deals.

    AttributeIQ shows page-level pipeline attribution natively over your existing GA4 and HubSpot stack, live within 24 hours.

    Try 14 days for free →

    Nexa Corp · Journey

    Best MTA tools 2026

    Blog · Organic · Day 1

    Attribution guide

    Blog · Organic · Day 12

    Case study: Intercom

    Blog · Organic · Day 28

    Pricing page

    Direct · Day 31

    Step 4: Click Into Any Page and See Every Journey That Ran Through It

    Click the chevron next to any page in the table and AttributeIQ expands every converting journey that included it, in full, in order, with dates and days-to-convert.

    You can see exactly what a buyer read before they requested a demo, what they came back to, and where your blog post sat in the sequence relative to everything else.

    JOURNEYS THAT INCLUDED /BLOG/SALES-PIPELINE-STAGES: 22 JOURNEYS

    Buyer #12 Jundemo request
    11 days
    1
    /blog/sales-pipeline-stages
    2
    /blog/how-to-forecast-sales
    3
    /pricing
    4
    /blog/b2b-sales-lead-scoring
    5
    /demo
    converted
    Buyer #25 Jundemo request
    1 day
    1
    /blog/sales-pipeline-stages
    2
    /pricing
    3
    /demo
    converted
    Buyer #38 Jundemo request
    7 days
    1
    /blog/reducing-sales-cycle-length
    2
    /blog/b2b-sales-lead-scoring
    3
    /blog/sales-pipeline-stages
    4
    /demo
    converted
    Showing 1–3 of 22 journeys
    1 / 5

    If you’re on Pro, the expanded journeys don’t just show anonymous page sequences. They show the contact name from HubSpot and the deal value. Buyer #1 becomes Marcus Webb, £8,000.

    JOURNEYS THAT INCLUDED /BLOG/SALES-PIPELINE-STAGES: 22 JOURNEYS

    BUYER #1 · Marcus Webb2 Jundemo request
    £8,000
    1
    /blog/sales-pipeline-stages
    2
    /blog/how-to-forecast-sales
    3
    /pricing
    4
    /blog/b2b-sales-lead-scoring
    5
    /demo
    converted
    BUYER #2 · Elena Vasquez5 Jundemo request
    £8,000
    1
    /blog/sales-pipeline-stages
    2
    /pricing
    3
    /demo
    converted
    BUYER #3 · Priya Nair8 Jundemo request
    £8,000
    1
    /blog/reducing-sales-cycle-length
    2
    /blog/b2b-sales-lead-scoring
    3
    /blog/sales-pipeline-stages
    4
    /demo
    converted
    Showing 1–3 of 22 journeys
    1 / 5

    And because AttributeIQ has the full HubSpot deal record, you can also see what happened after the demo, the post-conversion milestones through to closed revenue.

    BUYER #2 · ELENA VASQUEZ

    5 Jundemo request
    £8,000
    closed‑won value
    1
    /blog/sales-pipeline-stagesfirst touch
    2
    /pricing
    3
    /demo
    4
    appointment
    scheduled
    7 Jun
    5
    /case-study/mrr
    closed‑won£8,000

    Step 5: Set Up Slack Alerts for High-Intent Blog Behaviour

    A lot of buying activity happens between meetings. Prospects disappear for a few weeks, go quiet in email, then start revisiting content as they build an internal case, compare vendors, or prepare for the next conversation. If you’re only looking at CRM updates, you’ll miss most of it.

    Alert Rules

    2 active

    SQL visits /blog three times

    Immediate · Slack

    URL contains /blogQualified contactsSends immediately
    Edit

    Any contact visits /pricing

    Immediate · Slack

    URL contains /pricingAll contactsSends immediately
    Edit

    Qualified contacts inactive 14+ days

    Weekly on Monday · Slack

    Edit

    The screenshot above shows an example of what a few Alert Rules might look like in practice, one scoped to /blog/ visits from qualified contacts, another watching /pricing, a third flagging deals that have gone inactive for two weeks. The exact rules depend on your sales motion, but the pattern is the same: pick a URL, scope it to the right contact stage, and route it to Slack immediately.

    How to Pull a Blog ROI Report and Present It to Leadership

    The Multi-Touch tab gives you the full picture interactively, but at some point you’ll need to get that data out of AttributeIQ and into a format you can present to a CMO or a board.

    Exporting the Data

    In the Multi-Touch tab, filter by your selected conversion event and set your date range, usually the last 90 days is a reasonable window, long enough to capture full journeys, short enough to be actionable. Hit Export and AttributeIQ downloads an .xlsx with every blog post that appeared in a converting journey, the number of journeys it touched, and its role distribution across those journeys.

    The columns you care about for a leadership presentation are:

    • Page: the blog post URL
    • Journeys: how many converting journeys it appeared in.
    • Role: whether it was primarily entry, mid-journey, or closer

    Calculating Pipeline Influencee

    The export gives you journey counts per post. To turn that into a pipeline number, take your average deal value and multiply it by the number of journeys each post appeared in.

    If /blog/sales-pipeline-stages appeared in 22 journeys and your average deal closes at £8,000, that post influenced roughly £176,000 in pipeline. That’s not the same as saying it generated £176,000, multiple posts share credit across the same journey, but it’s a defensible, data-backed number that’s infinitely more useful than “this post got 4,000 sessions.”

    Calculating Actual ROI

    Pipeline influence is good for prioritisation. But if you’re going to stand in front of a board and claim ROI, you need to handle overlapping credit and subtract your costs.

    The model you use depends on your sales motion and what your leadership cares about. If the question is “what content is starting buying cycles,” use first-touch: attribute the full deal value of every journey a post opened, then subtract what it cost to produce. If the question is “what content is closing deals,” use last-touch: same logic, but only count journeys where that post was the final page before conversion. If you want to distribute credit across the full journey, divide each deal value equally by the number of posts in that journey and sum the post’s share across all appearances.

    None of these is objectively correct. What matters is that you pick one, apply it consistently, and are transparent about which model you’re using when you present the number.

    A First-Touch Example:

    /blog/sales-pipeline-stages appeared in 22 journeys with a combined deal value of £176,000. It was the first touch in 8 of those journeys. Those 8 journeys had a combined deal value of £64,000 (8 × £8,000). Under first-touch attribution, that post gets credit for £64,000 in attributed revenue.

    Now subtract production cost: writing, editing, any promotion. Say that’s £3,200.

    Attributed revenue (£64,000) − Cost (£3,200) = £60,800 net return.

    ROI = £60,800 ÷ £3,200 = 1,900%.

    That's a number you can put on a slide. Repeat for every post in your export. Rank by ROI, not by journey count or traffic. Some of your highest-traffic posts will have negative ROI. Some of your lowest-traffic posts may be quietly carrying the whole program.

    What to present to leadership

    A single slide with three things:

    • Top 5 posts by ROI: with the actual percentage
    • Total pipeline influenced across all blog: using the simpler journey × average deal value method
    • A recommendation: which content clusters to double down on and which to deprioritise

    Using Blog Attribution Data to Improve Content ROI

    Running attribution without changing anything downstream is just expensive reporting. Once you have the data, two things should change: what you do with the content you already have, and what you decide to produce next.

    #

    Signal

    What to Do With It

    1

    Improving existing content

    The posts appearing most consistently in converting journeys are your highest-leverage assets, and most teams underinvest in them because the traffic numbers look fine and there’s always a new brief to write. That’s backwards. A post that’s appearing in 25% of demo journeys as an entry point needs internal links that move readers toward case studies and pricing. It needs to be updated before anything adjacent gets commissioned. It needs to be the starting point for a content cluster, not a standalone piece that happens to rank.

    2

    Informing new production

    Before commissioning anything new, look at where the gaps are in the journeys you already have data on. A strong entry post with no logical next step is a leaky funnel. A strong closer with no top-of-funnel content feeding it is an underperforming asset. The briefs that are hardest to justify are usually the ones furthest from any converting journey, and now you have a way to identify them before you spend the budget.

    If you’ve been running content long enough to have a GA4 account and a HubSpot CRM, you have everything you need to run this. AttributeIQ sits on top of both, takes fifteen minutes to set up, and the trial is long enough to see real journeys, with deal values attached, before you decide whether it’s worth keeping. Start your free trial.

    Muiz Thomas, Founder & CEO of AttributeIQ
    Author
    Muiz Thomasin
    Founder & CEO, AttributeIQ
    Muiz is the founder of AttributeIQ, a multi-touch attribution platform for B2B marketing teams, and GrowUp, a B2B search agency. He started building attribution tooling because he got tired of writing “directional.” in client reports as a way of saying “I can’t actually prove this.” He works mostly with SaaS, construction tech, and enterprise software teams, and has helped connect marketing programmes to £5M+ in qualified pipeline.