AdAgent AI is a private tool I built and operate to manage Google Search campaigns for advertising clients I work with directly. It reads account performance, drafts changes, and queues every budget-affecting action for my review — nothing reaches a live account without a person approving it first.
I'm an independent developer providing Google Ads management as a service to advertising clients, under their authorization, through my Google Ads manager account. My current client is Synergy Designs, an architecture and interior design firm in Jaipur, India. As my practice grows, I expect to manage additional advertiser clients under the same manager account.
I don't resell Google Ads API data, and I don't advertise my own products through this tool. Clients don't log in to it — there's no public or self-service access. It's a private operator dashboard, used solely by me to review drafts, approve or reject changes, and monitor account performance.
A scheduled process reads account metrics — campaigns, ad groups, keywords, performance — once per hour.
It compares current performance against goals and drafts specific, explainable optimizations.
Proposed changes are queued for my approval. Nothing executes without a person signing off.
Every write to the Google Ads API is routed through a single control point. If any step of a multi-step change fails partway through, everything already created in that batch is rolled back — an account is never left in a half-built state.
All calls originate from a Python (FastAPI) backend, with PostgreSQL for state, audit logs, and the approval queue.
| Service | Purpose | |
|---|---|---|
| GoogleAdsService (SearchStream) | Read campaign, ad group, keyword, and account performance metrics | read |
| KeywordPlanIdeaService (GenerateKeywordIdeas) | Keyword volume, competition, and CPC research for campaign drafting | read |
| GeoTargetConstantService | Resolve location names to geo target constants | read |
| CampaignBudgetService / CampaignService | Create budgets; create or pause Search campaigns | write |
| AdGroupService / AdGroupCriterionService | Create ad groups and keywords; adjust bids | write |
| CampaignCriterionService | Add campaign-level negative keywords | write |
| AdGroupAdService | Create responsive search ads; pause underperforming ads | write |
| AssetService / CampaignAssetService | Create and link sitelink and callout assets | write |