Guide

How do you explain a bad week of ad performance to a client?

You explain a bad week of ad performance to a client by naming the dip in the first sentence, putting last week's spend, results, and CPA or ROAS next to this week's, saying why it moved with evidence, and naming what you already changed plus when you will check it. A dashboard holds the numbers. A person still sends the note. The client hears the dip from you first, and the story is allowed to be bad.

By The Concrete team · Published

We make Concrete.

What the job actually is

You explain a bad week of ad performance to a client by naming the dip in the first sentence, putting last week's spend, results, and CPA or ROAS next to this week's, saying why it moved with evidence, and naming what you already changed plus when you will check it. A dashboard holds the numbers. A person still sends the note.

Account leads at 2-to-40 person PPC shops, and freelance media buyers with Google Ads and Meta retainers, still write that Monday so-what by hand. The failure is waiting for the client to find the red arrow, or sending a summary that smoothed a down week into mild optimism.

The send gate on a scheduled dashboard is a neighboring job, on how to automate weekly PPC reports without sending them unchecked. Widget commentary is a third job, on AI that writes the commentary for Google Ads client reports. How freelance buyers run the weekly note is on how freelance media buyers report to clients weekly.

Diagnose the dip before you write

CPA going up is a symptom. The Monday note names the cause the evidence supports. Google Ads auction insights compares you with other advertisers in the same auctions: impression share, overlap rate, outranking share, plus position above, top of page, and absolute top of page on Search. The report stays blank when impression share is under 10%. Search lost impression share splits insufficient budget from poor Ad Rank.

What movedCheck firstWhat the note says
CPA or ROAS worse, CPC or CPM upAuction insights. Search lost IS (budget) versus (rank).CPC rose versus last week. Lost IS (rank) moved. We are holding bids on profitable terms, not raising into a more expensive auction.
Spend down, efficiency heldDaily spend versus the monthly cap.Spend pulled back as we hit this month's slice. CPA held. Pacing is the story, not a broken campaign.
Conversions down, clicks heldLanding-page conversion rate, the form, CRM versus the ads platform.Traffic held. Conversion rate dropped between click and form. We are validating tracking and the page before changing bids.
Frequency up, CTR downWhich ads still take spend, and whether a new batch is ready.Frequency rose while CTR fell. New creative goes live on a named date. We will review after seven complete days.
Platform conversions down, CRM leads heldConversion delay. Which source the retainer named.Reported conversions are incomplete; spend is fully in. Google Ads can report conversions up to 90 days after the click. We will re-pull in seven days.
Leads held, sales or close rate downResponse time, offer, inventory, sales follow-up.Media delivered the volume. Qualification or close is the leak. Here is what we need from you, and by when.
Everything down after a pause or a landing-page changeThe change log: who paused, who edited the page, on which date.Ads were off from this date to that date, or the landing page changed on a named date. Recovery includes a learning window. We are not rewriting the account overnight.

What belongs in the bad-week note

AgencyAnalytics tells agencies to put challenges on every weekly report with a fix, and to lead a bad week with context, then the problem, then the solution. Their April 2026 guide says clients can handle bad news; what erodes trust is finding out later, or a report that glosses over the dip. Keep the Monday note to one page. Three to five bullets. The monthly write-up is the longer sitting.

  • The dip, in sentence one. CPA rose from last week to this week. Name both figures. Same for ROAS and spend. Last week versus this week, in the first line. Lead with the miss, not a win.
  • Spend, results, CPA or ROAS. The three numbers the retainer named, this week next to last week, plus month-to-date versus the target from kickoff. One bad week is often noise in a good month. Both comparisons belong.
  • Why, with one piece of evidence. Auction insights, lost impression share, conversion rate, frequency, a pause, a page change, or conversion delay. If the cause is still open, say what you have ruled out and the date you will know.
  • What you already changed. Paused, launched, bid or budget held, creative swapped, page restored. A plan you will do after the call reads as if you found the numbers on the call.
  • When you will check, plus what the client owes. A review date. The creative, the landing-page fix, the budget decision, or the sales follow-up sitting with them. Open asks belong next to the numbers.

Phrases that make a bad week worse

The client already has the dashboard. The note has to interpret it. A compliment sandwich trains them to hear praise as a warning. A 90-day average can hide an operational miss. The algorithm is not a diagnosis.

Leave this outPut this in
We will continue to optimizeWe paused this campaign, launched that creative, and will review on a named date.
The algorithmAuction insights, overlap rate, or Search lost IS (rank) versus (budget).
Look at the 90-day averageLast week versus this week, then month-to-date versus target. Long windows show trend. They do not erase this week.
But CTR was upLead with the result the retainer named. CTR is a diagnostic, not the so-what.
We need more budgetOnly after lost IS (budget) names a cap. Otherwise it reads as a request for cover.
Results are trending in a healthy directionThe week dipped. Here is by how much, why, and what already changed.

Note, call, or dashboard

