Guide

What AI writes the commentary for Google Ads client reports?

The commentary on a Google Ads client report is the written so-what: what happened to spend, CPC, CPA and ROAS, why it moved, and what changes next. Dashboard AI writes a first pass over the widgets. A model on a CSV writes a draft that can invent or round figures. The trustworthy pattern is pull the week's numbers first, write the words from those numbers, and keep a person on the send. Nothing the client reads should go out unread.

By The Concrete team · Published

We make Concrete.

What the job actually is

The commentary on a Google Ads client report is the written so-what: what happened to spend, CPC, CPA and ROAS, why it moved, and what changes next. It is not the dashboard. It is not a scheduled PDF of the widgets.

Account leads at 2-to-40 person PPC shops, and freelance media buyers with a handful of Google Ads retainers, still type that Monday note by hand. The data pull is often already live. The bottleneck is CPC went up, here's why, here's what we're changing. A widget summary is a first pass. The retainer still promised a write-up.

The send gate on that write-up is a neighboring job, on how to automate weekly PPC reports without sending them unchecked. Work across ads tools from Slack is a third job, on Viktor alternatives for an agency.

Which tool wins which job

Fund the row that matches the leak. A widget summary, a house-style first draft on the PDF, and a so-what in Slack are neighboring jobs.

JobWins itWhy
Written AI summary of the widgets on a white-label Google Ads reportAgencyAnalyticsAI Summary writes a page, a chart, or a full report. AgencyAI answers from the same data and cites the report. Core is $20 per client per month billed annually, as of 11 October 2026. Both are included.
Four preset insights on a Google Ads dashboard: Summary, Opportunities, Wins, IssuesDashThisAI Insights Free ships on every plan: those four lenses, no chat. Individual is $44 per month billed yearly, or $54 billed monthly, for 3 dashboards and 15 sources. AI Insights Pro is a $19 per month add-on, or $15 billed yearly.
AI summary written into the scheduled PDF emailSwydoAI-generated report summaries sit on reports and scheduled emails. One plan is €62 per month billed annually for 10 data sources, then €4.50 each through 100. Unlimited clients. 4,000 AI credits a month; a summary uses about 95.
First-draft commentary in house style on a governed report, a specialist still signs offWhatagraph IQIQ Agents duplicate last month's report and rewrite the text boxes from the widgets, in the agency's style and language. Max starts at €999 per month billed annually, from 50 source credits. Prime is custom. Both start with a demo.
Native why-it-moved summary inside the Google Ads UIGoogle Ads DashboardsDashboards generate charts from a prompt. Google's Ads blog says every report also writes a real-time summary of why the numbers moved. Closed beta, English-language accounts. Not a client-facing write-up.
Compute the week's figures, then write the narrative, with a wait before sendn8nCommunity Edition is self-hosted and free. Cloud Starter is €20 per month billed annually. A Code node can finish the numbers; the model writes words only. Human review can pause a send tool until a person approves.
The written so-what in Slack, open asks next to the numbers, a person still sendsConcreteDrafts 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.

Dashboard AI is a first pass, not the Monday write-up

Reporting tools now ship a written layer on top of the widgets. AgencyAnalytics calls that client-ready performance commentary: drag an AI Summary onto a Google Ads report page, a chart, or the full report. The text is editable. Turn on auto-refresh and it updates when the date range changes. On a scheduled report, that refresh runs the first time someone opens it after send; later opens see a cached version.

DashThis AI Insights Free is four fixed lenses: Summary, Opportunities, Wins, Issues. No customization, no chat. Pro adds Chat Mode and dashboard context. Swydo writes a summary into the report and into the scheduled email. Whatagraph is the closest to the Monday note: an agent copies last month's report, rewrites every text box from the widgets, in house style, and the specialist still signs off. Their own setup prompt says do not share or send the report to the client.

None of those, by themselves, is the account lead's so-what next to open asks and what the client owes. A live dashboard still needs a write-up if the retainer promised one. The neighboring send-gate page is how to automate weekly PPC reports without sending them unchecked.

Pull the numbers before the model writes

A model asked to calculate and editorialize at once will still sound finished. It will round. It will fill a gap. Operators who wired a nightly ad report through n8n found the first version wrote genuinely good commentary whose figures did not reconcile. The fix was a Code node that computed every number, then a prompt that forbade inventing or rounding, then words only.

Pasting a Google Ads CSV into ChatGPT or Claude is the same trap with more typing. The trustworthy order is: pull spend, CPC, CPA, ROAS, and the deltas from Google Ads (or a Google Sheet of that week), then write. If the Google Ads source is missing, the draft should name that file and hold. A report that still looks client-ready has failed the gate.

Google Ads Dashboards sit inside the Ads UI. A prompt builds the chart. A real-time summary explains why the numbers moved. That is useful for the media buyer. It is not the note the client is owed, and it is still in closed beta for English-language accounts.

The caveat that should decide the setup

The failure operators name first is a model that writes the narrative and posts it. One auto-posted weekly summary called a dip "trending in a healthy direction." The numbers were fine. The story was not. The team stopped trusting the summary because a weekly report exists to say when to worry. The story still has to be allowed to be bad.

A second 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.

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

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

  • Name the commentary as its own job. Pull, write-up, send. A dashboard covers the first. A draft covers the second. A person still owns the third. Widget AI is a first pass, not the retainer write-up.
  • Automate the Google Ads pull. Connect the account, or dump the week into a Google Sheet. AgencyAnalytics, DashThis, Swydo, Whatagraph, or Looker Studio plus a connector all win this row. Do not rebuild the widgets every Monday.
  • Finish the numbers before the words. Spend, CPC, CPA, ROAS, and the week-over-week deltas, computed first. The model writes from those figures. It does not invent or round. If the Google Ads source is missing, hold the report.
  • Draft the so-what internally. What happened, why, what's next, plus open asks and what is waiting on the client. Keep that draft in the agency's Slack, not in the Slack Connect channel the client can read.
  • 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. There is no auto-send on the client-facing note.

Questions people ask

What's the difference between a dashboard AI summary and the Google Ads client write-up?

A dashboard AI summary restates the widgets: spend, CPC, CPA, ROAS. The client write-up is what happened, why, what's next, plus open asks. AgencyAnalytics AI Summary, DashThis Insights, and Swydo summaries cover the first job. Keep the dashboard. A person still owns the write-up the client reads.

Why do models invent or round numbers in a Google Ads commentary draft?

A model asked to calculate and write at once will round or fill gaps. Compute spend, CPC, CPA, and ROAS first. Hand the finished figures over. Instruct that every number must appear in the input. If the Google Ads source is missing, hold the report. A person then checks the draft.

Does Google Ads' own AI dashboard replace the weekly client write-up?

No. Google Ads Dashboards, still a closed beta, generate charts from a prompt and a real-time summary of why numbers moved, inside the Ads UI. That is an advertiser analysis tool. It does not write the Monday note the account lead sends. The client still needs a write-up someone has read.

Should AI post the Google Ads commentary to the client on its own?

No. Models lean positive: a down week gets smoothed into mild optimism. A half-right so-what in a Slack Connect channel is an unchecked send. Draft the commentary internally. A person still taps send on the exact text the client will see. There is no auto-send on that note.

Can n8n write the commentary and wait for a person before sending?

Yes, if you compute the numbers in a Code node, let the model write only the narrative, and put human review in front of the send tool. A plain Send node emails on the clock. Send and Wait for Response is different: that email already went out. Community Edition is self-hosted and free.

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.