Интеграция InSales с Admitad
Настроили передачу конверсий в Admitad через Postback. Отправка при оплате заказа, отмена при возврате, сохранение меток в дополнительных полях InSales.
Задача
Магазин работает с партнерской сетью Admitad. Нужно было настроить передачу конверсий так, чтобы Admitad получал информацию только об оплаченных заказах.
Требования:
- Отправлять postback только при оплате
- Собирать click_id из трекинговой ссылки
- Отменять конверсию при возврате
- Помечать заказы как пришедшие с CPA
- Протестировать с командой Admitad
Что такое Admitad Postback
Postback — это HTTP-запрос от магазина к Admitad с информацией о конверсии. Когда заказ оплачен, магазин отправляет уведомление в партнерскую сеть.
Admitad получает данные о заказе и засчитывает конверсию вебмастеру, который привел покупателя.
Решение
1. Изучили документацию
Изучили официальную документацию Admitad по интеграции через Postback. Там описан формат запроса, обязательные параметры и примеры использования.
2. Сбор параметров из ссылки
Когда покупатель переходит по партнерской ссылке, в URL есть параметры utm_source, utm_campaign, click_id, wm_id.
https://maxmassage.ru/?
utm_source=admitad
&utm_medium=cpa
&utm_campaign=#wm_id#
&click_id=#click_id#
Написали скрипт, который сохраняет click_id при первом переходе. Данные хранятся в localStorage браузера покупателя.
3. Связь click_id с заказом
При оформлении заказа скрипт передает сохраненный click_id на сервер. В InSales создается заказ с этим параметром в дополнительном поле.
InSales не всегда корректно сохраняет utm-параметры, поэтому используем InSales API для записи click_id напрямую в поле заказа.
4. Отправка Postback
Когда заказ переходит в статус "Оплачен", сервер формирует Postback URL и отправляет GET-запрос в Admitad.
https://ad.admitad.com/r?
click_id={click_id}
&action_code=sale
&order_id={order_id}
&payment={order_total}
Параметры Postback
- click_id — ID клика в Admitad
- action_code — тип действия (sale)
- order_id — номер заказа в InSales
- payment — сумма заказа
5. Отмена конверсии
Если заказ возвращают или отменяют, отправляем еще один Postback с action_code=cancelled. Admitad получает уведомление и аннулирует конверсию.
Это важно для честной работы с партнеркой. Вебмастер получает деньги только за реально завершенные покупки.
6. Метки в заказах
Добавили в дополнительное поле заказа метку "admitad" + click_id. Менеджеры видят в карточке заказа, что он пришел с CPA-канала.
Это помогает для аналитики: можно отфильтровать все заказы с Admitad и посчитать статистику.
7. Тестирование
Координировали тестирование с командой Admitad через Telegram. Они давали тестовые ссылки, мы проверяли корректность передачи данных.
Что проверяли:
- Переход по тестовой ссылке
- Сохранение click_id в localStorage
- Оформление тестового заказа
- Отправка Postback при оплате
- Получение Postback на стороне Admitad
- Отмена заказа и отправка отменяющего Postback
Admitad подтвердил корректность работы. Все параметры передаются правильно.
Технические детали
Работа с localStorage
При переходе по партнерской ссылке JavaScript сохраняет click_id в localStorage. Данные доступны на всех страницах и не удаляются при закрытии вкладки.
Webhook на оплату
InSales отправляет webhook при смене статуса заказа. Ловим событие "статус изменен на Оплачен" и запускаем отправку Postback.
Защита от дублей
Система проверяет, не отправлялся ли уже Postback для этого заказа. Если отправлялся — повторно не отправляем.
Особенности InSales
InSales не имеет нативного поля "source" для заказов. UTM-параметры иногда теряются или перезаписываются.
Решили через API: при создании заказа добавляем в дополнительное поле метку источника. Это надежнее, чем полагаться на стандартное сохранение utm.
Результат
Интеграция работает корректно. Postback отправляется только при оплате, отмены обрабатываются.
Магазин видит источник каждого заказа в админке InSales. Можно отфильтровать заказы с Admitad и проанализировать эффективность канала.
Вебмастера получают корректную статистику. Конверсии засчитываются только по оплаченным заказам.
Атрибуция работает точно. Каждый заказ привязан к конкретному клику и вебмастеру.
Похожие кейсы
- Интеграция CDP Mindbox с InSales
- Интеграция CRM Neaktor с InSales
- Интеграция CityAds и магазина vsesoki.ru
- Интеграция InSales с программой лояльности UDS
- Бонусная система и подарочные сертификаты для ювелирного магазина