Findings

What Google Ads Change History Doesn't Show You

Four automated changes the API reported and the Change history page did not. An Editor change that appeared in neither. One account, two days, with the timestamps.

By Michael Hulsmann · October 19, 2026 · 5 min read
TL;DR

Open your Change history and scroll to the oldest entry. Whatever date it stops at is everything Google will ever tell you about that account. On one account I run, four automated changes never appeared there at all, and a change made in Google Ads Editor showed up in neither the page nor the API feed that names who did it.

Start With Your Own Account

Open any account you manage. Tools, then Change history. Scroll to the bottom and look at the oldest entry you can see.

Whatever date it stops at is the whole of what Google will ever tell you about that account. Everything before it is gone, and it went without asking.

That is the published behaviour rather than a bug. It is also the thing most people have never looked at directly, because the page only gets opened when something has already gone wrong.

Four Changes That Never Appeared

On 8 October I was querying the Google Ads API against a test account for an unrelated reason, and the API reported three changes I had not made.

TimeWhat it touchedIn Change history?
16:30:05A campaign and every ad group under itNo
17:30:02A campaign and every ad group under itNo
23:15:51A campaign and every ad group under itNo
05:18:46 (9 Oct)A campaign and every ad group under itNo

Four events, each one touching a campaign and all of its ad groups together. The API listed all four. The Change history page in the same account, over the same window, showed none of them.

Nothing was harmed. I compared the account against the previous day and it was byte for byte identical, so my reading is that Google was recalculating something internal and writing a timestamp against the resource. That is a guess about the cause rather than a finding.

The finding is narrower and it holds either way: the page you open when a client asks what changed is not a complete list of what changed.

The Editor Gap

The second test was deliberate. I added a negative keyword called editortest through Google Ads Editor at 15:32 and then watched for it.

An hour later it had still not appeared in change_event, which is the resource carrying the user and the tool behind each change. A different resource, change_status, had it to the microsecond.

So anything your team does in Editor can be invisible to the feed that would otherwise tell you who did it.

Three Sources, Three Blind Spots

Google exposes change data in more than one place, and no single one of them is complete.

SourceCatchesMisses
Change history pageMost human changes in the web interfaceAutomated changes, and everything past 30 days
change_eventWho made each change and with which toolGoogle Ads Editor
change_statusEditor changes, to the microsecondAny attribution at all. It says a row was touched
Daily snapshotWhat actually differs from yesterdayWho did it, and when during the day

The last row matters more than it looks. Without something comparing the account against its previous state, a timestamp update is indistinguishable from a real change, and an alert built on that alone reports several events a day that mean nothing.

What This Does Not Prove

One account, built by me for testing, observed over two days, run once. The four automated events might be specific to how that account is configured. The Editor result is cleaner, because it follows from which resource carries what, but it is still one test.

I would want this repeated across twenty accounts that somebody else runs before claiming a rate for any of it.

What does not depend on sample size is the 30 day deletion, which is Google's published behaviour, and the fact that change_event does not carry Editor changes, which is a property of the resource rather than of my account.

Why a Script Cannot Fix This

A Google Ads script can read any of the sources above. Several free ones do.

What a script cannot do is keep the record. It has nowhere to write except a spreadsheet you own, one per account, and the source data it is reading disappears at 30 days regardless. Run it daily across twelve client accounts and you have twelve spreadsheets, twelve installs and twelve authorization prompts, with the oldest rows still ageing out underneath you.

Keeping an attributed history across a portfolio, for longer than Google keeps it, needs something that runs when nobody is logged in and stores the result somewhere permanent. That stops being a script at the first line.

Keep the Record Google Deletes

SearchSavior records every change across every connected account, with who made it and which tool, and keeps it long past Google's thirty days. Free for 7 days, no card.

Start a free trial

Frequently Asked Questions

How long does Google Ads keep change history?

Thirty days. After that it is deleted and there is no way to recover it from Google. Anything you need beyond that window has to be captured and stored somewhere else before it ages out.

Does Google Ads change history show every change?

No. On one account I tested, four automated changes were reported by the Google Ads API across two days and none of them appeared on the Change history page over the same window. Automated and system level changes are the ones most likely to be missing.

Why do Google Ads Editor changes not appear in the API change feed?

Because change_event, the resource that carries who made a change and which tool they used, does not report them. I added a negative keyword through Editor at 15:32 and it had still not appeared in change_event an hour later. A second resource, change_status, had it immediately, but it carries no attribution at all.

Why are there changes in my Google Ads account I did not make?

Google makes automated changes of its own. On the account I tested, four landed across two days, each touching a campaign and every ad group beneath it. The account was otherwise identical to the previous day, so those particular events changed nothing I could detect.

Can a Google Ads script keep a longer change history?

A script can read the data and it cannot keep it. It writes to a spreadsheet you own, one per account, and the source it reads from still disappears at thirty days. Keeping an attributed record across a portfolio needs something that runs on a schedule and stores the result independently of Google.