Smart ads. Real impact.
HadsUp owns and operates its own network of AI-integrated digital screens — and the platform behind them. Edge cameras measure who actually looked, a spatial search turns that into buyable inventory, and an automated nightly run settles every partner. One Laravel API serves sixteen rolesacross web, admin console and mobile apps.
A media buy, rebuilt as a measurable marketplace
Traditional out-of-home advertising is opaque, slow to book and disconnected from audience insight. Advertisers pick screens from estimated footfall. Landlords have no self-serve way to earn from a wall. Franchise partners, agents and investors all need different tools — and every one of them needs to trust the same numbers.
HadsUp attacks all of it from one platform. It owns the screens, so it can put cameras on them and sell verified attention rather than estimates. It exposes that inventory through a geo-intelligent search — city, venue type, age band, ethnicity, footfall, impressions — so a brand goes from “I want to advertise in Leeds” to a paid, scheduled campaign in one flow. And it settles the money automatically: a nightly settlement run credits landlords, franchises, sales, agents, investors, brokers and sponsors out of every campaign charge.
Four problems that had to be solved at once
Any one of these is a product on its own. Together they’re the reason DOOH still gets bought over email.
Limited audience intelligence
Legacy DOOH networks offer estimated footfall — not verified demographics, attention time or emotional response from real viewers standing at the screen.
Fragmented stakeholder models
Advertisers, landlords, sales teams, franchise operators, investors and brokers each need different tools — but must share one financial and inventory truth.
Complex geo-targeting
Buyers need to search by city, venue type, ethnicity, age band, footfall and impressions — then book specific screens and date ranges in seconds, not days.
Unfair revenue distribution
Without automated settlement, multi-party earnings become manual, error-prone and — fatally for a partner network — untrustworthy.
The screen measures who actually looked
AI here isn’t a label on a landing page — it’s a pipeline with a cron schedule. Edge cameras on HadsUp screens capture audience signals, those land in Google BigQuery, a nightly job syncs them into the platform, and they surface in the three places that matter: search filters, campaign dashboards and post-campaign reports.
Capture
Edge AI cameras on the screens read face and body signals.
Store
Face and body data lands in Google BigQuery.
Sync
Nightly analytics jobs pull it into the platform.
Visualise
Precomputed pie and spline chart tables per device.
Act
Targeting filters, calculators and ROI reporting.
Face analytics
- Gender detection — male / female distribution
- Age band segmentation, 11–20 through 71+
- Gender × age cross-tabulation for precision targeting
- Average age and attention time per device
- Smile / viewing sentiment mapped to reaction categories
Body & footfall analytics
- Total impact — people count as a footfall proxy
- Dwell time — how long audiences stay near the screen
- Estimated impressions normalised from body + face data
- Six-month rolling averages used for search ranking
- Yesterday’s impression values printed on ad-spot cards
Live health monitoring
Scheduled jobs check real-time people counts. Low-traffic screens raise Slack and in-app alerts — escalated when a paid campaign is running on them.
Audience calculator
Advertisers model budget, reach and investment return against real impression databefore committing spend — the same numbers that later appear in the report.
“I want to advertise in Leeds” to a live campaign
The public website and the logged-in product run on the same backend, so discovery flows straight into booking without re-entering anything.
Discover ad spots
A hero search — “I want to advertise in…” — plus a campaign date picker. UK city cards for London, Birmingham, Edinburgh and Leeds show live inventory counts, and map or list views expose each screen with pricing and AI-enriched metrics.
Filter by intelligence
Footfall ranges, age demographics, ethnicity, venue category, impression bands and geo radius or bounding box. Google Places autocomplete merges with internal device search, so a place name and a screen both resolve through the same box.
Create & configure
Campaigns start as DRAFT. Creative uploads to S3 through pre-signed URLs; the buyer picks devices, dates and time slots while pricing applies discounts, VAT and slot multipliers automatically.
Publish & pay
Publishing places a payment hold; operator approval moves the campaign to SCHEDULED. Daily jobs then activate, charge and complete it. Wallet top-ups run through Stripe, PayPal or Wise.
Measure performance
Campaign charts report impressions, dwell and attention totals; device-level demographics carry the ROI conversation. This is where the loop closes — the camera that measured the audience is the same source that justifies the next buy.
One API, five layers, sixteen role-shaped front doors
Every client — advertiser website, admin console, landlord app, franchise dashboard, investor and broker apps — authenticates through Laravel Passport, with scopes separating API, backend and franchise routes. There is one campaign engine and one balance engine underneath all of them.
Every campaign charge settles itself
This is the part a partner network lives or dies on. Each party’s entitlement is encoded in the user model, and a job at 05:00 settles every role — no spreadsheet, no month-end reconciliation, no trust exercise.
Sixteen roles, one system of record
Separate apps and dashboards per role — but a single financial and inventory truth underneath.
| Role | Primary surface | Key capability | Earns |
|---|---|---|---|
| Brand / agency | Advertiser web + mobile | Create campaigns, pay, view AI analytics | |
| Location owner | Landlord app | Register venues, manage devices, withdraw earnings | |
| Franchise | Franchise dashboard | Operate multi-location networks, manage landlords | |
| Sales | Sales dashboard | Onboard advertisers, track pipeline | |
| Investor | Investor app | Fund devices, track portfolio returns | |
| Advertiser agent | Agent tools | Manage campaigns on behalf of brands | |
| Location agent | Agent tools | Manage locations for owners | |
| Broker / BB / AB | Broker apps | Recruit investors or advertisers | |
| Sponsor | Sponsor portal | Sponsored device campaigns | |
| Admin / operator | Admin console | Full ops — locations, campaigns, users, reports |
The platform runs itself overnight
A distributed screen network can’t depend on someone remembering to bill it. Nine scheduled jobs move every campaign through its lifecycle, pull the AI data, distribute earnings and watch the cameras — most of it before anyone is awake.
Campaign lifecycle
- 00:10 — activate scheduled campaigns
- 00:20 — charge active campaigns for yesterday
- 00:25 — complete expired campaigns
- 00:30 — archive completed campaigns
- 05:00 — distribute earnings to all roles
AI & analytics
- 00:15 — pull BigQuery face and body data
- 01:00 — aggregate six-month chart statistics
- 12:30 — monitor live camera health
- Every minute — Hivestack / Framen play confirmation
Content delivery
- S3 pre-signed uploads for campaign creative
- CMS playlist publishing out to device screens
- VAST video ad support
- Campaign preview rendering for floor displays
Financial automation
- Role-based balances — hold, earned, withdrawable
- Automated cashback listeners on transactions
- Invoices plus PDF and Excel financial reports
- Wise and PayPal withdrawal workflows
Built for scale, security and geographic intelligence
Deliberately boring where it should be — a well-understood Laravel core — and specific where the product demands it: spatial SQL for inventory, a warehouse for audience data, three payment rails for partners in different countries.
DOOH as a measurable, self-serve marketplace
Not a media buy with a spreadsheet attached — a platform where the audience data, the booking flow and the money all reference each other.
Advertisers choose screens on real measurements rather than estimates. Demographics, impressions and sentiment feed the search, the calculator and the post-campaign report alike.
A transparent nightly settlement credits sales, franchise, landlords, agents, investors and sponsors without manual reconciliation — and every party can audit their own balance.
One API supports web, admin and mobile clients while cron-driven billing and CMS publishing keep thousands of screen slots manageable by a small team.
Spatial queries, Google Places, venue metadata and UK city rollups make “find your ad spots” a working product surface rather than landing-page copy.
Direct self-serve campaigns and programmatic supply through Hivestack and Framen coexist, with play confirmation providing delivery proof on both paths.
OAuth2 with scoped access, role permissions across sixteen roles, audit-friendly transactions and exportable financial reporting support both growth and compliance.
Idea in your head? Let’s
bring it to life.
Got a project? A wild idea? Or just want to say hey?
We're here for all of it — reach out anytime.

