How to Get Alerts When Client Ads Stop Spending
To get alerts when client ads stop spending, pull ad spend into a Google Sheet, then run a daily Make.com scenario that checks each client's account for yesterday's spend. Any client with no spend record triggers a Slack message to the person managing that account. It catches payment failures, bans and disapprovals quickly.
- The system has three steps: report, scrape, notify.
- It works with Meta, TikTok, Google, Bing or any other ad platform that can send data to a sheet.
- A client with no row for yesterday is treated as a client that did not spend.
- A filter on the number of records found keeps the alert to zero spend clients only.
- Use Slack Block Kit for the alert and add a button to the ad account.
Why do you need alerts when client ads stop spending?
Ads can stop for many reasons: payment failures, account bans, ad disapprovals and more. Without an alert, nobody notices until the client does. Then you have an angry client whose ads have been down for weeks, and a media buyer you need to ask why it was missed.
An alert puts the problem in front of your team the next morning. Your media buyers can look into it and get the ads running again. A lack of proactive alerts like this is one reason agencies lose clients, so it is a small system that matters.
It is most useful when you manage a large number of clients, around 40 or more, and want consistent delivery across them.
How does the system work?
There are three steps. Reporting means moving ad data out of the ad platform and into a Google Sheet. Scraping means a daily automation reads that sheet and finds which clients did not spend. Notifying means sending a message to your internal team naming those clients, so someone can act.
Step 1: How do you get ad spend into a Google Sheet?
We use a tool called Two Minute Reports, which is the one we use with the agencies we work with. It sends data from ad platforms into a Google Sheet, without you having to set up separate API keys for each connection. Any similar tool will do.
The example uses Meta, but you can do the same for TikTok, Google or Bing.
- Sign up to the reporting tool and connect your ad accounts. Use an account that has access to all your client ad accounts.
- In a new Google Sheet, open the extension from the Extensions menu and add a new query. Name it something like daily scrape.
- Select the client ad accounts you want to track.
- Choose your metrics. Amount spent is the only one this system needs. Keep it simple.
- Choose your dimensions: date and account. We use the account ID rather than the connection name.
- Set the date range, for example the last 30 days, and place the output in cell A1 so it is formatted neatly.
- Run the query and check the sheet shows a day by day breakdown of spend for each account.
- Schedule the query to refresh automatically, for example every hour, so the data stays up to date.
Step 2: How do you find clients that did not spend?
The spend sheet only lists accounts that spent money. That means it cannot tell you directly who did not. The fix is a second sheet: a client list with the client name, ad account ID and the person looking after them. The automation compares the two. If a client from the list has no row for yesterday, we treat it as no spend.
Build this in Make.com, which is the automation tool we use with partners. Other tools work too.
- Create a scenario and add the Google Sheets get range values module, pointing at the client list.
- Add a second Google Sheets module, search rows, pointing at the sheet that holds the spend data.
- Add a date filter. Use the format date function on the current date with the add days function set to minus one, so the scenario looks for yesterday. Match the date format used in the sheet.
- Add an account ID filter that is equal to the account ID from the client list.
- Run it. Make.com handles one client at a time. For each client, the result tells you the total number of bundles, meaning the number of records found. If it is zero, no spend was recorded for that client yesterday.
- Add a filter between this module and the next one: total number of bundles equal to zero. Only clients with zero spend then continue.
- Set the scenario to run every morning.
Step 3: How do you notify the right person?
Add a Slack module to create a message. Send it to a channel, or to whoever manages that account. In a small team, one channel is enough. If your customer success managers handle many clients each, send the alert directly to them.
Use Slack's Block Kit instead of plain text. The message looks cleaner and you can include a button. We ask ChatGPT to write the Block Kit code. For example, ask for code that alerts a customer success manager when a client did not spend yesterday, with a button. Then map the fields in Make.com: client name, customer success manager, yesterday's date, ad account ID and yesterday's spend. The spend field is always zero in this alert.
You can make the ad account link dynamic by taking an example link to one of your ad accounts and swapping in the account ID from the sheet.
What should you do if the Block Kit message fails?
Block Kit code often has small errors, so test every run. If Make.com reports invalid blocks, paste the code into the Block Kit Builder to see the error. Or paste the code into ChatGPT and ask it to fix the formatting. In our example, a missing space and a missing field at the end of a URL were the problems.
Test the whole scenario until you receive the alerts in Slack as expected.
How can you improve the basic version?
This is a basic version. After the Slack message, add a step that updates your CRM, for example setting an ad spend tracking status to not spending. This gives a clear overview of who is and is not spending. You could also add a note or create a task in your project management system so the issue is followed up.
Keep it simple. The value comes from the alert reaching the right person every day.
Questions people ask
Does this only work for Meta ads?
No. The Meta example is only there because it is the most common. Any platform that can send data to a Google Sheet works, including TikTok, Google and Bing.
How does the system know a client did not spend?
The spend sheet only holds accounts that spent. The automation checks each client on your list for a row dated yesterday. If it finds none, the total number of records is zero and the client is treated as not spending.
What do I need to build it?
A reporting tool that sends ad data to Google Sheets, two Google Sheets (one for spend, one for your client list), Make.com or a similar automation tool, and Slack. ChatGPT helps write and fix the Block Kit message.
What can the alert catch?
Anything that stops spend, such as payment failures, account bans or ad disapprovals. It tells you spend stopped, not why, so your media buyers need to investigate.
Rather have it built for you?
Fluxomate builds internal tools and AI agents for agencies. On your stack, owned by you.
See if you qualify