Интеграции с аналитическими системами

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

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

Note

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

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

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

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

Note

Adapty конвертирует другие валюты в USD по курсу currencylayer.com (обновляется каждые 8 часов). Курс фиксируется на момент транзакции — последующие изменения не влияют на результат конвертации.

PropertyTypeDescription
profile_iduuidAdapty ID пользователя.
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Дата и время последнего начала текущего периода платного доступа. До первого продления совпадает с activated_at.
expires_atISO 8601 dateДата и время истечения платного доступа.
activated_atISO 8601 dateДата и время активации платного доступа.
billing_issue_detected_atISO 8601 dateДата и время обнаружения проблемы с оплатой.
profile_has_access_levelBoolБулево значение, указывающее, есть ли у профиля активный уровень доступа (только для вебхуков).

У каждого события есть следующие свойства:

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 обновляется, если он отличается от того, что уже хранится в записи.

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

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

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

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

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

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

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

Warning

Блокировка внешней аналитики останавливает доставку событий во все интеграции для этого пользователя, включая пользовательские вебхуки. Не используйте её, если ваш бэкенд опирается на события вебхуков для управления доступом этого пользователя.

Настройка не имеет обратной силы: события, созданные до её применения, всё равно будут доставлены. Она также не влияет на собственную аналитику Adapty — транзакции пользователя по-прежнему учитываются в графиках дашборда.

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