Selected work / 10

Signal.

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.

Use the live product
SEOMeta AdsAnalytics
Year
2026
Timeline
10 weeks
Services
SEO · Paid social · Data pipeline
Platform
Web
Full-stack Next.jsMeta Marketing APISearch Console APIBigQuerydbtNode.jsVercel Covers: SEO & Meta Ads →
01

Overview

Verre 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 Signal — 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.

02

The build

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
03

The outcome

Blended ROAS is now a number the founders trust. Wasted prospecting spend was cut in week two, and three money keywords moved to page one after the technical-SEO sprint the data pointed at.

3.9×
Blended ROAS, up from 2.6
−31%
Wasted ad spend
12
Keywords on page one
For the first time paid and organic are one conversation, not two reports.
Head of Growth — Verre
04

Under the hood

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

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

Live product The real interface, running right here — click around, everything works. Open full ↗
Let's begin

Have a project like this?

Start a project
studio@yakooha.com We reply within a day — usually the same afternoon.