CASE FILE 04CLIENT GENERALISEDALL DATA MOCKED

Google Ads, measured by revenue.

A brand was judging its Google Ads account on clicks. This project rebuilt the reporting around revenue — showing which search terms, devices and locations actually make money.

CLIENTPERFORMANCE BRAND
MODELPAID SEARCH → REVENUE
STACKGOOGLE ADS API · BQ · LOOKER
ENGAGEMENT5 PHASES · FULL SYSTEM
STATUSLIVE · AUTOMATED
THE BOARD — OVERVIEWAI-BUILT · LIVE HTML
EXHIBIT A
1

The four tiles show the key account numbers at a glance.

2

The bars compare cost and conversions for each campaign type, side by side.

3

The table shows which search terms make money and which waste it.

The Brief

Clicks looked good. Revenue didn’t.

Performance Max spent money without showing where it went. Brand campaigns looked great because people were already searching for the brand. Everything was judged on clicks, so everything looked fine.

We pulled the account data into BigQuery down to individual search terms, and rebuilt the reports around revenue. Now wasted spend is visible and easy to remove.

THE GOAL: judge every campaign, search term and device by the revenue it brings in.

✗ THE PROBLEMS

  • PMax spend unauditable next to brand and non-brand
  • Search terms full of quiet money-burners
  • Brand harvesting credited as acquisition
  • Device bid adjustments set once, never revisited
  • Wasted spend invisible until month end
The System

How the system works.

Google Ads data is pulled into BigQuery every day, down to individual search terms. SQL compares cost with revenue for each campaign type, and Looker Studio shows the results with alerts on top.

Google Ads API

Campaigns, ad groups, keywords, search terms, devices, geos.

Pipelines

Daily pulls with change-history capture.

BigQuery

Term-level value models · waste detection · QS tracking.

Looker Studio

Six pages: account, types, terms, devices, geos, alerts.

Action Layer

Wasted-spend flags and negative-keyword queue to Slack.

The Process

How the project ran.

01

Audit

  • Separated brand harvest from real acquisition
  • Sized wasted spend hiding in broad terms
02

Measurement Plan

  • Conversion value as the single referee
  • Defined the EXCL rule set for term mining
03

Implementation

  • Google Ads API → BigQuery at term depth
  • Cost-vs-conversion models per campaign type
04

Dashboard Build

  • Grouped cost/conv bars for honest type comparison
  • Terms table with a live ACTION column
05

Automate & Optimise

  • Weekly negative-keyword queue
  • Waste and QS alerts to Slack
The Build

Search terms, in detail.

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

PAGE 02 / 06 — QUERY MININGLIVE HTML · MOCK DATA
EXHIBIT B
Query Mining

Good terms in, bad terms out.

  • The table shows clicks, conversions and cost for each search term, with an action column.
  • The chart shows wasted spend going down week by week.
  • The location list shows where to spend more and where to cut back.
PAGE 06 / 06 — ALERTS + AILIVE HTML · MOCK DATA
EXHIBIT C
Automation Layer

The account watches itself.

  • Rules flag wasteful search terms as soon as they cross the cost limit.
  • The Monday AI summary separates what earned from what was wasted.
  • Each alert comes with the fix: exclude, increase or hold.
Deliverables

What was delivered.

The Results

What changed.

PMAX, VISIBLE.

Campaign types are compared on cost and results, so Performance Max is no longer a black box.

WASTE, REMOVED.

Money-wasting search terms show up weekly with a simple exclusion list.

SMARTER BIDS.

Device and location decisions are based on their own cost-per-sale numbers.

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

Next Steps

Want this for your business?

If your Google Ads reports are all clicks and no clarity, this same setup can be built for your account.