Case
Attribution model & incrementality
A prioritised analytics plan to measure what actually drives bookings, from validating the data to a geo-based lift test that quantifies incremental ROAS against real bookings in the PMS.
This case is based on a fictional client brief and shows how I structure measurement, attribution and incrementality testing in practice.

The challenge
- Platform reporting paints a flattering picture: Google Ads and Meta together report 2–4× more conversions than GA4 in total, because they claim credit for the same booking.
- Meta's default window (7-day click + 1-day view) lets view-through inflate results, because a guest who sees the ad but books directly is still credited to Meta.
- The only true source of record is actual bookings in the PMS, and tracking discrepancies of 35 %+ are common for hotels.
- Without a systematic way to validate the data, the group risks making budget decisions on wrong numbers, and paying for traffic it would have had anyway.
Strategy & approach
- First establish which data can be trusted: sanity check GA4 versus platform versus PMS, discrepancy per channel and a designated "golden source".
- Secure the prerequisites before testing: CAPI sending booking events daily with value, Event Match Quality ≥ 6.0 and learning phase below 20 % of budget.
- Run three attribution windows in parallel in Meta and compare the outcome against GA4 DDA and the PMS to choose the window empirically rather than by habit.
- Validate with a geo-based lift test: eight hotels split into matched pairs by booking volume and seasonal pattern.
- In the test group Meta is paused or budget cut by 80 %, bookings are measured daily in the PMS and the lost revenue becomes the incremental effect.
- Geo is defined by hotel location, not guest home town, so with hotels in different cities audience overlap is naturally avoided.
Prioritised analytics plan, in this order
01
Data credibility analysis
Week 1–2
- Sanity check: GA4 versus PMS versus platform
- Identify discrepancy per channel
- Set the baseline and name the source of record
02
MTA & view-through
Week 2–4
- Three parallel attribution windows in Meta (A/B/C)
- Compare against GA4 DDA and actual PMS bookings
- Choose the right attribution window going forward
03
Geo-based lift test
Week 4–10
- Split eight hotels into matched pairs
- Pause or cut Meta in the test group
- Calculate incremental ROAS against the PMS
Prerequisites before the test
Based on Meta's Performance 5 framework, adapted for hotels. Without this foundation, test results are not reliable.
Swipe sideways to see the full table.
| Priority | Area | Requirement |
|---|---|---|
| Critical | Data quality | CAPI sends booking events daily with value |
| Critical | Data quality | Event Match Quality ≥ 6.0, checked in Events Manager |
| High | Result validation | GA4 versus PMS discrepancy below 20 % per channel |
| High | Account management | Learning phase below 20 % of total budget |
| Medium | Automation | Advantage+ Shopping at least 30 % of budget |
| Medium | Creative | Video and static, at least three distinct formats per ad set |
Target picture & test design
4×
Incremental ROAS target
8
Hotels in matched pairs
3
Phases from sanity check to lift test
-80 %
Budget cut in the test group
The figures are the target and test design set out in the analytics plan. Every krona spent should generate at least four kronor of incremental revenue, measured against actual PMS bookings.
Learnings
- If GA4 shows 30 bookings and the PMS says 45, it is not a Meta problem, but a tracking problem. Then you know what to fix.
- A shorter attribution window (1-day click, no view) sits closest to real bookings and should be validated empirically before becoming the standard.
- Geo testing is the most direct way to measure incrementality without relying on the platforms' own models.
- The order matters: reliable data first, attribution second, budget decisions last.
Want to talk about this case?
Happy to walk you through the details.