Challenge
A mobile-game publisher ran user acquisition across more than six ad networks at once. Bids were adjusted by hand in each network’s console, creatives were uploaded one network at a time, and the monthly P&L was assembled from six different export formats — by which point the numbers were history, not information.
Approach
- Bidding pipelines in Airflow calling each network’s API on schedule — bid changes computed from performance data, applied consistently across networks instead of console by console.
- Creative pipelines that push new assets to every network from one source of truth, so a creative refresh is one action, not six.
- Harvest pipelines pulling spend, impressions, and installs from every network into one warehouse schema daily.
- Custom Grafana plugins giving the team live spend and revenue views shaped for ad-ops decisions, not generic charts.
- A P&L pipeline joining network spend to in-app revenue per title — the monthly close became a daily readout.
Result
- Bid management and creative rotation run unattended across all networks.
- Spend-to-revenue per title is visible daily, not at month-end.
- Adding a new ad network is one more connector against a pattern, not a new workflow.