API внешних офферов используются в работе постбеков для внешних интеграций и подключении приложений. С помощью них можно создать лид по клику, поменять его статус, узнать данные оффера и потока, вытащить ID клика в приложении.
Авторизация
За авторизацию в API сайтов отвечает параметр token. Он бывает двух видов:
- Токен сайта. Состоит из ID сайта и ключа сайта через дефис. Например,
123-abcde. Для работы подходит токен любого сайта в рамках оффера — они равнозначны. - Глобальный токен. Его можно найти в разделе «Управление — Настройки — Сайты», блок «Технические настройки», параметр «Глобальный ключ API». С его помощью можно работать с любыми сайтами. Полезен при создании глобальных постбеков.
Какой вариант авторизации выбирать — зависит от вашей ситуации. Рекомендуется по возможности использовать токен сайта, а глобальный применять только в редких случаях.
Создание лида
Функция предназначена для создания нового лида по ID клика. Может работать с кликами, потоками и внешними ID. Итогом работы будет новый лид. Параметры могут передаваться как в GET, так и в POST-части запроса.
URL: https://domain.com/api/site/click.json?token=123-abcd&click={subid}
Настраиваем ID клика
Функция может использовать эти параметры для понимания источника перехода:
click— идентификатор клика внутри AlterCPA.exto— уникальный идентификатор заказа на стороне целевой сети.flow— числовой идентификатор потока в AlterCPA.code— символьный код потока в AlterCPA.
Какие сочетания можно использовать:
click— классическое создание лида по ID клика.click+exto— создание лида по клику с защитой от дублей и удобным редактированием.flow— создание лида по ID потока без возможности дальнейшего редактирования.code— создание лида по символьному коду потока, например, из названия рекламной кампании внутри приложения, без возможности дальнейшего редактирования.flow+extoилиcode+exto— создание лида по потоку с возможностью редактирования после.
При работе с SOI-постбеками вам нужно только создание лида, дальнейшее редактирование не обязательно. В этой ситуации уникальным ID можно пренебречь.
Добавляем статус
По умолчанию лид создаётся в статусе «Новый». При необходимости, вы можете сразу же создавать лид в требуемом статусе. Полезно для SOI-трафика, когда лид создаётся уже подтверждённым.
Функция может принимать следующие переменные для работы со статусами:
status— символьное значение статуса, анализируется автоматически.accept=1— принять лид (псевдоним status=approve).stid— числовой идентификатор статуса AlterCPA.reason— числовой код причины отказа.
При отправке статуса лида через параметр status, его распознавание происходит автоматически. Вы можете передавать ID статуса и причины отказа напрямую в stid и reason. Но удобнее обойти автоматику распознавания, напрямую указав в параметрах запроса, какие именно статусы считать аппрувом, отменой или трешем.
sta— статус, распознаваемый как аппрув.stc— статус, распознаваемый как отмена заказа.stt— статус, распознаваемый как треш.sth— статус, распознаваемый как заказ в холде.stw— статус, распознаваемый как заказ в обработке.stn— статус, распознаваемый как новый заказ (создаёт лид вместо изменения статуса).
При необходимости, вы можете указывать не один статус, а сразу несколько через запятую. Если совпадений не обнаружится, статус будет распознаваться автоматикой.
Важно! Очень часто сети используют название hold для обозначения простого ожидания заказа, поэтому необходимо напрямую указывать stw=hold, чтобы лид не улетел в холд и аппрув.
Добавляем отчисления
Отчисления можно получать напрямую через API. За это отвечают параметры:
wm— сумма отчисления за лид для вебмастера и рекламодателя.cc— валюта суммы отчисления.pd— комиссия партнёрской сети в валюте отчисления (положительная цифра уменьшит отчисления вебмастера изwmна указанную сумму, отрицательная — увеличит отчисления рекламодателя).pp— комиссия партнерской сети в процентах, работает аналогичноpd.pay— сумма отчисления только для рекламодателя.
В реальной работе рекомендуется использовать два сочетания:
wm+cc— указание отчисления и валюты для всех сразу. Комиссия при этом настраивается через механизм ручных отчислений внутри оффера.pay+cc— указание отчисления рекламодателя. Отчисление для вебмастера при этом подсчитывается по настройкам внутри оффера.
Использование pd и pp в реальной работе не рекомендуется, поскольку они исключают возможность гибкой настройки различной комиссии для разных вебмастеров.
Добавляем цель
При работе с офферами, у которых созданы расширенные цели, рекомендуется передавать цель через API в момент создания или изменения лида. За работу с целью отвечают два параметра:
goal— символьный идентификатор цели.gid— числовой идентификатор цели.
Рекомендуется использовать символьный идентификатор цели. Вы можете настроить цели так, чтобы символьные идентификаторы на стороне AlterCPA совпадали с идентификаторами на стороне целевой сети. Если целевая сеть использует разные символьные идентификаторы для одной и той же цели, вы можете добавить их в список псевдонимов при настройке цели в оффере.
Дополнительные параметры
Эти параметры применяются достаточно редко. Их применение зависит от задачи.
name— имя покупателя.phone— телефон покупателя.email— адрес электронной почты.country— двухбуквенный ISO-код страны.base— цена единицы товара или цена конверсии (не отчисление!).curr— числовой идентификатор валюты в рамках платформы.currency— трёхсимвольный ISO-код валюты.count— количество товара в заказе.comment— комментарий к заказу.mobile— тип трафика (мобильный или десктоп).bad— если установлено в 1, трафик помечается некачественным.time— время создания лида в формате UNIX timestamp.
В параметре mobile можно передавать значения:
- Десктоп: 0, dsk, desk, desktop, pc, laptop.
- Мобильный: 1, mob, mobile, tablet, любое не пустое значение.
Планшеты считаются мобильным трафиком. Отдельной категории «Планшет» не существует. При необходимости работы с таким типом трафика, используйте цели.
Ответ функции
Функция выдаёт ответ в виде JSON-объекта со следующими полями:
status—okв случае успеха иerrorв случае ошибки.id— идентификатор лида в AlterCPA.error— код ошибки.
При работе функции могут возникать такие ошибки:
auth— проблема с авторизацией, проверьте токен.no-idилиbad-id— не удалось найти ID клика или потока.traffic— трафик на оффер запрещён настройками приватности.duplicate— дублированный лид.db— системная ошибка при работе с базой.
Вы можете сохранить ID лида в приложении для дальнейшего редактирования. Не используйте наличие поля id для определения успеха, проверяйте именно по status=ok. Ошибка дубликата также выдаёт ID лида, но это будет идентификатор оригинала.
Пример успешного ответа функции:
{ "status": "ok", "id": 1234 }
Пример ошибки:
{ "status": "error", "error": "duplicate", "id": 1234 }
Изменение статуса лида
Функция предназначена для изменения статуса ранее созданного лида. Может работать с кликами, заказами, потоками и внешними ID. Итогом работы будет лид в указанном статусе. Параметры могут передаваться как в GET, так и в POST-части запроса.
URL: https://domain.com/api/site/status.json?token=123-abcd&click={subid}&status={status}
Настраиваем ID клика
Функция может использовать эти параметры для понимания источника перехода:
click— идентификатор клика внутри AlterCPA.exto— уникальный идентификатор заказа на стороне целевой сети.order— идентификатор лида внутри AlterCPA.flow— числовой идентификатор потока в AlterCPA.code— символьный код потока в AlterCPA.
Какие сочетания можно использовать:
click— классическое изменение лида по ID клика, работает только с одним лидом.click+exto— изменение лида по клику с возможностью работы с несколькими лидами с одинаковым ID клика.order— изменение лида по его ID, полученному при создании.flow+extoилиcode+exto— изменение лида по потоку (ID или коду).
Обязательно используйте идентичное сочетание параметров при создании и редактировании лида. Если вы создаёте лид без указания exto, а редактируете его уже с указанием exto, вы получите ошибку.
Если лид не нашёлся
Иногда постбек на создание лида теряется. В такой ситуации функция не сможет найти нужный лид и завершится с ошибкой. Существуют два пути обхода этой проблемы.
- Добавьте
auto=1в запрос. В этой ситуации потерянный лид будет создан автоматически и переведён в нужный статус. - Используйте в запросе
stn=newс указанием статуса, который считать новым заказом. Это позволит использовать единый постбек и для создания, и для изменения лида.
В чём отличие stn=new от auto=1? При использовании параметра stn лид создаётся только в том случае, если статус совпадает с указанным в stn и попадает в статус «Новый». При использовании auto лид будет создан сразу в нужном статусе, если не был найден другой лид с тем же ID клика.
Статусы, отчисления, цели и другие поля
Функция использует те же поля для работы со статусами, отчислениями, целями и дополнительными полями, что и создание лида. Обратитесь к документации выше.
Ответ функции
Функция выдаёт ответ в виде JSON-объекта со следующими полями:
status—okв случае успеха иerrorв случае ошибки.id— идентификатор лида в AlterCPA.error— код ошибки.
При работе функции могут возникать такие ошибки:
auth— проблема с авторизацией, проверьте токен.no-idилиbad-id— не удалось найти лид по указанным ID.db— системная ошибка при работе с базой.edit— лид уже пребывает в нужном состоянии, изменять нечего.
Пример успешного ответа функции:
{ "status": "ok", "id": 1234 }
Пример ошибки:
{ "status": "error", "error": "edit" }
Получение клика
Функция позволяет получить идентификатор клика посетителя по его IP-адресу, офферу и потоку. Итогом работы будут данные клика. Параметры могут передаваться как в GET, так и в POST-части запроса.
URL: https://domain.com/api/site/fetch.json?token=123-abcd&offer={offer}
Предполагаемый кейс: редирект-сайт перенаправляет на страницу установки приложения в магазине. Сразу после установки и запуска приложение пытается получить ID клика, по которому был сделан переход. ID сохраняется для дальнейших запросов.
Параметры запроса:
offer— идентификатор оффера, нужен при работе с глобальным токеном.flow— числовой идентификатор потока для уточнения поиска.code— символьный код потока для уточнения поиска.ip— использовать указанный IP-адрес пользователя вместо определяемого автоматически.to— время, раньше которого не выполняется поиска клика, в формате UNIX timestamp. По умолчанию клики ищутся за последние сутки.
Функция выдаёт ответ в виде JSON-объекта со следующими полями:
status—okв случае успеха иerrorв случае ошибки.error— код ошибки.click— ID найденного клика.offer— ID оффера.site— ID сайта.flow— ID потока.geo— ISO-код страны клика.ip— IP-адрес клика.time— время клика в формате UNIX timestamp.utms— меткаutm_source.utmc— меткаutm_campaign.utmn— меткаutm_content.utmt— меткаutm_term.utmm— меткаutm_medium.customer— меткаcustomer.
При работе функции могут возникать такие ошибки:
auth— проблема с авторизацией, проверьте токен.no-click— не удалось найти клик по указанным критериям.no-offer— не задан ID оффера.
Пример успешного ответа функции:
{ "status": "ok", "click": 1234, "geo": "us" }
Пример ошибки:
{ "status": "error", "error": "no-click" }
Получение данных потока
Функция позволяет получить поток по его коду, ID или клику. Итогом работы будут данные потока. Параметры могут передаваться как в GET, так и в POST-части запроса.
URL: https://domain.com/api/site/flow.json?token=123-abcd&code={code}
Предполагаемый кейс: приложение после установки извлекает название рекламной кампании и использует его в качестве кода потока. После получения данных по ссылке потока открывается iframe или код потока используется для дальнейших постбеков.
Параметры запроса:
click— идентификатор клика.flow— числовой идентификатор потока.code— символьный код потока.
Функция выдаёт ответ в виде JSON-объекта со следующими полями:
status—okв случае успеха иerrorв случае ошибки.id— идентификатор найденного потока.code— символьный код потока.link— ссылка потока для перенаправления.offer— идентификатор оффера.site— идентификатор лендинга.space— идентификатор прелендинга.fb— ID пикселя Facebook.fbe— событие конверсии Facebook.ga— ID счётчика Google Analytics или Tag Manager.gad— символьный код конверсии Google Analytics.tt— ID пикселя Tik-Tok.lki— ID пикселя Likee.vk— ID пикселя VK.mt— ID счётчика MailTarget.mtrk— ID счётчика Yandex.Metrika.utms— меткаutm_source.utmc— меткаutm_campaign.utmn— меткаutm_content.utmt— меткаutm_term.utmm— меткаutm_medium.customer— меткаcustomer.
При работе функции могут возникать такие ошибки:
auth— проблема с авторизацией, проверьте токен.no-idилиbad-id— не удалось найти поток по указанным ID.
Пример успешного ответа функции:
{ "status": "ok", "id": 1234, "link": "https://r.domain.com/go1234" }
Пример ошибки:
{ "status": "error", "error": "no-click" }
Получение данных оффера
Функция позволяет получить оффер по его ID, потоку или клику. Итогом работы будут данные оффера. Параметры могут передаваться как в GET, так и в POST-части запроса.
URL: https://domain.com/api/site/offer.json?token=123-abcd&id={offer}
Параметры запроса:
offer— идентификатор оффера (рекомендуется).click— идентификатор клика.flow— числовой идентификатор потока.code— символьный код потока.
Функция выдаёт ответ в виде JSON-объекта со следующими полями:
status—okв случае успеха иerrorв случае ошибки.id— идентификатор найденного оффера.name— название оффера, которое можно показывать посетителю.geo— массив ISO-кодов поддерживаемых стран.param— массив параметров оффера.price— массив ценников по офферу.site— массив сайтов оффера.
При работе функции могут возникать такие ошибки:
auth— проблема с авторизацией, проверьте токен.no-idилиbad-id— не удалось найти оффер по указанным ID.