Tudo o que uma mudança aplicada tocou foi lido da conta e registrado antes de ela rodar. Voltar atrás repete isso, então é algo registrado e não uma reconstrução.
Olhe antes de apertar
curl -s https://top-rated.team/google-ads/v1/changes/chg_abc123 \ -H "X-API-KEY: $MAKEHYBRID_KEY"
A resposta traz revertable, e not_revertable_because quando é false. Leia isso primeiro: uma mudança que criou algo novo não pode ser desfeita assim, e o mesmo vale para qualquer coisa que o Google não nos deixou ler de volta antes de a mudança ser feita.
Volte atrás
curl -sX POST https://top-rated.team/google-ads/v1/changes/chg_abc123/revert \ -H "X-API-KEY: $MAKEHYBRID_KEY"
Ela entra como uma mudança própria, com o próprio registro e o próprio desfazer — então voltar atrás em algo pode, por sua vez, ser desfeito. A original é marcada como revertida e nomeia a mudança que fez isso.
Se o Google recusar a reversão, nada aconteceu: um mutate roda inteiro ou não roda, então a original continua aplicada e exatamente como era. A recusa diz isso, em vez de deixá-la marcada como desfeita.
O que foi registrado, e quando
O desfazer é lido da conta logo antes de a mudança rodar, não depois. Essa ordem é toda a razão de isto funcionar: depois que um lance mudou, o número de que ele partiu não está mais na conta, e nada poderia reconstruí-lo exceto uma cópia feita antes. Então uma é feita.
O que é registrado é o estado exato das coisas que a mudança toca — os campos nomeados nas suas máscaras de atualização (update masks), lidos dos recursos que ela nomeia. Uma mudança que pausa uma campanha registra o status dessa campanha, não um retrato da conta, e é por isso que voltar atrás não pode atropelar uma mudança que outra pessoa fez nesse meio-tempo.
Perguntas frequentes
Quais mudanças não podem ser desfeitas?
Tudo o que criou algo novo — uma campanha, um anúncio, um recurso — porque não havia estado anterior a registrar. A mudança diz isso em not_revertable_because antes de você apertar, em vez de falhar quando você tenta.
Posso desfazer o desfazer?
Sim. Voltar atrás numa mudança entra como uma mudança própria, com o próprio registro e o próprio desfazer registrado da mesma forma, então ela pode ser desfeita por sua vez.
E se alguém mudou a mesma coisa no Google Ads nesse meio-tempo?
Voltar atrás escreve os valores registrados por cima do que estiver lá agora. Esse é o comportamento honesto para um desfazer, e é a razão para ler a conta antes de apertar e não depois.