Analytics overview — Single Platform vs Cross-Channel
Last updated: May 19, 2026
Analytics overview — Single Platform vs Cross-Channel
/analytics is the rolled-up performance hub. Two modes: Single Platform (per-platform deep dive, 6 widgets) and Cross-Channel (rolled-up multi-platform, 5 narrative blocks, gated by ENABLE_CROSS_CHANNEL_ANALYTICS env flag, 90-day max date range). Companion to Ads Manager (PRD-16): AM is the row-level grid for tactical edits; Analytics is the rolled-up dashboard for strategic review.
Who is this for
Mediabuyers running weekly / monthly performance reviews. Admins + owners auditing account health. Anyone needing trend + aggregation, not row-level row edits.
The two modes
Single Platform mode
Per-platform deep dive. Always available. Pick a platform (Meta / Google / TikTok / Taboola / Snapchat) → 6 widgets render with that platform's data.
The 6 verified widgets (an-103):
KPI strip — spend / impressions / clicks / CTR / conversions / ROAS / CPA
Spend trend — line chart over time
Top / Flop — top performers + worst performers
Creative performance — per-creative ROAS / CPA
Spend breakdown — per-campaign / per-adset / per-ad pie
Account stats — aggregated account health
Use for: tactical optimization within a single platform.
Cross-Channel mode
Rolled-up across multiple platforms in a single view. Gated by ENABLE_CROSS_CHANNEL_ANALYTICS env flag — if your admin hasn't enabled it, you won't see the toggle.
5 narrative blocks (an-105):
KPI strip (unified)
Channel mix (per-platform spend share)
Channel comparison matrix
Budget recommendation (rule-based)
Top campaigns cross-platform
Use for: budget allocation across platforms, strategic review, executive reporting.
Data freshness
Wevion's analytics aren't real-time:
Layer | Cadence |
|---|---|
Platform insight sync | every 15 min (cron job) |
Cross-channel cache | 10-min Redis TTL |
Audience demographics | 24h cache |
Postback conversions (purchases / ROAS / CPA) | 24-72h lag via Meta API |
Implication: numbers may differ slightly from the platform's native UI (which is closer to real-time). For decisions: use last_7d minimum when ROAS / CPA are involved. See an-114 data freshness.
Multi-currency
For workspaces running ads in multiple currencies (e.g. EUR for IT, USD for US):
Source spend kept in each ad account's native currency
Cross-platform aggregation converts to a
target_currencyvia EUR intermediatePer-day exchange rates (historical, not "today's rate")
Default target_currency = workspace setting
Hard constraints
Constraint | Value |
|---|---|
Cross-Channel max date range | 90 days |
Cross-Channel cache TTL | 10 min |
Audience demographics cache | 24h |
Export max date range | 90 days |
Export requires | Active subscription |
These come from apps/backend/src/services/cross-channel-analytics.service.ts (MAX_DATE_RANGE_DAYS = 90).
Where it lives in the app
Page:
/analyticsSidebar: Analytics entry
Sub-pages:
/analytics/compare,/analytics/compare-accounts,/dashboard(older view)
What you'll see
Top of page:
Mode toggle (Single Platform | Cross-Channel) — Cross-Channel hidden if flag off
Date range picker (defaults Last 7 days)
Platform selector (Single Platform mode)
Platforms selector (Cross-Channel mode — multi-select)
Target currency selector (multi-currency workspaces)
Compare to previous period toggle
Below: widgets or narrative blocks depending on mode.
How it differs from Ads Manager
Aspect | Ads Manager (PRD-16) | Analytics |
|---|---|---|
Granularity | Row-level (per-campaign / adset / ad) | Aggregated (KPI / trend / mix) |
Action capability | Pause / edit / bulk operations | Read-only |
Use case | Daily ops + tactical edits | Weekly review + strategic decisions |
Data freshness | Same (15 min sync) | Same |
Export | CSV + PDF + scheduled | CSV + PDF (async) |
Pair them: Analytics tells you "we need to scale Meta and cut TikTok"; Ads Manager is where you actually pause / scale.
Key concepts to learn next
Mode toggle — when to use which
Single Platform grid — the 6 widgets
Cross-Channel overview — the 5 narrative blocks
Data freshness — why numbers lag
Export PDF / CSV — for stakeholder reports
Best practices
Match mode to question
"How is Meta doing this week?" → Single Platform
"Should I shift budget from Google to Meta?" → Cross-Channel
"Which 10 campaigns to scale across all platforms?" → Cross-Channel → Top campaigns
Use last_7d minimum for ROAS / CPA decisions
Postback lag means shorter windows = incomplete data. an-114 explains.
Set up target_currency once
Workspace-level default. Avoid switching per session — comparisons across visits become confusing.
Schedule weekly reports
For team / stakeholder cadence: export PDF weekly via an-116. Don't make people poll the dashboard.
Related
Mode toggle — switch between modes
Ads Manager overview — row-level companion
Reports CSV / PDF — Ads Manager export