Google Cloud Storage
Включите интеграцию с Google Cloud Storage, чтобы безопасно хранить события подписок и данные о посещениях пейволов в одном месте — в вашем бакете Google Cloud Storage.
Каждый день в 4:00 UTC Adapty загружает .csv-файлы с данными за предыдущий день в ваши бакеты. Вы можете выбрать, что получать: данные о событиях, данные о посещениях пейволов или и то и другое. Экспортировать данные также можно вручную в любое время и за любой период.
Чтобы настроить интеграцию, создайте ключ доступа к бакету в Google Cloud Console и добавьте его в настройки Adapty.
Расписание и продолжительность загрузки
Adapty загружает данные в Google Cloud Storage каждые 24 часа в 04:00 UTC.
Файлы содержат данные о событиях, созданных в течение предыдущего календарного дня (UTC). Файл, загруженный 8 марта, будет содержать все события, созданные 7 марта с 00:00:00 до 23:59:59 UTC.
Процесс может занять несколько часов — в зависимости от общего числа файлов в очереди и объёма запрошенных вами данных. Если Adapty включает в первую загрузку исторические данные, это займёт больше времени, чем последующие ежедневные загрузки.
Настройка интеграции с Google Cloud Storage
Вам понадобится действующий ключ сервисного аккаунта Google Cloud с правом на запись. Чтобы его создать, следуйте инструкциям в разделе создания учётных данных.
Для событий и посещений пейволов можно использовать разные бакеты с разными учётными данными. Однако если хотя бы один набор учётных данных окажется недействительным, обе загрузки завершатся ошибкой.
Перейдите в Integrations -> Google Cloud Storage и откройте нужную вкладку (Events или Paywall visits). Включите интеграцию.
Загрузите файл с вашим ключом сервисного аккаунта Google Cloud. Укажите целевой бакет и папку. Сохраните изменения.
Дополнительные настройки для данных о событиях
Вы можете указать, какие события включать в отчёт, и задать для них пользовательские названия. Полный список доступных событий см. в статье Events.
| Название | Значение по умолчанию | Описание |
|---|---|---|
| Exclude historical events | true | Исключить информацию о событиях, произошедших до интеграции Adapty SDK в ваше приложение. Если ваша аналитическая платформа получала события подписок до того, как вы начали использовать Adapty, этот параметр предотвращает появление дублирующих событий. Практический примерПользователь оформил ежемесячную подписку 10 января. Обновление приложения от 1 марта было первым, включавшим Adapty SDK. |
| Include events without profile | false | Включить транзакции, не связанные с профилем пользователя или не привязанные к конкретному пользователю. Сюда могут входить покупки, совершённые до установки Adapty SDK, или транзакции, полученные через серверные уведомления. |
| Send user attributes | false | Включить пользовательские атрибуты, например данные о пользователе и использовании приложения. Выберите этот параметр, если ваш тарифный план поддерживает более 10 тегов. Превышение лимита тегов может привести к ошибкам. |
Создание учётных данных Google Cloud Storage
Это руководство поможет вам создать необходимые учётные данные в Google Cloud Platform Console.
Чтобы Adapty мог загружать отчёты с необработанными данными в указанный бакет, требуется ключ сервисного аккаунта и права на запись в соответствующий бакет. Предоставив ключ сервисного аккаунта и выдав права на запись, вы позволяете Adapty безопасно и эффективно передавать отчёты с необработанными данными из своей платформы в ваше хранилище.
Обратите внимание, что поддерживается только авторизация через HMAC-ключ сервисного аккаунта. Убедитесь, что вашему HMAC-ключу присвоены роли «Storage Object Viewer», «Storage Legacy Bucket Writer» и «Storage Object Creator» — это необходимо для корректного доступа к Google Cloud Storage.
- Для начала перейдите в раздел IAM вашего аккаунта Google Cloud и выберите нужный проект или создайте новый.
-
Затем создайте новый сервисный аккаунт для Adapty, нажав кнопку ”+ CREATE SERVICE ACCOUNT”.
-
Заполните поля на первом шаге — доступ будет предоставлен позже. Подробнее об этой странице читайте в документации.
-
Чтобы создать и скачать приватный JSON-ключ, перейдите в раздел KEYS и нажмите кнопку “ADD KEY”.
-
В разделе DETAILS найдите значение Email, связанное с только что созданным сервисным аккаунтом, и скопируйте его. Эта информация потребуется на следующих шагах для авторизации аккаунта и предоставления прав на запись в бакет.
-
Перейдите на страницу Buckets в Google Cloud Storage, выберите существующий бакет или создайте новый для хранения отчётов о событиях или посещениях из Adapty. Затем перейдите в раздел PERMISSIONS и выберите GRANT ACCESS.
-
В разделе PERMISSIONS введите Email сервисного аккаунта, полученный на пятом шаге, выберите роль Storage Object Creator и нажмите SAVE для сохранения изменений.
Запомните название бакета — оно понадобится в будущем.
Ручной экспорт данных
Помимо автоматического экспорта данных о событиях в Google Cloud Storage, Adapty поддерживает ручной экспорт файлов. С его помощью вы можете выбрать конкретный временной интервал и экспортировать данные о событиях в бакет GCS вручную. Это даёт вам больше контроля над тем, какие данные и когда экспортировать.
Указанный диапазон дат используется для экспорта событий, созданных с Даты А 00:00:00 UTC до Даты Б 23:59:59 UTC.
Структура данных
Adapty использует файлы .csv для экспорта данных в табличном формате.
Состав событий может меняться со временем — мы или наши партнёры можем добавлять новые данные. Убедитесь, что ваш код, обрабатывающий эти данные, достаточно гибок и опирается на конкретные поля, а не на структуру в целом.
События
Вы можете изменить список событий, включаемых в отчёты.
| Столбец | Описание |
|---|---|
| profile_id | Идентификатор пользователя Adapty. |
| event_type | Название события в нижнем регистре. Типы событий см. в разделе Events. |
| event_datetime | Дата в формате ISO 8601. |
| transaction_id | Уникальный идентификатор транзакции (например, покупки или продления). |
| original_transaction_id | Идентификатор транзакции оригинальной покупки. |
| subscription_expires_at | Дата истечения срока действия подписки. Как правило, в будущем. |
| environment | Может быть Sandbox или Production. |
| revenue_usd | Выручка в USD. Может быть пустым. |
| proceeds_usd | Поступления в USD. Может быть пустым. |
| net_revenue_usd | Чистая выручка (после вычета налогов) в USD. Может быть пустым. |
| tax_amount_usd | Сумма налоговых вычетов в USD. Может быть пустым. |
| revenue_local | Выручка в местной валюте. Может быть пустым. |
| proceeds_local | Поступления в местной валюте. Может быть пустым. |
| net_revenue_local | Чистая выручка (после вычета налогов) в местной валюте. Может быть пустым. |
| tax_amount_local | Сумма налоговых вычетов в местной валюте. Может быть пустым. |
| customer_user_id | Идентификатор пользователя разработчика. Например, UUID пользователя, email или любой другой идентификатор. Null, если не задан. |
| store | Может быть app_store или play_store. |
| product_id | Идентификатор продукта в Apple App Store, Google Play Store или Stripe. |
| base_plan_id | Идентификатор базового плана в Google Play Store или идентификатор цены в Stripe. |
| developer_id | ID разработчика (SDK) пейвола, из которого пришла транзакция. |
| ab_test_name | Название A/B-теста, из которого пришла транзакция. |
| ab_test_revision | Ревизия A/B-теста, из которого пришла транзакция. |
| paywall_name | Название пейвола, из которого пришла транзакция. |
| paywall_revision | Ревизия пейвола, из которого пришла транзакция. |
| profile_country | Страна профиля, определённая Adapty по IP-адресу. |
| install_date | Дата установки в формате ISO 8601. |
| idfv | identifierForVendor на устройствах iOS |
| idfa | advertisingIdentifier на устройствах iOS |
| advertising_id | Уникальный код, присваиваемый операционной системой Android, который рекламодатели могут использовать для однозначной идентификации устройства пользователя |
| ip_address | IP-адрес устройства (может быть IPv4 или IPv6; при наличии предпочтение отдаётся IPv4). Обновляется при каждом изменении IP-адреса устройства |
| cancellation_reason | Причина отмены подписки пользователем. Возможные значения: iOS и Android — voluntarily_cancelled, billing_error, refund Только iOS — price_increase, product_was_not_available, unknown, upgraded Только Android — new_subscription_replace, cancelled_by_developer |
| android_app_set_id | AppSetId — уникальный, сбрасываемый пользователем идентификатор для каждого устройства и аккаунта разработчика, предназначенный для некоммерческих рекламных сценариев. |
| android_id | На Android 8.0 (API level 26) и выше — 64-битное число (в шестнадцатеричном формате), уникальное для каждой комбинации ключа подписи приложения, пользователя и устройства. Подробнее см. в документации для разработчиков Android. |
| device | Название модели устройства, отображаемое конечному пользователю. |
| currency | Трёхбуквенный код валюты транзакции (ISO-4217). |
| store_country | Страна профиля, определённая Apple/Google store. |
| attribution_source | Источник атрибуции. |
| attribution_network_user_id | Идентификатор пользователя, присвоенный источником атрибуции. |
| attribution_status | Может быть organic, non_organic или unknown. |
| attribution_channel | Название маркетингового канала. |
| attribution_campaign | Название маркетинговой кампании. |
| attribution_ad_group | Группа объявлений атрибуции. |
| attribution_ad_set | Набор объявлений атрибуции. |
| attribution_creative | Ключевое слово креатива атрибуции. |
| attributes | JSON с пользовательскими атрибутами. Включает любые пользовательские атрибуты, настроенные для отправки из мобильного приложения. Для отправки включите параметр Send User Attributes на странице Integrations -> Webhooks. |
| integration_ids | Все идентификаторы интеграций, связанные с профилем. Словарь. Пример: {‘mixpanel_user_id’: ‘mixpanelUserId-test’, ‘facebook_anonymous_id’: ‘facebookAnonymousId-test’} |
Посещения пейволов
| Столбец | Описание |
|---|---|
| profile_id | Идентификатор пользователя Adapty. |
| customer_user_id | Идентификатор пользователя разработчика. Например, UUID пользователя, email или любой другой идентификатор. Null, если не задан. |
| profile_country | Страна профиля, определённая Apple/Google store. |
| install_date | Дата установки в формате ISO 8601. |
| store | Может быть app_store или play_store. |
| paywall_showed_at | Дата, когда пейвол был показан пользователю. |
| developer_id | ID разработчика (SDK) пейвола, из которого пришла транзакция. |
| ab_test_name | Название A/B-теста, из которого пришла транзакция. |
| ab_test_revision | Ревизия A/B-теста, из которого пришла транзакция. |
| paywall_name | Название пейвола, из которого пришла транзакция. |
| paywall_revision | Ревизия пейвола, из которого пришла транзакция. |
Устранение неполадок
Adapty проверяет действительность ключей доступа до начала загрузки. Если хотя бы один ключ Google Cloud Storage окажется недействительным, Adapty прерывает загрузку и выдаёт ошибку.
Чтобы загрузки проходили без перебоев, заменяйте ключи до истечения срока их действия. Если вы обновляете ключ для событий, не забудьте обновить ключ для посещений пейволов, и наоборот.