Cross-Channel overview — 5 narrative blocks
5 narrative blocks: KPI strip / channel mix / channel comparison / budget recommendation / top campaigns. 90-day max. Redis 10-min cache.
Written By Salvatore Sinigaglia
Last updated About 5 hours ago
5 narrative blocks: KPI strip / channel mix / channel comparison / budget recommendation / top campaigns. 90-day max. Redis 10-min cache.
Cross-Channel overview — 5 narrative blocks
Cross-Channel mode renders 5 narrative blocks aggregating across selected platforms. Gated by
ENABLE_CROSS_CHANNEL_ANALYTICSenv flag. Backed byapps/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 (prefixcca: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:
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:
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
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)
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
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
FAQ
What are the 5 narrative blocks in Wevion's Cross-Channel mode?
Wevion's Cross-Channel mode renders five narrative blocks in strategic-review order: KPI strip (unified pulse), channel mix (spend share), channel comparison matrix (per-platform side-by-side), budget recommendation (rule-based allocation), and top campaigns cross-platform (ranked drill-down). Each aggregates across the platforms you select for the query.
What is the maximum date range for Cross-Channel analytics?
Cross-Channel analytics enforces a 90-day maximum date range (MAX_DATE_RANGE_DAYS = 90). A range longer than 90 days is rejected with a clear error, so you must split it into two or more separate queries. This limit applies to all five blocks since they share the same date-range query params.
Why don't Cross-Channel numbers match my platform's native dashboard?
Wevion's Cross-Channel mode converts all spend and metrics to your target_currency through an EUR intermediate using historical per-day rates, and it unifies attribution windows across platforms. These conversions plus attribution differences produce small, expected variance versus each platform's native UI totals.
How fresh is Cross-Channel data?
Cross-Channel data can lag reality by up to 25 minutes: results are cached in Redis for 10 minutes (prefix cca:v2:) on top of the roughly 15-minute platform sync. For tighter freshness, refresh after the 10-minute window closes or adjust your date params slightly.
Why can't I see Cross-Channel mode?
Cross-Channel mode is gated behind the ENABLE_CROSS_CHANNEL_ANALYTICS environment flag. If Cross-Channel does not appear in Wevion, the flag is off for your workspace and you should ask an admin to enable it.
FAQ
What are the 5 narrative blocks in Wevion's Cross-Channel mode?
Wevion's Cross-Channel mode renders five narrative blocks in strategic-review order: KPI strip (unified pulse), channel mix (spend share), channel comparison matrix (per-platform side-by-side), budget recommendation (rule-based allocation), and top campaigns cross-platform (ranked drill-down). Each aggregates across the platforms you select for the query.
What is the maximum date range for Cross-Channel analytics?
Cross-Channel analytics enforces a 90-day maximum date range (MAXDATERANGE_DAYS = 90). A range longer than 90 days is rejected with a clear error, so you must split it into two or more separate queries. This limit applies to all five blocks since they share the same date-range query params.
Why don't Cross-Channel numbers match my platform's native dashboard?
Wevion's Cross-Channel mode converts all spend and metrics to your target_currency through an EUR intermediate using historical per-day rates, and it unifies attribution windows across platforms. These conversions plus attribution differences produce small, expected variance versus each platform's native UI totals.
How fresh is Cross-Channel data?
Cross-Channel data can lag reality by up to 25 minutes: results are cached in Redis for 10 minutes (prefix cca:v2:) on top of the roughly 15-minute platform sync. For tighter freshness, refresh after the 10-minute window closes or adjust your date params slightly.
Why can't I see Cross-Channel mode?
Cross-Channel mode is gated behind the ENABLECROSSCHANNEL_ANALYTICS environment flag. If Cross-Channel does not appear in Wevion, the flag is off for your workspace and you should ask an admin to enable it.
Last updated: 2026-05-17