
BuildinganAI-PoweredAdOperationsAgent
Automating the repetitive parts of my own job — so the interesting parts get more room.
After several months of working as a media performance analyst on the Disney+ account, I had developed a detailed mental map of what my daily operations actually consisted of. And a significant portion of it was repetitive. Not mindless — the tasks required attention and accuracy — but structurally repetitive. The same checks, the same data pulls, the same formatting, the same reporting cadence, week after week.
Every morning, I would log into multiple ad platforms, check budget pacing, look for delivery anomalies, verify that no campaigns had accidentally paused or overspent overnight, and compile the key numbers into a format that could be shared with the team. This process touched Meta Ads Manager, TikTok Ads, DV360, SA360, Google Ads, and sometimes Amazon DSP and Yahoo DSP. Across all of them, I was doing essentially the same thing: looking at what changed since yesterday, flagging anything that looked abnormal, and summarising the current state.
It was good, necessary work. And I was good at it. But I kept thinking: most of what I am doing right now could be described as a set of rules applied to a set of data sources on a set schedule. Check if spend is within X% of the daily target. Flag if CPA exceeds the trailing 7-day average by more than Y%. Alert if a campaign's impressions drop below Z compared to yesterday. These are not judgment calls. These are pattern-matching tasks. And pattern-matching tasks are exactly what software is built for.
I started developing an AI-powered ad operations agent using LangGraph — a framework built on top of LangChain that allows you to create stateful, multi-step agents that can reason through complex workflows. The choice of LangGraph was deliberate. Unlike simple scripts or rule-based automation, a LangGraph agent can handle branching logic, maintain context across steps, and make decisions that depend on the output of previous actions. This matters because ad operations is not a linear process — what you do next depends on what you found in the previous step.
The agent is designed around three core capabilities. First, automated campaign monitoring. The agent runs on a scheduled basis via cron jobs and pulls performance data from the relevant platforms. It checks each active campaign against a set of predefined thresholds — budget pacing, spend velocity, CPA trends, CTR movements, impression volume — and identifies anything that falls outside the expected range. This replaces the manual morning check that used to take me thirty to forty-five minutes across platforms.
Second, anomaly detection and alerting. When the agent finds something that looks abnormal — a campaign that has spent 80% of its daily budget by noon, a sudden CPA spike on a previously stable ad set, a creative that has stopped delivering entirely — it flags it with context. Not just “Campaign X has a problem” but “Campaign X's CPA increased by 34% compared to the 7-day average, likely driven by creative fatigue in Ad Set Y which has been running for 21 days without refresh.” The agent connects the data point to a probable cause, which makes the alert actionable rather than just informational.
Third, optimisation recommendations. Based on the patterns it identifies, the agent generates suggested next steps. These are not automated actions — I am not letting a bot move client budgets — but they are structured recommendations that a human analyst can review and either implement or override. Think of it as a junior analyst that never sleeps, never forgets to check something, and presents its findings in a consistent format every time.
Alongside the agent, I have been building custom performance dashboards that are specifically designed for the kind of work I do. The dashboards available through standard platform reporting tools — Meta's Ads Manager interface, DV360's built-in reports — are useful but generic. They are built to serve every advertiser, which means they are optimised for nobody in particular.
The dashboards I built are tailored to the specific metrics, dimensions, and time windows that matter for our campaigns. They surface the data that I actually need to see first thing in the morning, in the format that makes the fastest decisions possible. Cross-platform views that let me compare Meta and TikTok performance side by side. Trend lines that show 7-day and 14-day rolling averages rather than just yesterday's snapshot. Budget pacing indicators that tell me not just how much has been spent but whether the current velocity will land on target by end of flight.
These are not complex engineering projects. They are practical tools built by someone who understands the data intimately because he works with it every day. The best internal tools are always built by the people who use them.
I want to be clear about what this project represents, because it is easy to read “AI agent” and assume this is a side project driven by hype. It is not. This project exists because I spent months doing a specific job, understood exactly which parts of that job were manual and repetitive, and built a system to handle those parts so that I — and eventually my team — could spend more time on the parts that actually require human judgment: creative strategy, stakeholder communication, strategic budget decisions, competitive analysis.
The most important campaigns still need a human in the loop. Budget reallocation decisions still need context that no model can fully capture. Creative direction still requires taste, instinct, and cultural awareness. The point of the automation is not to remove humans from the process. The point is to remove the parts of the process that do not need humans, so that the humans can do better work.
This project also reflects something I believe about the direction of performance marketing as a profession. The industry is moving toward a model where the best operators are not the ones who can click the fastest or pull reports the most accurately. The best operators are the ones who can build systems around their own work — who understand both the marketing domain and the engineering tools well enough to automate the repetitive, monitor the important, and focus their human attention where it creates the most value.
The agent is still in active development. I am continuously refining the monitoring logic, expanding the range of anomalies it can detect, and improving the quality of its recommendations. The long-term vision is a system that can handle the first 80% of a daily operations workflow autonomously — the checks, the flags, the summaries — and present a human analyst with a clean, prioritised view of what needs their attention.
I am not building this to impress anyone. I am building it because I did the job manually, I understood what could be better, and I had the technical curiosity to make it better myself. That instinct — to not just do the work but to improve the system that produces the work — is the thread running through everything I do.