How an agent buys ads
After setup, the agent funds through a hosted link, submits creative, creates targeting, activates when ready, reads freshness-aware performance, and iterates on associations. It never collects cards.
Published 2026-09-09 · Search job: how an AI agent buys ads
Once an agent is connected, it buys ads by repeating a public loop: fund, submit, target, activate, measure, iterate. Discovery and key setup live on Run ads from an AI agent. This page is the loop.
The loop uses the same account as the dashboard. There is no side door. CLI, MCP, REST, and browser clicks all hit the same prepaid balance, the same creative review, and the same campaign records.
1. Fund when the wallet cannot cover the cap
If the account cannot support the daily budget, the agent requests a hosted prepay link and opens it. The human completes login and payment. The agent watches the funding intent. It does not ask for a card in chat, CLI input, MCP arguments, or a JSON body.
Auto-reload is a billing setting the human turns on so the loop does not die overnight. The agent can remind them. It should not treat a missing card-on-file as a launch blocker if the current prepaid balance already covers the test.
2. Submit the ad and the page
The agent pre-checks the landing page, then submits the image with name, format, headline, description, click URL, expected content, and disclosure. Review is automatic: creative status on the exchange side, destination checks on the page. A missing classifier signal is requires_review, not a pass.
The agent polls status. It does not write a second creative over the first while the first is still the only live association you meant to judge.
3. Target from the catalog
When the user asked for an audience, the agent searches GET /targeting/reference/segments or discover_segments. It uses returned ids. Unknown keys are rejected rather than dropped. Estimated data CPM is shown before create_targeting. Sensitive tiers wait for a human to acknowledge them. Geography is a country list, not a vibe.
4. Create and activate
The campaign is created against that targeting set, a daily budget, and at least one approved creative. Activation waits on prepaid balance, daily cap, creative review, destination checks, and a recorded exchange creative id. The agent reads readiness instead of retrying activate in a tight loop.
If the user wanted conversions as the goal, a conversion event must already exist, have a successful test fire, and be linked. Otherwise the goal stays delivery.
5. Measure without collapsing meters
The agent reads impressions, spend, clicks, and conversions as separate columns. Provider clicks are the plural field. Snapshot rows used for wallet checks store clicks as zero. generated_at is local response time. freshness_status and the reporting sync timestamp are what decide whether a zero is real.
CTR is available and usually the wrong lead number on remnant display. Read performance without fooling yourself is the checklist.
6. Iterate on associations, or copy
To change the message, add an approved creative or replace the primary. To pause a weak variant, leave at least one active. The API rejects pause or remove of the final active creative. To change targeting or the offer without mixing the test, copy the campaign.
Webhooks exist for funded, balance-low, creative updates, activated, paused, URL changed, conversion received, and conversion attributed. Subscribe if the agent should wake on those events instead of polling forever.
That is the buy. Setup is the other page. If you are still attaching the client, go back to Run ads from an AI agent.