adjust предлагает продвинутую и надежную систему отправки постбэков в реальном времени. Постбэки (Callbacks) позволяют в реальном времени синхронизировать данные adjust с вашим сервером или системой бизнес аналитике.

Поcтбэки adjust предоставляют данные в реальном времени на каждый клик, установку и даже событие внутри приложения. Постбэки можно настроить на отправку как для органического, так и для рекламного трафика. Все эти данные принадлежат Вам, и вы можете попросить adjust отправлять их куда угодно.

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

1Терминология

  • callback или postback : установленный вызов adjust сервера к вашему серверу при определенном событии
  • callback / postback URL : URL указывающий на место в вашем сервере куда отправить данные
  • placeholder : инструкция к adjust серверу для того чтобы вставлять конкретные данные в конкретное место
  • parameter : значение добавленное к URL для передачи данных
  • endpoint : конкретное место на вашем сервере
  • encoding : замена чувствительных символов в URL на безопасные альтернативы
  • GET : стандартный тип запроса к сети с определенным синтексем

2Добавление постбэка в контрольную панель adjust

Вы можете добавить постбэки Events screen в контрольной панели. Если вы наведёте мышку на одну из строк, появится надпись “Add Callback” или кнопка “Edit”, вы можете кликнуть на них, тем самым открыв окно Add Callback.

Просто добавьте URL необходимого сервера, вместе с параметрами, заполненными с помощью доступных плейсхолдеров. К примеру, на каждую установку вы хотите отправлять постбэк на этот адрес http://myserver.com/register/, вместе с этим вам необходимо получить IDFA, timestamp и tracker name каждой установки для этого необходимо в URL добавить следующее:

http://myserver.com/register/?idfa={idfa}&timestamp={created_at}&source={tracker_name}

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

Вы можете изменить структуру ссылки используя плейсхолдеры и обычный запрос GET, к примеру:

http://myserver.com/register/{tracker_name}/{idfa}/?data={created_at}

В тоже время, ваши собственные SDK параметры буду предопределены синтаксем GET. POST запросы сейчас не поддерживаются для отправки постбэков.

Вы можете добавлять несколько постбэков, разделяя их URLs пробелами.

3Лучшая практика: Внешний доступ к атрибутивным данным adjust

Во многих случаях вы захотите использовать данные adjust вместе с данными из других источников, такие как аналитика внутри приложений, внутренние записи пользователей, расширенная система BI.

Первоначально вам необходимо определить или разработать адрес сервера для постбэков. Ваши данные должны отправляться на ваш сервер, где будут записаны значения параметров. Это может быть, как простой серверный скрипт, который просто записывает параметры в базу данных, так и более продвинутое решение, которое будет сразу же делать разного рода вычисления.

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

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

Представим, что вам необходимо связать ваши внутренние Ids пользователей с атрибутивными данными adjust. Это позволит связать внутренние записи из разных источников, такие как сколько времени было проведено онлайн или более детальный патерн покупки. Представьте, что отвечаете на эти вопросы в ходе собственного анализа:

  • Ваши пользователи были получены по определённому демографическому признаку или есть вероятность, что они вернутся назад?
  • Пользователи, которые были ретаргетированы, были активны в онлайн -приложении до или после ретаргетинга на мобильных устройствах.

Скорее всего вам надо создать простой endpoint, который будет записывать одно действие пользователя и которое вы будете отправлятьть в свою систему. Вы можете добавить ID пользователя, как особенный параметр в вашем SDK, и определить постбэки в контрольной панели adjust для отправки ID устройства и имя трекера. В этом случае у вас появится возможность соединять внутреннее данные к каждой покупке, регистрации, достижения уровня или другие события, которые за которыми вы следите.

4Лучшая практика: Использование постбэка для награждения пользователей

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

Это можно отследить просто: кто-то приглашает друга через Facebook, по почте или чату, и хочет получить за это небольшую награду или скидку. adjust может объединять источники и приобретения с помощью постбэков. Вы даже можете пропускать свои данные через adjust для передачи монет, VIP статуса, или все что вы пообещали пользователю.

