Systems
InternalAd data warehouse + ML scoring

HG PPC

A warehouse for Google and Meta ad data. Vertical labels, creative pattern tracking, ML feature views. An account-level scoring and alerts engine running in production.

Every account I audit has at least one campaign that hasn't fired a real conversion event since 2023. Ad dashboards don't tell you that. This does.
System Card
categoryAd intelligence
statusInternal
page/hg-ppc
Architecture

How this system moves work.

Inputs
Google Ads
Meta
tracking
CRM outcomes
Processing layer
Paid-media data warehouse
tracking sanity check
account manager review
Outputs
alerts
benchmarks
model-ready data
Proof and results
165+ ad accounts modeled
industry ad ML input
Public version

Paid-media review loop

01

Google and Meta account data

02

Vertical labels and warehouse sync

03

Feature views and ML scoring

04

Waste, fatigue, risk, and scale alerts

A public map of the HG PPC warehouse. Raw account IDs, spend rows, and client names stay private.
What it proves

Paid-media review moves from dashboard-watching to benchmarked account scoring, risk detection, and waste/fatigue alerts.

Problem

Google and Meta dashboards show local activity but miss cross-account context, broken tracking, and silent deterioration.

1

What it does

Pulls account data into one Postgres warehouse via BullMQ workers. Labels keywords and creatives by vertical at ingest. Computes a daily feature view per account, runs baseline scoring, writes threshold-driven alerts, and exposes everything through analytics APIs (quality, benchmarks, scores).

2

Why it's its own thing

Google Ads UI and Meta Ads Manager show you last week. They don't show you a paving account quietly deteriorating against its vertical benchmark, or an account whose tracking has been broken since 2023 and is still spending. The warehouse exists so I can see those things at a glance.

  • Multi-year, multi-vertical, multi-provider data, not a snapshot
  • Resumable backfill with checkpoints (respects Meta's 37-month lookback, Google's daily quota)
  • Production hardening: invalid_grant auto-quarantine, token-expired handling, queue depth metrics
  • Same ML methodology used on the anonymized B2B forecasting work: XGBoost, lag features, walk-forward