Межсерверный API внутренних событий (HTTP API)

Введение

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

Сроки проведения мероприятий

Чтобы событие фиксировалось с реальным временем срабатывания, все события должны отправляться в AppsFlyer до 02:00 следующего дня. 

События, не отправленные к этому времени, фиксируются с временем отправки.

Пример 1

Время срабатывания события: 2 мая, 22:00

Время отправки события на серверы AppsFlyer: 3 мая, 01:00

Событие фиксируется на платформе AppsFlyer со своим реальным временем срабатывания (2 мая, 22:00).

Пример 2
Время срабатывания события: 2 мая, 22:00

Время отправки события на серверы AppsFlyer: 4 мая, 09:00

Событие фиксируется на платформе AppsFlyer с временем отправки на серверы AppsFlyer, а не с временем срабатывания (4 мая, 09:00).

Примечания

Content Type (тип контента) должен быть установлен на application/json.

URL: https://api2.appsflyer.com/inappevent/{app_id} 

Пример для Android: https://api2.appsflyer.com/inappevent/com.appsflyer.myapp

Пример для iOS: https://api2.appsflyer.com/inappevent/id123456789

Обратите внимание, что App ID на iOS должен содержать приставку id перед самим идентификатором. В противном случае запрос получит ответ HTTPS 200 OK, но событие не будет зарегистрировано.

Метод: POST

Заголовок — "authentication"= {dev-key} ---  Ключ разработчика вы найдете в разделе «Панель управления >> Настройки >> Интеграция SDK»

iOS Android
{
"appsflyer_id": {это обязательное поле, необходимо использовать AppsFlyer Device ID},  // например 1415211453000-6513894
"idfa":{idfa},
"bundle_id":{bundle_id},
"eventName": { имя события, как в SDK}, // например, "af_purchase"
"eventValue": { JSON со значением насыщенного внутреннего события}, // например, 
	"{
		\"af_revenue\":\"6\",
		\"af_content_type\":\"wallets\",
		\"af_content_id\":\"15854\"
	}"
"eventCurrency": {Валюта события}, // например, "USD"
"ip": {IP устройства},
"eventTime": {таймштамп события в формате UTC}, // например, "2014-05-15 12:17:00.000"
"af_events_api" :"true"
}

 Примечания

Все зарезервированные символы (https://tools.ietf.org/html/rfc3986#section-2.1) должны быть закодированы со знаком процента до формирования URI.

Требования

  1. eventName, eventValue, appsflyer_id (AppsFlyer Device id), idfa (для iOS) или advertising_id (для Android), а также af_events_api — все эти параметры являются обязательными.
  2. Параметр eventValue может быть пустым:  например, "eventValue": (без пробела).
  3. Формат eventTime приведен ниже, этот параметр должен быть представлен в часовом поясе UTC:  "гггг-ММ-дд ЧЧ:мм:сс.ССС" (например, "2014-05-15 12:17:00.000"). * Время события является необязательным параметром.  Если оно не переслано, система будет использовать таймштамп от полученного сообщения HTTPS. 
  4. IP-адрес должен соответствовать мобильному устройству.

Как найти appsflyer_id (AppsFlyer Device ID)

  1. С мобильного устройства. См. раздел, описывающий <Получение уникального ID AppsFlyer> в руководстве по интеграции SDK AppsFlyer (подробнее об SDK для iOS или Android)
  2. Через Pull или Push API (подробнее о Push API и Pull API)

Служебные коды ответов

200
все в норме, запрос был обработан системой AppsFlyer.
401
нет разрешения. Ключ, указанный в заголовке аутентификации, не является dev-key для указанного приложения.
400
ошибка запроса минимум по одному из критериев валидации.
500
внутренняя ошибка сервера.

Пример запроса

{
 "appsflyer_id": "1415211453000-6513894",
 "advertising_id": "38412345-8cf0-aa78-b23e-10b96e40000d",
 "eventName": "af_purchase",
 "eventValue": "{
	\"af_revenue\":\"6\",
	\"af_content_type\":\"wallets\", 
	\"af_content_id\":\"15854\",
	\"af_quantity\":1
}",
 "eventCurrency": "USD",
 "ip": "1.2.3.4",
 "eventTime": "2014-05-15 12:17:00.000",
 "af_events_api" :"true"
}

В этом случае AppsFlyer получает межсерверное (S2S) внутреннее событие. Оно представляет собой покупку с доходом, а также дополнительные свойства, такие как тип контента и пр. Теперь AppsFlyer, согласно конфигурации производителя рекламы, может отправлять подобные насыщенные внутренние события медиа-источникам для улучшения таргетинга, оптимизации и создания аудитории.

 

Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 4 из 10