How Arbor Ledger rebuilt attribution and reshaped €400k of 2026 budget
A Series B treasury SaaS was flying blind across six channels and three regions. We built a full-funnel attribution system tying GA4, HubSpot, and the CRM into one source of truth — then used the real data to kill two channels and double down on two others.
The challenge
Arbor Ledger had closed a €32M Series B eight months earlier and the marketing team had tripled from 4 to 12. They were now running paid search, paid social, ABM display, a conference programme, a podcast sponsorship slate, and outbound SDR across the Netherlands, DACH, and UK — six channels, three regions, multiple agencies. Every tool had its own dashboard. The VP Marketing had 11 tabs open every Monday morning trying to stitch a coherent story for the CRO.
The specific symptoms were painful. LinkedIn's own attribution credited itself with 62% of MQLs. Google Ads credited itself with 54%. HubSpot credited the last form fill. The SDR team credited outbound for deals that had had six prior marketing touches. No one had a complete view. When the CFO asked 'if we cut €500k of the €2M budget, where should it come from?', no one could answer with confidence.
The consequence was worse than the annoyance. Budget was being allocated on gut feel dressed up as data. Two of the six channels turned out to have been coasting on mis-attribution for almost a year.
Our approach
Phase 1 — Tracking audit and data model design (weeks 1-3)
We inventoried 47 tracking touchpoints across 11 properties and mapped them to a single event schema. The shared spine was a first-party identifier stored in a cookie at first visit, stitched server-side to HubSpot contact ID at form fill, and to Salesforce account ID at MQL-to-SQL promotion. Every touch before and after now belonged to a single identity graph.
Phase 2 — Server-side GA4 and CRM pipeline (weeks 3-8)
We implemented GA4 via server-side GTM to eliminate ad-blocker and iOS loss (which was 22% of sessions). Offline conversion imports ran daily from HubSpot into Google Ads, LinkedIn Ads, and Meta so each platform's algorithm optimised to the same revenue signal. A nightly job in BigQuery unified all touch data and exposed it to Looker Studio as a clean 'touches by deal' table.
Phase 3 — Multi-touch model and reporting (weeks 6-12)
Instead of picking one attribution model, we built three views: last non-direct for tactical channel decisions, time-decay for campaign-level ROI, and a linear 'share of influence' for strategic budget planning. Every deal in the CRM now carries a touch-journey string. The VP Marketing's weekly report is a single page with pipeline-by-channel across all three models, side by side.
Phase 4 — Budget reallocation and guardrails (weeks 10-16)
Three months of clean data told a clearer story than anyone expected. Podcast sponsorships had been credited with 8% of influence but contributed 21% of closed-won across all three models. ABM display had been credited with 14% of MQLs but appeared in 4% of won-deal journeys and only as the final touch on already-engaged accounts. We rebalanced €400k away from ABM display and half of outbound, into podcast sponsorship, a new YouTube video programme, and senior SDR hires.
The results
Cross-checked against CRM closed-won for 90-day window.
Single-page report replaces 11 dashboards.
Server-side tracking + identity stitching.
From ABM display + outbound into podcast + YouTube.
Early trend — full year benchmark still underway.
“They rebuilt our attribution from scratch — GA4, HubSpot and the CRM all actually talking to each other. For the first time our board sees pipeline by channel, not just MQLs. That single fix reshaped where we put our next €400k of budget.”
What we got wrong — and what we'd do differently
The hardest part of this engagement was not technical. It was organisational. Two of the six channels were owned by people who had been at Arbor since Series A, and both sets of data showed their channels were significantly less valuable than everyone had believed. We built in a 'calibration period' — two months where we reported both the new attribution and the old agency-self-reported numbers side by side — so the conversations could be had with evidence rather than by dropping a new scorecard on the CMO's desk. That would not be how we would have scoped this in month one, but in hindsight it was the thing that let the budget shift actually happen.
We also got the Looker Studio data freshness wrong initially. We ran the BigQuery pipeline hourly and it broke twice because of LinkedIn API rate limits. We moved it to a single 3 AM CET batch and have had zero incidents since. Over-engineered freshness was the enemy of a report people could actually trust.
Services used in this engagement
Free Audit — No Commitment
See exactly where your marketing is leaking revenue — for free.
We'll analyse your SEO, paid ads, and conversion funnel and send you a prioritised action plan within 48 hours — whether you hire us or not.
Get Your Free Audit