- Home
- Skills
- Marketing & SEO
- Media Buyer: Amazon and Meta Ads Reviews With Guardrails
More screenshots
Works with the AI Agents you already use
Media Buyer: Amazon and Meta Ads Reviews With Guardrails
Reviews Amazon Sponsored Products and Meta Ads accounts in Claude Code or Codex. A bundled script does the math, gates each change against your limits and logs it. Spend never rises without your yes.
$14.29
Media Buyer: Amazon and Meta Ads Reviews With Guardrails
Example session with this skill installed
Review my Amazon ads account in dry run. I exported the Sponsored Products targeting and search term reports for Sep 20 to Oct 3 from the console, and I typed in the current bids and budgets I see on screen.
- Read your context and instructions
- Compiled the media buyer
Summary
A dry run on Trailhead Coffee Co.'s Amazon US account, built from two console exports for Sep 20 to Oct 3 and the bids and budgets you read off the screen. Nothing was changed in the account. Both reports agree on spend (347.20 USD) and clicks (346), so the numbers are safe to act on.
Needs your call
| Target | Window | Spend | Clicks | Conv | Before → after | Reason | Spend risk |
|---|---|---|---|---|---|---|---|
| whole bean coffee (exact) | Sep 20 to Oct 3 | 252.00 | 210 | 9 | bid 1.20 → 1.05 | ACoS is 88% on 210 clicks of settled data against a 30% target. Cut the bid 12.5%. | Spend goes down. Orders may fall a little. |
Nothing was sent because this is a dry run. In apply mode this cut would still wait for your yes, because you have no standing permission for bid cuts yet and the exports do not show when this target last changed or whether it is still learning.
Held
- cold brew concentrate. A higher bid might help, but it is unsafe until we know whether the TC Cold Brew - Exact campaign runs out of budget. Does the console show that campaign as out of budget?
Next steps
- Tell me whether TC Cold Brew - Exact is out of budget.
- When the proposals look like ones you would make, switch the account to apply mode and approve the bid cut.
- I will look at cold brew concentrate again on 2026-10-21 and judge the bid cut on 2026-10-30.
The full action items are saved with the run.
Connects securely to your tools. The creator never sees your data.
About this skill
Media Buyer is an Agent Skill for Claude Code and Codex that reviews Amazon Ads (Sponsored Products) and Meta Ads accounts the way a careful media buyer would. It is for people who run their own ads, or a few clients' ads, and want a second pair of hands for the weekly review: one that does the work without making changes they would not have made.
How a run works
Each run follows the same loop.
It starts by pulling data. The skill reads reports and current settings through the API or MCP connector your agent already has. If there is no connector, it reads the CSV exports you download from the ads console or Ads Manager instead. Every file is saved exactly as received, and a bundled Python script, mb.py, rolls the raw files up into metrics, derives every ratio itself (CTR, CPC, CVR, CPA, ROAS, ACoS) and checks that the totals reconcile. Missing data stays unknown. The skill never fills in revenue, currency or conversions that a source does not contain.
Next it diagnoses each campaign, ad group, keyword and search term. It looks for the constraint before it optimizes: low impressions can come from eligibility, relevance, budget or auction rank, and a budget problem is not a rank problem. Each claim it makes carries a verdict of verified, not verified or inconclusive.
Then it proposes small, bounded changes to bids, budgets, pauses and negative keywords, in priority order. Each proposal states the new value, the reason, the expected impact and the spend risk in plain words. The agent gives only the new value. The script reads the current one from the account data.
The script gates every proposal against your limits and the account's change history. Each one gets a status: allowed, needs approval, approved, blocked, or proposed only (in a dry run). A block breaks a limit, and no approval can lift it. When you approve a change, the approval is tied to that exact change, and any edit voids it.
Every change is logged before it is made. The script records an intent in a ledger and prints a ticket for each change. Only the script writes the ledger. The agent changes the account only after a ticket exists for that change.
After the change, the skill reads the live value back. With a connector that can write, the agent makes the change and re-reads the entity. Without one, it gives you the exact steps, and you confirm with a fresh export or by telling it what the console now shows. The result is recorded as applied, not applied or mismatch. If a write failed or its result is uncertain, the skill reads the live value instead of trying again.
A later run judges the change. Once the review date passes, the next run compares the numbers before and after, records a verdict, and keeps, reverts or extends the change. A revert is a new proposal that goes through the same gate. The end of a test never counts as permission for a follow-up change.
Each run ends with an action items report in three parts: what was executed, what needs your call, and what is being watched.
Guardrails
Your limits live in a config.json you own, filled in with you one decision at a time on the first run.
- Dry run by default. A new workspace starts in dry run, and a dry run changes nothing in the account. You switch to apply mode when the proposals look like ones you would have made.
- Per-run change limit. By default the skill makes one change per run and one per 24 hours. This is the main dial. Raise it as you come to trust the skill.
- Step limits. Bids move at most 15% and budgets at most 20% per change by default. A lever with no step limit always needs your yes.
- Cooldown. After a change, the ad group waits 36 hours by default before another one. A change you make by hand in the console starts the cooldown too. A learning-phase hold, 5 days by default, stops changes to a campaign, ad group or keyword still in its learning phase.
- Budget caps. You can cap all daily budgets together, cap any single campaign or ad set, set a bid ceiling, and set a date after which spend cannot go up.
- Spend-up always needs a yes. Every spend increase waits for your approval in the conversation. A standing grant can only cover spend-down changes such as bid cuts, and the script rejects any grant that would raise spend.
- Settled data for cuts. Cuts are not judged on days whose late orders have not arrived yet, unless the miss is too large for late orders to explain.
If you want to be the only one who can record an approval, a deny rule in your Claude Code settings makes the agent show you the approve command so you run it yourself. This guards against drift, such as an agent reading "sounds good" as a yes. It is not a defense against a hostile agent.
Amazon, Meta, and CSV exports
The skill ships with adapters and presets for Amazon Sponsored Products and for Meta Ads. They read each platform's API responses and its exports without hand-mapped columns. If you have no API or MCP connector, export the reports from the console or Ads Manager and the skill works from those files. When you read a setting off the console, the skill records it as your statement. If a file's columns match no preset, the skill writes a column map for it.
Some numbers are not exact, such as revenue rebuilt from a rounded ROAS, or revenue counted over a wider attribution window. The skill marks those as bounds and never treats them as exact.
Another platform needs only a written adapter, with no code changes. Until you approve that adapter, the skill runs the platform in dry run only.
How it differs from a CSV bid optimizer
Most ad optimizers take one CSV and return a list of bid changes. Media Buyer does more of the job, and refuses more. It reads live data first and falls back to exports. It treats each change as a small test with a review date, and a later run checks whether the change worked. It limits how often the account changes, so the account is not changed faster than its data can show results. It covers budgets, pauses and negative keywords as well as bids. And the numbers come from a script, not the model: the agent supplies the judgment, but it cannot type a number the raw files do not contain.
What you need
Claude Code or Codex, and Python 3.9 or later. The script uses only the Python standard library and never touches the network. The download is media-buyer.zip with a single media-buyer/ folder inside. Unzip it into ~/.claude/skills/ or ~/.codex/skills/, so that SKILL.md ends up at ~/.claude/skills/media-buyer/SKILL.md, then restart the agent. To start, ask for a dry run, such as "Review my Amazon ads account in dry run."
Single-user commercial license.
How to use
Skills on Agensi run inside your AI agent. Copy the prompt, paste it into your agent, and it connects to Agensi and installs this skill for you. If a payment is needed, your agent shows it to you first.
Reviews
No reviews yet
Be one of the first to try it. Every listed skill passes our trust checks below.
Security scanned
Passed our 8-point scan before listing
Fresh listing
Recently published to Agensi
Money-back guarantee
Doesn't do what its page promises? You get your money back.
Trust & safety
Security scanned
Verified clean today
- Passed all security checks, Safe to install
Requires