Four Disconnected Dashboards → One Scrubber Chart
If you're running paid ads, you're logging into four different dashboards every week. Google Search Console for organic clicks. GA4 for session counts. Meta Ads Manager for CTR and spend. Google Ads for CPC and impressions. Export to Sheets. Normalise the dates. Stare at conflicting numbers because none of them define "conversion" the same way. By Friday, you've burned 2 hours and still don't know whether your traffic dropped or your analytics are lying.
Velocity X's SLT dashboard (the leadership view) folds all four into one multi-line chart with dual Y-axes. Scrub the mouse across any date and see clicks, sessions, ad spend, and CTR side-by-side for that day. The normalisation is pre-baked. The OAuth integrations pull fresh data every hour on a Supabase edge function. This is the chart that answers "what actually happened to our traffic last Tuesday?"
Why One Chart Beats Four Dashboards
The human brain is terrible at cross-referencing four browser tabs at once, especially when the graphs use different time ranges and axes. A dual-axis chart with scrub interactivity lets you spot correlations instantly: "CTR dropped 20%, sessions flat, organic clicks up 15% — Google Ads metrics are noisy but the real picture is a shift from paid to organic." That insight lives in the shape of the lines, not a spreadsheet.
The engineering payoff is less obvious but bigger. Manually exporting CSVs every week means no audit trail, no reproducibility, and someone has to remember the export schedule. An automated pipeline means the data is always current, always in the same schema, and leadership can drill down to any date without asking analytics for historical extracts.
The Architecture
The data pipeline has three parts:
OAuth Sync. Each marketing channel (GSC, GA4, Meta, Google Ads) has a connected account gated by role-based RLS. An admin connects their account once; the dashboard can read it forever (with refresh-on-401 token handling).
Edge Function Aggregator. A Supabase edge function runs hourly, calls each provider's API for the previous day's metrics, and writes them to a single normalised time-series table. The function is idempotent: re-running it with the same date produces the same record (no duplicates). Scopes are minimal (read-only analytics, no ad account modification).
Recharts Dual-Axis Component. The frontend queries the normalised table with a date range picker. Recharts renders left Y-axis for GSC clicks + GA4 sessions (both are event counts), right Y-axis for Meta CPC (cost-per-click, in dollars). Hover over any point and a tooltip shows all four metrics for that day plus KPI sparklines (CTR 7-day avg, CPC trend, etc).
Normalisation — The Tricky Bit
The biggest gotcha is that "clicks" and "sessions" are different things, and "ad spend" is a third unit entirely. GSC counts organic search clicks. GA4 counts sessions (a user may have multiple sessions per day). Meta counts impressions. You can't put them on the same axis without lying.
The solution is dual axes. Left axis shows counts (0–5000 clicks/sessions). Right axis shows cost (0–$500 spend). The line colours are distinct: blue for clicks, green for sessions, orange for spend. A user glancing at the chart reads "spending $200 yesterday generated 300 clicks and 1200 sessions" — and the ratio is visually apparent.
Frequently Asked Questions
What about real-time dashboards?
Most platforms offer real-time metrics now, but they're noisy and lag each other by 30+ minutes. Hourly aggregation is the sweet spot: stable enough for decision-making, fresh enough to catch day-of trends.
What if I use TikTok or LinkedIn ads instead?
The pattern is extensible. Adding TikTok Ads is the same template: OAuth callback, hourly sync, normalised metrics. See the integration build guide at /pricing.
Can I export the data?
Yes. The normalised table can be queried by any authenticated user with the right RLS role. CSV export is one line of code.
Why not use a tool like Supermetrics or Google Data Studio?
They're great if you want boilerplate dashboards. This pattern is better if you want your dashboard to live inside your custom website and you want to cross-reference marketing metrics with your own CRM or billing data (which Supermetrics can't do).
How often is this actually used?
The operations team checks it daily. Leadership reviews it weekly. Automations trigger off it (e.g., "if CTR drops below 2%, send Slack alert"). It's the single most-accessed page in the dashboard outside the CRM pipeline view.
The Bottom Line
A unified analytics chart is a leverage point. It removes a recurring 2-hour admin tax (weekly CSV exports), surfaces correlation instantly, and gives leadership the actual picture instead of four partial ones. If your marketing team is logging into four different platforms every week, you're 2 hours of engineering away from fixing it. The pattern is in OAuth Pre-Wired Dashboards — same encryption, same token handling, same extensibility.