Reveal App

cover image

Reveal enables iOS and Android app publishers to deliver targeted ads to their users. Their system contains two majoy components: an SDK installed in the app and a web-based analytics / targeting tool, which is the subject of this case study.

After building an MVP to demonstrate the efficacy of their system, they hired Viget to design the go-to-market UI.

I led the experience vision for this project. This included:

User Research

Interview and observe ad traffickers as they go about their work.

UI Design

Sketching, interaction design, and prototyping.


I started out by holding a kickoff session where we discussed the current interface, how it worked, its issues, and the founders' visions for the future. Critically, we spent time discussing how the system would be used and by whom.

In descending priority, these types of users included:

  1. Traffickers—the people who create the targeting criteria, which is later input into an ad serving platform like DFP.
  2. Salespeople—people who sell ad inventory to advertisers.
  3. Publishers—app owners who are interested in characteristics of their users.

For the priority group, I conducted interviews and contextual inquiry to understand how they did their job and their goals. This included exploring their entire workflow: the tools they used, who they collaborated with, and the challenges / pressures they faced.

Because of resource constraints, we relied on stakeholder knowledge for the remaining two groups.


The excitement around the redesign left no shortage of ideas to pursue. To determine what was important, I led sketching sessions to make ideas concrete quickly. After on-site whiteboarding, I worked asynchronously, sending annotated sketches until the UI was stable enough for high-fidelity wireframing.


The Dashboard

The Dashboard is the hub of the application. It lets ad traffickers quickly see how many impressions their apps are delivering to certain types of users.


Enabling comparison

Comparison controls were kept simple for the first release: only previous period and previous year are permitted. When two date ranges are compared, the charts adapt to focus on the change between periods.

Dashboard with comparison range
Dashboard with comparison range

Building an audience

Publishers sell ad inventory to very specific types of users, which we call Audiences. These targeted groups are created by picking attributes that define them: income, gender, location, political affiliation, and more.

Audience builder

Sculpting audiences

Ad traffickers are focused on hitting a certain number of impressions. At the same time, they want to serve impressions to the right people. These goals are often in conflict, a tug-of-war between appropriate size and appropriate precision.

To balance these goals, traffickers sculpt the audience by adding and removing criteria to best hit their impression total.

The UI improves this experience in two ways:

  1. When a criteria is added or removed, the Estimated Impressions counter updates in real-time. This sticks in place as they scroll, ensuring it's always visible.
  2. When hovering over any criteria, the result of adding or removing the item is shown. This allows them to see how their impressions will change before interacting.
Sculpting features

Grouping audiences

Users can also string together groups of attributes. Simple boolean grouping is allowed.

Only one level of grouping is allowed. To enable this in the UI, users can only choose one comparison operator— and or or—but not both. Changing the radio button at the top changes the ones below.

Audience grouping


UX Design
Todd Moy
Visual Design
Peyton Crump
Front-end Development
Nate Hunzaker, Solomon Hawk
Project Management
Ben Eckerson