Postback для медийных размещений
1. Введение
Различают два типа вызова сервиса postback:
- client - server
- server - server
Клиент - серверный вариант используется в случаях когда действие пользователя приводит к цели, при этом пользователь в этот момент взаимодействует со страницей (примером этого может служить вариант, когда цель - это заполнение формы регистрации). При такой схеме работы однозначно понятно, достигнута ли цель.
Сервер - сервер вариант используется для случаев когда пользователь не взаимодействует со страницей, в момент достижения цели (пример такой ситуации, когда целью считается подтвержденный заказ, то есть перед тем как произойдет достижение цели оператор call центра должен позвонить пользователю и в этот момент пользователь ни как не взаимодействует со страницей). При такой схеме сервер рекламодателя взаимодействует с сервером TerraTraf передавая идентификатор показа.
Основная суть postback вызова заключается в уведомлении о достижении цели. Весь трафик который присылает TerraTraf содержит в get параметрах уникальный идентификатор показа, в большинстве своем он называется s_trk. Что бы избежать коллизий с другими передаваемыми параметрами, TerraTraf может назвать этот параметр любым именем.
Для того, что бы проинформировать о достижении цели, необходимо вернуть TerraTraf get параметр s_trk, пользователя совершившего целевое действие.
Для клиент - серверного варианта можно хранить ключ в куке и читать ее в момент совершения целевого действия.
Для сервер - сервер варианта, требуется хранить сопоставление id пользователя, по которому идентифицируются пользователи и ставить ему в соответствие значение s_trk.
2. Пример postback ссылки
//Обычный лид
https://pb.terratraf.io/?type=accept&pid={partner_ID}&offer_id={offer_id}&plus={revenue}&s_trk={s_trk}&trans_id={trans_id}¤cy={currency}&s_leadid={s_leadid}
//Подтвержденный лид
https://pb.terratraf.io/?type=lead&pid={partner_ID}&offer_id={offer_id}&plus={revenue}&s_trk={s_trk}&trans_id={trans_id}&s_leadid={s_leadid}
Возможен модификатор для типа лида:
- type=accept - Пишется в поле lead
- type=lead - Пишется в accept
- type=decline - Пишется в unlead
| Макрос | Описание |
|---|---|
{partner_ID} | Идентификатор партнера в системе MediaSniper. Стандартно можно использовать site_{site_name} где {site_name} для test.ru - testru. То есть в конечном варианте site_testru |
{revenue} | Стоимость лида. Если это тестовая кампания, или стоимость лида не оговаривалась отдельно, можно передавать “1”. Также число, переданное в этом поле, может быть не целым, для этого используется разделитель “.” Например: “154.32”. Подразумевается, что валюта рубли. |
{offer_id} | Идентификатор оффера в рамках партнера. Если офер один, то можно передавать в это поле “1”, если оферов больше, то можно передавать их идентификатор или текстовое название. |
{s_trk} | Значение get параметра s_trk, присвоенное пользователю. Пример s_trk: ChRhZHA0WncRerU-EeSLfgElkJWCShCpsuuqDBjNw4OnBSDkw4OnBQ |
{trans_id} | Уникальный номер транзакции. Если транзакции отдельно не отслеживаются, то в это поле можно передать Unix Time Stamp |
{s_leadid} | Идентификатор лида. В основном этот get отсутствует, добавляется только в случае, если надо отслеживать несколько типов лидов. Алфавит a-zA-Z0-9_- |
{currency} | Валюта, в которой передается лид. Считается по курсу ЦБ РФ и конвертируется в рубли. (это необязательное поле и может быть пропущено, в этом случае конвертация производиться не будет) |
3. Описание механики работы постбэка
TerraTraf имеет агрегированную статистику и поэтому не может изменять статус лида. Поддержка актуальности осуществляется путем хранения статусов lead / unlead. Таким образом когда в CPA создается лид в статусе hold для TerraTraf, это принятый лид. Если в CPA этот лид был принят, то TerraTraf ни как не обрабатывает эту ситуацию, если в CPA лид был отклонен то TerraTraf создаст еще одну запись со статусом лида unlead. Таким образом при расчете профита от CPA из суммы лидов со статусом lead вычитается сумма лидов со статусом unlead.
Пример работы для оффера с автопринятием:
Если для оффера не существует такого понятия как холд / принятие / отклонение, то есть все лиды сразу считаются принятыми, но CPA имеет три поля для настроки: lead / hold / reject то должно быть заполнено только поле lead.
При передаче данных тип должен быть установлен следующим образом type=lead при такой передаче данные сразу попадут в столбце принятых лидов.
Пример работы для оффера с различными состояниями:
Если для оффера существуют три состояния hold / lead / reject. То в СС нужно передавать type=accept, когда лид в CPA находиться в состоянии hold. То есть как только лид создался в CPA, СС получит информацию и о лиде и сможет его обработать. При принятии лида в CPA в СС не надо отправлять информацию, так как если повторно отправить то же самое лид может задвоиться. При отклонении лида в CPA в СС надо отравить type=decline, для того что бы СС понял, что надо засчитать этот лид как отклоненный.
4. Особенности подсчета статистики
TerraTraf записывает статистику по 2м различным событиям: времени клика (lead) и времени прихода лида (lead now). Такая статистика позволяет считать доход и по времени совершения клика пользователя и по времени совершения действия. Это необходимо для того что бы решить вопрос подсчета прибыли, представим ситуацию когда рекламная кампания была запущена 1 день:
| Дата | Показы | Клики | Lead | Lead Now | eCPM (lead) | eCPM (lead now) |
|---|---|---|---|---|---|---|
| 01.08.ХХХХ | 10000 | 100 | 100 | 0 | 10 | 0 |
| 02.08.ХХХХ | 1 | 1 | 0 | 100 | 0 | 100000 |