Looker Studio dashboard templates for agencies: the 5 we ship to every client
Most agency Looker Studio reports are 30+ pages, take 3 minutes to load, and get opened twice. Five focused dashboards cover what clients actually want — performance, attribution, paid spend, conversions, content. Here's the layout, the data sources, the two pitfalls that make them slow, and the cadence that makes them stick.
TL;DR
The "30-page monthly Looker Studio report" is an agency anti-pattern. Clients open it once, scroll, get overwhelmed, and stop trusting it. Five short dashboards beat one long one: (1) performance overview (KPIs only, 1 page), (2) paid-channel snapshot (Meta + Google + TikTok spend / CAC / ROAS), (3) attribution diff (GA4 vs platforms vs CRM), (4) conversion funnel (per-step drop-off, last 30 days), (5) content top-N (top 10 pages + top 10 organic queries). Each dashboard is one or two pages, loads in under 3 s, has a clear "what action does this drive" purpose. Below: the data sources, the two pitfalls that make these slow, and the cadence that makes the client actually open them.
If you've taken over an agency client in the last three years, odds are you inherited a Looker Studio report that's 30+ pages, has six different data sources stitched together, and takes 90 seconds to load the first page. The agency that built it is proud of the depth. The client opens it twice — once during onboarding, once when they cancel.
The fix isn't a better single dashboard. It's five focused ones, each with a clear job. This is the set we ship to every client and the patterns that keep them maintainable across a portfolio of 30+ accounts.
What's wrong with the 30-page report
Three forces compound to make the long-form Looker report worse than useless:
- Cognitive load. The client doesn't know what to look at first. Page 6 has a chart they care about, but they have to scroll past pages 1-5 of stuff their PPC agency cares about.
- Load time. Each chart fires its own query. With 30 pages × 6 charts/page × 1-2s/query, you're looking at minutes-to-fully-render on a cold open. Clients don't wait — they click away.
- Refresh confusion. Looker Studio has data extracts, live connectors, and BigQuery custom queries — all with different refresh cadences. "Why are these two charts on the same page showing different numbers?" is a real question every agency gets monthly.
The five-dashboard model fixes all three: each report has one purpose, one or two pages, fast queries on materialised tables.
The five dashboards
1. Performance overview (KPI snapshot)
One page. The dashboard a CMO opens on Monday morning.
Top row: 4-6 large numbers. For most agency clients:
- Sessions (last 30 days, vs prior 30)
- Conversions (last 30 days, vs prior 30)
- Revenue (last 30 days, vs prior 30)
- Spend (last 30 days, vs prior 30)
- CAC (computed, vs prior 30)
- ROAS (computed, vs prior 30)
Each card carries the prior-period delta (+12% / -3%). Color-code
green/red — Looker Studio's "Calculated metric" + a conditional
formatting rule does this in five minutes.
Bottom row: a single line chart of revenue and spend over the last 90 days. That's it. No channel breakdown, no campaign-level detail. A CMO with 90 seconds wants the trend; if they want depth they'll click into one of the other four.
Data source: GA4 + the ad-spend table (see below). Ideally a materialised BigQuery table so the page loads in under 2 seconds.
2. Paid-channel snapshot
One page. For the marketing director.
For each ad platform the client spends on (Meta, Google, TikTok, LinkedIn, Pinterest):
- Spend last 30d (vs prior 30)
- Conversions last 30d
- CAC
- ROAS
Stacked into a small table at the top. Below, a daily-cost line chart per platform — visualises where the money is going, week over week.
Data source: the ad-platform Reporting API exports (Meta Marketing API, Google Ads API, TikTok Marketing API, LinkedIn Marketing API, Pinterest Conversions API). Each one writes nightly to a BigQuery table; the dashboard reads from a unified view that joins by date + platform.
This is the dashboard that shifts budget at the next campaign meeting. Make it fast, make it accurate, make it daily-fresh.
3. Attribution diff
Two pages. The most useful dashboard for the agency-client relationship.
Page 1: for each conversion event, three columns — GA4 count, ad- platform count (Meta + Google + TikTok summed), CRM count. Plus the delta. This is the "honesty dashboard" — when Meta says it drove 200 conversions and the CRM says 60, which is closer to truth?
Page 2: per-platform attribution-diff over the last 12 weeks. Each platform's reported conversions on the y-axis, GA4's count on the x, CRM's as a third reference line. Visualises platform-level inflation.
Why this matters: the quarterly review where you reset budget allocation lives or dies on this dashboard. If it's accurate, clients trust the agency's bid recommendations. If it's missing, every budget conversation is a debate over whose number is right.
Data source: BigQuery joining GA4 events + ad-platform conversions
- CRM lead/order tables, all joined on
event_idper the per-platform CAPI posts.
This is the dashboard you can't ship without first investing in the GA4 + BigQuery export. The foundational data layer for it.
4. Conversion funnel
One page. For the CRO / web team.
Bar-funnel chart showing the e-com or lead funnel for the last 30 days:
- Sessions
- View product / view content
- Add to cart / engage with form
- Begin checkout / submit form
- Purchase / qualified lead
Each step shows the count and the drop-off rate from the previous step. Color the worst drop-off step red.
Below: a 90-day trend of the worst drop-off step's conversion rate. That's the metric the next CRO experiment will move.
Data source: GA4 events, materialised into a daily-funnel table. Funnel queries are expensive in raw GA4 — the materialised table caches the per-day numbers so the dashboard reads cheaply.
5. Content top-N
One page. For the SEO / content team.
Two tables, each with the top 10 rows:
- Top organic landing pages last 30d: URL, sessions, conversion rate, conversions, vs prior period. Sort by sessions descending.
- Top organic queries last 30d: Query, impressions, clicks, CTR, position, vs prior period. Sort by clicks descending.
That's it. The SEO team uses the first table to find pages with falling rates and the second to find queries the page is ranking for (which often differs from what the page was written to target).
Data source: GA4 (page sessions, conversions) + Search Console API (queries, impressions, clicks). Both can be wired into Looker Studio natively or via BigQuery.
The two pitfalls that make these slow
Most agency Looker Studio dashboards are slow for the same two reasons. Fix both before adding a sixth dashboard.
Pitfall 1: querying raw GA4 events on every chart
GA4's BigQuery export is millions of rows per month per property. Every chart that filters and aggregates from raw events runs a multi-second scan. With 8 charts per page, that's 8-16 seconds.
Fix: materialise a small set of daily aggregate tables that the dashboards query instead. One scheduled query per night that reads yesterday's events and appends to:
daily_metrics— sessions / conversions / revenue per daydaily_channel_spend— spend / conversions per channel per daydaily_funnel— funnel-step counts per daydaily_pages— sessions + conversions per page per day
Queries against these aggregate tables run in milliseconds — the dashboard renders fast even at scale.
The pre-aggregation step is the GA4 + BigQuery setup doing its job. That setup pays for itself the first time a client opens the dashboard and sees it render in under 2 seconds.
Pitfall 2: filtering by date on the client side
A common Looker pattern: build the dashboard against the last 90 days of data, then add a date-range filter. Looker passes the filter to the underlying query — which still scans 90 days every time someone moves the slider.
Fix: make the date-range a build-time decision. Most dashboards have one canonical date range (last 30d for performance, last 90d for trends). Hardcode that into the materialised query — the dashboard shows that range and that range only. If a client wants ad-hoc date ranges, ship them a separate "explorer" view that's expected to be slower.
This is the same tradeoff every BI team makes: ad-hoc flexibility vs fixed dashboards that load fast. Agencies should default to fixed — client-side ad-hoc exploration is rarely the actual job.
The cadence that makes the dashboards stick
Building the dashboards is half the job. The other half is making sure clients open them. The pattern that works:
- Monday morning: automated email from your tool (Looker Studio has scheduled email reports built in) with the performance overview as a PDF. CMO opens it on the train.
- First Thursday of the month: account manager walks the client through the paid-channel snapshot + attribution diff in the monthly call. Clients see the same dashboard the team uses internally.
- Quarterly review: account director presents the attribution diff as the centerpiece of "where revenue actually came from versus what each ad platform claimed." Followed by the conversion funnel and content top-N for the directional recommendations.
The conversion funnel + content top-N don't need their own meeting slot — they're internal team-tool dashboards. But making them available to clients via the Looker Studio share link signals transparency, which compounds in the relationship.
Where this fits in an agency's tracking discipline
Looker Studio is the presentation layer above your tracking infrastructure. It's worth nothing if the underlying GA4 data is broken, the CAPI events aren't deduplicated, or the BigQuery export isn't materialised. So the build order is:
- Per-platform Pixel + Conversions API, so each platform's data is accurate.
- GA4 + BigQuery export, so you have a stable analytical foundation.
- The five dashboards above, sitting on the materialised tables.
Skip step 1 or 2 and the dashboards display whatever's wrong with the underlying data — which means your agency's quarterly reviews are debates over which number is right rather than which campaign to fund next.
In Phloz's tracking-infrastructure map, each Looker Studio
dashboard is a typed report node, with edges to the BigQuery views
it depends on. Quarterly map audits flag dashboards that haven't
loaded in >7 days (likely broken upstream) and dashboards that
depend on materialised tables whose scheduled queries are failing.
Catches drift before the client does.
If you're an agency principal reading this and wondering whether your own dashboards are doing their job: ask your team to time how long the monthly client report takes to load on a fresh browser. If it's over 10 seconds, your clients are seeing the same wait. They're not saying anything because they stopped opening it.