API событий #
(используется для отправки событий «Первое запуска приложения» и «Запуск приложения»)
Аутентификация:
Мы проверяем подлинность каждого запроса, отправляемого на сервер Tenjin, с помощью ключа Tenjin SDK
- в качестве параметра api_key в URL-адресе запроса, либо
- указав имя пользователя и оставив поле для пароля пустым в базовой аутентификации доступа
URL-адрес с методом POST или GET:
https://track.tenjin.com/v0/event
Ответ {“code”:200} свидетельствует об успешном выполнении запроса.
Параметры:
*: обязательное поле
| Параметр | Тип | Описание | Пример |
api_key* | Строка | Ключ SDK Tenjin, сгенерированный для каждого приложения. Его можно найти на странице приложения. Если вы используете базовую аутентификацию, этот параметр не требуется. | ENECCCVB8UQVLPSQ58S8EZXTJHA7FHDW |
analytics_installation_id* | UUID | Tenjin сгенерировал уникальный идентификатор установки приложения.Доступно через обратные вызовы S2S или SDK (SDK Android,iOS SDK,Unity SDK) | 29eeb1610fe74997b6d53f02e9711f8c |
advertising_id* | Строка | Идентификатор устройства в исходном виде. Для пользователей, отказавшихся от участия, поле может быть пустым или содержать одни нули. | f024e65f3dd94f16983726bcef192d68 |
developer_device_id (*обязательно для iOS) | Строка | Идентификатор поставщика | b6bc48fe0ce949e4b229ce6c55663fca |
bundle_id* | Строка | Идентификатор пакета приложения. | com.tenjin.wordfinder |
platform* | Строка | ios, android, amazon, android_other | iOS |
limit_ad_tracking | Строка | 1 — «да», 0 — «нет». | 1 |
os_version* | Строка | Для Android: String os_version = String.valueOf(Build.VERSION.SDK_INT) Для iOS: [[UIDevice currentDevice] systemVersion] | 8.0 |
app_version | Число с плавающей запятой, десятичное | Версия вашего приложения Для Android: String app_version = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionName + “.” + context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionCode) Для iOS: [[[NSBundle mainBundle] infoDictionary] objectForKey:@”CFBundleShortVersionString”] | 1.0.3 |
sdk_version* | Строка | server | server |
country | Строка | Стандарт ISO, определяющий коды стран локалей (см., например, документацию Apple). | США |
ip_address | Строка | IP-адрес пользователя. Он используется для определения страны. Если этот параметр отсутствует, мы будем использовать IP-адрес из HTTP-заголовка. | 71.165.85.114 |
ad_user_data | Булево | Параметр «Google User Consent Signal»: «consent» — передача данных на уровне пользователя третьим сторонам для рекламы; «1» — согласие дано; «0» — согласие не дано. Если данные о согласии пользователя отсутствуют, полностью удалите этот параметр из запроса (не оставляйте поле пустым). | 1 |
ad_personalization | Булево | Параметр «Google User Consent Signal»: «consent» — для персонализированной рекламы¹; «0» — для отказа в согласии. Если данные о согласии пользователя отсутствуют, полностью удалите этот параметр из запроса (не оставляйте поле пустым). | 1 |
referrer | Строка | Отслеживаются установки, выполненные в рамках программы «Android» | campaign_id%3D |
os_version_release (*требуется для отслеживания Google Ads) | Строка | Для Android: String os_version_release = String.valueOf(Build.VERSION.RELEASE) Для iOS: [[UIDevice currentDevice] systemVersion] | 8.0.1 |
build_id (*требуется для отслеживания Google Ads) | Строка | Для Android: String build = String.valueOf(Build.ID) Для iOS: @import Darwin.sys.sysctl; NSString *build(void) { size_t bufferSize = 64; NSMutableData *buffer = [[NSMutableData alloc] initWithLength:bufferSize]; int status = sysctlbyname(“kern.osversion”, buffer.mutableBytes, &bufferSize, NULL, 0); if (status != 0) { return nil; } return [[NSString alloc] initWithCString:buffer.mutableBytes encoding:NSUTF8StringEncoding];} | UP1B.231005.007 |
locale (*требуется для отслеживания Google Ads) | Строка | Для Android: String locale = Locale.getDefault().toString() Для iOS: [[NSLocale currentLocale] localeIdentifier] | es_AR |
device_model (*требуется для отслеживания Google Ads) | Строка | Для Android: String device = Build.MODEL; Для iOS: @import Darwin.sys.sysctl; NSString *device(void) { size_t bufferSize = 64; NSMutableData *buffer = [[NSMutableData alloc] initWithLength:bufferSize]; int status = sysctlbyname(“hw.machine”, buffer.mutableBytes, &bufferSize, NULL, 0); if (status != 0) { return nil; } return [[NSString alloc] initWithCString:buffer.mutableBytes encoding:NSUTF8StringEncoding];} | SM-F731A |
odm_info | Строка | Это строка, необходимая для запуска вероятностной атрибуции через Google Ads для iOS. Сначала вам нужно получить её из SDK ODM. | AB7Dr_EJBWQ_lT_l1V0z5xqDB9MnLGbINV5r2w1jhVTITlm0IK7QE16Bf2sIjI_twjeMoQl3SedWsZiPtijTZ2DkUYI_H9RI6lkStqbwmBVsnu_QH4hfkuJeMwhFEzBEJCz3a8cdD2U1MRd1jwn2b_hbaHsbVO3NlE0xsExo5HtcuWmsaMdddKn9vFRPtyPQvSLjSl4AlsdyAaYg9Hw-FyYfm9eAbqrxy3NXkZtjJeXRThMG6MTNJA |
customer_user_id | Строка | пользовательский идентификатор для события | jdabGcerT32_d |
API для покупок #
(предназначено для отправки событий «Покупка»)
Аутентификация:
Мы проверяем подлинность каждого запроса, отправляемого на сервер Tenjin, с помощью ключа Tenjin SDK
- в качестве параметра api_key в URL-адресе запроса, либо
- указав имя пользователя и оставив поле для пароля пустым в базовой аутентификации доступа
URL-адрес с методом POST или GET:
https://track.tenjin.com/v0/purchase
Параметры:
*: обязательное поле
| Параметр | Тип | Описание | Пример |
api_key* | Строка | Ключ SDK Tenjin, сгенерированный для каждого приложения. Его можно найти на странице приложения. Если вы используете базовую аутентификацию, этот параметр не требуется. | ENECCCVB8UQVLPSQ58S8EZXTJHA7FHDW |
analytics_installation_id* | UUID | Tenjin сгенерировал идентификатор, уникальный для установки приложения. Доступен через обратные вызовы S2S или SDK.SDK Android,iOS SDK,Unity SDK | 29eeb1610fe74997b6d53f02e9711f8c |
advertising_id* | Строка | Идентификатор устройства в исходном виде. Для пользователей, отказавшихся от участия, поле может быть пустым или содержать одни нули. | f024e65f3dd94f16983726bcef192d68 |
developer_device_id (*обязательно для iOS) | Строка | Идентификатор поставщика | b6bc48fe0ce949e4b229ce6c55663fca |
bundle_id* | Строка | Идентификатор пакета приложения. | com.tenjin.wordfinder |
platform* | Строка | ios, android, amazon, android_other | iOS |
limit_ad_tracking | Строка | 1 — «да», 0 — «нет». | 1 |
os_version* | Строка | Для Android: String.valueOf(Build.VERSION.SDK_INT) Для iOS: [[UIDevice currentDevice] systemVersion] | 8.0 |
app_version (*требуется для отслеживания Google Ads) | Число с плавающей запятой, десятичное | Версия вашего приложения Для Android: String app_version = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionName + “.” + context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionCode) Для iOS: [[[NSBundle mainBundle] infoDictionary] objectForKey:@”CFBundleShortVersionString”] | 1.0.3 |
sdk_version* | Строка | server | server |
ip_address | Строка | IP-адрес пользователя. Он используется для определения страны в целях соблюдения требований Google DMA в отношении согласия пользователей. Если этот параметр отсутствует, мы будем использовать IP-адрес из HTTP-заголовка. | 71.165.85.114 |
ad_user_data | Булево | Параметр «Google User Consent Signal»: «consent» — передача данных на уровне пользователя третьим сторонам для рекламы; «1» — согласие дано; «0» — согласие не дано. Если данные о согласии пользователя отсутствуют, полностью удалите этот параметр из запроса (не оставляйте поле пустым). | 1 |
ad_personalization | Булево | Параметр «Google User Consent Signal»: «consent» — для персонализированной рекламы¹; «0» — для отказа в согласии. Если данные о согласии пользователя отсутствуют, полностью удалите этот параметр из запроса (не оставляйте поле пустым). | 1 |
postcut | Строка | 1 — за отправку покупок после удержания комиссии платформой | 1 |
product_id* | Строка | Уникальное название приобретенного товара. | coin_store |
price* | Число с плавающей запятой, десятичное | Цена за единицу приобретенного товара в стандартной валютной единице (например, в долларах США). | 0.99 |
quantity* | Целое число | Количество приобретенных единиц. | 1 |
country | Строка | Стандарт ISO, определяющий коды стран локалей (см., например, документацию Apple). | США |
currency* | Строка | Валютные коды ISO, используемые компаниями Apple и Google (см., например, документацию Apple). | долл. США |
os_version_release (*требуется для отслеживания Google Ads) | Строка | Для Android: String os_version_release = String.valueOf(Build.VERSION.RELEASE) Для iOS: [[UIDevice currentDevice] systemVersion] | 14 |
build_id (*требуется для отслеживания Google Ads) | Строка | Для Android: String build = String.valueOf(Build.ID) Для iOS: @import Darwin.sys.sysctl; NSString *build(void) { size_t bufferSize = 64; NSMutableData *buffer = [[NSMutableData alloc] initWithLength:bufferSize]; int status = sysctlbyname(“kern.osversion”, buffer.mutableBytes, &bufferSize, NULL, 0); if (status != 0) { return nil; } return [[NSString alloc] initWithCString:buffer.mutableBytes encoding:NSUTF8StringEncoding];} | UP1B.231005.007 |
locale (*требуется для отслеживания Google Ads) | Строка | Для Android: String locale = Locale.getDefault().toString() Для iOS: [[NSLocale currentLocale] localeIdentifier] | es_AR |
device_model (*требуется для отслеживания Google Ads) | Строка | Для Android: String device = Build.MODEL; Для iOS: @import Darwin.sys.sysctl; NSString *device(void) { size_t bufferSize = 64; NSMutableData *buffer = [[NSMutableData alloc] initWithLength:bufferSize]; int status = sysctlbyname(“hw.machine”, buffer.mutableBytes, &bufferSize, NULL, 0); if (status != 0) { return nil; } return [[NSString alloc] initWithCString:buffer.mutableBytes encoding:NSUTF8StringEncoding];} | SM-F731A |
customer_user_id | Строка | пользовательский идентификатор для события | jdabGcerT32_d |
tracking_status(Обязательно для запуска кампаний Meta AEM на платформе iOS) | Строка | целое число для устройства iOS Статус ATT. 0 => не определено, 1 => ограниченный, 2 => отклонено, 3 => уполномоченный2 | 2 |
Если у вас нет надлежащего чека или подписи, не добавляйте эти параметры в URL-адрес запроса вообще. Мы всё равно сможем отобразить покупку без чека или подписи через S2S на панели управления.
API пользовательских событий #
(используется для отправки всех пользовательских событий)
Аутентификация:
Мы проверяем подлинность каждого запроса, отправляемого на сервер Tenjin, с помощью ключа Tenjin SDK
- в качестве параметра api_key в URL-адресе запроса, либо
- указав имя пользователя и оставив поле для пароля пустым в базовой аутентификации доступа
URL-адрес с методом POST или GET:
https://track.tenjin.com/v0/event
Параметры:
*: обязательное поле
| Параметр | Тип | Описание | Пример |
api_key* | Строка | Ключ SDK Tenjin, сгенерированный для каждого приложения. Его можно найти на странице приложения. Если вы используете базовую аутентификацию, этот параметр не требуется. | ENECCCVB8UQVLPSQ58S8EZXTJHA7FHDW |
analytics_installation_id* | UUID | Tenjin сгенерировал идентификатор, уникальный для установки приложения. Доступен через обратные вызовы S2S или SDK.SDK Android,SDK iOS,SDK для Unity | 29eeb1610fe74997b6d53f02e9711f8c |
advertising_id* | Строка | Идентификатор устройства в исходном виде. Для пользователей, отказавшихся от участия, поле может быть пустым или содержать одни нули. | f024e65f3dd94f16983726bcef192d68 |
developer_device_id (*обязательно для iOS) | Строка | Идентификатор поставщика | b6bc48fe0ce949e4b229ce6c55663fca |
bundle_id* | Строка | Идентификатор пакета приложения. | com.tenjin.wordfinder |
platform* | Строка | ios, android, amazon, android_other | iOS |
limit_ad_tracking | Строка | 1 — «да», 0 — «нет». | 1 |
os_version* | Строка | Для Android: String.valueOf(Build.VERSION.SDK_INT) Для iOS: [[UIDevice currentDevice] systemVersion] | 8.0 |
app_version (* обязательное поле для Google Ads) | Число с плавающей запятой, десятичное | Версия вашего приложения Для Android: String app_version = context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionName + “.” + context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionCode) Для iOS: [[[NSBundle mainBundle] infoDictionary] objectForKey:@”CFBundleShortVersionString”] | 1.0.3 |
sdk_version* | Строка | server | server |
ip_address | Строка | IP-адрес пользователя. Он используется для определения страны. Если этот параметр отсутствует, мы будем использовать IP-адрес из HTTP-заголовка. | 71.165.85.114 |
ad_user_data | Булево | Параметр «Google User Consent Signal»: «consent» — передача данных на уровне пользователя третьим сторонам для рекламы; «1» — согласие дано; «0» — согласие не дано. Если данные о согласии пользователя отсутствуют, полностью удалите этот параметр из запроса (не оставляйте поле пустым). | 1 |
ad_personalization | Булево | Параметр «Google User Consent Signal»: «consent» — для персонализированной рекламы¹; «0» — для отказа в согласии. Если данные о согласии пользователя отсутствуют, полностью удалите этот параметр из запроса (не оставляйте поле пустым). | 1 |
event* | Строка | Это название события — название события (например, “tutorial_complete”, “registration_complete” или “level_1_complete”) | событие_завершено |
value | Нуль, целое число | Значение, привязанное к названию события (см. выше). Его можно использовать для расчета значений, связанных с названием события (например, если нужно рассчитать количество виртуальной валюты для конкретного события). | 10 |
os_version_release (*требуется для Google Ads) | Строка | Для Android: String os_version_release = String.valueOf(Build.VERSION.RELEASE) Для iOS: [[UIDevice currentDevice] systemVersion] | 14 |
build_id (*требуется для Google Ads) | Строка | Для Android: String build = String.valueOf(Build.ID) Для iOS: @import Darwin.sys.sysctl; NSString *build(void) { size_t bufferSize = 64; NSMutableData *buffer = [[NSMutableData alloc] initWithLength:bufferSize]; int status = sysctlbyname(“kern.osversion”, buffer.mutableBytes, &bufferSize, NULL, 0); if (status != 0) { return nil; } return [[NSString alloc] initWithCString:buffer.mutableBytes encoding:NSUTF8StringEncoding];} | UP1B.231005.007 |
locale (*требуется для Google Ads) | Строка | Для Android: String locale = Locale.getDefault().toString() Для iOS: [[NSLocale currentLocale] localeIdentifier] | es_AR |
device_model (*требуется для Google Ads) | Строка | Для Android: String device = Build.MODEL; Для iOS: @import Darwin.sys.sysctl; NSString *device(void) { size_t bufferSize = 64; NSMutableData *buffer = [[NSMutableData alloc] initWithLength:bufferSize]; int status = sysctlbyname(“hw.machine”, buffer.mutableBytes, &bufferSize, NULL, 0); if (status != 0) { return nil; } return [[NSString alloc] initWithCString:buffer.mutableBytes encoding:NSUTF8StringEncoding];} | SM-F731A |
customer_user_id | Строка | пользовательский идентификатор для события | jdabGcerT32_d |
tracking_status(Обязательно для запуска кампаний Meta AEM на платформе iOS) | Строка | целое число для устройства iOS Статус ATT. 0 => не определено, 1 => ограниченный, 2 => отклонено, 3 => уполномоченный | 2 |