A bell in the top bar of the app, with the same alerts sent by email. Grouped into what needs doing and what's just good to know. Every alert says what happened in plain English and has one button that goes straight to the fix.
Calderbrook · Ad 3 · Meta says the ad implies it knows something personal about the viewer.
20 minutes agoCalderbrook · No page views recorded for 2 days. Leads may not be counted.
This morningCalderbrook · £180 left at £60 a day.
This morningCalderbrook · Spent £4 of £30 yesterday. Usually means bids or keywords are too narrow.
YesterdayPoint Nemo · It may not get enough results to finish learning at this budget.
2 days agoCalderbrook · January Intake
2 days agoThe Fix button opens live edit mode on the rejected ad, with the problem explained and the field highlighted. Editing it sends it back for review automatically. Formal appeals can't be made through the platforms' APIs, so Appeal links out.
Meta doesn't allow ads that suggest they know something personal about the person seeing them, such as their age, finances or health. “Struggling to pay for your Masters?” reads as if the ad knows the viewer is short of money.
Personal attributes: ads must not contain content that asserts or implies personal attributes.
Struggling to pay for your Masters? Our January scholarships could help.
Money is the alert users care about most, and the one platforms report least consistently. The screen is honest about what each platform tells us, so nobody assumes Snifferdog™ is watching something it can't see.
| Platform | How they pay | Limit or balance | At today's spend | What we can see |
|---|---|---|---|---|
| Meta | Card, account spending limit | £1,640 of £2,000 limit used | Limit hit in ~9 days | Spending limit, amount spent and balance |
| TikTok | Prepaid balance | £180 left | Runs out in ~3 days | Prepaid balance |
| Monthly invoicing | £2,600 of £4,000 account budget | On track | Account budget, only with monthly invoicing | |
| Microsoft Ads | Card | - | Not reported | Failed card payments aren't reported to us. We alert if spending stops unexpectedly. |
Start with a short list. Too many alerts and users ignore all of them. Each type can go in-app, by email, or both, and noisy ones wait for enough data before they fire.
| Alert | When it fires | In app | |
|---|---|---|---|
| Ad or extension rejected | Within a few hours of the platform's decision | ||
| Tracking stopped | Tag silent for 48 hours, or leads fall to zero against a campaign that usually gets at least 3 a day | ||
| Balance or spending limit | 5 days before it runs out at current spend | ||
| Under or over-spending | Spend more than 40% off the expected pace for 2 days running, never in a campaign's first 3 days | ||
| Stuck in learning | Still learning after 14 days | ||
| Milestones | Campaign live, first lead, every 100 leads |
| Row | Where it shows | How it works |
|---|---|---|
| API-34 Notifications | Bell and email | A scheduled job checks each live campaign several times a day; Meta can push some events by webhook. Checks are batched to stay inside API rate limits. |
| API-35 Disapprovals and policy warnings | Bell, email, Fix in live edit | Same review status data as API-19, checked on a schedule. Account-level restrictions are reported less consistently than ad-level ones. |
| API-19 Fix and resubmit | Live edit mode | Each platform's reason code mapped to plain English and a field to fix. Editing resubmits automatically. Appeals link out, as they can't be made through the APIs. |
| API-36 Tracking health | Bell and email | Same data as the pre-launch tracking check, run daily, plus a zero-leads rule with a minimum volume so small campaigns don't trigger it. |
| API-37 Low balance and limits | Spend and payments | Meta limits and balance, TikTok prepaid balance, Google account budgets on invoicing. Coverage varies by platform and payment method. |
| API-38 Delivery problems | Bell | Actual against expected spend from the pacing calculation, plus learning status. Never in a campaign's first few days. |
| API-46 Failed card payments | Spend and payments | NOT POSSIBLE directly on Google and Microsoft. Detected indirectly when spending stops unexpectedly or account status changes. Devs to confirm. |
The biggest piece of work here isn't technical: it's writing a short, friendly explanation and a suggested fix for each common rejection reason on each platform. Start with the 20 most common across Meta and Google, and show the platform's own wording underneath so nothing is hidden.
Written 9 Oct 2026 from the API difficulty sheet.