Restaurant Ads Performance & Experimentation
Public Kaggle ad data reframed as restaurant advertisers on a food-delivery app. Money is in spend units because the source does not state a currency. ROAS assumes a revenue per order, since the data has no revenue (change it below).
Headline KPIs
Where the money goes
Ad performance data. All charts follow the filters above.
Share of spend vs share of conversions, by age
An age group whose grey bar is longer than its blue bar is over-funded.
View as table
Audience segments: age × gender
View as table
Spend concentration (paid ads, largest first)
If the blue line sits below the grey one, the biggest ads deliver less than their share of spend.
View as table
Advertisers
"Paid-only cost/conv." excludes conversions credited to ads that spent nothing.
Did ads cause extra orders? A/B test
A separate dataset of 588,101 users, not affected by the filters above. The ad group saw sponsored restaurant ads; the holdout saw a non-commercial ad in the same slots.
Intraday trend: conversion rate by hour of peak ad exposure
The dataset has no calendar dates, so the trend is shown across hours of the day. Holdout lines are noisy overnight because few holdout users fall in those hours.
View as table
Where did the lift show up?
Dot = lift, line = 95% confidence interval. Filled dot = still significant after Holm correction for 18 segment tests. Segments are exploratory.
View as table
Opportunity: move 20% of the 45–49 budget to 30–34
From excel/opportunity_sizing.xlsx (paid ads only; revenue per order fixed at the
assumed value). Base / Best / Worst vary how much worse the new spend performs.