適用された変更が触れたものはすべて、実行される前にアカウントから読み出され、記録されています。元に戻すのはそれを再生することなので、再構築ではなく、記録されたものです。
押す前に見る
curl -s https://top-rated.team/google-ads/v1/changes/chg_abc123 \ -H "X-API-KEY: $MAKEHYBRID_KEY"
応答には revertable があり、それが false のときは not_revertable_because も付きます。最初にそれを読んでください。新しいものを作った変更は、この方法では取り消せません。変更の前に Google が読み返させてくれなかったものも同じです。
元に戻す
curl -sX POST https://top-rated.team/google-ads/v1/changes/chg_abc123/revert \ -H "X-API-KEY: $MAKEHYBRID_KEY"
これは、独自の記録と独自の取り消しを持つ、ひとつの変更として入ります。だから、元に戻したことをさらに元に戻せます。元の変更は reverted と記され、それを行った変更の名前が付きます。
Google が元に戻す操作を拒否した場合、何も起きていません。mutate は全部実行されるか、まったく実行されないかなので、元の変更は適用済みのまま、まったく元のとおりです。取り消し済みと記されたまま放置されることはなく、拒否はそう伝えます。
何が、いつ書き留められるのか
取り消しの内容は、変更が実行された後ではなく、実行される直前にアカウントから読み出されます。この順序こそが、これが成り立つ理由のすべてです。入札が一度動いてしまうと、動く前の数字はもうアカウントにはなく、事前に取ったコピーでなければ再構築できません。だから、コピーを取ります。
書き留められるのは、その変更が触れるものだけの状態です。更新マスクで指定されたフィールドを、指定されたリソースから読み戻したものです。キャンペーンをひとつ停止する変更が記録するのは、そのキャンペーンのステータスであり、アカウントのスナップショットではありません。だから、元に戻すときに、その間に誰かが行った変更を踏みつぶすことがありません。
よくある質問
元に戻せない変更はどれですか?
新しいものを作ったものすべて、つまりキャンペーン、広告、アセットです。記録すべき以前の状態がないからです。その変更は、試して失敗するのではなく、押す前に not_revertable_because でそう伝えます。
取り消しを取り消せますか?
はい。元に戻すことは、独自の記録と、同じ方法で書き留められた独自の取り消しを持つ、ひとつの変更として入るので、今度はそれを元に戻せます。
その間に誰かが Google Ads で同じものを変更していたら?
元に戻すと、記録された値が、いま入っているものの上に書き込まれます。取り消しとして誠実な動作で、押したあとではなく、押す前にアカウントを読むべき理由でもあります。