Return on ad spend for one campaign
Attribute one campaign’s journey-goal conversion revenue across the sibling campaigns that touched each converting contact, and pair the attributed revenue with this campaign’s send cost (SUM of message prices). Query knobs: model (last_touch | linear | time_decay, default last_touch), window_hours (0 = unbounded look-back, up to 8760h, default 168), and half_life_hours (time_decay model, default 168). Mixed-currency conversions are blended into the campaign’s send currency via the billing FX seam; revenue with no FX rate is surfaced as unconvertible, never silently dropped. Read-only; campaigns:read scope.
Authorizations
Dashboard JWT token from Clerk
Headers
Sandbox opt-in for Clerk-session-authenticated requests. Set to true to route the call through the test-mode pipeline: no real provider delivery, no credits deducted, response meta.test_mode: true. Ignored for live API keys (dv_live_sk_*) — server-to-server clients must use a test-prefixed key (dv_test_sk_*) to exercise sandbox. Test-prefixed keys unconditionally enable sandbox regardless of this header.
true, false Path Parameters
Response
Successful response.