Cross-Channel overview — 5 narrative blocks
Last updated: May 19, 2026
Cross-Channel overview — 5 narrative blocks
Cross-Channel mode renders 5 narrative blocks aggregating across selected platforms. Gated by ENABLE_CROSS_CHANNEL_ANALYTICS env flag. Backed by apps/backend/src/services/cross-channel-analytics.service.ts (verified). Hard constraints: 90-day max date range (MAX_DATE_RANGE_DAYS = 90), 10-min Redis cache (prefix cca:v2:).
Who is this for
Anyone managing campaigns across 2+ platforms. Especially: budget allocators, executive reporters, mediabuyers running cross-platform A/B.
The 5 narrative blocks
The order matches the typical strategic-review flow: pulse → mix → comparison → recommendation → drill-down.
Block 1: KPI strip (unified)
Service method: getUnifiedMetrics()
What it shows: rolled-up metrics across selected platforms in target_currency:
Spend (target_currency)
Impressions, clicks, CTR, CPC, CPM
Conversions, leads, purchases
Purchase value / revenue
CPA, ROAS
All currency converted via EUR intermediate using historical per-day rates.
Use case: at-a-glance cross-platform pulse — "how is everything together doing this week?"
Block 2: Channel mix
Service method: getChannelMixTrend()
What it shows: per-platform spend share + trend:
Donut: current spend share per platform
Stacked area: spend share trend over time
Use case: detect when one platform is over-consuming budget without proportional return. See an-107.
Block 3: Channel comparison matrix
Service method: getChannelComparison()
What it shows: per-platform metrics side-by-side in a table:
Platform | Spend | ROAS | CPA | CPC | CTR | Conversions |
|---|---|---|---|---|---|---|
Meta | ... | ... | ... | ... | ... | ... |
... | ... | ... | ... | ... | ... | |
TikTok | ... | ... | ... | ... | ... | ... |
Sortable per column.
Use case: "which platform has best CPA right now?" answered in one view. See an-108.
Block 4: Budget recommendation
Service method: getOptimalMixRecommendation()
What it shows: rule-based recommendation per platform:
Platform | Current % | Recommended % | Delta % | Multiplier |
|---|---|---|---|---|
Meta | 40% | 55% | +15% | ×1.38 |
35% | 30% | -5% | ×0.86 | |
TikTok | 25% | 15% | -10% | ×0.60 |
RULE-BASED, not AI. Shifts budget toward higher-ROAS platforms based on historical patterns.
Use case: weekly budget reallocation. See an-109.
Block 5: Top campaigns cross-platform
Service method: getTopCampaignsCrossPlatform()
What it shows: ranked campaigns across all selected platforms in a single list. Sort metric configurable (spend / ROAS / conversions / CPA). Limit configurable (top 10 / 20 / 50).
Use case: "top 10 ROAS campaigns regardless of platform" — for cross-channel optimization decisions. See an-110.
Hard constraints
Constraint | Value |
|---|---|
Max date range | 90 days |
Cache TTL | 10 min (Redis, prefix |
Feature flag |
|
Auth |
|
Currency |
|
How the cache works
Cross-channel queries are expensive (joining across multiple platforms with currency conversion). To keep the dashboard snappy:
Each query result cached in Redis for 10 min
Cache key: includes date range + platforms + target_currency
Hit rate: high for repeated views with same params
Miss: query runs, result cached
Implication: data may lag actual platform sync by up to 10 min in the dashboard. For tighter freshness: refresh after the 10-min window or adjust date params slightly.
Query params (shared across blocks)
Param | Required | What |
|---|---|---|
| Yes | Date range (max 90 days apart) |
| Yes | Array of platform codes ( |
| Optional | Display currency (default workspace) |
| Optional | Defaults to workspace TZ |
For Block 4 (recommendation): only target_currency.
For Block 5 (top campaigns): adds metric (sort) + limit.
What's NOT in Cross-Channel
Some features users sometimes expect but Wevion doesn't (currently) provide here:
Saved dashboard layouts — every session shows the same fixed grid
Strategic intelligence V2 — not implemented (despite older mentions)
Audience saturation flagging — demographic breakdown is in Audience Hub, but saturation calculation isn't here
Seasonal trends tab — not implemented
These are deferred per an-101 overview.
When to use Cross-Channel
Use case | Right tool |
|---|---|
Weekly budget allocation across platforms | Cross-Channel → Block 4 |
Executive monthly review | Cross-Channel → Block 1 KPIs + Block 2 mix |
Cross-platform A/B (same campaign concept, different platforms) | Cross-Channel → Block 3 + Block 5 |
Identify cross-platform winners | Cross-Channel → Block 5 top |
Per-platform tactical edit | Single Platform → drill to Ads Manager |
Common mistakes
Date range > 90 days: rejected with clear error. Split into 2+ queries.
Expecting real-time: 10-min cache + 15-min sync = up to 25-min lag from platform reality
Comparing Cross-Channel ROAS to platform UI: attribution windows + currency conversion can differ; expect small variance
Ignoring feature flag: if Cross-Channel doesn't appear, flag is off — ask admin
Related
KPI strip — metric definitions
Channel mix — donut + trend
Budget recommendation — rule-based allocation
Top campaigns cross-platform — ranked list