Пример:

  1. Один из ваших пользователей - Боб – использовал приложения, чтобы пригласить своего племянника Тома. Он был привлечен с помощью URL трекера adjust. Вы можете создать стандартный трекер в контрольной панели, к примеру, с ID “f0ob4r”, и добавить ID пользователя, в качестве структурного параметра. (Чтобы больше узнать о структуре кампанни и создании трекеров, пожалуйста прочитайте наш гайд Field Guide to Tracker Generation.
     https://app.adjust.com/f0ob4r?creative=[user_id]
     
  2. Ваше приложение заменяет [user_id] с ID Боба, и отправляет ссылку adjust по почте / SMS / чатом Тому. Когда Том кликает по ссылке, adjust прикрепляет клик Тома к инвайту Боба.

  3. Том устанавливает приложение, и adjust прикрепляет данную установку к Бобу. Ваш сервер получает постбэк с ID пользователя Боба (через плейсхолдеры {tracker_name} или {creative}).

  4. Том зарегистрировался, вы получаете постбэк с ID пользователя Боба, и ID пользователя Тома (через специальный параметр SDK).

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

Если у вас возникли какие-либо вопросы, связанные с настройкой описанного выше пожалуйста напишите нам на почту support@adjust.com.

5Рекомендации: Время постбэков, обратный ответ и оценка нагрузки трафика

Система постбэков в adjust работает в реальном времени. Когда любое событие оповещает нашу систему, мы проверяем были ли зафиксированы постбэки связанные с этим событием. Это включает в себя клиентские постбэки, любых активированных партнеров, любого источника траффика, который связан с нашим API для постбэков. (Для более детальной информации о том, какие данные партнеры могут получать через постбэк, ознакомьтесь с нашим гайдами Special Partners Guide или Network Integration Guide

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

Сервер для постбэков выполнит HTTP ответ на ваш endpoint, но не будет производить редирект, или пытаться повторно отправить постбэк если ему в ответ вернулся код ошибки, к примеру, такие как HTTP 500 или 400. В тоже время это поможет нашей службе поддержки при решении этой проблемы.

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

6Рекомендации: Добавление URL параметров

URL параметры это значения с определённым именем и синтексом, которое понимают большинство серверов. Стандартный синтекс GET выглядить вот так:

http://callbacks.myserver.com/path?parameter_one=value_one&parameter_two=value_two

После вашего URL, вы можете добавить параметры. Сразу же после знака вопроса, идет имя первого параметра, далее идет знак ровно и значение к примеру, “ip_address equals 192.168.1.1”. Следующие параметры разделены знаком аперсанда (&).

Вы можете добавить неограниченное количество параметров в URL, конечно если ваш сервер знает, как обработать их.

Если вы хотите добавить дополнительный параметр в URL, просто добавьте знак аперсанда после последнего значения, введите имя параметра и после знак ровно вместе со значением. Чаще всего вам понадобиться динамичные параметры. В таком случае пользуйтесь специальными плейсхолдерами - значения внутри скобок, они сообщают нашему серверу чтобы вставлять динамические значения:

http://callbacks.myserver.com/path?campaign=12346&tracker_name={tracker_name}&idfa={idfa}

Важно понимать особенное значение знака вопроса и аперсанды. Если использовать эти знаки в неправильном месте, то постбэк будет отправлятся неправильно. Ознакомьтесь с разделом Кодировка, чтобы узнать подробнее.

Если у вас возникли проблемы с получением правильного значения проверьте следующее:

  • Особенные значение расположены в правильном месте и закодированы;
  • Нет закодированных или специальных символов, которые были заменены пробелом или аперсандой;
  • Имя плейсхолдера введено правильно, как в соответствующем разделе;
  • Необходимый плейсхолдер, доступен для этого типа постбэка (к примеру, постбэк на клик не может отправлять ID устройства);
  • Все параметры написаны правильно.

Порядок параметров не имеет значения.

7Рекомендации: Особенные параметры SDK

В некоторых случаях, вы захотите расширить объём данных, которые можно посмотреть в adjust, это можно сделать с помощью дополнительных параметров доступных в SDK. У нас существуют особенные параметры. Они отправляются с нашего SDK на ваш сервер, а затем на наш endpoint.

Особенные параметры устанавливаются в приложение прикрепляя обозначение параметра к вызову trackEvent в приложении. Для более детального примера, как настроить эти вызовы ознакомьтесь с руководством по интеграции нашего SDK.

К примеру, представьте, что вы отправляете ID пользователя как особенный параметр с SDK прикрепленный к событию покупки, к примеру ‘отслеживать покупку от пользователя 123456’. Вы также должны указать URL для отправки постбэка в вашей контрольной панели, к примеру:

http://myserver.com/revenue/?tracker={trackerName}

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

Параметр не надо указывать в контрольной панели. Особенные параметры автоматически добавляться к любому URL в контрольной панели. Ключи указанные в SDK будут использованы в качестве параметра и значение будет указано такое же как как значение в ключе.

В таком случае, каждый раз когда adjust отслеживает событие связанные с покупкой вы немедленно получите постбэк следующего вида:

http://myserver.com/revenue/?tracker=name_of_the_tracker_encoded&userID=123456

Сервер adjust добавляет правильный разделитель и синтекс, в независимости от имени и пути к endpoint.

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

Имейте в виду, что данные параметры можно прикреплять к post-install ивентам. Так как пользователь не может сделать какие-либо действия до установки, редко бывает много параметров, которые можно передать во время установки, и скорее всего они уже доступны среди наших стандартных плейсхолдеров.

8Рекомендации: Кодировка

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

Если вы добавляете статические параметры в поле постбэка в контрольной панели, убедитесь, что он не содержит что-то отличное от букв и цифр, а в случае если спец символы присутствуют, убедитесь, что они закодированы. Плейсхолдеры adjust обычно используют фигурные скобки ({ или }) они не должны быть закодированы. К примеру, вы должны, закодировать пробелы перед тем как вставлять их в поле постбэка. В интернете вы можете с легкостью найти инструменты для кодировки URL.

Только содержимое должно быть закодировано, структура URL должна иметь раскодированный вид:

Небезопасный URL 		http://callbacks.myserver.com/registration?username=Bob Uncle&email=bob.uncle@mail.com&website=http://www.bobuncle.com
Закодированный URL 		http://callbacks.myserver.com/registration?username=Bob%20Unclde&email=bob.uncle%40mail.com&website=http%3A%2F%2Fwww.bobuncle.com

Многие сервера и системы могут раскодировать входящие URL параметры по умолчанию. Убедитесь, что ваш сервер также поддерживает такую возможность, то того как настраивать постбэки.

Особенные параметры из SDK также должны быть закодированы и раскодированы при получении сервером

9Рекомендации: Доступные плейсхолдеры

Вы всегда можете найти последний список передаваемых данных на our website.

10Фильтрация или изменение постбэков по условию

Используя плейсхолдеры, вы можете определять условие для постбэков и и изменять всю ссылку постбэка в зависимости от значений, передаваемых в плейсхолдерах. К примеру, мы можем фильтровать постбэки в зависимости от окружения (событие идет из продакшена или песочницы), типа девайса или любого другого доступного плейсхолдера.

Этого можно достичь добавив следующий префикс к каждому постбэку equal,{placeholder},value,callback, заменив placeholder, expected value и callback. К примеру, добавив постбэк ниже вы будете отсылать события из песочницы на тестовый сервер, а события из продакшена на продакшен сервер:

equal,{environment},sandbox,http://test.your-server.com?source={tracker_name} equal,{environment},production,http://production.your-server.com?source={tracker_name}

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

Вы даже можете связывать вместе несколько событий:

equal,{environment}{device_type},sandboxtablet,http://test.your-server.com?source={tracker_name} equal,{environment}{device_type},productiontablet,http://production.your-server.com?source={tracker_name}

Операторы кроме equal работать не будут.