How to Track Which Blog Posts Drive Sales Demos

    Muiz Thomas

    Muiz Thomas, Founder & CEO, AttributeIQ

    · 9 min read

    You’re probably already being asked to prove it. Not in a hostile way, necessarily, but the question is there. In budget reviews, in planning meetings, in that moment where someone asks why content investment hasn’t shown up in pipeline yet.

    And the honest answer is: it’s not that content isn’t working. It’s that you can’t clearly show how it’s working. Last-touch says the demo came from direct. GA4 tells you a blog post got 400 sessions. Both are true. But the link between them, how someone actually moved from reading that post to becoming a qualified opportunity, is missing. So you end up with activity on one side, revenue on the other, and no clean way to connect the two.

    This post is about fixing that. Specifically, how to connect GA4 and HubSpot through AttributeIQ so you can take any demo and see exactly which blog posts played a role in getting it there.

    Three Things to Have Ready Before Your First Blog Attribution Report

    This isn’t a lengthy technical setup. But there are three things that need to be in place before AttributeIQ can connect your blog content to real pipeline, and it’s worth knowing what they are and why each one matters before you start the clock on your trial.

    #

    Requirement

    Why You Need It

    1

    A demo_request conversion event firing in GA4

    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)

    For matching anonymous GA4 journeys to named contacts and deal values. HubSpot is where your demo requests become contacts and deals. AttributeIQ reads from HubSpot to pull in contact names, companies, pipeline stages, and closed-won values. No HubSpot = no deal value attached to your blog attribution.

    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.

    Setting Up AttributeIQ to Track Blog-to-Demo Attribution End to End

    This setup takes under fifteen minutes and lets you trace demo requests back to the blog posts that influenced them.

    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 blog and demo form live, if they’re on different properties, start with the one where the demo form fires.

    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 a buyer submits your demo form, two things happen simultaneously. GA4 records a demo_request event tied to a GA4 client ID. HubSpot receives the form submission and creates or updates a contact. AttributeIQ captures both events, reads the ga4_client_id from the form submission, writes it to the HubSpot contact property, and from that point forward every GA4 session associated with that client ID is connected to that named contact and their deal.

    One thing worth flagging: This matching is forward-looking. Contacts who converted before you installed AttributeIQ won’t have a ga4_client_id attached, so their historical journeys won’t be visible.

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

    Now the interesting part. Go to Multi-Touch Attribution in the left nav. This shows you every page that appeared across every converting journey, filtered by the role they played in driving the demo.

    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
    88%of journeys22
    85%of journeys21
    72%of journeys22
    68%of journeys17
    52%of journeys13
    50%of journeys12
    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.

    Turning Blog Attribution Data Into Measurable Pipeline Impact

    Running attribution without changing anything downstream is just expensive reporting. Once you can see which posts appear in demo journeys and which don’t, there are three decisions that should follow immediately, before you commission another brief, before you push another post into distribution, before you tell your team that content is working.

    #

    Signal

    What to Do With It

    1

    High first-touch credit on a blog post

    If /blog/sales-pipeline-stages is the entry point for 25% of your demo journeys, that post is actively starting buying cycles, and your content strategy should reflect that. Commission more posts in the same cluster. Expand the topic laterally. Build internal links that move first-touch visitors toward case studies and pricing. The goal is to make that entry point part of a sequence, not a dead end.

    2

    High mid-funnel presence in high-value deals

    If a case study or comparison post keeps appearing as a mid-journey touchpoint in your largest deals, it is almost certainly under-distributed. Add it to your email nurture sequences. Give it to your sales team as a follow-up asset. When a prospect goes quiet after an initial demo, that post is what you send, because the data is telling you it’s what moves similar buyers from consideration to closed-won.

    3

    High traffic with no journey presence

    If a blog post is pulling thousands of sessions but never appearing in demo journeys, it is attracting an audience that doesn’t convert. That’s not automatically a problem, informational content has legitimate value, but it should change how you categorise it internally. Don’t treat it as a pipeline driver. Don’t use its traffic numbers to justify investment in adjacent topics. Audit the intent, assess whether it can be repositioned toward a higher-value audience, and if it can’t, move your production capacity elsewhere.

    The three decisions above are only possible because the data finally exists to make them. For most content teams, that’s the missing piece, not the strategy, not the briefs, but the evidence that tells you which of those things is actually working. That’s what AttributeIQ shows, natively, over the GA4 and HubSpot stack you’re already running. Free trial is fourteen days, no card required. Sign up here.

    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.