Making ads and offers creation simple and seamless for new users

Ad campaign page with Stores open: all 4 stores; preview phone and estimated results on the right

Credits

Me · sole designer on ad creation: every flow, screen and prototype 1 product manager 1 UX researcher 1 content designer 1 engineering lead 1 data scientist 1 product operations lead Legal reviewers

Executive Summary

  • Layers|One box asked five questions at once · and showed the return as a percentage few could read
  • Minimize2|Three settings by default · budget, duration, more settings; five became three
  • Store|50% of active locations · had never run an ad
  • Maximize2|Full screen, budget first · the return shown as 5×
  • Globe|Tested in two markets · then live for every web merchant

01

Context & Overview

The Product

  • LayoutDashboard|Uber Eats Manager · the restaurant dashboard
  • Megaphone|Ads · paid spots in the Uber Eats app
  • Store|1.5M+ merchants · orders, menus, offers and ads

The Users

Single-location owner

Runs one restaurant with very little spare time No marketing background; ads are not top of mind Need - be told what to do and what comes back


Chain operator

Runs a small chain of up to 30 stores Plans marketing and has run ads before Need - control: audience, budget per store, slow hours

Who’s involved

__smb_who__

Rollout plan

  • FlaskConical|Small version first · A/B test in two markets
  • Timer|17 weeks of testing · lessons fed the full redesign
  • Globe|Full redesign · every web merchant by Week 44
  • Smartphone|Mobile · half of merchants at launch

Customer Goal

Start an ad with one decision and know what it returns.

  • MousePointerClick|One decision · confirm the recommended budget
  • TrendingUp|Return in plain words · “$5 for every $1”
  • SlidersHorizontal|Nothing locked · every setting one click away

Business Goal

Get more merchants to finish an ad.

~50%

finished an ad once they opened the builder

50%

of active locations had never run an ad

~75%

finished on the Offers builder, the benchmark

~$130M

modelled upside if adoption rose · estimate

The business around it

Ads were paid. Offers were free. Both needed more merchants in.

~$1.3B

ads business when I joined · as I recall

~$2B+

after launch · many projects moved it, this one among them

__smb_more_business__


02

Problem Definition

The Problem

  • Layers|Every decision at once · five settings, one modal
  • Users|Audience first · the hardest choice came first
  • Percent|Return as “500%” · merchants misread it
  • CircleHelp|No way in · nothing explained ads or the tier
  • Minimize2|No room · a half-screen box over the dashboard

Never ran ads

Dine-in comes first

A full room and a till to run; the ads dashboard sits idle on the counter. Delivery is extra money, not the business.

An offer feels safe

A chalkboard deal costs nothing until an order comes. Offers fit how an owner already thinks.

Ads feel like a bet

Ad spend on one side, revenue on the other. “Would I have got those sales anyway?”

Running ads

Set it and forget it

An account manager set it up. The dashboard shows a campaign the owner does not remember starting.

Keen to grow, unsure how

Busy counter, good trade. Would spend more for more, but cannot read the return or tune the settings.

Stopped

Costs felt too high

Bills on the table and no proof the ad paid. Staying afloat beats a gamble.

Design Question

How might we help a first-time owner start an ad with confidence, without taking control away from chains?


03

Design Principles

Principles

__smb_principles__


A

Make one decision the default

What changed

  • Wallet|Budget first · recommended tier open and selected
  • Calendar|Duration chips · Ongoing by default
  • SlidersHorizontal|“More settings” · name and bidding, one click away

__smb_more_a__


B

Show the return before asking for money

What changed

  • TrendingUp|Estimates always in view · update as you change
  • Percent|Return as 5× · “$5 for every $1 you spend”
  • Wallet|Max weekly spend · with its formula shown

__smb_more_b__


C

Guide without gatekeeping

What changed

  • CircleHelp|“How do ads work?” · a short explainer, on request
  • Layers|Three-step tour · budget, duration, more settings
  • Ban|Always skippable · never blocks creating an ad

Two paths for a first-timer

An activation problem: get single-store owners to run a first ad.

  • PanelRight|Side curtain · a panel over the page you are on; two budgets, Create ad, or “Customize” for the full page
  • Wallet|Budget-only first run · the whole screen shows two budgets and the return; everything else under Advanced
  • UserRound|First-timer · one store, never ran an ad, goes with the defaults
  • Repeat|The rule · budget-only for the first 5–10 ad runs, then audience and the rest; it ends the first time they open Advanced
  • Ban|Why neither shipped · two flows to maintain, two to explain, more support tickets

Side curtain

Pros

  • CircleCheck|familiar; you stay on the page you were on
  • CircleCheck|one or two choices, Create ad in a click; “Customize” opens the full page

Cons

  • CircleSlash|400px leaves no room to explain, preview or show the return
  • CircleSlash|worse on mobile, where a panel becomes a cramped sheet
  • Gavel|Decision · dropped at the Week 10 crit; the full-screen page won, I argued for it

Budget-only first run

Pros

  • CircleCheck|nothing to distract: three budgets and the return, that is the whole screen
  • CircleCheck|matches the first-timer: budget and outcome are all they care about

Cons

  • CircleSlash|a second flow to build, maintain and explain, next to the full page
  • CircleSlash|the 5–10 run rule needs tracking per merchant; more support tickets expected
  • Gavel|Decision · not shipped; the full page keeps minimal by default, with everything one click away under Advanced

04

Validation

Testing

  • Users|Prototype test · experienced and churned merchants
  • Layers|Four variants · desktop and mobile
  • Percent|Failed first · “1000%” read as fake, so 5×
  • CalendarX|Failed first · short runs, so duration chips

__smb_more_validation__


05

Handoff

Timeline

  • Users|Weeks 1–3 · research with three merchant groups
  • FileText|Week 6 · product requirements
  • Scale|Week 10 · design crit, full screen chosen
  • Gavel|Week 19 · legal sign-off on estimates

__smb_more_timeline__

What I would measure

  • Gauge|Creation rate · started vs finished
  • Repeat|Four-week retention · still running ads
  • Wallet|Average spend · per advertiser
  • Target|Recommended tier · how often it’s changed

06

Reflection

What I learned

  • Lock|Ask for the readout early · none reached me
  • Store|Chains need their own test · their budgets went untouched
  • Sparkles|Next · per-store budgets in the default view
  • BadgeDollarSign|Next · show extra sales in the estimate