Google Ads 4-Year Historical Spend Recovery — Multi-Tenant Warehouse Account-ID Join Beats Chat Archive by 2.5 Years
Turn a "no data for this account" verdict into a verified multi-year history, by joining through the warehouse's own identifier model instead of trusting a name match.
What was getting in the way.
A name-based sweep of a multi-tenant warehouse table returned nothing on a client — the sort of answer that leads straight to "we don't have the data, retire the account." But the warehouse keys records by account id, not display name, so a name sweep can be structurally blind to a client that is sitting right there. Chat-archive search can backfill some history, but only as far back as the archive's retention window.
Context
Universal — any AI agent deployment holding multi-tenant platform data that gets queried by human-friendly client names.
How the work runs.
- 01
Trigger
a sweep returns zero rows for a client the team believes we have history on.
- 02
Question the join key
a multi-tenant warehouse table is keyed by platform account id, not display name — a name sweep against it can be structurally blind.
- 03
Pull the client's own identifiers
take the client's platform account ids from the places they actually live (CRM record, product metadata, prior engagement notes) and join those into the multi-tenant table directly.
- 04
Recover engagement dates from campaign-name prefixes
re-derive when the engagement actually started by parsing dated prefixes on historical campaign names — a signal the chat archive can't see.
- 05
Reconcile against the chat archive
the campaign-name-prefix horizon beat the chat archive by 2.5 years; both signals cross-check.
- 06
Outcome
verdict flipped from retire to publishable in ~45 minutes.
Evidence from the workflow.
Each system has a role.
Record of truth
Multi-tenant data warehouse
Intake (account ids)
CRM / product metadata
Signal (historical dating)
Ad platform (name/prefix convention)
Signal (cross-check)
Internal chat archive
Why this is Coworker.
Takes assignments and reports back. You hand it work, it prepares and returns a result.
- 01
Read-only across the warehouse and the chat archive; no account changes made from the recovery itself. Any corrected historical count is tagged with its join method so a future reviewer can reproduce the lookup.
Impact / Outcomes
Four years of previously-invisible performance history recovered on an account the standard sweep had graded as having zero data.
Engagement start-date re-derived from campaign-name prefixes — beat the chat-archive horizon by 2.5 years.
Whole exercise completed in roughly 45 minutes; verdict flipped from retire to publishable the same session.
Find where a workflow like this fits.
Start with the systems, work, constraints, and authority already present in your operation.