Интеграции с аналитикой

Adapty отправляет все события подписок в аналитические сервисы, такие как Amplitude, Mixpanel и AppMetrica. Также можно отправлять события на ваш сервер через интеграцию с webhook. Самое удобное здесь то, что вам не нужно отправлять события самостоятельно — мы сделаем это за вас. Просто настройте интеграцию в дашборде Adapty.

Adapty поддерживает интеграцию со следующими сторонними аналитическими сервисами:

Не нашли своего провайдера аналитики?

Дайте нам знать! Создайте запрос на добавление функции, и мы рассмотрим его.

Свойства событий

Вебхук-события отправляются в формате JSON. Все события имеют одинаковую структуру, но их поля различаются в зависимости от типа события, стора и вашей конфигурации.

СвойствоТипОписание
profile_iduuidID пользователя Adapty.
currencystrЛокальная валюта (по умолчанию USD).
price_usdfloatЦена продукта до вычета комиссии Apple/Google. Выручка.
proceeds_usdfloatЦена продукта после вычета комиссии Apple/Google. Чистая выручка.
net_revenue_usdfloatЧистый доход (после вычета комиссии Apple/Google и налогов) в USD. Может быть пустым.
price_localfloatЦена продукта до вычета комиссии Apple/Google в локальной валюте. Выручка.
proceeds_localfloatЦена продукта после вычета комиссии Apple/Google в локальной валюте. Чистая выручка.
transaction_idstrУникальный идентификатор транзакции — покупки или продления.
original_transaction_idstrИдентификатор транзакции первоначальной покупки.
purchase_dateISO 8601 dateДата и время покупки продукта.
original_purchase_dateISO 8601 dateДата и время первоначальной покупки.
environmentstrМожет быть Sandbox или Production.
vendor_product_idstrID продукта в Apple App Store, Google Play Store или Stripe.
base_plan_idstrID базового плана в Google Play Store или ID цены в Stripe.
event_datetimeISO 8601 dateДата и время события.
storestrМожет быть app_store или play_store.
trial_durationstrДлительность пробного периода в днях. Передаётся в формате ” days”, например “7 days”.
cancellation_reasonstr

Причина отмены подписки пользователем.

Возможные значения:

iOS и Android

voluntarily_cancelled, billing_error, refund

iOS

price_increase, product_was_not_available, unknown

Android

new_subscription_replace, cancelled_by_developer

subscription_expires_atISO 8601 dateДата истечения срока действия подписки. Обычно в будущем.
consecutive_paymentsintКоличество периодов, в течение которых пользователь подписан без перерывов. Включает текущий период.
rate_after_first_yearboolБулево значение, указывающее, что подписка соответствует условиям сниженной комиссии (обычно 15%) после одного года непрерывного продления. Ставки комиссии варьируются в зависимости от программы и страны. Подробнее см. в разделе Комиссия стора и налоги.
promotional_offer_idstrID promotional offer, указанного в разделе Products дашборда Adapty.
store_offer_categorystrМожет быть introductory или promotional.
store_offer_discount_typestrМожет быть free_trial, pay_as_you_go или pay_up_front.
paywall_namestrНазвание пейвола, с которого совершена транзакция.
paywall_revisionintРевизия пейвола, с которого совершена транзакция. Значение равно 1.
developer_idstrDeveloper (SDK) ID плейсмента, с которого совершена транзакция.
ab_test_namestrНазвание A/B-теста, с которого совершена транзакция.
ab_test_revisionintРевизия A/B-теста, с которого совершена транзакция. Значение равно 1.
cohort_namestrНазвание аудитории, к которой относится профиль.
profile_event_iduuidУникальный ID события для дедупликации.
store_countrystrСтрана, переданная стором.
profile_ip_addressstrIP-адрес профиля (IPv4 или IPv6, при наличии предпочтителен IPv4). Обновляется при каждом изменении IP-адреса устройства.
profile_countrystrОпределяется Adapty на основе IP профиля.
profile_total_revenue_usdfloatОбщая выручка по профилю с учётом возвратов.
variation_iduuidУникальный ID пейвола, на котором совершена покупка.
access_level_idstrID уровня доступа с оплатой.
is_activeboolБулево значение, указывающее, активен ли уровень доступа для профиля.
will_renewboolБулево значение, указывающее, будет ли уровень доступа продлён.
is_refundboolБулево значение, указывающее, является ли транзакция возвратом.
is_lifetimeboolБулево значение, указывающее, является ли уровень доступа пожизненным.
is_in_grace_periodboolБулево значение, указывающее, находится ли профиль в льготном периоде.
starts_atISO 8601 dateДата и время начала действия уровня доступа для пользователя.
renewed_atISO 8601 dateДата и время продления платного доступа.
expires_atISO 8601 dateДата и время истечения платного доступа.
activated_atISO 8601 dateДата и время активации платного доступа.
billing_issue_detected_atISO 8601 dateДата и время обнаружения проблемы с оплатой.
profile_has_access_levelBoolБулево значение, указывающее, есть ли у профиля активный уровень доступа (только для Webhook).
У каждого события есть следующие свойства:

