Large international advertising agencyIn use, with ongoing development

Automating ROI optimization for hundreds of campaigns across 10 major ad networks

A large international advertising agency was running several hundred campaigns across multiple ad networks. Placement quality deteriorated over time, and new underperforming placements appeared, including sources of fraudulent traffic. Media buyers spent several hours a week on manual checks but still could not prevent losses. I built an optimizer that combines network, tracker and agency analytics data to apply the buyers' rules much faster and more frequently than manual reviews.

Client
Large international advertising agency; an internal tool for its media-buying team
My role
From studying buyers' workflows to architecture, development, launch and user training
Scale
Automated optimization of several hundred campaigns across multiple ad networks
Status
Used by the agency, with ongoing development
The challenge

The agency's team manually reviewed hundreds of campaigns across ad networks. Underperforming placements and fraudulent traffic consumed budget between checks, despite buyers spending several hours a week on this work.

My work on the project

I studied buyers' workflows and developed the optimizer from a prototype into a system handling hundreds of campaigns. I integrated ad networks, the tracker and agency analytics systems, trained the team and helped transfer existing campaigns and configure rules.

Outcome

Campaign profitability improved, and many campaigns became profitable. The strongest effect was on recent launches. Automatically disabling underperforming segments freed up buyers' time, and the system became a foundation for further automation.

Manual checks could not keep pace with wasted spend

A large international advertising agency was running several hundred campaigns simultaneously across multiple ad networks. Each campaign included many placements whose performance changed over time: some stopped paying off, while new ones needed evaluation. Some new placements delivered fraudulent traffic, spending budget without bringing customers.

Media buyers identified and disabled underperforming placements manually. This took several hours a week, yet losses persisted. While a buyer reviewed one set of campaigns, poor-performing placements in others kept spending. The team could not check every campaign and placement quickly enough.

The problem was not always the entire campaign. Individual segments, such as placements, geographies, devices or combinations of these, could be responsible. Disabling them promptly based on performance metrics could improve profitability and keep a campaign running rather than shutting it down altogether.

The media buyers proposed the project themselves. They wanted a tool to handle repetitive checks and help improve the financial performance of their campaigns.

Turning buyer interviews into a working system

I began by interviewing the buyers to understand how they evaluated campaigns, which rules guided their decisions and when they made exceptions. I also mapped the agency's traffic sources to identify the required integrations and account for differences between ad network APIs.

Using those findings, I designed the system, built a prototype and then an MVP, and prepared it to handle hundreds of campaigns. My work covered discovery, architecture, development, launch, debugging and team training.

Two ways to put campaigns under optimization

Media buyers can choose between two ways to connect a campaign:

  • Campaign-specific rules. A rule builder lets buyers start with simple conditions and configure optimization for an individual campaign, accounting for geography, devices and other parameters.
  • Templates for new launches. Buyers define a template with the target metric. New campaigns automatically enter the optimizer at launch and are processed according to those rules.

The system makes decisions using data from the ad network, the tracker and the agency's analytics systems. If a placement or segment spends without delivering the required return, the optimizer disables it according to the configured conditions. The buyer defines the logic; the system runs checks and takes action much faster and more frequently than is possible manually.

Integrating networks without losing speed or decision quality

Handling delayed data and unreliable APIs

API quality varied between networks. Some delivered statistics late; others intermittently returned errors. These were important constraints for automated optimization: stale data could lead to disabling an effective placement while leaving an unprofitable one running.

I monitored each integration, investigated failures in the code and adapted the processing logic to the network's behavior. The work went beyond connecting APIs: each data source's actual behavior had to be accounted for.

Processing campaigns within request limits

Underperforming placements keep spending between checks. With hundreds of campaigns, processing speed directly affects how quickly the system can disable them. I implemented parallel task execution while respecting each network's request limits.

A single configuration would not work for every integration. I tuned concurrency separately for each network to shorten the intervals between checks without exceeding its API limits.

Preserving each buyer's rules and exceptions

Buyers did not base every decision on a single performance threshold. They used placement blocklists and allowlists, different campaign management approaches, and specific conditions for geography, devices and other parameters.

I explored these workflows during the interviews and incorporated them into the business logic. The system needed to apply the buyers' rules consistently, not replace their approach with an oversimplified algorithm. Automation made it possible to run those checks far more frequently than the team could manually.

Helping buyers adopt the optimizer at scale

After development, I helped the team make the tool part of its daily work. I trained the buyers, helped transfer existing campaigns and configure rules, and automated the parts of the transfer that could be handled programmatically. The team could then manage hundreds of campaigns independently through the optimizer.

For a new campaign, a buyer only needs to enable optimization using preconfigured rules or a template. Financial performance improved, and many campaigns became profitable. The effect was strongest on new campaigns, though established campaigns also became more profitable.

Established campaigns still needed automated checks because new placements kept appearing, including sources of fraudulent traffic. Under manual review, these placements spent budget until the next check. The system identifies and disables them according to the buyer's conditions.

Promptly disabling underperforming placements, geographies, devices and other segments improved campaign profitability and helped avoid shutting down entire campaigns. It also freed up hours that buyers had previously spent on repetitive checks.

The agency continues to use and develop the system, building further campaign management automation on top of it.

For the same agency, I also built an ad traffic antifraud system that evaluates every click and a landing page builder that lets buyers create pages without changing code. I discuss lessons for other advertising teams in my article on automated advertising rules.

How this experience applies to other projects
  • Managing dozens or hundreds of campaigns across networks can mean hours of repetitive manual checks each week.
  • Underperforming placements keep spending until the team can review and disable them.
  • Buyers' expertise needs to become system rules without losing exceptions or conditions for geography, devices and other parameters.
  • Informed decisions require combined data from ad accounts, the tracker and the team's analytics systems.

Facing a similar challenge?

Send a description, requirements and any supporting materials you have. If you have none yet, a few sentences are enough. I will review them myself, suggest an approach and explain where to start.

Let's discuss your project

What would you like to solve?

Share a detailed brief, requirements or any materials you already have. If you have none yet, a few sentences about the current situation and your goal are enough. I review every message myself and respond within one business day.

  • You will work directly with me, not a sales representative.
  • A free initial written discussion will help establish whether I can help and where to start.
  • If the project is outside my expertise, I will tell you directly.
Alexander Chadaev

Alexander Chadaev

Additional details

Attach requirements, sample documents, screenshots or other supporting materials. Maximum 10 files, up to 20 MB in total.

Let's discuss your project Telegram