CASE FILE 03CLIENT GENERALISEDALL DATA MOCKED

Facebook ads, measured properly.

A brand was making ad decisions from screenshots of Ads Manager. This project pulled all the Meta data into one place and built a dashboard that shows what actually makes money.

CLIENTPERFORMANCE BRAND
MODELPAID SOCIAL → PURCHASES
STACKMETA API · BIGQUERY · LOOKER
ENGAGEMENT5 PHASES · FULL SYSTEM
STATUSLIVE · AUTOMATED
THE BOARD — OVERVIEWAI-BUILT · LIVE HTML
EXHIBIT A
1

The six big tiles show the numbers a media buyer checks every morning.

2

The video chart shows where viewers stop watching each ad.

3

The donut and bars show which placements and age groups actually buy.

The Brief

Decisions were based on screenshots.

Creative decisions were made in meetings with screenshots: click rates here, costs there. Nobody knew where viewers stopped watching each video, or which placements wasted money.

We pulled the full Meta Ads data into BigQuery — down to placements, audiences and video views — and built a dashboard that connects ad spend to actual purchases.

THE GOAL: one dashboard that shows which ads, audiences and placements make money.

✗ THE PROBLEMS

  • CTR debates instead of profitability decisions
  • Video drop-off invisible — hooks judged on vibes
  • Placement spend (Feed vs Reels vs Stories) untracked
  • Audience CPAs unknown below account level
  • Scaling decisions made without frequency data
The System

How the system works.

The Meta Ads data is pulled into BigQuery every day, including placements, audiences and video views. SQL turns it into clear reports, shown in Looker Studio, with alerts on top.

Meta Ads API

Campaign → ad level, plus placements, demographics and video metrics.

Pipelines

Scheduled pulls, backfilled 24 months for trend context.

BigQuery

Retention-curve, placement and audience models in SQL.

Looker Studio

Six pages: account, creative, placements, audiences, funnel, alerts.

Action Layer

CPA-breach and creative-fatigue alerts to Slack.

The Process

How the project ran.

01

Audit

  • Reconciled pixel purchases against platform reporting
  • Mapped which decisions ran on which (missing) data
02

Measurement Plan

  • Defined profitability per campaign, not just ROAS
  • Named the creative-testing framework and its KPIs
03

Implementation

  • Full-depth Meta API → BigQuery with history backfill
  • Video-retention and placement models in SQL
04

Dashboard Build

  • Tile-first layout for daily buyer checks
  • Drop-off, placement and age-band views wired to purchases
05

Automate & Optimise

  • CPA-breach + fatigue alerts
  • Weekly creative summary with next tests
The Build

The creatives, in detail.

Two more pages: the creative ranking table and the alerts page. Built in HTML with sample data.

PAGE 02 / 06 — CREATIVESLIVE HTML · MOCK DATA
EXHIBIT B
Creative Deep-Dive

Every ad ranked by cost per sale.

  • The table ranks each ad by spend, purchases and cost per purchase.
  • The chart tracks daily cost per purchase against the $25 target.
  • The list at the bottom shows which new ad tests are coming next.
PAGE 06 / 06 — ALERTS + AILIVE HTML · MOCK DATA
EXHIBIT C
Automation Layer

Warnings before money is wasted.

  • Rules watch ad frequency and costs, and send a Slack alert when they go too high.
  • The Monday AI summary names the best ad and the biggest leak.
  • Every alert suggests what to do: scale, pause or refresh.
Deliverables

What was delivered.

The Results

What changed.

VIDEOS, GRADED.

Every video ad shows where viewers drop off, so hooks are judged on data, not opinions.

PLACEMENTS, PRICED.

Feed, Reels and Stories each show their own cost and sales, so budget goes where it works.

ONE MORNING CHECK.

The daily review went from five browser tabs to one dashboard.

NOTE: CLIENT DETAILS GENERALISED · ALL NUMBERS ARE SAMPLE DATA · DASHBOARDS ARE HTML RECREATIONS

Next Steps

Want this for your business?

If your ad meetings run on screenshots, this same dashboard can be built for your account.