Read this case study on its own page
Challenge
Cookie- and pixel-based attribution disappears the moment a visitor clears cookies, switches device or runs an ad blocker. Campaigns end up optimising on clicks rather than enquiries, and creator or referral partnerships can't be measured at all.
Approach
Attribution is captured on the server at first visit — referral codes, campaign parameters and the click identifiers used by Google (including the consent-mode and Performance Max variants), Microsoft, LinkedIn and X — and held in a first-party store for a bounded window. When an enquiry or booking happens, the session is matched and its attribution carried forward. Real conversions are then reported back: offline conversion uploads to Google Ads and server-side conversions to Microsoft Advertising, with a consent-gated tag on the site for enhanced matching. Campaign performance from both platforms is ingested into the same database, and a health check watches the upload jobs so a rejected or stalled conversion is noticed quickly. Idempotency keys on every record mean a retried booking never counts twice.
Outcome
- Attribution survives browser restarts, device switches and ad blockers
- Google and Microsoft campaigns optimise on actual bookings, not page visits
- Creator and referral partner performance measurable end to end
- Cross-platform ad performance in one first-party SQL store — no portal needed to answer "what did that spend produce?"
Where judgement mattered
- Server-side capture as the source of truth; the browser tag is an enhancement, not a dependency
- Treating both ad platforms identically so the reporting is comparable
- Monitoring the conversion uploads themselves — a silent upload failure is an optimisation failure
Technology stack
C# / .NET 10 · Azure Functions · Azure SQL · Google Ads API · Microsoft Advertising APIs · GA4 Measurement Protocol