The template
Copy this into a Google Doc or slide. Keep the top half to one page. The channel numbers go below it, for the client who wants them.
Report: [Client name], [Month or week]
- Date range covered: [Start date] to [End date]
- Numbers pulled on: [Date and time]
- Compared with: [Previous period dates]
- Prepared by: [Name]
1. Money in and money out
| This period | Previous period | Change | |
|---|---|---|---|
| Ad spend | |||
| Other marketing cost (agency fee excluded) | |||
| Leads or sales | |||
| Cost per lead or per sale | |||
| Revenue from those leads or sales, if the client shares it |
One sentence: [In plain words, did the client get more or fewer leads for the money, and by how much?]
2. What changed and why
- [Change 1: what moved, the likely cause, how sure we are]
- [Change 2]
- [Change 3]
Write the cause only when you can point to something you did or something that happened, such as a budget change, a new landing page, a season or a site outage. If you do not know, write "cause not yet known" and say what you will check.
3. What happens next
| Action | Owner | Date |
|---|---|---|
| [What the agency will do] | Agency | [Date] |
4. What we need from you
| Request | Needed by | Why it matters |
|---|---|---|
| [Approval, access, asset or answer] | [Date] | [What waits on it] |
5. The numbers by channel
Google Ads (date range: [dates], pulled [date])
| Campaign | Spend | Clicks | Conversions | Cost per conversion |
|---|---|---|---|---|
Note: [Conversions for the last few days may still rise. See the timing rules below.]
Google Analytics 4 (date range: [dates], pulled [date])
| Measure | This period | Previous period |
|---|---|---|
| Sessions | ||
| Key events (conversions) | ||
| Top three sources | ||
| Top three landing pages |
Search Console (date range: [dates], pulled [date])
| Measure | This period | Previous period |
|---|---|---|
| Clicks | ||
| Impressions | ||
| Average position | ||
| Top five queries by clicks |
6. SEO variant
Replace section 5 with this for an SEO retainer.
| Item | This period | Previous period | Note |
|---|---|---|---|
| Organic clicks (Search Console) | |||
| Organic leads (GA4 key events from organic search) | |||
| Pages gaining clicks | |||
| Pages losing clicks | |||
| Queries moving into the top 10 | |||
| Pages published or updated | [List them] | ||
| Technical issues found and fixed |
Include a short list: what we published, what we fixed, what we are doing next month, and what could not be measured yet.
Data timing rules
Reports go wrong when the numbers are pulled before the platforms have finished counting. Write the pull date on the report, and follow these rules.
- Google Analytics 4. Data processing can take 24 to 48 hours, and reports can change during that time. Do not report yesterday's numbers as final. Details in Google Analytics Help.
- Search Console. Data is normally available in 2 to 3 days. The most recent days will look thin. Details in Search Console Help.
- Google Ads. The main conversion columns are reported by the time of the click, not the time of the conversion. Recent days show fewer conversions until they catch up. Conversion columns, and how long customers take to convert.
So the last few days of any period are the least reliable. Either end the range a few days before the pull date, or label those days as still counting.
How to use this report
Lead with money. Reach, followers and sessions are real numbers, but a client reading them wants to know whether the budget produced customers. Put spend and leads at the top, and put the channel tables below for anyone who wants them.
Send it on the 4th or 5th, not the 1st. A report automated for the first day of the month goes out before the numbers settle. GA4 can still change for 24 to 48 hours after that, Search Console lags 2 to 3 days, and Google Ads conversions keep arriving. A report sent on the 1st gets corrected a few days later, and the correction teaches the client to doubt every number you send afterwards. A pull date of the 4th or 5th costs you three days and saves the credibility.
Write two or three sentences by hand. The tables can be pulled by a tool. The "what changed and why" section needs someone who knows the account, because only they know about the budget change or the paused campaign.
Put the date range next to every figure. A number without a range cannot be compared with the next report.
Do not report what you cannot explain. A drop with "cause not yet known" and a named check is more useful than a confident guess you retract next month.
Use the report as the agenda for the call. Some clients read the top and skip the rest, and some only want the call. Send the one-page top section ahead of the call and answer questions from the channel tables live.
Weekly or monthly. A weekly version is sections 1 to 4 only, with the channel numbers kept for the monthly report. Weekly Google Ads numbers move around more because of conversion delay, so say that in the note.
Run it in Slack
Post the report in the client channel, or in your internal channel first so the account manager can add the written part before the client sees it.
If your team uses the Kipwise Agent, schedule the pull: "Every 4th at 9, pull Google Ads spend and conversions, GA4 sessions and key events, and Search Console clicks and queries for last month, and post them here." It reads Google Analytics and Search Console read-only, reads Google Ads campaign performance, keywords and search terms, and states the date range next to every figure. An account manager reads the result, adds the written section and sends the report. Drafts it writes in Gmail wait for approval before anything is sent. See the Google Ads, Google Analytics and Search Console pages.
Related
The client review template covers the quarterly relationship conversation. For automating the pull, read automate weekly KPI reports in Slack, weekly client updates in Slack and an SEO report from Search Console in Slack. To set the reporting day and format on day one, use the client onboarding checklist.
What to do next
Open last month's report for your biggest client. Add the "numbers pulled on" line, move spend and leads to the top, and move your send date to the 4th or 5th.


