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
AI avatar summary

Why HG PPC exists.

What HG PPC replaced, and what it does for me now. The internal dashboards stay private, so this is the public version of it.

Here's a summary of this page by my AI Avatar

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