Integrations
Your Meta ROAS is incomplete until match quality and delivery land
Spend ÷ attributed revenue is not the whole story
Teams read Meta Ads Manager ROAS and Intently (or GA) attributed revenue as if they measure the same thing. They do not. Ads Manager optimizes on events Meta accepted and matched. Your attribution report credits journeys on first-party signal. Delivery proof sits between them.
When match quality is weak or CAPI sends fail, Meta under-trains and your “ROAS” looks worse than the journey data suggests — or Ads Manager looks healthy while your server never confirmed acceptance.
Three signals to read together
Treat these as a set whenever you review Meta performance for the week.
- Delivery log: did each purchase dispatch succeed, fail, or time out on Meta CAPI?
- Match quality / Event Match Quality: are hashed identifiers and parameters rich enough for Meta to use the event?
- Attributed ROAS on your chosen model: which campaigns earned credit on the journeys you can inspect?
Commentary you can use in standup
“ROAS is 0.4× but Meta CAPI timed out on 18% of purchases” → fix delivery before pausing creative.
“Delivery is clean, EMQ is low, and last-touch ROAS is soft” → improve parameters and identity enrichment; do not only cut spend.
“Delivery and EMQ are healthy, last-touch is weak, linear still credits Meta” → reallocate, do not nuke mid-funnel Prospecting without checking assists.
Where Intently helps
Intently routes conversions server-side with consent gates, logs destination acceptance, and credits revenue on inspectable models with synced spend. That is the minimum stack for ad commentary that media and analytics teams can both defend.
If you only bring Ads Manager screenshots to the weekly review, you are arguing about half the pipeline.