transaction_id, original_transaction_id, purchase_date, original_purchase_date, environment, vendor_product_id, event_datetime, store.

Кроме того, у некоторых событий есть дополнительные свойства. Для событий subscription_refunded и non_subscription_purchase_refunded необходимо передавать значения price_usd и proceeds_usd в качестве дополнительных свойств.

Название событияСвойства
subscription_initial_purchaseprice_usd, proceeds_usd, subscription_expires_at, consecutive_payments, rate_after_first_year, trial_duration
subscription_renewedprice_usd, proceeds_usd, subscription_expires_at, consecutive_payments, rate_after_first_year, trial_duration
subscription_cancelledcancellation_reason, trial_duration
trial_startedsubscription_expires_at, trial_duration
trial_convertedprice_usd, proceeds_usd, subscription_expires_at, consecutive_payments, rate_after_first_year, trial_duration
trial_cancelledcancellation_reason, trial_duration
non_subscription_purchaseprice_usd, proceeds_usd
billing_issue_detectedsubscription_expires_at, trial_duration
entered_grace_periodsubscription_expires_at, trial_duration
Пример события
{
    "price_usd": 9.99,
    "proceeds_usd": 6.99,
    "transaction_id": "1000000628581600",
    "original_transaction_id": "1000000628581600",
    "purchase_date": "2020-02-18T18:40:22.000000+0000",
    "original_purchase_date": "2020-02-18T18:40:22.000000+0000",
    "environment": "Sandbox",
    "vendor_product_id": "premium",
    "event_datetime": "2020-02-18T18:40:22.000000+0000",
    "store": "app_store"
}

Adapty отправляет события на ваш сервер и в сторонние аналитические системы. Свойство profile_ip_address синхронизируется с текущим IP-адресом устройства. При каждом обращении к серверам Adapty от SDK IP обновляется, если он отличается от того, что уже хранится в записи.

Настройка идентификатора профиля

  • Задайте идентификатор профиля для выбранной аналитики с помощью инструкций для инструкции по установке атрибутов пользователя в вашем приложении .

Предотвращение дублирования

Не забудьте отключить отправку событий подписок с устройств и вашего сервера, чтобы избежать дублирования.

Отключение внешней аналитики для конкретного пользователя

Иногда нужно прекратить отправку аналитических событий для конкретного пользователя — например, если в приложении есть возможность отказаться от аналитики.

Чтобы отключить внешнюю аналитику для пользователя, используйте метод updateProfile(). Создайте объект AdaptyProfileParameters.Builder и задайте соответствующее значение.
Когда внешняя аналитика заблокирована, Adapty перестаёт отправлять любые события во все интеграции для этого пользователя. Если нужно отключить интеграцию для всех пользователей приложения, просто выключите её в дашборде Adapty.

Отключение сбора рекламных идентификаторов