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.
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.
Select Your GA4 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.”
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.
Property
Attribution
Account
jent@nexa.com
AttributeIQMulti-Touch Attribution
See every page influencing conversions, with journey position breakdown.
Total Conversions
46
Avg Journey Length
1.1
Most Influential
/blog/ai-seo-...
Top Mid-Journey
/blog/measuring-...
Page Coverage
Reach by page (% of converting journeys). Colour = journey role
Here’s what each part of the dashboard is telling you:
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 →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
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
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
scheduled7 Jun
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.
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.
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.
