In production on 13 ad accounts since August 2026

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
Spend · Example Storeillustrative data
$0$150$300$450$404 so farnormal range · 7-day median ±50%2 weeks ago1 week agoToday, 11:00
Baseline · hourly budget guard
Critical — budget ceiling

Example Store has spent $404 today against $120 in daily budgets (3.4×). Heaviest campaign: Search — Generic.

The problem

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.

How it works

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.

01 · READ

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.

02 · COMPARE

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.

03 · ALERT

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.

04 · REVIEW

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.

The product

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.

Daily board. Every account against its own 7-day median, colour-coded. The morning report at the top is the same one that goes to Telegram at 8 am.
Weekly triage. All accounts ranked by urgency — flags, week-over-week metrics and a written summary for each.
Claude's weekly review. Alerts, evaluation, action plan, what went well and badly, and a client message draft to edit before anything is sent.
Week-over-week comparison. One account, this week against the last, pulled from the Google Ads API with read-only access.

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.

Detection

Checks tuned to stay quiet.

No absolute thresholds. Every rule asks the same question: is this unusual for this account?

  • Delivery stopped

    dailycritical

    Impressions dropped to zero after a week in which the account was live.

  • Spend deviation

    dailywarningcritical

    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

    dailywarningcritical

    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

    hourlycritical

    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 local noon

    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

    dailywarning

    No impressions and no spend for fourteen days straight.

Built on Claude

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.

Claude API · structured outputs

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.

Deterministic rules

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.

Claude Code · skills

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.

Principles

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.

Where it is today

Running daily. Opening up next.

  1. First version live: daily Google Ads monitoring and a weekly review with Claude.

  2. Meta Ads, median baselines, the hourly budget guard and the midday pacing check.

  3. Reviews returned as a fixed schema through the Claude API; weekly triage across all thirteen accounts.

Who's building it

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.

Alptuğ ÖzerFounder, AlptugAds
alptugads.com ↗

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.

Request early access → ppc@alptugozer.com