All workCase study SEO · Meta Ads · Analytics

Spend & Search

Growth engine for a DTC brand

One dashboard where organic search and Meta spend stop arguing — rankings, ROAS and budget pacing wired to the same source of truth, refreshed every hour.

Spend & SearchRuns live
Screenshot of Spend & Search on a desktop

A sample brief, a real product. We wrote this brief ourselves to show how we work; the client and their story are illustrative. The product is not: it was designed and engineered here, and you can use it below. We publish results only for work a client has let us verify, so this page shows none.

Spend & Search live demoReady
The real front end, in your browser. Sample data. Nothing is saved.Open in a new tab (opens Spend & Search full screen)
Screenshot of Spend & Search on a desktop
1

The brief

Marlow & Finch was flying blind across four tools: Ads Manager for spend, Search Console for rankings, GA for sessions, a spreadsheet to reconcile the lies. We built Spend & Search — a growth cockpit fed by the Meta Marketing API and Search Console API, normalised through a BigQuery + dbt pipeline, served by a Next.js app on Vercel.

3

The approach

Hourly ETL pulls ad-set spend, CPM and conversions from Meta; a nightly job snapshots keyword positions. dbt models blend them into one attribution table, so ROAS is computed the same way everywhere — no more channel-flattering math.

  • Meta Marketing API + Search Console ingestion
  • BigQuery warehouse, dbt models, tested SQL
  • Budget pacing with automatic ad-set pause rules
  • Server components, edge-cached KPI reads
4

What shipped

  • Campaign toggles and CRUD
  • Pacing against time of day
  • A rule builder that actually fires
  • Attribution breakdown
  • Organic keyword sparklines
  • Alerts
  • Audiences and lookalikes
  • Creatives with A/B tests
  • UTM builder and report builder
5

Under the surface

How it is built

Hourly workers pull Meta Marketing API and Search Console into BigQuery; dbt models normalise attribution, and a Next.js app on Vercel reads pre-aggregated marts so every number is one query deep.

  • Meta + GSC ingestion with token rotation
  • dbt-tested models — ROAS defined once, everywhere
  • Pacing rules auto-pause underperforming ad sets
  • Looker Studio marts for the founders' weekly

Considered and turned down

GA4 + spreadsheets — rejected: sampled data and channel-flattering attribution.

Stack

Next.jsMeta Marketing APISearch Console APIBigQuerydbtNode.jsVercel
6

The mechanism, working

The part of Spend & Search that was hardest to get right, as a small model you can operate.

Blended attribution

Meta spend and organic search normalised in one dbt model, so ROAS is defined once and pacing rules act on it.

Start here

What are you building?

Pick one and we hand you the closest thing we have already built. Or go straight to the brief: a person replies within one working day, with an honest view on scope, time and cost.

Start a project
studio@yakooha.com+91 81042 13809Mumbai10:00 to 19:00 IST, Monday to Friday
What are you building?