Single Platform — widget grid explained
Last updated: May 19, 2026
Single Platform — widget grid explained
Single Platform mode renders a grid of 6 verified widgets (apps/backend/src/routes/api/analytics.route.ts): KPI strip, Spend trend, Top / Flop, Creative performance, Spend breakdown, Account stats. Each backed by its own endpoint. Native platform data — no cross-platform aggregation, no currency conversion.
Who is this for
Anyone in Single Platform mode reading widgets for the first time. Reference for what each widget shows + which endpoint feeds it.
The 6 widgets
Widget 1: KPI strip
Endpoint: GET /api/v1/analytics/kpi
What it shows: top-row metrics for the selected platform + date range:
Spend (native currency)
Impressions
Clicks
CTR (%)
Conversions
ROAS
CPA
Each metric may show delta vs previous period (if comparison enabled).
Use case: at-a-glance pulse check.
See an-106 KPI strip for metric definitions.
Widget 2: Spend trend
Endpoint: GET /api/v1/analytics/spend-trend
What it shows: line chart of daily spend over the selected date range.
Use case: spot anomalies (sudden spend spike / drop), validate pacing.
Widget 3: Top / Flop
Endpoint: GET /api/v1/analytics/top-flop
What it shows: two ranked lists side-by-side — top N performers + bottom N performers — based on a chosen metric (default ROAS).
Use case: identify scale candidates + pause candidates in one view.
Widget 4: Creative performance
Endpoint: GET /api/v1/analytics/creative-performance
What it shows: per-creative metrics (impressions / spend / CTR / ROAS / CPA). Includes creative thumbnail.
Use case: identify winning / losing creatives across campaigns; informs creative refresh decisions.
Widget 5: Spend breakdown
Endpoint: GET /api/v1/analytics/spend-breakdown
What it shows: pie or donut chart breaking spend by entity (campaign / adset / ad — choose level).
Use case: detect concentration (one campaign consuming 80% of spend) or distribution issues.
Widget 6: Account stats
Endpoint: GET /api/v1/analytics/account-stats
What it shows: aggregated account health metrics — spend, revenue, profit, ROAS, CPA, CPM, CTR, impressions, clicks, conversions.
Use case: account-level health check — same data fueling an-120 account summary.
Common query params
All 6 widgets share these params:
Param | What |
|---|---|
| Date range |
| Required: |
| Optional; defaults to account TZ |
| Optional; defaults to native ad account currency |
Auth: ROLE_GROUPS.DASHBOARD + app.apiKey('insights').
How widgets render together
The grid is a fixed layout per platform — no drag-rearrange, no saved layouts (that feature is not implemented; see an-101 overview deferred features).
Widgets load in parallel. Some take longer (creative-performance with many creatives) than others (KPI strip).
Per-widget refresh
Each widget fetches independently:
Date range change → all widgets re-fetch
Platform change → all widgets re-fetch (different platform = different data set)
Comparison toggle → all widgets re-fetch with previous-period data
No per-widget refresh control — the whole grid refreshes together.
When to use Single Platform widgets vs Ads Manager
Need | Tool |
|---|---|
Aggregated view of platform health | Analytics Single Platform |
Per-campaign / adset / ad row-level grid | Ads Manager (PRD-16) |
Filter to a specific campaign or audience | Ads Manager |
Edit / pause / bulk action | Ads Manager |
Identify winning creative across campaigns | Analytics → Creative performance |
Drill into winning creative's specific campaigns | Ads Manager → filter by name |
Common issues
Widget empty (no data): date range has no platform data — verify ad accounts active + connected + had spend in window
Numbers differ from platform UI: 15-min sync lag (see an-114); also postback metrics lag 24-72h
Widget loads slowly: large date range + many entities = slow; narrow range or filter
Account-stats vs KPI strip differ: account-stats is aggregated (all accounts for platform); KPI strip respects current scope filters (e.g. campaign filter)
Related
KPI strip — what each metric means
Analytics overview — context for Single Platform mode
Account summary — account-stats deep dive