A proposed change is a change that has been written down and checked, and not made. An agent composes the operations, Google validates every one of them, and the result sits with an ID of its own until a person applies it. Nothing in the account has moved.
Three states and a record
- Pending: written down, accepted by Google as something that would run, waiting on somebody.
- Applied: run in one piece — either all of it happened or none of it did — with what undoing it would take written down beside it.
- Skipped: somebody read it and said no. It stays in the record, which is the point of writing it down.
GET /google-ads/v1/changes is the account's own record of what was done on its behalf — from the API and from the project rooms alike, newest first, each with who proposed it, the one line they wrote about it, and how it ended.
Why it can be put back
Before a change runs, what it would take to undo it is read out of the account and written down. Afterwards is too late: the old values are gone. So putting a change back is replaying something recorded, not guessing — and the few changes that cannot be put back, anything newly created, say so before you press rather than afterwards.
A proposal that Google refuses never becomes one. Validation happens as the proposal is written, so a pending change is always a change that would really run.
Questions people ask
Can an AI agent apply its own proposal?
No. Proposing and applying are different calls, and an agent is only ever given the first. The call that applies one is a person's.
What can be proposed?
Campaigns, ad groups, criteria, ads and assets. Budgets are not on the list, and neither is the account itself — an operation that names one is refused as the proposal is written.
Who sees a proposal?
Everyone in the organization who may read the account it is in. In a project room where a partner's specialists and their customers sit together, that is the people whose account it is, and the specialists looking after it.