СтатьяАналитика

Как учесть частичный возврат в ценности конверсии Google Ads

Выбираем изменение ценности или полный отзыв покупки, считаем оставшуюся сумму после двух возвратов и проверяем повторную загрузку и итог отчёта.

Часть заказа возвращается в коробку, рядом лежит чек с отделённой частью; бумажная концептуальная иллюстрация частичного возврата.

После частичного возврата передавайте в Google Ads оставшуюся ценность покупки. Если заказ был на 600 BYN, а покупателю вернули 150 BYN, новая ценность — 450 BYN. Сумма возврата 150 BYN и изменение −150 BYN решают другую задачу: ими нельзя заменять итоговую ценность конверсии.

Чтобы корректировка не уменьшила результат дважды, свяжите возврат с исходным заказом, проверьте тип изменения и сохраните версию отправленных данных. Ниже — протокол для покупки, уже записанной тегом Google Ads с идентификатором транзакции. Допуск корректировок для целей, импортированных из других источников, проверяют отдельно; наличие refund в другой системе ещё не подтверждает нужный результат в Ads.

Выберите изменение ценности или полный отзыв

Google различает два действия: изменение ценности сохраняет число конверсий, полный отзыв убирает конверсию из счётчика и обнуляет её ценность. Для частичного возврата с положительным остатком подходит изменение ценности.

СитуацияДействие в файловом шаблонеЧто должно остаться
Вернули часть заказаRESTATEТа же покупка с новой положительной ценностью
Покупку нужно полностью исключить из результатовRETRACTПокупка удалена из числа конверсий, её ценность — ноль
Возврат ещё не подтверждёнПока не отправлять корректировкуИсходная запись и задача на проверку

Отзыв и изменение до нуля требуют отдельной проверки: последующие корректировки такой конверсии Google игнорирует. Не обнуляйте ценность на время спора с клиентом. В API названия типов отличаются: RESTATEMENT и RETRACTION; не переносите их автоматически в файловый шаблон с RESTATE и RETRACT.

Если вы передавали в качестве ценности маржинальный доход или условную оценку лида, вычитать сумму денежного возврата напрямую нельзя. Сначала пересчитайте ту же бизнес-величину по исходному правилу. Этот пример использует стоимость покупки; общая связь ценности с результатом бизнеса разобрана в юнит-экономике рекламы.

Соберите журнал до файла импорта

Для каждого изменения сохраните исходный ID заказа, действие-конверсию, первоначальную ценность и валюту, ID возврата, подтверждённую сумму возврата, время изменения и новую ценность. Отдельно храните состояние обработки: подготовлено, отправлено, отклонено или проверено в отчёте.

ID заказа должен совпадать с исходной конверсией. Допишите к нему суффикс — и вы уже потеряете прямую ссылку на нужную покупку. Время изменения тоже имеет смысл: по правилам файловой загрузки оно должно быть позже конверсии и раньше загрузки. Название действия должно совпадать с настройкой аккаунта.

Внутренний refund_id защищает ваш расчёт от повторного вычитания одного возврата. Это поле журнала, а не дополнительная колонка для Google: берите свежий шаблон в аккаунте и переносите только предусмотренные им поля.

Учебный пример: два возврата по одному заказу

Все события и суммы вымышлены. В локальном управленческом журнале используются BYN; это не описание реального рекламного аккаунта. Для рабочего импорта сохраняйте исходную валюту конверсии и проверяйте формат своего действия.

Есть три покупки одного действия: A — 600 BYN, B — 200 BYN, C — 300 BYN. Первоначальная ценность — 1 100 BYN. Затем по A подтвердили два разных возврата, по B — полный; C остался без изменений.

Событие журналаРезультат локальной проверкиПодготовленное изменение
A, возврат R-A1 на 150 BYNОстаток 600 − 150 = 450RESTATE, новая ценность 450
A, возврат R-A2 на 50 BYNОстаток 600 − 150 − 50 = 400RESTATE, новая ценность 400
Повтор R-A2 с теми же даннымиВозврат уже учтёнНовую строку не создавать
B, возврат R-B1 на 200 BYNПолный отзыв подтверждёнRETRACT, без новой положительной ценности

Второе изменение по A содержит 400 BYN. Повторно отправить 50 или вычесть 150 ещё раз — значит исказить итог. Определение поля новой ценности прямо использует значение после изменения, а для следующего изменения требует более позднее время.

Учебный заказ A: после возврата 150 из 600 BYN новая ценность равна 450 BYN, после ещё 50 — 400 BYN.

Два разных возврата меняют остаток последовательно. Повтор одной записи не становится третьим возвратом.

Контрольный итог после этих событий — 400 + 0 + 300 = 700 BYN. В упрощённой модели трёх целиком учтённых покупок число конверсий уменьшается с трёх до двух: частичный возврат A сохраняет покупку, полный отзыв B убирает её. Это локальная проверка учебного набора; реальный агрегат зависит также от выбранных колонок и атрибуции.

