Формирование аналитических данных
Сбор, обработка и анализ информации о работе приложений на платформе Салют ТВ позволят понять поведение пользователей. Данные о поведении пользователей можно использовать для повышения качества приложений и разработки планов для их дальнейшего развития.
private val analytics = AnalyticsFactory.create(context)
// отправка текста в качестве содержимого эвента
analytics.send("event_name", "text")
// отправка JSON, {"key": "value"}
analytics.send("event_name", Analytics.params("key" to "value"))
// отправка JSON, {"key": ["value"]}
analytics.send("event_name", Analytics.params("key" to listOf("value")))
// отправка JSON, {"key": {"child_key": "child_value"}}
analytics.send("event_name", Analytics.params("key" to mapOf("child_key" to "child_value")))
Примеры формирования:
Пример кода
Сформированное содержимое эвента
analytics.send("event_name", "text")
text
analytics.send("event_name", Analytics.params("key" to "value"))
{
"key":"value"
}
analytics.send("event_name", Analytics.params("key" to listOf("value")))
{
"key":[
"value"
]
}
analytics.send("event_name", Analytics.params("key" to mapOf("child_key" to "child_value")))
{
"key":{
"child_key":"child_value"
}
}
При возникновении указанных в документации событий партнерские кинотеатры должны сформировать данные в формате JSON в соответствии со спецификациями ниже и передать их методу analytics.send().
Авторизация в сервисе
Название отправляемого события: PartnerAuthorization
| Параметр | Тип данных | Описание |
|---|---|---|
| uid | string | ID пользователя в сервисе |
| has_subscription | bool | наличие подписки на момент авторизации |
| package_name | string | название приложения |
| account_created_at | int | дата создания аккаунта (для авторизованных пользователей, в секундах UNIXtime) |
| subscription | array[JSONobject] | список подписок пользователя |
| Название | Тип | Описание |
| name | string | наименование подписки |
| amount | float | стоимость подписки в рублях |
| period | int | период обновления |
| source | string | оплата — INTERNAL или EXTERNAL |
| end_date | timestamp | дата окончания подписки |
| start_date | timestamp | дата начала подписки |
| period_type | string | тип подписки: Promo или Standard |
{
"uid":"7af8d411-e6a9-4009-8615-cbeace4f0169",
"has_subscription":true,
"account_created_at":1727220183899,
"subscription":[
{
"name":"Premium",
"amount":299,
"period":30,
"source":"external",
"end_date":1731540183899,
"start_date":1728948183899,
"period_type":"standard"
}
]
}
Действия с подпиской
Покупка подписки
Название отправляемого события: PartnerSubscriptionPurchase
| Параметр | Тип данных | Описание |
|---|---|---|
| uid | string | ID пользователя в сервисе |
| price | float | стоимость подписки для пользователя |
| is_authorized | bool | авторизован ли пользователь |
| has_subscription | bool | была ли у пользователя подписка на момент авторизации |
| name | string | название подписки |
| period | int | период обновления |
| period_type | string | тип покупки: подписка/триал |
| package_name | string | название приложения |
| account_created_at | int | дата создания аккаунта (для авторизованных пользователей, в секундах UNIXtime) |
| subscription | array[JSONobject] | массив JSON-ов с атрибутами |
| Название | Тип | Описание |
| start_date | timestamp | дата начала подписки |
| end_date | timestamp | дата окончания подписки |
| amount | float | стоимость подписки в рублях |
| name | string | наименование подписки |
| source | string | оплата: INTERNAL или EXTERNAL |
| period_type | string | тип подписки: Promo или Standard |
| period | int | период обновления |
{
"uid":"7af8d411-e6a9-4009-8615-cbeace4f0169",
"name":"Premium Advanced Promo",
"price":99,
"period":15,
"period_type":"promo",
"subscription":[
{
"name":"Premium",
"amount":299,
"period":30,
"source":"external",
"end_date":1731540183901,
"start_date":1728948183901,
"period_type":"standard"
}
],
"has_subscription":true,
"account_created_at":1727220183901,
"is_authorized":true
}
Отмена подписки
Название отправляемого события: PartnerSubscriptionCancel
| Параметр | Тип данных | Описание |
|---|---|---|
| uid | string | ID пользователя в сервисе |
| is_authorized | bool | авторизован ли пользователь |
| has_subscription | bool | была ли у пользователя подписка на момент авторизации |
| price | float | стоимость подписки для пользователя |
| name | string | название подписки |
| period | int | период обновления |
| period_type | string | тип покупки: подписка/триал |
| package_name | string | название приложения |
| account_created_at | int | дата создания аккаунта (для авторизованных пользователей, в секундах UNIXtime) |
| subscription | array[JSONobject] | массив JSON-ов с атрибутами |
| Название | Тип | Описание |
| start_date | timestamp | дата начала подписки |
| end_date | timestamp | дата окончания подписки |
| amount | float | стоимость подписки в рублях |
| name | string | наименование подписки |
| source | string | оплата: INTERNAL или EXTERNAL |
| period_type | string | тип подписки: Promo или Standard |
| period | int | период обновления |
{
"uid":"7af8d411-e6a9-4009-8615-cbeace4f0169",
"name":"Premium Advanced Promo",
"price":99,
"period":15,
"period_type":"promo",
"subscription":[
{
"name":"Premium",
"amount":299,
"period":30,
"source":"external",
"end_date":1731540183902,
"start_date":1728948183902,
"period_type":"standard"
}
],
"account_created_at":1727220183902,
"is_authorized":true}
Действия с контентом
Покупка контента
Название отправляемого события: PartnerContentPurchase
| Параметр | Тип данных | Описание |
|---|---|---|
| uid | string | ID пользователя в сервисе |
| is_authorized | bool | авторизован ли пользователь |
| has_subscription | bool | была ли у пользователя подписка на момент авторизации |
| price | float | стоимость подписки для пользователя |
| name | string | название подписки |
| package_name | string | название приложения |
| account_created_at | int | дата создания аккаунта (для авторизованных пользователей, в секундах UNIXtime) |
| subscription | array[JSONobject] | массив JSON-ов с атрибутами |
| Название | Тип | Описание |
| start_date | timestamp | дата начала подписки |
| end_date | timestamp | дата окончания подписки |
| amount | float | стоимость подписки в рублях |
| name | string | наименование подписки |
| source | string | оплата: INTERNAL или EXTERNAL |
| period_type | string | тип подписки: Promo или Standard |
| period | int | период обновления |
{
"uid":"7af8d411-e6a9-4009-8615-cbeace4f0169",
"name":"Название купленного контента",
"price":999,
"content_id":"84fbfb4f-9f38-4337-9fb1-f8100344283d",
"subscription":[
{
"name":"Premium",
"amount":299,
"period":30,
"source":"external",
"end_date":1731540183906,
"start_date":1728948183906,
"period_type":"standard"
}
],
"has_subscription":true,
"account_created_at":1727220183906,
"is_authorized":true}
Событие запуска контента
Название отправляемого события: PartnerContentStart
| Параметр | Тип данных | Описание |
|---|---|---|
| uid | string | ID пользователя в сервисе |
| is_authorized | bool | авторизован ли пользователь |
| has_subscription | bool | была ли у пользователя подписка на момент авторизации |
| package_name | string | название приложения |
| account_created_at | int | дата создания аккаунта (для авторизованных пользователей, в секундах UNIXtime) |
| content_id | string | ID контента |
| content_name | string | название контента |
| tags | array[str] | теги (если применимо) |
| trigger | string | кто завершил просмотр: user или auto |
| subscription | array[JSONobject] | массив JSON-ов с атрибутами |
| Название | Тип | Описание |
| start_date | timestamp | дата начала подписки |
| end_date | timestamp | дата окончания подписки |
| amount | float | стоимость подписки в рублях |
| name | string | наименование подписки |
| source | string | оплата: INTERNAL или EXTERNAL |
| period_type | string | тип подписки: Promo или Standard |
| period | int | период обновления |
{
"uid":"7af8d411-e6a9-4009-8615-cbeace4f0169",
"has_subscription":true,
"content_id":"84fbfb4f-9f38-4337-9fb1-f8100344283d",
"content_name":"Название купленного контента",
"content_tags":["мелодрамы","популярное"],
"subscriptions":[
{
"name":"Premium",
"amount":299,
"period":30,
"source":"external",
"end_date":1731540183910
"start_date":1728948183910,
"period_type":"standard"
}
],
"trigger":"auto",
"account_created_at":1727220183910,
"is_authorized":true}
Событие завершения просмотра контента
Название отправляемого события: PartnerContentFinished
| Параметр | Тип данных | Описание |
|---|---|---|
| uid | string | ID пользователя в сервисе |
| is_authorized | bool | авторизован ли пользователь |
| has_subscription | bool | была ли у пользователя подписка на момент авторизации |
| package_name | string | название приложения |
| account_created_at | int | дата создания аккаунта (для авторизованных пользователей, в секундах UNIXtime) |
| content_id | string | ID контента |
| content_name | string | название контента |
| tags | array[str] | теги (если применимо) |
| duration | int | общая длительность контента, секунды |
| watched | int | на какой секунде закончен просмотр |
| trigger | string | кто завершил просмотр - user или auto |
| subscription | array[JSONobject] | массив JSON-ов с атрибутами |
| Название | Тип | Описание |
| start_date | timestamp | дата начала подписки |
| end_date | timestamp | дата окончания подписки |
| amount | float | стоимость подписки в рублях |
| name | string | наименование подписки |
| source | string | оплата: INTERNAL или EXTERNAL |
| period_type | string | тип подписки: Promo или Standard |
| period | int | период обновления |
{
"uid":"7af8d411-e6a9-4009-8615-cbeace4f0169",
"has_subscription":true,
"content_id":"84fbfb4f-9f38-4337-9fb1-f8100344283d",
"content_name":"Название купленного контента",
"content_tags":["мелодрамы","популярное"],
"duration":7200,
"watched":1800,
"subscriptions":[
{
"name":"Premium",
"amount":299,
"period":30,
"source":"external",
"end_date":1731540183911,
"start_date":1728948183911,
"period_type":"standard"
}
],
"trigger":"auto",
"account_created_at":1727220183911,
"is_authorized":true}
Событие ошибки открытия контента
Название отправляемого события: PartnerContentOpenFailed
| Параметр | Тип данных | Описание |
|---|---|---|
| package_name | string | название приложения |
| content_id | string | ID контента |
| content_name | string | заголовок контента (если есть) |
| error_code | string | код ошибки |
| error_message | string | описание ошибки |
| Код | Описание |
| 402 | Контент доступен в подписке |
| 403 | Пользователь не авторизован |
| 404 | Контент недоступен |
| 500 | Внутренняя ошибка приложения |
{
"package_name":"ru.ivi",
"content_id":"3e7da464-c617-33b7-aa6a-bda5fb9f6545",
"content_name":"Три богатыря",
"error_code":"403",
"error_message":"Пользователь не авторизован"}
События запуска приложения
Название отправляемого события: PartnerAppStart
| Параметр | Тип данных | Описание |
|---|---|---|
| uid | string | ID пользователя в сервисе |
| is_authorized | bool | авторизован ли пользователь |
| has_subscription | bool | была ли у пользователя подписка на момент авторизации |
| package_name | string | название приложения |
| account_created_at | int | дата создания аккаунта (для авторизованных пользователей, в секундах UNIXtime) |
| subscription | array[JSONobject] | массив JSON-ов с атрибутами |
| Название | Тип | Описание |
| start_date | timestamp | дата начала подписки |
| end_date | timestamp | дата окончания подписки |
| amount | float | стоимость подписки в рублях |
| name | string | наименование подписки |
| source | string | оплата: INTERNAL или EXTERNAL |
| period_type | string | тип подписки: Promo или Standard |
| period | int | период обновления |
{
"uid":"7af8d411-e6a9-4009-8615-cbeace4f0169",
"has_subscription":true,
"subscriptions":[
{
"name":"Premium",
"amount":299,
"period":30,
"source":"external",
"end_date":1731541522507,
"start_date":1728949522507,
"period_type":"standard"
}
],
"account_created_at":1727221522507,
"is_authorized":true}