‹ Caitlin's SandboxCONCEPT · NOT BUILT · FIGURES ARE ILLUSTRATIVE

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.

Snifferdog™ · Clients · Projects · Library5
NEEDS ATTENTION
Meta rejected an ad

Calderbrook · Ad 3 · Meta says the ad implies it knows something personal about the viewer.

20 minutes ago
Meta Pixel has stopped firing

Calderbrook · No page views recorded for 2 days. Leads may not be counted.

This morning
TikTok balance runs out in about 3 days

Calderbrook · £180 left at £60 a day.

This morning
Google is under-spending

Calderbrook · Spent £4 of £30 yesterday. Usually means bids or keywords are too narrow.

Yesterday
Meta ad set still learning after 16 days

Point Nemo · It may not get enough results to finish learning at this budget.

2 days ago
GOOD TO KNOW
January Intake is live on 3 platformsYesterday
100 leads so far

Calderbrook · January Intake

2 days ago

The 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.

Calderbrook - January Intake › Live edit mode › Meta › Ad 3Rejected
Why Meta rejected this ad

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.

Meta's original wording

Personal attributes: ads must not contain content that asserts or implies personal attributes.

Why ads get rejected
Copy
Suggested rewrite: “January scholarships are open for international Masters students.” Use this
Appeal in Meta ↗
PREVIEW
Calderbrook University
Sponsored

Struggling to pay for your Masters? Our January scholarships could help.

Scholarships for January 2027

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.

Calderbrook University › Spend and paymentsChecked 4 times a day
PlatformHow they payLimit or balanceAt today's spendWhat we can see
MetaCard, account spending limit£1,640 of £2,000 limit usedLimit hit in ~9 daysSpending limit, amount spent and balance
TikTokPrepaid balance£180 leftRuns out in ~3 daysPrepaid balance
GoogleMonthly invoicing£2,600 of £4,000 account budgetOn trackAccount budget, only with monthly invoicing
Microsoft AdsCard-Not reportedFailed card payments aren't reported to us. We alert if spending stops unexpectedly.
TikTok: top up in TikTok Ads Manager. Snifferdog™ can't add money to ad accounts. Open TikTok billing
Each ad account is billed by the platform, not by Snifferdog™. Spending controls

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.

AlertWhen it firesIn appEmail
Ad or extension rejectedWithin a few hours of the platform's decision
Tracking stoppedTag silent for 48 hours, or leads fall to zero against a campaign that usually gets at least 3 a day
Balance or spending limit5 days before it runs out at current spend
Under or over-spendingSpend more than 40% off the expected pace for 2 days running, never in a campaign's first 3 days
Stuck in learningStill learning after 14 days
MilestonesCampaign live, first lead, every 100 leads
Thresholds shown are starting points to agree with the devs and test on De'ath Hospitality before anyone else.

Decisions so far

  • One place for alerts: a bell in the app's top bar, mirrored by email, with per-type settings.
  • Every alert has one fix button that lands on the exact thing to change, usually in live edit mode.
  • Snifferdog™ raises alerts and explains them. Tove doesn't; she's a guide only.
  • Start with a short list and quiet thresholds. Add more once users trust what's there.
  • Say what we can't see. Payment coverage differs by platform, and the screen says so.

Sheet rows

RowWhere it showsHow it works
API-34 NotificationsBell and emailA 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 warningsBell, email, Fix in live editSame 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 resubmitLive edit modeEach 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 healthBell and emailSame 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 limitsSpend and paymentsMeta limits and balance, TikTok prepaid balance, Google account budgets on invoicing. Coverage varies by platform and payment method.
API-38 Delivery problemsBellActual against expected spend from the pacing calculation, plus learning status. Never in a campaign's first few days.
API-46 Failed card paymentsSpend and paymentsNOT POSSIBLE directly on Google and Microsoft. Detected indirectly when spending stops unexpectedly or account status changes. Devs to confirm.

Plain-English reasons

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.

Open questions for the devs

  • Which events Meta can push by webhook, and how often everything else can be polled across all connected accounts.
  • Whether email goes through an existing provider, and whether we need our own sending domain set up.
  • How Google and Microsoft account status changes show up when a payment fails.
  • The thresholds on screen 4, to test on De'ath Hospitality first.

Help Centre

Written 9 Oct 2026 from the API difficulty sheet.