Краткий обзор: Используйте API межсерверных событий в вебе (веб-S2S), чтобы сообщать в PBA о событиях и конверсиях, о которых не сообщает веб-SDK.
API межсерверных событий в вебе для PBA
API веб-S2S для атрибуции People-Based дополняет веб-SDK, позволяя маркетологам сообщать о событиях, происходящих на их сайтах, но не входящих в сферу веб-SDK. Например, посетитель сайта (веб-пользователь) запускает событие онлайн-платежа, которое обрабатывается внутренними системами. После обработки бэкэнд, используя API S2S, сообщает о событии в AppsFlyer.
События, отправленные API S2S:
- регистрируются аналогично событиям, сообщаемым через веб-SDK,
- показаны на дэшбордах PBA, если они указаны как события конверсии,
- заполняют сырые данные PBA, где для поля event_source установлено веб-S2S.
Инструкции по использованию API
Создайте вызов API, используя следующие разделы.
| № | Элемент | Примечания |
|---|---|---|
| 1 | Уникальный идентификатор пользователя |
|
| 2 | Временная метка |
|
| 3 | Доходы и валюта | Вы должны заполнить eventRevenueCurrency и eventRevenue, даже если значения содержатся в eventValue. Сделайте это, потому что мы используем их на наших дэшбордах. |
Основы API
Для реализации API требуются следующие учётные данные, доступные на дэшборде:
- Идентификатор пакета (он же идентификатор пакета бренда)
- Веб-ключ разработчика
Чтобы получить учётные данные:
- В AppsFlyer в верхнем меню выберите Мои приложения > Просмотр пакетов брендов.
Отобразится список пакетов. - Скопируйте и запишите:
- Идентификатор пакета бренда
- Веб-ключ разработчика
Основы API веб-S2S
| Путь |
|
| HTTP-метод | POST |
| Принятый тип контента |
application/json |
| Ограничение размера JSON |
Размер полезной нагрузки JSON: не более 1 КБ |
| Ограничение предоставления данных |
Ограничение POST: 60 000 POST в минуту. Чтобы увеличить лимит, обратитесь к своему менеджеру. |
| TLS |
|
Метод setCuId
| Название метода |
setCuId |
| Пример |
О привязке CUID к посетителю вашего сайта. Например, каждый раз, когда вы сопоставляете веб |
| Путь к методу |
|
| Полезная нагрузка |
Полезная нагрузка JSON состоит из перечисленных здесь параметров. Все параметры являются обязательными. |
Пример Curl setCuId
curl --location --request POST 'https://webs2s.appsflyer.com/v1/bundleId/setcuid' \
--header 'Accept-Encoding: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
"customerUserId": "1234567890abcdef",
"afUserId":"9999999-f848-4963-a091-568f0bf9a361",
"webDevKey" : "99999999-9999-9999-9999-999999999999"}
Метод события
| Название метода |
event |
| Пример | Отправка |
| Путь к методу |
|
| Подробная информация | В разделе Описание метода события этой статьи содержится информация о полезной нагрузке, пример Curl, пример Python и рекомендации по тестированию. |
Описание метода события
Параметры полезных данных
Параметры полезной нагрузки делятся на идентификаторы пользователей и параметры событий.
- Идентификатор пользователя: Вы должны отправить хотя бы один параметр идентификатора пользователя.
- Событие: Отправьте обязательные параметры и необязательные по мере необходимости.
Параметры идентификатора пользователя (отправьте хотя бы один параметр)
| Параметр Идентификатор пользователя | Описание |
|---|---|
|
customerUserId |
Идентификатор клиента (CUID) — это уникальный идентификатор, установленный вами.
|
|
afUserId |
Уникальный идентификатор пользователя, присваиваемый веб-SDK каждому пользователю, который посещает ваш сайт. Вам нужно будет передать значение cookie на внутренние серверы.
|
Параметры события
| Название параметра | Обязательный | Описание |
|---|---|---|
|
webDevKey |
Да |
Заполните с помощью веб-ключа разработчика, доступного на дэшборде.
|
| eventType | Да |
Идентификатор атрибута события для внутреннего использования AppsFlyer. Всегда устанавливается на EVENT.
|
| eventName | Да |
|
| timestamp | Нет |
Время наступления события в миллисекундах. Отправьте в виде временной метки Unix, состоящей из 13 цифр.
|
| eventValue | Нет |
Сопоставление параметров события, описывающих событие. Используйте этот параметр для отправки расширенных внутренних событий приложения, таких как артикул товара, цена позиции.
|
| eventRevenueCurrency | Нет |
Код валюты для события выручки, представляющий собой код валюты по ISO 4217 из 3 символов.
|
| eventRevenue | Нет |
Доход (денежное выражение), назначенный событию. Примечание! Если доход указан в eventValue, укажите его также в eventRevenue и заполните eventRevenueCurrency.
|
| Нет | Этот параметр устарел и будет удалён из системы в будущем. Вместо этого используйте eventValue. | |
| Нет |
Этот параметр устарел и будет удалён из системы в будущем. Вместо этого используйте eventValue. |
|
| referrer | Нет |
HTTP-реферер
|
| userAgent | Нет |
Запрос пользовательского агента, отправляемый браузером на сервер.
|
| ip | Нет |
IP-адрес пользователя
|
Пример для Сurl
curl --location --request POST 'https://webs2s.appsflyer.com/v1/bundleId/event' \
--header 'Accept-Encoding: application/json' \
--header 'Content-Type: application/json' \
--data-raw '{
"customerUserId": "1234567890abcdef",
"afUserId":"9999999-f848-4963-a091-568f0bf9a361",
"webDevKey" : "99999999-9999-9999-9999-999999999999",
"ip" : "192.0.2.1",
"eventType":"EVENT",
"timestamp" : 1234567890123,
"eventName":"my_web_event",
"eventRevenueCurrency" : "EUR",
"eventRevenue" : 1234.56,
"eventValue": {
"purchase":{
"shoes": "color",
"quantity" : "3",
"Revenue" : "1234.56",
"Currency" : "ZAR"
}
}
}'
Пример для Python
''' using the requests python package, install using pip install requests '''
import requests
url = "https://webs2s.appsflyer.com/v1/bundleId/event"
payload = {
"customerUserId": "1234567890abcdef",
"afUserId": "9999999-f848-4963-a091-568f0bf9a361",
"webDevKey": "99999999-9999-9999-9999-999999999999",
"ip": "192.0.2.1",
"eventType": "EVENT",
"timestamp": 1234567890123,
"eventName": "my_web_event",
"eventRevenenuCurrency": "EUR",
"eventRevenue": 1234.56,
"eventValue":
{
"purchase":
{
"shoes": "color",
"quantity": "3",
"Revenue": "1234.56",
"Currency": "ZAR"
}
}
}
headers = {
'Accept-Encoding': 'application/json',
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, json=payload)
print(response.text.encode('utf8'))
Тестирование
Для тестирования отправьте несколько событий следующим образом:
- Отправьте событие.
- Убедитесь, что вы получили код возврата 200 OK. Если нет, примите меры по исправлению ситуации, используя коды возврата и сообщения об ошибках.
- Подождите несколько часов после полуночи UTC, чтобы увидеть зарегистрированное событие в сырых данных PBA. Вы должны подождать, потому что данные PBA обрабатываются один раз в день.
Дополнительные сведения
Получение веб-ключа разработчика.
Извлечение afUserID из веб-SDK
-
afUserId— это уникальный идентификатор, устанавливаемый в веб-SDK при первом посещении пользователем вашего сайта. - Если вам нужен
afUserId, воспользуйтесь одним из следующих способов.
Получение afUserId из заголовка HTTP cookie
- Значение
afUserIdотправляется браузером посетителя при обращении к вашему сайту. - При необходимости извлеките его из заголовка HTTP cookie.
Просмотр afUserId в браузере посетителя
- Просмотрите
afUserIdв браузере посетителя в целях устранения неполадок и отладки. - Чтобы параметр стал доступен, посетитель должен хотя бы один раз зайти на страницу с веб-SDK.
- Файл cookie, содержащий
afUserId, является файлом cookie первой стороны по отношению к вашему домену. - Следующая процедура была подготовлена с использованием Chrome 81. В разных браузерах и операционных системах могут быть некоторые различия.
Чтобы получить afUserId из браузера посетителя:
- В своём браузере перейдите на свой сайт.
-
Нажмите правой кнопкой мыши, выберите Inspect.
Откроется окно браузера для проверки элементов. - Перейти на вкладку (A) Application.
- В боковом меню (B) раскройте Cookies.
- Выберите свой сайт. Если он не отображается, обновите браузер.
- В поле (C) фильтр введите
afUserId
Отобразится значение afUserID.
Коды ответа
| Код ответа | Сообщение | Способ устранения |
|---|---|---|
| 200 | OK | |
| 404 | Не найдено |
|
| 400 | Неверный запрос |
|
Устранение неполадок
- Признак ошибки: Коды возврата HTTP не возвращаются
Решение: Внесите серверы AppsFlyer в список разрешённых
Примечания
| Дата | Версия конечной точки* | Примечания |
|---|---|---|
| 12.05.2020 | 1 | Первоначальный релиз |
| 24.05.2020 | 1 | |
* Номер версии относится к номеру версии конечной точки. https://webs2s.appsflyer.com/v1/method
|
||