Принцип работы автосверки через postback схож с автосверкой через XML, но в данном случае ваш сервер сам отправляет запрос с данными об обработанных действиях серверу Admitad. Такой способ считается более защищенным и потому популярен среди финансовых программ.
О том, что такое «сверка» и «автосверка», читайте в этой статье.
При автосверке через postback данные в статистике Admitad обновляются оперативнее, поскольку запрос отправляется в момент изменения статуса действия или каждые 2-3 часа (в зависимости от настроек автосверки), а не раз в день как при сверке через XML.
Сверять можно только заказы, находящиеся в ожидании на момент сверки.
Подтверждение заказа означает, что вы готовы выплатить веб-мастеру вознаграждение за этот заказ. После того как вы подтвердите заказ, веб-мастер может вывести вознаграждение из системы, поэтому настоятельно рекомендуем проводить все необходимые проверки по заказу до его подтверждения.
Сверять заказы можно 2 способами:
Сверка через подпись запроса
Этот способ удобен тем, что не требуется указывать IP-адрес. Он подойдет вам, если у вас динамический диапазон IP-адресов.
Для подписи запроса на сверку используется HMAC-SHA1 алгоритм для campaign_code и order_id (ваш номер программы и номер заказа одной строкой без пробелов и спецсимволов). Все строки должны быть в utf-8. Пример на Python 3.7.2/2.7 (IPython)
In [16]: import hmac In [17]: import hashlib In [18]: campaign_code = u'campaign_code'.encode('utf-8') In [19]: order_id = u'my_order_id_here'.encode('utf-8') In [20]: revision_secret_key = u'0123456789acbdef'.encode('utf-8') In [22]: revision_sign = hmac.new(revision_secret_key, campaign_code + order_id, hashlib.sha1).hexdigest() In [23]: print(revision_sign) '01ae14a1c4ef90e6ce48c65525833e3f8a1f0228' In [24]:
Необходимые параметры
Значения параметров campaign_code и revision_secret_key вы получите от сотрудников отдела трекинга в процессе настройки автосверки.
-
campaign_code — код программы (строка, 10 символов);
-
revision_secret_key — секретный ключ для сверки через запросы (строка, 40 символов);
-
revision_sign — выходная подпись (см. пример выше);
-
order_id — номер заказа (строка, 1-100 символов);
-
status — статус заказа, может принимать значения:
- pending — ожидает
- approved — одобрен
- declined — отклонен
-
amount — сумма заказа (дробное число, разделитель точка);
-
reward — вознаграждение веб-мастера (в виде дробного числа, в качестве разделителя точка);
- currency_code (необязательный) — валюта (трехбуквенный код) для значений в параметрах amount (сумма заказа) и reward (вознаграждение веб-мастера);
-
если вы не передаете currency_code, то по умолчанию для currency_code используется валюта, указанная в партнерской программе;
-
если вы передаете currency_code и валюта в нем отличается от валюты в программе, то суммы в параметрах amount (сумма заказа) и reward (вознаграждение веб-мастера) будут конвертированы в валюту программы по курсу в системе на дату регистрации целевого действия.
-
comment — комментарий к заказу, в нем обязательно указывать причину отклонения (строка, 0-30 символов).
Пример postback-запроса
https://ad.admitad.com/rp?campaign_code=8f803552ea& revision_sign=01ae14a1c4ef90e6ce48c65525833e3f8a1f0228&order_id=&status=&comment=
Сверка через ключ и IP-адрес
Необходимые параметры
Значения параметров campaign_code и revision_key вы получите от сотрудников отдела трекинга в процессе настройки автосверки. Сообщите IP-адрес или список адресов, с которых будут приходить запросы.
-
campaign_code — код программы (строка, 10 символов);
-
revision_key — ключ авторизации для сверки через запросы (строка, 32 символа);
-
order_id — номер заказа (строка, 1-100 символов)
-
status — статус заказа, может принимать значения:
- pending — ожидает
- approved — одобрен
- declined — отклонён
-
amount — сумма заказа (дробное число, разделитель точка);
-
reward — вознаграждение веб-мастера (в виде дробного числа, в качестве разделителя точка);
- currency_code (необязательный) — валюта (трехбуквенный код) для значений в параметрах amount (сумма заказа) и reward (вознаграждение веб-мастера);
-
если вы не передаете currency_code, то по умолчанию для currency_code используется валюта, указанная в партнерской программе;
-
если вы передаете currency_code и валюта в нем отличается от валюты в программе, то суммы в параметрах amount (сумма заказа) и reward (вознаграждение веб-мастера) будут конвертированы в валюту программы по курсу в системе на дату регистрации целевого действия.
-
comment — комментарий к заказу, в нем обязательно указывать причину отклонения (строка, 0-30 символов).
Пример postback-запроса
https://ad.admitad.com/rp?campaign_code=8f803552ea& revision_key=3b9e06d28835AA872AE9cb6fc1186d1E&order_id=&status=&comment=
Тестирование
По окончании настройки обязательно проводится тестирование. Сотрудники Admitad делают два тестовых заказа, вы должны подтвердить один из них, изменив сумму заказа, а второй отклонить с комментарием. Если данные загрузились корректно: к соответствующим заказам, статусы верные, сумма заказа скорректирована, присутствует комментарий — тестирование считается успешным, и сотрудники отдела трекинга запускают автосверку.
Уведомления об ошибках
При отправке запроса в качестве ответа приходит JSON с результатами валидации запроса:
- в случае успеха {"success":true}, "message": "request is processing". Статус говорит о том, что запрос прошел предварительную валидацию, но может быть отклонен на внутренней проверке.
- в случае отклонения запроса {"errors":["length revision_key must be no more than 32"],"success":false}, в errors будут указаны причины отклонения.
По возможности настройте на своей стороне уведомление на ответ, содержащий {“errors”} с логированием этих ответов. Если ошибки начнут появляться, сообщите вашему менеджеру в Admitad.