Reading campaign results
The reference webapp reads campaign performance from the Meta integration endpoint, not from the generic/campaign_results/ endpoint:
X-Preferred-Partner-Id header — there is
no partner_id query parameter on this endpoint.
Response shape:
GET /campaign_results/ exists in the OpenAPI spec but is
not used by the reference webapp and may return an authorization error
when called by partners. Don’t rely on it.)
Attribution model
Each event has an attribution-model setting that controls how observed sales are credited to campaigns vs. organic vs. external sources:campaign_results and
fb_insights on the Wave Statistics tab and updates the daily revenue
chart on Lookout. Both surfaces share an attribution-model context.
The partner-level default comes from GET /partners/ →
attribution_model_default (also cached in browser storage).
Where it appears in the UI
| Surface | What it shows | Source |
|---|---|---|
| Wave campaign detail → Statistics tab | Per-campaign revenue, purchases, spend, ROAS. | GET /integrations/facebook/events/{eid}/campaign_results + /fb_insights |
| Lookout event detail → Daily revenue chart | Sales over time with manual adjustments overlay. | GET /daily_revenue_summary/ |
| Lookout sales edit | Manual transaction-summary entry. | POST /ingest/transaction_summary |
Common gotchas
Use the Facebook integration endpoint, not /campaign_results/
Use the Facebook integration endpoint, not /campaign_results/
The reference webapp reads from
/integrations/facebook/events/{eid}/campaign_results. The
generic /campaign_results/ endpoint is not in use and returns
auth errors for non-admin tokens.No `partner_id` query parameter
No `partner_id` query parameter
Partner scope flows through
X-Preferred-Partner-Id. Don’t add
partner_id as a query param.Switching attribution model refetches
Switching attribution model refetches
Changing
FD / META / EXTERNAL invalidates campaign_results
and fb_insights — your UI should refetch on toggle.Empty event_results / series_results
Empty event_results / series_results
Non-Meta-integrated partners may receive empty objects. Render an
empty state rather than treating empty as an error.