Ad monitoring that knows each account's normal.
Baseline watches every Google Ads and Meta account you manage, measures each one against its own history instead of a generic threshold, and stays quiet until something is actually wrong. Once a week, Claude reads the numbers and drafts the review.
- Read-only by design
- Google Ads + Meta
- Alerts on Telegram
Example Store has spent $404 today against $120 in daily budgets (3.4×). Heaviest campaign: Search — Generic.
Most ad monitoring is either noisy or late.
Fixed thresholds don't know your accounts.
A "±20%" rule fires every day on a volatile account and never on a steady one. After two weeks, nobody reads the alerts.
Yesterday's report is too late.
A budget overrun spotted the next morning is money already spent — often more than a day's budget.
Weekly reviews don't scale.
Reading thirteen accounts properly takes a day. Skimming them is how the one that matters gets missed.
From raw data to a decision, in four steps.
Rules decide what counts as a problem. Claude explains it and suggests what to do. You make the call.
Pull the data
Every morning Baseline pulls 56 days of daily data from the Google Ads and Meta APIs — only for the accounts you list. No account discovery, no write access.
Measure against its own normal
Each account is compared with its own 7-day median. If a budget change explains a jump, it's labelled as info, not an alarm.
Speak only when it matters
A morning report, an hourly budget guard, and a midday pacing check in each account's own time zone. If a message arrives, something is wrong.
Weekly review Claude
Claude reads the week's numbers with each client's goals and context, and drafts a structured review, an action plan and a client message. Nothing is changed or sent automatically.
Real screens from a live install.
This is the version running every day on thirteen client accounts across Google Ads and Meta. Click any screen to enlarge it.
Client names, account IDs, figures and Claude's written analysis are replaced with random characters and blurred in the browser before each screenshot is taken. No client data appears on this page. Interface labels are shown in English.
Checks tuned to stay quiet.
No absolute thresholds. Every rule asks the same question: is this unusual for this account?
Delivery stopped
Impressions dropped to zero after a week in which the account was live.
Spend deviation
Yesterday's spend is more than 50% away from the account's 7-day median. If a budget change explains it, it becomes info instead.
Conversion anomaly
7- and 14-day conversion totals are tested against the account's own spread — an over-dispersed Poisson model — so a low-volume account's zero days don't cry wolf. A separate drought test catches runs of zero conversions while spend continues.
Budget ceiling
Spend passes twice the daily budgets of live campaigns. Checked every hour from 07:30 to 23:30, so an overrun is caught the same day — and the message names the campaign to open.
Midday pacing
At noon in each account's own time zone, spend and impressions are compared with the same hour on previous days. Two gates must pass: 70% off, and four times the account's own volatility.
Dormant account
No impressions and no spend for fourteen days straight.
Rules find the problem. Claude explains it.
Claude doesn't decide what's an alert — deterministic rules do. Claude does the part that used to take a day: reading every account in context and writing down what changed, why, and what to do next.
Every review comes back in one fixed shape.
The weekly review is a schema, not a prompt request: alerts, evaluation, action plan, wins, losses and a client message. Claude's output is validated against it through the API, so the dashboard never has to guess.
Each account against its own history.
Alert rules are plain, testable code. A spike explained by a budget change is labelled as info, not an alarm — and Claude reads these results as facts, not guesses.
Onboarding a new account is a skill.
A Claude Code skill researches a new client from their website and your notes, marks what it couldn't verify as open questions instead of guessing, and writes the context files Claude reads in every weekly review. Context is what turns a generic summary into advice.
Built to be trusted with live accounts.
Read-only by design
Monitoring never changes a campaign, a budget or a bid. It reports; a person acts.
Only what you list
Accounts come from one config sheet. Baseline never enumerates a manager account to find more.
Silence means fine
No "all good" messages. If your phone buzzes, something needs a look.
A human decides
Claude drafts; you review against the account itself. Nothing reaches a client automatically.
Running daily. Opening up next.
First version live: daily Google Ads monitoring and a weekly review with Claude.
Meta Ads, median baselines, the hourly budget guard and the midday pacing check.
Reviews returned as a fixed schema through the Claude API; weekly triage across all thirteen accounts.
Self-serve onboarding for agencies and freelancers, Slack and email alerts, and a hosted version.
Built by someone who runs the accounts.
I'm Alptuğ Özer. Since 2022 I've managed Google Ads and Shopping accounts for clients as an independent consultant — today under the AlptugAds name.
Baseline started as the tool I needed for my own work: something that knows each account well enough to stay quiet, and speaks up early when it matters. It has watched my client accounts every day since August 2026 — now I'm turning it into a product for other agencies and freelancers.
Managing several Google Ads or Meta accounts?
Early access is small and set up by hand. Tell me how many accounts you run and where you'd like your alerts.