Connecting revenue to attribution
Why your ROAS can show 0.0× even when you have plenty of revenue — and how to fix it.
The problem
mbuzz calculates ROAS by crediting each conversion's revenue back to the ad journey that earned it — the sessions a visitor had before converting. If a revenue conversion has no journey, there's nothing to credit, so its revenue never reaches a channel and every ROAS reads 0.0×.
This is common when your money conversions come from a separate system — a payment platform, CRM, or point-of-sale — rather than from the website mbuzz tracks. Those conversions arrive with revenue but no web sessions, so they can't be attributed to the ads that actually drove the lead.
The fix: one shared identity
mbuzz stitches a person's activity together by identity. When a web visitor and a payment share the same identifier — almost always the customer's email — mbuzz merges them, and the payment's revenue flows onto the web journey.
So, on both sides, send the same identifier:
- On the website, call identify with the customer's email as soon as you capture it (e.g. on the enquiry/lead form).
- On the payment/CRM conversion, send the same email as the external_id (or in the conversion's identifying fields). mbuzz normalises email — lowercased and trimmed — so casing and spacing don't matter.
Once both legs resolve to the same identity, attribution recomputes automatically and the revenue appears against the channels that earned it.
Check: if the same customer's email isn't present on both the web identify call and the payment conversion, the two stay separate identities and the revenue can't be attributed. That's the single most common cause of a 0.0× dashboard.
What about traffic you don't see?
If your spend dashboard shows a channel with revenue but no spend (for example paid_social), you're running ads on a platform mbuzz isn't connected to yet. Connect it from Integrations so that spend — and its ROAS — is counted.