Fund the row that matches the leak. A live dashboard, a scheduled PDF, and a three-bullet Monday note are neighboring jobs. The dashboard versus a Slack draft is on AgencyAnalytics vs an AI that drafts the weekly client update in Slack.

MethodUse it whenWhat still leaks
Live dashboard, no write-upThe client already lives in the numbers.No so-what. They still ask why CPA moved, and they may ask before you do.
Scheduled PDF or dashboard emailA quiet week, after someone has read it.A schedule is a send. There is no stop unless you add one.
Short Monday noteEvery week, including a dip. Three to five bullets. One page.Without a live dashboard, they still ask for the raw numbers.
Call walking the dashboardThe week actually broke, a launch is in flight, or the cause needs a decision from them.A standing weekly call for a quiet account burns the retainer.
The written so-what in Slack, open asks next to the numbers, a person still sendsConcrete. Drafts each client's weekly report in the agency's Slack. Numbers from Google Ads, Meta Ads, GA4 or a Google Sheet, pulled before the words. Send / Edit / Skip; no auto-send. Design-partner preview; see what it is.Does not replace a reporting dashboard. Does not change bids or budgets.

The caveat that should decide the setup

The failure operators name first is a weekly summary that goes out on its own. One version is a scheduled PDF with no approval toggle. The quieter version is a model that writes the narrative and posts it. An auto-posted write-up that smoothed a down week into mild optimism is how a team stops trusting the summary. The numbers can be right. The story still has to be allowed to be bad.

A second caveat is week-over-week theater. A ten-page deck every Monday trains the client to panic at noise. Keep the weekly note short. Put month-to-date, experiments, and the plan on the monthly write-up. A call sits on the monthly, unless this week actually broke.

A third caveat is where the draft lands. People in a Slack Connect channel can see messages from bots and apps. A half-right so-what in the shared client channel is an unchecked send. Keep the draft in the agency's Slack. Safety of putting an agent in a shared client channel is on the shared-channel page.

Concrete is an AI employee that works in existing Slack channels. Each week it drafts every client's status report in the agency's Slack: what shipped, open asks, what is waiting on the client, and that week's numbers from Google Ads, Meta Ads, GA4 or a Google Sheet. The numbers are pulled before the words are written. The account lead edits and sends it. It never sends a report to a client by itself. Drafts land as Send / Edit / Skip cards. There is no auto-send mode. It is in design-partner preview; the longer thesis is on the vision page. It does not replace a reporting dashboard, change bids or budgets, or alert on ad anomalies overnight. Work across ads tools from Slack is a neighboring job, on Viktor alternatives for an agency.

A practical Monday for a 2-to-40 person shop

This is the boring version that holds when the account lead still writes the Monday note. Pin it before the next auto-send.

  • Pull the numbers first. Spend, results, CPA or ROAS, last week versus this week, from Google Ads, Meta Ads, GA4, or a Google Sheet. If a source is missing, hold the note. A report that still looks client-ready has failed the gate.
  • Diagnose before you write. Auction insights, lost impression share, conversion rate, frequency, the change log, CRM versus the platform. CPA going up is not yet a sentence.
  • Lead the note with the dip. Three numbers, one cause with evidence, what already changed, the review date, and what is waiting on the client. Three to five bullets. One page.
  • Keep the draft internal. Write it in the agency's Slack or a draft email. A half-right so-what in a Slack Connect channel the client can read is an unchecked send.
  • A person still sends. Read the numbers against the source. If the week dipped, the write-up has to say so. Send is a tap on the exact text the client will see. Skip drops it. Book a call when the week actually broke, and send the written recap after.

Questions people ask

Should you wait until the monthly report to mention a bad week of ads?

No. The client should hear the dip from you, in the Monday note, before they find it on the dashboard. Name the change, the cause with evidence, and what you already did. Save the longer analysis for the monthly write-up. Hiding a bad week is how trust breaks.

How do you tell a noisy week of ad performance from a real problem?

Compare last week to this week, then month-to-date versus the target from kickoff. Google Ads can report conversions up to 90 days after the click, so a fresh week can look worse than it is. Traffic held and conversion rate fell is a funnel issue. CPC rose and auction insights moved is competition.

What if you do not know why CPA went up yet?

Say that. Name what moved, what you have ruled out, and the date you will have an answer. A note that only says you are looking into it is weaker than one that names the delta, what held, and the next check. A person still sends that note.

Should you tell the client the algorithm caused the bad week?

No. That phrase is a placeholder. Google Ads auction insights shows impression share, overlap rate, and outranking share against other advertisers in the same auctions. Search lost impression share splits budget from Ad Rank. Name the metric that moved. If you cannot, say what is still unknown.

Should the bad-week write-up post in a Slack channel the client can see?

Keep the draft internal. People in a Slack Connect channel can see messages from bots and apps. A half-right so-what in the shared channel is an unchecked send. Draft in the agency's Slack. A person still sends the client-facing note.

Sources

If your team already runs its work in Slack, start with one role in one channel. Concrete is an AI teammate that works in your Slack channels and asks a person to approve before anything goes out. It is not a chatbot builder, and it never sends on its own.