About Amobee DSP
Amobee provides end-to-end advertising services. Demand-side platform (DSP) is one of Amobee's products, where advertisers manage media across TV, digital, and social. It acts as a single point of execution for all stages of the campaign lifecycle from discovery to planning, activation, optimization, and analytics.
The advertiser inputs the target audience preference and budget into the DSP. Then, the platform places programmatic bids using artificial intelligence (AI). The auctions take place in seconds and the highest bid ad is the one that appears on the page. The entire process happens automatically, without human intervention.
Who's the user?
We have several types of users, here I only focus on the user that uses Audience Builder.

Goals
Ensure campaigns are delivered to the right target audience, achieving the highest possible ROI from the ad campaign.
Tasks
-
Create and manage a campaign
-
Build target audiences for a campaign
-
Check reports and analysis performance
-
Make changes to the targeting.
Traders
Pain Points
-
Spend more money but don’t get desired ROI
-
Cause business loss if having wrong targets.
Sign In DSP
Audience App
Create and Manage Audiences
Add target audience to a campagin
Campaign App
Create Campagin with Targeting
Deliver Campaign
How does Audience Builder work?
Audience Boolean logic Builder is a key tool of the Audience Application in DSP. When our users build out their campaigns, they rely on this funcationality to accurately define the target audience and ensure their campaigns are delivered to the right people. It’s a complex tool because it uses boolean logic algebra to help users create complex audience definitions.

1
2
1
Browse and select categories to build your audience
2
Build the boolean logic of categories to define your target audience.
What is Boolean Logic?
AND
Exclusive
OR
Inclusive
NOT
Exclude
For example, if you have an ad campaign for a new coffee flavor ice cream and you want to target to females who like coffee or ice cream
Female AND (Coffee lovers OR Ice cream lovers)
nested group
What's the problem?
Hard to decipher
Although Audience Builder is a powerful tool, allowing to precisely define target audiences, it's also too complex to lead to user errors, even for experts, which eventually lead to money loss. We were constantly receiving complains that it was tough to understand and users were confused about it.
Lack for scalability
The canvas only displayed at most 3 or 4 objects at a time. But sometimes it could go up to 10 or even more objects added to the canvas when building something complex. The design didn't scale well. Users struggled with scrolling down and up constantly, which made it even harder to use.

Learn Users' behaviors
I drew out my initial idea roughly and talked to some internal users, including sales and client service people who usually help customers to build an audience, and collected their feedback to learn their behaviors and requirements.
Sometimes Complex, Somtimes Simple
Some of the users or clients they built simple logic of audience with no nested structure. While others need complex boolean logic within an audience.
'I usually select categories first and then move them around on canvas to build logic'
Most of the users, both internal and external, selected all objects (categories) they need first, which is more convenient, and then build the logic on canvas.
How to lower the barrier for entry and make the tool understandable?
Challenge
The New Experience
STEP 0
Get Context
Boolean operators can be confused. People might think 'AND' means inclusive. In contrast, it means exclusive.
To help users better understand what will expand or restrict their audiences, I used intelligible language to replace 'AND' and 'OR' and Venn diagrams to visually explain the results.
AND
Match All
OR
Match Any

STEP 1
Grab everything you need
Based on the research, users prefer picking up everything they need in the parking lot and then crafting the logic. With this in mind, I decided to make the first step as selecting available criteria and choosing to include or exclude their selection.
.png)
STEP 2
Craft with flexibility
At this step, different users have different needs. Some want simple logic, the others request a powerful tool to build something complex.
I wanted to provide flexibility but not bother users who don't need it, because flexibility can empower users but also introduce complexity. Thus I designed 2 options for the 2 use cases:
Basic Mode if you build simple logic
To make the flow as simple as possible, users who build simple logic without nested groups, just choose ‘Match All’ or ‘Match Any’ to link criteria inside the included or excluded group.

Advanced Mode if you build complex logic
In order to provide as much flexibility as possible for whom want to create logic with nested groups, I focused on how to design a tool that can be intuitive and handy to use.
After trying several options, I found out that the tree structure was doing well in presenting the nested relationship.


The items you selected in step 1 will be reflected in the tree.
Freely drag items and drop them wherever you want to change the sorting order or create nested groups.
STEP 3
Preview your audiences
It's easy to get lost when you are constructing something complex. To help users keep track of what they are doing or confirm they build the right logic at the end, I designed an Audience Preview and translated the Boolean tree into the Boolean expression so that users can read the logic straightforwardly. Hovering on or clicking on the index in expression can locate the corresponding item in the tree.

Trade-off Between Ideal and Practical

When reviewing the Boolean Tree design with engineers, they pointed out that it might take a couple of months for them to do research on having a floating add button at the end of each group.

On one hand, users usually finish adding items before crafting. On the other hand, there will be many floating buttons if users create multiple nested groups. So I iterated on the design to save implementation effort and clean the tree.
26% time was saved!
With the beta version released to part of our clients, we found that the time they spent on the new Audience builder was decreased by 26%, which proved that the new design did increase the efficiency of building audience logic. Meanwhile, we also carried out several rounds of user testing with 10 internal and external users to hear what they thought about it. We got positive feedback on the new design, however, there was still space to make it better.
" I rely a lot on the Audience Preview to confirm I'm setting up as I intend to "
" I spent 10 mins to fully understand how to use this tool"
"Once I build one, I understood and the next one was easy to build"
" I like the 'Match All' and 'Match Any', they are much clearer than 'AND' and 'OR'"
"For the most time I probably just in basic mode, it's well organized I think. "
Major feedback we got about advanced mode was that it did require a learning curve to understand the visualization representation. With all the complications in building a boolean logic tree, it's our responsibility to guide users and build up their confidence.
Another round of iterations
Improvement 1 - Craft the first-time user experience
Although we provided brief tips in a popover and detailed instructions in the help center, they did not help users because they were hidden and text-only.
To provide more digestible instruction, I illustrated an empty state to educate users on understanding the boolean tree and taking action.

Improvment 2 - Build up confidence
Some users relied on the Audience Preview when moving things around to match what they wanted. It proved that the Audience Preview feature was well-received, but it also reflected that users didn't have the confidence while dealing with the Boolean tree.
After digging deeper, I realized that in the Boolean tree I used color-coded dots to represent the group that the items were under, but there was no further explanation of how items were related except the one in Audience Preview. That's why users can not get a confirmation from the boolean tree.









