Ads sync & ROAS

● LiveSigned in · Ops

External system owns ads · we sync matrix data

Lumasoul does not manage ads. A separate system automates Google + Meta campaigns; this screen watches the read-only, versioned sync of funnel / supply-gap / ROAS data to it and the spend imports coming back (14 §3).

Sync health

Last successful sync

Ads Sync API pull

Schema version

versioned, read-only

Error rate (24h)

failed pushes / total

Webhook status

external → ad_spend_imports

Spend imports (ad_spend_imports)

CampaignAdsetLocalitySpend importedWindowImported at
No data yet — connects to GET /api/v1/admin/ads-sync/spend-imports

ROAS by campaign / locality

Campaign / localitySpendConversionsRevenueROAS
No data yet — connects to GET /api/v1/admin/ads-sync/roas

ROAS joins ad_spend_imports × conversions (14 §8). Funnel events also feed the CAPI / offline-conversion uploaders (FR-NFR-060).