Всё, чего коснулось применённое изменение, было считано из аккаунта и записано до его выполнения. Возврат воспроизводит эту запись, так что это записанное, а не восстановленное.
Посмотрите, прежде чем нажимать
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"
Возврат проходит как отдельное изменение, со своей записью и своим откатом, так что возвращённое тоже можно вернуть. Исходное изменение помечается как возвращённое и называет изменение, которое это сделало.
Если Google отклоняет возврат, ничего не произошло: mutate выполняется целиком или не выполняется совсем, так что исходное изменение остаётся применённым и точно таким, каким было. Отказ говорит об этом, а не оставляет его помеченным как отменённое.
Что было записано и когда
Откат считывается из аккаунта в момент перед выполнением изменения, а не после. Именно этот порядок и делает всё возможным: когда ставка уже сдвинулась, числа, с которого она сдвинулась, в аккаунте больше нет, и восстановить его может только копия, снятая заранее. Поэтому её снимают.
Записывается состояние ровно того, чего касается изменение, — полей, названных в его масках обновления, считанных из ресурсов, которые оно называет. Изменение, которое приостанавливает одну кампанию, записывает статус этой кампании, а не снимок аккаунта, и поэтому возврат не затрёт изменение, которое тем временем сделал кто-то другой.
Вопросы, которые задают
Какие изменения нельзя вернуть?
Всё, что создало что-то новое, — кампанию, объявление, ресурс, — потому что предыдущего состояния, которое можно записать, не было. Изменение говорит об этом в not_revertable_because до того, как вы нажмёте, а не падает, когда вы пробуете.
Можно ли отменить отмену?
Да. Возврат изменения проходит как отдельное изменение, со своей записью и своим откатом, записанным так же, так что его в свою очередь можно вернуть.
Что, если кто-то тем временем изменил то же самое в Google Ads?
Возврат записывает сохранённые значения поверх того, что там сейчас. Для отмены это честное поведение, и именно поэтому стоит читать аккаунт до того, как нажимать, а не после.