Данный документ описывает Tracking API, служащий для отправки статистической информации на серверы аналитики Инетры.
Данное решение довольно общее, но в то же время достаточно простой способ для описания любых событий в приложении. Отличительными свойствами от аналогичных API являются следующие:
Точка входа — адрес http://analytics.cn.ru/2/collect/<product_id>
. Где:
2
— мажорная версия данного документа,<product_id>
— идентификатор продукта.В API заложена передача событий от различных продуктов. Информацию о продукте могут предоставлять различные приложения (например, о продукте Пирс информацию могут предоставлять: хаб, клиент Peers 1, клиент Peers 3). Для избежания путаницы продуктов и программ, которые их реализуют, вводятся их идентификаторы.
Идентификатор | Продукт |
---|---|
1 |
Сайт CN.ru |
2 |
Peers |
3 |
Peers.TV |
4 |
ByteFog |
5 |
Peers3 |
6 |
Launcher |
Все параметры передаются с помощью GET–запроса на сервер, экранированные при необходимости с помощью процентного кодирования, описанного в RFC3986. Зарезервированные символы, входящие в состав значений параметров, должны быть заэкранированы.
Все строки передаются в кодировке UTF–8.
Возвращаемый результат — всегда пустой ответ с HTTP–кодом ответа 2xx.
Все остальное (таймаут соединения, коды с ответом 4xx и 5xx) означает, что сервер сбора статистики не принял данные и необходима их повторная отправка. При этом, как описано в RFC2616, коды 4xx означает неверно сформированный запрос на стороне клиента и клиенту рекомендуется изменить запрос.
При переотправке события клиент ДОЛЖЕН передать уникальный идентификатор события в неизмененном виде.
Рекомендуется экспоненциально увеличивать интервал между попытками передачи повторных событий. Выбор конкретных значений для начальной задержки между переотправкой и для максимальной задержки между событием и его отправкой определяется продуктом и платформой, на которой он работает.
Длина каждой строки запроса не должна превышать 8192 байт.
Окружение описывается в заголовке UserAgent
или в параметре ua
, если изменение заголовка UserAgent
невозможно.
В окружении рекомендуется указывать, в указанном порядке:
/
его версию/
ее версию/
/
ее версиюСтрока версии не должна содержать пробелов. При наличии, они должны быть заменены символом _
.
desktop
— компьютер или ноутбукphone
— смартфонtablet
— планшетstb
— Set Top Box, телеприставкаtv
— Smart TV, телевизорbrowser
— браузер (для web–приложений)Windows
— операционная система Windows (95, 98, ME)WindowsNT
— операционная система Windows, начиная с Windows NT 3OS_X
— операционные системы Apple для десктоповiOS
— операционные системы Apple для устройствAndroid
— операционная система Google для устройствRELEASE
- релизная сборкаDEBUG
- дебажная сборкаUserAgent | Комментарии |
---|---|
Peers/3.2 WindowsNT/5.1 desktop DEBUG |
Приложение Peers версии 3.2 работает на Windows XP. Сборка дебажная |
iPeers/4.9 iOS/6.0.1 phone/Apple iPhone/4,1 RELEASE |
Приложение iPeers версии 4.9 работает на iOS 6.0.1, запущенной на iPhone 4S. Сборка релизная |
Peers.TV/1.0 iOS/7.0.3 browser/Apple iPhone/4_1 . |
Сайт Peers.TV версии 1.0, запущенный под мобильным браузером от Apple, работающий на iOS версии 7.0.3 на телефоне iPhone 4S |
API используется следующие идентификаторы:
В качестве идентификаторов используется строковое представление UUID.
Общее количество уникальных ключей UUID составляет 2128 = 25616 или около 3.4 × 1038. Это означает, что генерируя 1 триллион ключей каждую наносекунду, перебрать все возможные значения удастся лишь за 10 миллиардов лет.
Wikipedia
Параметр | Обязательный | Тип | Смысл |
---|---|---|---|
_ |
рекомендуемый | число | Произвольное число. Необходимо для обхода кэширования в браузерах и прокси–серверах |
ua |
опциональный | строка | Описание платформы, на которой запущено приложение (см. выше) |
res |
опциональный | строка | Разрешение экрана, в формате ШиринаxВысота |
Параметр | Обязательный | Тип | Смысл |
---|---|---|---|
sid |
рекомендуемый | строка | Идентификатор сессии. Меняется при перезапуске приложения. |
uid |
рекомендуемый | строка | Идентификатор установки приложения. Не меняется при перезапуске приложения. |
Параметр | Обязательный | Тип | Смысл |
---|---|---|---|
tz |
опциональный | число | Часовой пояс у пользователя, выраженный в секундах относительно UTC+00. Для часового пояса UTC+03 смещение будет равно 10800 секунд. |
qt |
опциональный | число | Количество секунд, прошедших с момента наступления события. Рассчитывается в момент отправки на сервер. |
Параметр | Обязательный | Тип | Смысл |
---|---|---|---|
vext |
обязательный | строка | Версия используемого расширения |
t |
обязательный | строка | Идентификатор типа события |
eid |
рекомендуемый | строка | Уникальный идентификатор события |
Параметр | Обязательный | Тип | Смысл |
---|---|---|---|
dl |
опциональный | строка | URL, на котором находится пользователь |
dr |
опциональный | строка | Страница, с которой перешел пользователь на текущую (Referer URL) |
В данном документе описаны лишь общие параметры, используемые во всех продуктах для отправки информации о любых событиях. Однако события могут иметь дополнительные параметры, необходимые для передачи серверу.
Для использования таких событий должны быть соблюдены следующие условия:
major.minor
, где версия major
повышается при любых изменениях событий или параметров, а minor
— при любых других изменениях.t
_
и должны состоять только из латинских символов в нижнем регистре, цифр и символа _
1
, если подразумевается истина, 0
— если ложь.
major
версию документа, которому соответствует событие, в стандартном параметре vext
Cобытия, не соответствующие версии расширения или с версиями расширений, отсутствующих в документации, будут проигнорированы сервером обработки статистики.
vext
, описывающий версию сопроводительного документа по статистике продуктаtz
, обновлен пример, чтобы избежать неоднозначности толкования;qt
.