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):

  1. KPI strip — spend / impressions / clicks / CTR / conversions / ROAS / CPA

  2. Spend trend — line chart over time

  3. Top / Flop — top performers + worst performers

  4. Creative performance — per-creative ROAS / CPA

  5. Spend breakdown — per-campaign / per-adset / per-ad pie

  6. 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):

  1. KPI strip (unified)

  2. Channel mix (per-platform spend share)

  3. Channel comparison matrix

  4. Budget recommendation (rule-based)

  5. 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_currency via EUR intermediate

  • Per-day exchange rates (historical, not "today's rate")

  • Default target_currency = workspace setting

See an-115 exchange rates.

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: /analytics

  • Sidebar: 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

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