▶️ Open a fresh Claude chat named "Phase 3 — Google Ads," paste this whole page, and say: "Walk me through this one step at a time."

What we're doing & why

Now we plug in the first real platform: pull Google Ads numbers straight from Google instead of the Coefficient sheet. We do Google Ads first because its connection is already fully set up and tested. Everything flows through the flexible data layer from Phase 2, so if the API hiccups it falls back to the sheet automatically.

What's already true (context for Claude)

Your tasks (Kenzie + Claude)

  1. Build the Google Ads reader: use the saved credentials to pull each school's spend, impressions, clicks, conversions — by day and by campaign — and return it in the data layer's common shape.
  2. Wire Google Ads as the primary source behind the source flag (sheet stays the fallback). Test on a preview deploy, not production.

✅ Data-realness check (the important part)

Have Claude build a reconciliation that, for a known closed 2-week period, shows for all 4 schools: Google Ads via the API vs via the Coefficient sheetspend, clicks, conversions — side by side with match ✅ / off-by-X ❌. Tiny rounding differences are fine; real gaps are not. Do not enable anything for clients until this is green.

🛑 STOP gate

Before flipping Google Ads to the real source, the green reconciliation gets a quick sign-off (Janet/reviewer). Then enable all 4 schools and let one full pipeline cycle run with the sheet still on as fallback, watching for drift.

Done when

API numbers reconcile green on all 4 schools, sign-off given, and a full cycle runs clean with fallback on. Google Ads is now real-time; the sheet is just backup.