Paid acquisition · Google Ads

Sources & method

How every number on the dashboard is produced — and what to distrust.
← back to dashboard

This dashboard measures Google Ads campaign efficiency for NEETprep, refreshed daily. Spend comes from the Ads API; leads, conversions and revenue are reconstructed from first-party data (the product database, the lead-form sheets, HubSpot and the GA4 export). The hard part is honest attribution — tying a rupee of spend to the lead it bought and the payment that lead made — so this page is deliberately explicit about every join and every assumption.

Data sources

live API Google Ads API v21 — spend, clicks, impressions

live Product database (Aurora, read-only) — leads, payments, contacts

live GA4 / Firebase export (BigQuery) — app-install attribution

live Lead-form sheets + HubSpot — web lead-gen leads

live HubSpot CRM — MQL, called, connected

Definitions (CEO-confirmed)

How attribution works

Assumptions & things to distrust

Web-campaign revenue is conservative. It's phone-matched to DB payments; when a payer used a different phone on the form than on their account, we miss their revenue. So web lead-gen leads and CPL are trustworthy, but their ROAS reads low.
Recent date ranges understate ROAS. Spend is counted immediately but revenue accrues over months, so a recent or open-ended window looks worse than it will end up. Judge a campaign on a closed, matured window at Lifetime.

Refresh

A daily job re-pulls spend, GA4, DB leads/payments/contacts and the lead sheets/HubSpot, rematches the incremental HubSpot status, rebuilds the fact file and redeploys. The dashboard is static and computes all filters (date range, channel, window, grain) in the browser.

← back to the dashboard