При неизменном учебном расходе 200 BYN отношение ценности к расходу меняется с 1 100 / 200 = 5,5 до 700 / 200 = 3,5. Полученная разница не доказывает ухудшение новой рекламы: уточнился результат прежних покупок.

Проверьте очередь изменений перед загрузкой

Остановите строку, если исходный заказ не найден, валюта не совпадает, сумма возвратов превышает первоначальную ценность или время нового изменения не позже предыдущего. Одинаковый refund_id с другой суммой — конфликт данных, а не повод выбрать последнюю строку без проверки.

Минимальная арифметика для двух частичных возвратов воспроизводится без внешних библиотек:

from decimal import Decimal as D

original = D("600")
refunds = [("R-A1", D("150")),
           ("R-A2", D("50")),
           ("R-A2", D("50"))]
seen = {}
for refund_id, amount in refunds:
    if refund_id in seen:
        assert seen[refund_id] == amount
        continue
    assert amount > 0
    seen[refund_id] = amount
    value = original - sum(seen.values(), D("0"))
    assert value > 0  # полный отзыв — отдельное решение
    print(refund_id, value)

Результат — две строки: R-A1 450, R-A2 400. Код проверяет учебный расчёт; он не отправляет данные в Ads и не подтверждает наличие исходной конверсии. Для рабочего процесса нужны также журнал уже принятых изменений и проверка конфликтующих версий.

Перенесите проверенные строки в актуальный шаблон

Скачайте в аккаунте свежий шаблон корректировок. Для изменения заполните исходный ID заказа, название действия, время, RESTATE, новую ценность и валюту; для отзыва — RETRACT. Новые конверсии и корректировки загружайте отдельно.

Google рекомендует ждать минимум 24 часа после исходной конверсии. Допустимый срок загрузки и влияние на ставки сверяйте для своего сценария в актуальной справке.

Для технического повтора сохраняйте ID заказа, действие, время и состав данных: Google использует эти ключи для распознавания повторов. Новое подтверждённое изменение получает более позднее время.

Примите результат в отчёте

Сохраните файл, время загрузки и результат обработки каждой строки. Если исходная конверсия не найдена, проверьте ID и действие; не создавайте вторую покупку ради устранения ошибки корректировки.

Затем сравните один и тот же период и действие до и после обработки. Сегмент корректировок Google Ads позволяет увидеть исходные значения и внесённые изменения. Для учебного набора ожидается уменьшение ценности на 400 BYN и отзыв одной покупки. Успешная загрузка файла и совпадение этих контрольных величин — разные доказательства.

В управленческой таблице выберите один маршрут: исходная ценность минус подтверждённые возвраты либо уже исправленная ценность из Ads. Если взять исправленные 700 BYN и снова вычесть 400 BYN возвратов, получится ошибочная сумма 300 BYN.

Правило учёта возвратов и состав расходов закрепите в основном разборе экономики рекламы. Если изменения затрагивают закрытый период, сохраните новый снимок по протоколу пересчёта прошлых конверсий. Перенос самого импорта на новый транспорт решает отдельный материал о Data Manager API: поля его новых событий не заменяют шаблон корректировок.

Источники

Материал подготовлен редакцией WiseLab с помощью AI. Источники и фактические утверждения проверены при подготовке.

Загружаем рейтинг…

Насколько полезен материал?

Выберите оценкуСлева — меньше пользы, справа — больше

Загружаем вашу оценку…

Что думаете?

Загружаем комментарии…

СЛЕДУЮЩИЙ ШАГ

Что ещё поможет в этой задаче

СтатьяАналитикаРеклама24 октября · 7 минут
Картотека товаров и лист выгрузки с пустыми ячейками и несовпадающими карточками — концептуальная иллюстрация сверки полноты каталога.

Как найти товары, которые не попали в YML-выгрузку

Сверка исходного каталога с YML по offer id: как найти пропуски и лишние записи, посчитать покрытие и передать разработчику воспроизводимый результат.

Читать разборЗагрузка просмотров
СтатьяАналитикаРеклама22 октября · 7 минут
Бумажный отчёт с поисковыми значками частично закрыт непрозрачной обложкой; линейка под ним показывает весь документ.

Как сверить расход кампании Google Ads с отчётом поисковых запросов

Сверяем границы двух отчётов, считаем покрытие расхода и неизвестный остаток; учебный пример показывает, почему 21,4% видимой части не описывают весь бюджет.

Читать разборЗагрузка просмотров
СтатьяАналитикаРеклама25 октября · 6 минут
Две бумажные карточки: настройки ключевого слова и наблюдение через лупу; концептуальная иллюстрация двух полей соответствия.

«Точное» в отчёте запросов Google Ads: как проверить настройку ключа

Как разделить тип соответствия запроса и настройку ключевого слова, сопоставить две выгрузки и проверить распределение расходов на учебном примере.

Читать разборЗагрузка просмотров