Created with Sketch. Back

Bid Management Tool Case Study


This is a case study for the Bid Management tool I built while working at GREE. It consolidated communication between the User Acquisition team and external ad networks and resulted in a more streamlined User Acquisition workflow.

The tool allowed the team to work with more networks and to run campaigns with more granular targeting, resulting in improved marketing ROI.

Project Type


My Role

Product Design, Front End Development




The User Acquisition team was working with a wide range of ad networks (30+). The team used various methods to communicate changes to ad campaigns: phone calls, meetings, emails, email attachments, google docs, etc. The large amount of different communication methods and contacts was causing problems with miscommunication and team efficiency.

Design and Planning

The solution had to balance:

  • Minimal overhead for adoption by User Acquisition team
  • Ease of use and acceptance by external ad networks
  • Achievable with a small amount of engineering resources

The design was reached holistically, though many meetings with internal and external stakeholders (User Acquisition, Data Engineering, Business Intelligence, external partners).

User Research

User shadowing was used to determine the problem scope and user feedback from external and internal users was used to tune the product.

For example:

  • The “checkout” flow for confirming changes was added after mistakes were accidentally communicated to external partners
  • Notification emails were only sent every few hours instead of immediately to minimize noise
  • The final set of filter and sorting options was arrived at from what kind of campaigns users were frequently looking for

User Flow - Internal

  • Login: using Google OAuth
  • Home View: showing a list of games or ad networks
  • Campaign View: showing a list of ad campaigns per game or network, detailed information about them and their status
  • Checkout View: changes, like the creation of new campaigns or changes to existing ones, would go through a review phase so that no mistakes were made
  • Confirmation View: after review the system would send out emails to the corresponding ad networks

There was also a way of creating bulk ad campaigns by uploading a file, a robust set of filters and sorting options so that users could quickly find the campaigns they were looking for, and a way to manage games, ad networks, and definitions of various targeting groups.

Walkthrough - Internal Dashboard

User Flow - External

  • Email: when an ad campaign was created or edited, an email with a link to the dashboard was sent to the corrospodning ad network*
  • Confirmation Dashboard: New and unconfirmed ad campaigns would always appear on top

* The link contained a cryptographic token that would expire after 48 hours. This solution was arrived upon because it was easier than maintaining a separate external user list and login flow and matched the way ad network account managers preferred to receive notifications.

External Dashboard View


The tool allowed the User Acquisition Team to work with more networks and to run campaigns with more granular targeting, resulting in improved marketing ROI.


We hoped to eventually have the system able to execute new campaign creation and campaign changes programmatically, but the ad network API landscape proved to be too fragmented. We later focused our efforts on an automated bidding and recommendation engine for just Facebook ads.


The API backend was written in Java (Play framework), the front end was built using a custom framework built on top of Backbone.js.