Buddy: a conversational Google Ads agent for web, iOS and Android
Buddy is a chat-based agent that reads a Google Ads account, stages changes, asks you to confirm them, makes them through the Google Ads API and checks the result. It runs on the web at ahmeego.com and as a native app on the App Store and Google Play.


- Product
- Buddy by Ahmeego
- Platforms
- Web, iOS, Android
- Built
- Feb 2026
- Stack
- Google Ads API v23, Cloudflare Workers and Durable Objects, Expo / React Native
- Open source
- google-ads-api-agent and googleadsagent-mcp (MIT); the production app is proprietary
The idea
A language model can tell you what to change in an ad account, but it can't make the change. Someone still has to log in, find the setting and do it by hand.
Small accounts lose budget to fixable problems: search terms that drift, winning campaigns held back by budget caps, and stale ads. Keeping up with that means paying an agency or spending hours in the Google Ads interface.
How we built it, step by step
- Built the open-source agentWe wrote google-ads-api-agent, an MIT-licensed Python agent with 28 tools in the open-source agent and 6 sub-agents that read and write through Google Ads API v23. It runs as a CLI, a FastAPI server, in Docker or as a Python SDK.
- Made writes safe by defaultEvery change follows the same path: stage it, ask for CONFIRM, execute it, then read it back to verify. Nothing is written to the account without that confirmation.
- Shipped the production web appThe app at ahmeego.com runs on Cloudflare with per-user state in Durable Objects and SQLite, semantic memory in Vectorize, encrypted bring-your-own-key storage and scheduled monitoring. It routes between Claude, GPT and Gemini and bills with Stripe credits.
- Released native iOS and Android appsWe built Buddy by Ahmeego in Expo and React Native and published it on the App Store and Google Play. It has streaming chat, camera-based creative validation and syncs account, credits and history with the web app.
- Published an MCP server on PyPIgoogleadsagent-mcp (MIT) is an MCP server and agent SDK with read, audit, write and doc tools over stdio or HTTP SSE. Write tools run as a dry run unless the caller passes confirm=True.
- Packaged a Claude Code pluginThe plugin adds slash commands such as /audit and /optimize, a hook that checks GAQL before it runs, an audit log and an anomaly monitor that polls every 15 minutes. It is proprietary and installs from a self-hosted marketplace while community marketplace approval is pending.
- Added a hosted audit engineThe 250-Point Audit Engine on ahmeego.com reviews 10 areas of an account, from campaigns and keywords to search terms, negatives, impression share, conversions and products.
- Started a daily YouTube lessons channelEach video teaches one Google Ads problem with steps and an example, then links to the matching ahmeego.com post and Buddy. The voiceover is AI-generated, and every upload is held as private for human review before it publishes.
What it does
- Plain-English chat for campaign builds, RSA copy, bids, budgets and negatives
- Audits, keyword research and 30/60/90 day roadmaps
- Stage, confirm, execute and read-back verification on every write
- Memory of goals, preferences and account history across sessions and devices
- Native iOS and Android apps with 25 free credits on signup
- Camera-based creative validation in the mobile app
- MCP server so other agents and IDEs can call Buddy's tools
How people find it
- App Store and Google Play listings for Buddy by Ahmeego
- googleadsagent-mcp package on PyPI
- google-ads-api-agent on GitHub, README in 7 languages
- MCP over stdio and HTTP SSE for Cursor, Claude and other clients
- buddy.md product brief at ahmeego.com for AI assistants
- Daily YouTube lessons that link back to ahmeego.com posts
Questions people ask about this work
Can an AI agent make changes in my Google Ads account?
Yes, if it holds an OAuth connection to the Google Ads API. Buddy stages each change, asks you to confirm, makes it through the API and reads it back to check it worked. Without your confirmation nothing is written.
Is there an MCP server for Google Ads?
Yes. Our googleadsagent-mcp package is on PyPI under the MIT license and works over stdio or HTTP SSE. Its write tools run as a dry run until the caller passes confirm=True.
Is Buddy open source?
Partly. The Python agent google-ads-api-agent and the googleadsagent-mcp server are open source under MIT. The production web app and the iOS and Android apps are proprietary.
Services in this project
Related projects

Google Ads Scripts
We keep a curated 60-script collection, including 9 of John's originals, plus standalone script repos.Open-source tool · AI agent toolkit for advertisingAdvertising Hub and Agent Toolkit
This is our open-source toolkit for running advertising work through AI agents.
AI Agents Crash Course
This free, MIT-licensed course takes learners from no experience to deploying multi-agent systems in 5 days.
Built and written up by John M. Williams, founder of It All Started With An Idea in Queen Creek, AZ. 15+ years and $350M+ in managed ad spend.