
We used to send 20-page monthly reports to every client. Beautifully formatted PDFs with charts, tables, impression counts, click-through rates, reach metrics, frequency data, and a detailed breakdown of every campaign. We were proud of them.
Then we started paying attention to what actually happened after we sent them.
Average time spent: under three minutes. Most responses: "Looks good!" or silence. One client told us, months after we'd onboarded them, that they had never actually opened a single report. They just forwarded them to their CFO unread.
Silence isn't approval — it's disengagement. And disengaged clients churn.
We rebuilt our entire reporting system from scratch. Here's what we learned, and exactly how to build a dashboard your clients will open, read, and act on.
Why Your Current Reports Are Getting Ignored
The problem isn't that your clients don't care about performance. It's that most agency reports answer the wrong question.
A 40-page report answers: "What happened across every channel, every campaign, every week?"
What your client is actually asking: "Is this working? Are we getting better or worse?"
Those are very different questions. The first requires a data analyst. The second can be answered in 30 seconds if you build the right dashboard.
Here's the math: at Vixi, we measured reporting engagement across our client base after switching from comprehensive PDF reports to 5-metric scorecards. Client churn dropped 30% in the first two quarters. Not because performance improved — because clients finally understood what was happening with their campaigns.
Confused clients leave. Clients who understand their numbers stay, expand, and refer.
The goal of a report isn't to show everything you did. It's to answer one question clearly: is the marketing working?
The 5 Metrics That Actually Matter
Most marketing dashboards include 20-40 metrics. We've found that clients genuinely engage with five.
| Metric | Question It Answers | This Month | Last Month | Trend | Industry Benchmark | |--------|--------------------|-----------:|----------:|----|-------------------| | Cost Per Lead (CPL) | What am I paying per hand raise? | $47 | $57 | ↓18% ✅ | Legal: $80-200 / Home Svcs: $35-90 | | Lead Volume | How many potential customers? | 142 | 115 | ↑23% ✅ | Varies by budget | | Conversion Rate | How many leads became sales conversations? | 12.4% | 12.1% | → Flat | 8-15% typical | | Revenue Influenced | What's the dollar impact we can trace? | $68,400 | $52,200 | ↑31% ✅ | — | | MoM Trend | Are we improving or declining? | Strong | Moderate | ↑ | — |
A few notes on each:
Cost Per Lead is the single most important metric for service businesses. "What am I paying per hand raise?" is a question every business owner can answer immediately — and benchmark against previous months. CPL benchmarks by industry: legal ($80–200), home services ($35–90), SaaS ($50–120). If your client's CPL is below industry average, that's a headline. Put it front and center.
Month-over-Month Trend is the most underrated metric on this list. A CPL of $65 is bad if your benchmark is $40 and terrible if last month was $45, but great if you were at $90 six months ago. Context makes numbers meaningful. The trend line tells the story; the raw number rarely does.
Revenue Influenced is the number your client actually cares about — what did the marketing produce? This requires a CRM integration (most clients use HubSpot, Salesforce, or even a spreadsheet), but once you build the connection, it's the most powerful number on the dashboard.
For e-commerce clients, you'll also want to add ROAS (Return on Ad Spend) and Average Order Value. But for service businesses — the majority of our Dallas-area clients — these five are sufficient.
Three Dashboard Formats (Pick One)
The right format depends on your client's technical sophistication and your team's bandwidth. We've used all three across our client base and have clear opinions on when each works best.
Format 1: Looker Studio (Recommended for Data-Heavy Clients)
Looker Studio (formerly Google Data Studio) is free, connects directly to Google Ads, Meta Ads via partner connectors, GA4, and most CRM tools. You build the dashboard once, and it auto-updates daily.
The key advantage: you send a link, not a file. The client can open it any time on any device and see current data. No emailing a PDF that's already three weeks out of date.
Best for: clients with higher ad spend ($10k+/month) who want on-demand access to their numbers, or clients with multiple channels who need cross-platform visibility.
Template structure we use:
- Cover row: Client logo, reporting period, "Prepared by Vixi"
- KPI row: 5 scorecard widgets — large number, comparison to prior period, trend arrow
- Chart row: CPL over 12 weeks (line chart)
- Table: Top 5 campaigns by spend + CPL
- Footer: "Questions? Book a call → [link]"
Key settings to configure:
- Date range control: let the client select their own window
- Comparison period: "Previous period" toggle
- Color rules: CPL above benchmark = red, at/below = green
Set data freshness to "Daily" for ads data. Share with "Anyone with link can view" — no login required, which removes the biggest friction point for non-technical clients.
Format 2: Monday.com Dashboard Widget
If your clients are already using Monday.com (common in mid-market and operations-heavy businesses), embed the scorecard directly into their existing workflow. Add a "Marketing Scorecard" board with Number columns per metric, then use Monday automations to update weekly.
Best for: retainer clients where you're already inside their tool stack, or clients who are in Monday daily and won't check a separate link.
The limitation: clients who aren't actively using Monday won't engage with it any more than they engaged with the PDF. This format works because of habit, not because it's inherently better.
Format 3: HTML Email Template (Fastest, Most Read)
This is our default for clients who don't need real-time data — monthly retainers, smaller spenders, or any client who's told us "I just want a quick update."
The open rate difference is significant: in our experience, a well-written email update gets opened by ~40% of recipients. A PDF attachment gets opened by roughly 10%. Email wins because it meets the client where they already are — their inbox.
The template is a simple HTML table with five rows, color-coded status indicators, and one call-to-action link. No attachments. No logins.
Building the Looker Studio Dashboard (Step-by-Step)
If you've chosen Looker Studio, here's the exact build process:
-
Create a new report at lookerstudio.google.com → Add data source (Google Ads, then Meta Ads via the "Meta Ads" connector)
-
Build the KPI row first — insert 5 Scorecard widgets across the top. For each:
- Set the primary metric (e.g., "Conversions" for Lead Volume)
- Set comparison metric to "Previous period"
- Add conditional formatting: green if below benchmark CPL, red if above
-
Add the trend chart — a 12-week line chart of CPL. This is the visual that shows trajectory. A client who sees CPL dropping week-over-week feels confident. That feeling drives retention.
-
Add the campaign table — a simple 5-row table sorted by spend. Include columns: Campaign Name, Spend, Leads, CPL. That's it. Clients don't need to see click-through rate at this level.
-
Share the link — before you send it, test it in an incognito window. If it requires a Google login, you'll lose 80% of your clients immediately. Use "Anyone with link" sharing.
One tip we've picked up: embed the Looker Studio link in a one-sentence email — not a 10-paragraph summary. "Your dashboard is updated for March. CPL dropped 18% — your strongest month yet. [View Dashboard]" That's a better email than anything else you could write.
The HTML Email Template
When Looker Studio is more than the client needs, this template does the job. Copy it, update the numbers, send it.
<!DOCTYPE html>
<html>
<head>
<style>
body { font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto; }
.metric { display: flex; justify-content: space-between; padding: 12px 0; border-bottom: 1px solid #eee; }
.metric-name { color: #666; font-size: 14px; }
.metric-value { font-size: 20px; font-weight: bold; }
.up { color: #22c55e; }
.down { color: #ef4444; }
.neutral { color: #f59e0b; }
</style>
</head>
<body>
<h2>📊 Marketing Update — March 2026</h2>
<p>Here's your quick performance snapshot:</p>
<div class="metric">
<span class="metric-name">Cost Per Lead</span>
<span class="metric-value">$47 <span class="up">↓18%</span></span>
</div>
<div class="metric">
<span class="metric-name">Lead Volume</span>
<span class="metric-value">142 <span class="up">↑23%</span></span>
</div>
<div class="metric">
<span class="metric-name">Conversion Rate</span>
<span class="metric-value">12.4% <span class="neutral">→ flat</span></span>
</div>
<div class="metric">
<span class="metric-name">Revenue Influenced</span>
<span class="metric-value">$68,400 <span class="up">↑31%</span></span>
</div>
<div class="metric">
<span class="metric-name">MoM Trend</span>
<span class="metric-value up">↑ Strong Month</span>
</div>
<p style="margin-top: 24px; font-size: 14px; color: #666;">
Full breakdown available on request. Questions?
<a href="https://vixi.agency/book-a-call">Schedule a call →</a>
</p>
</body>
</html>
Send this via ConvertKit, Mailchimp, or direct from Gmail. If you want to automate it — which you should, after your fourth client — use n8n.
Automating the Data Pull with n8n
Manual reporting takes 2–3 hours per client per month. With 8 clients, that's a full week per year doing nothing but copy-pasting numbers into templates. We automated all of it with n8n and haven't touched a report manually in over a year.
The workflow:
[Schedule: 1st of month, 8:00 AM]
→ [Google Ads API: fetch last 30 days metrics]
→ [Meta Ads API: fetch last 30 days metrics]
→ [Calculate CPL, volume, conversion rate]
→ [Populate HTML template with live numbers]
→ [Send email to client contact]
→ [Log to Supabase for 12-month trend tracking]
The Google Ads API query that powers the CPL calculation:
// n8n HTTP Request node — Google Ads API
const query = `
SELECT
metrics.cost_micros,
metrics.conversions,
metrics.clicks,
campaign.name
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
AND campaign.status = 'ENABLED'
`;
// CPL calculation after response:
const costUSD = response.metrics.cost_micros / 1_000_000;
const leads = response.metrics.conversions;
const cpl = leads > 0 ? (costUSD / leads).toFixed(2) : "N/A";
The Meta Ads equivalent uses their Marketing API with insights endpoint:
// Meta Ads insights API call in n8n
const params = {
fields: "spend,actions,action_values",
date_preset: "last_30d",
level: "account"
};
// Filter actions where action_type === "lead" for lead volume
const leads = response.actions?.find(a => a.action_type === "lead")?.value ?? 0;
const cpl = leads > 0 ? (response.spend / leads).toFixed(2) : "N/A";
Once you log each month's data to Supabase, you can build a 12-month trend view — the kind of longitudinal data that makes a client feel like they have a real partner, not just a vendor.
At Vixi, we run this across eight clients with zero manual work after initial setup. The whole workflow in n8n (self-hosted on a $6/month VPS) handles it. No expensive BI tools. No Tableau subscription. Just Google APIs, n8n, and Supabase.
Getting Clients to Actually Use the Dashboard
The best dashboard fails if clients don't open it. Here's what we've found actually drives engagement:
What works:
- Send a 60-second Loom walking through the dashboard on first delivery. People are more likely to open something if they've already seen a human explain it. This is the single highest-ROI thing you can do for reporting adoption.
- Put the headline in the subject line. Don't write "March Report." Write "Your CPL dropped 18% this month — March update." Every client opens that email.
- Add one forward-looking action item. "One thing we're testing in April: [X]" shows you're thinking ahead and gives them something to anticipate. This turns a backward-looking report into a conversation.
- Book a monthly 15-minute dashboard review call. Creates an accountability loop and surfaces questions before they become concerns. Clients who meet monthly churn at a fraction of the rate of clients who only receive email reports.
What kills engagement:
- Sending a report with no context. "Here's your report" is the worst possible subject line.
- Data without interpretation. "Impressions: 245,000" means nothing to a business owner. "Your ads were seen 245,000 times — here's why that's trending up" is a sentence they can act on.
- Burying the good news. If CPL dropped 18%, that's the first thing they should see — not page 12 of a PDF.
The pattern is simple: clients engage with information that feels like it was written for them, not exported for everyone. The dashboard is the vehicle. The interpretation is what actually drives the relationship.
The Bottom Line
Fewer metrics. Live dashboard. Automated delivery. Clients who actually understand what's working.
We've built this system for ourselves and for clients across Dallas and beyond. The technology is free or close to it — Looker Studio is free, n8n self-hosted is under $10/month, Supabase has a generous free tier. The value is in the design decision: resist the urge to report everything, and report the five things that matter instead.
If you want to cut through the noise, stick to: Cost Per Lead, Lead Volume, Conversion Rate, Revenue Influenced, and Month-over-Month Trend. That's the whole story.
Ready to set up a client reporting system that actually gets used? We build and automate custom marketing dashboards for agencies and growing businesses in Dallas and across the country.