HELPERG (opens in a new tab) Ecosystem

WebmasterID logoWebmasterID
Меню
Аналитика мобильных приложений с уважением к приватности

Аналитика мобильных приложений для iOS, Android и Flutter

Установите публичный SDK, передайте ему решение каждого пользователя о согласии и отправляйте события. WebmasterID показывает события, сессии, установки, удержание и конверсии ваших приложений iOS и Android в том же рабочем пространстве, что и ваши сайты, а отчёты прямо говорят, на какие вопросы ответить не могут.

Платформы

Нативные SDK для iOS и Android и плагин для Flutter

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

  • iOS

    Swift Package Manager. WebmasterID iOS SDK 1.3.0 для iOS 15.0 и новее, из публичного Swift-пакета на GitHub.

  • Android

    Gradle, с Kotlin или Java. WebmasterID Android SDK 0.3.0 для API 24 и новее, из публичного Maven-репозитория webmasterid.com/sdk/maven.

  • Flutter

    pub.dev: webmasterid_flutter 0.4.0 для Flutter 3.47.0 и новее, в приложениях iOS и Android. Работает поверх нативных SDK.

React Native, Unity и .NET не поддерживаются. Плагин для Flutter охватывает приложения iOS и Android, но не Flutter для веба или настольных систем.

Что можно измерять

Пять отчётов на основе событий, которые отправляет ваше приложение

Каждый отчёт считает по моменту, когда WebmasterID получил событие, а не по часам устройства, и определения ключевых метрик приведены прямо на странице.

  • Обзор

    События, сессии, активные установки, впервые замеченные установки и идентифицированные пользователи, с событиями по дням, самыми частыми событиями и состоянием сбора данных: когда пришло последнее событие.

  • События

    Каждое имя события с количеством и сессиями, самые частые экраны и страны, а также 50 последних событий с сокращёнными псевдонимными идентификаторами.

  • Конверсии

    События воронки, о которых сообщает ваше приложение, — в одной таблице; покупки, подтверждённые Apple или Google, — в другой. Эти данные никогда не суммируются.

  • Удержание (бета)

    Когорты 1, 7 и 30 дня по установкам, в вашем часовом поясе отчётов. День, который ещё не прошёл, показывается как пока не наблюдаемый, а не как нулевое удержание.

  • Атрибуция

    Что известно об источнике активности в приложении, а что нет. SDK не отправляют ни источник, ни кампанию, ни реферер, поэтому источник установок показывается как неизвестный, а не как органический.

Фиксированный словарь событий, общий для всех приложений, чтобы их отчёты означали одно и то же: app_open, session_start, screen_view, cta_tap, search_performed, filter_applied, signup, login, checkout_started, booking_started, payment_started, booking_completed, cancellation, refund_requested.

События фиксируют экран, на котором они произошли, если он есть. Собственные имена событий и свойства не поддерживаются, а версия приложения, версия ОС и состояние согласия проверяются при получении события, но не сохраняются, поэтому разбивки по ним нет.

Сайты и приложения

Ваши сайты и приложения в одном рабочем пространстве, рядом

Команды, у которых есть и сайт, и приложение, видят их в одном месте и по одному тарифу. Отчёты при этом остаются раздельными: WebmasterID не объединяет посетителя сайта и пользователя приложения в одного человека.

  • Общее

    Один аккаунт, одно рабочее пространство и один тариф. Одна панель с разделами «Сайты» и «Приложения» в боковом меню. Выбранный период сохраняется при переходе между ними, часовой пояс отчётов один.

  • Раздельное

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

Установка

От установки до первого события

Регистрация приложения сама по себе ничего не собирает. События появляются, когда SDK установлен, запущен с решением пользователя о согласии, отправляет события и доставляет их.

Прежде чем начать

Активный тариф Pro, Agency или Business в рабочем пространстве; роль «Владелец», «Администратор» или «Редактор», чтобы зарегистрировать приложение; iOS 15.0 и новее со сборкой в Xcode 26.0 и новее, Android API 24 и новее с Gradle или Flutter 3.47.0 и новее; и место в приложении, где пользователь принимает решение об аналитике, а приложение передаёт ответ в SDK. Аккаунт GitHub, токен доступа и приватный репозиторий не нужны.

  1. 1. Выберите тарифСоздайте аккаунт и выберите Pro или Agency при оплате. Аналитика приложений входит в оба тарифа.
  2. 2. Зарегистрируйте приложениеВ разделе «Приложения iOS» или «Приложения Android» панели. Вы получите публичный ID свойства: его можно встраивать в приложение, он не секретный и сам по себе ничего не собирает.
  3. 3. Добавьте SDKЧерез Swift Package Manager, Maven-репозиторий WebmasterID или pub.dev.
  4. 4. Запустите его с решением о согласииИнициализируйте SDK с ID свойства и передайте ему решение пользователя. Пока решения нет, ничего не ставится в очередь и не отправляется.
  5. 5. Отправляйте событияПросмотры экранов, нажатия и важные для вас шаги воронки. Во Flutter наблюдатели жизненного цикла и навигации из плагина сами записывают app_open и screen_view.
  6. 6. Доставьте ихSDK делает это сам, в iOS и в Android: примерно через 5 секунд после события, когда приложение уходит в фон, и после следующего запуска — всё, что осталось. flush() нужен только для момента, который выбирает само приложение.
  7. 7. Проверьте первое событиеВ разделе «Приложения → Обзор приложений» состояние сбора данных показывает последнее полученное событие. Если ничего не пришло, шаги проверки в руководстве и диагностика SDK объясняют почему.
Согласие и идентификация

Согласие и идентификация простыми словами

WebmasterID записывает то, что отправляет ваше приложение, вместе с решением, которое приложение передаёт. Нужно ли согласие и на каком правовом основании, решаете вы; SDK сам по себе не делает приложение соответствующим требованиям.

  • Нет решения — нет данных

    Пока приложение не передаст решение пользователя, SDK ничего не ставит в очередь и ничего не отправляет.

  • Разрешено

    События несут идентификатор сессии, идентификатор установки и, если приложение вызывает identify(), ключ аккаунта. Идентификаторы установки и ключи аккаунта хранятся как хеши с секретным ключом: это псевдонимные, а не анонимные данные.

  • Ограничено

    События несут только идентификатор сессии: ни идентификатора установки, ни ключа аккаунта. Это сокращённая идентификация, а не анонимность: идентификатор сессии, точное время и страна сохраняются.

  • Отказано

    Ничего не отправляется.

  • Без рекламных идентификаторов

    Сервер отклоняет IDFA, IDFV, рекламный идентификатор Android и другие идентификаторы устройства. Запрос App Tracking Transparency не показывается, а ответ на ATT не является согласием на аналитику.

  • IP-адрес не хранится

    Страна определяется на границе сети при получении события. Ни IP-адрес, ни user-agent не сохраняются.

Руководство по установке (на английском) подробно описывает состояния согласия, идентификаторы и то, что отправляют SDK, — для сведений о конфиденциальности в App Store и раздела «Безопасность данных» в Google Play.

Конверсии

Заявленные конверсии и подтверждённые покупки — разные факты

Приложение может сообщить о начатой оплате. Подтвердить покупку могут только Apple или Google. Отчёт о конверсиях держит их в разных таблицах и никогда не суммирует.

  • Конверсии, о которых сообщает приложение

    События воронки, которые отправляет приложение, учитываются как утверждения самого приложения: signup, login, checkout_started, booking_started, payment_started, booking_completed, cancellation и refund_requested.

  • Покупки, подтверждённые магазином

    В iOS — транзакции StoreKit 2, подписанные Apple и проверенные по сертификатам Apple, и App Store Server Notifications. В Android — токены покупок Google Play, проверенные в Google, и уведомления для разработчиков в реальном времени. Для каждого варианта нужно подключение к магазину, настроенное на странице приложения в панели. Учитываются только транзакции рабочей среды, приносящие выручку, — валовые, до возвратов и отдельно по каждой валюте. Покупки в песочнице и тестовые покупки не учитываются никогда.

Состояние проверки покупок

Доставка уведомлений App Store проверена в рабочей среде. Часть для Google Play развёрнута, но ещё не подтверждена от начала до конца тестовой покупкой, и ни одна покупка пока не прошла через песочницу какого-либо из магазинов до подтверждения. RevenueCat и другие фреймворки покупок не поддерживаются.

Подходит ли это вам?

Для чего это подходит, а для чего нет

  • Подходит

    Командам, которые уже измеряют сайт с WebmasterID и выпускают приложение для iOS или Android. Приложениям, ключевые моменты которых укладываются в 14 событий: экраны, нажатия, поиск, фильтры, регистрация и вход, а также шаги бронирования, оплаты и покупки. Командам, которым нужна псевдонимная аналитика приложений с согласием и без рекламных идентификаторов. Агентствам, которые ведут сайты и приложения нескольких клиентов (тариф Agency добавляет рабочие пространства и участников команды).

  • Не подходит

    Для атрибуции установок: постбэков рекламных сетей, SKAdNetwork, Apple AdServices, Google Play Install Referrer, кампаний с диплинками, стоимости или ROAS; WebmasterID не является партнёром по мобильным измерениям (MMP). Для собственных имён и свойств событий или единого пути, по которому человека можно проследить с сайта в приложение или между устройствами. Для загрузок из App Store или Google Play: впервые замеченная установка — это первое событие идентификатора установки, а не загрузка. Для отчётов о сбоях, записи сессий, push-уведомлений или A/B-тестов. Для приложений на React Native, Unity или .NET. Для данных приложений в просмотре событий, экспорте или инструментах MCP и агента, которые работают с веб-данными.

Цены

Входит в Pro и Agency

Пакеты SDK доступны для скачивания публично. Чтобы отправлять события и смотреть отчёты по приложениям, нужен активный тариф. Бесплатного тарифа для новых аккаунтов нет.

Pro стоит 499 USD в месяц, Agency — 1 199 USD в месяц; условия Business согласуются индивидуально. Все три тарифа включают аналитику приложений. Ежемесячная оплата в USD, отменить можно в любой момент.

Частые вопросы

Частые вопросы

Начинается ли сбор данных после регистрации приложения?
Нет. Регистрация создаёт публичный ID свойства приложения, и больше ничего. События появляются, когда в приложении установлен SDK, он запущен с решением пользователя о согласии, отправляет события и доставляет их.
Когда события покидают устройство?
Примерно через 5 секунд после записи, одинаково в iOS и Android, без вызовов со стороны приложения; а также когда приложение уходит в фон (без гарантии: система может приостановить его раньше) и после следующего запуска — всё, что ещё в очереди. Пока приложение работает, неудачные запросы повторяются автоматически; приостановленное или закрытое приложение ничего не отправляет, пока снова не запустится. До iOS SDK 1.3.0 и webmasterid_flutter 0.4.0 iOS отправлял события, только когда приложение вызывало flush() или уходило в фон; обновление включает автоматическую доставку.
Нужен ли сайт, чтобы пользоваться аналитикой приложений?
Нет. После оплаты откройте «Приложения iOS» или «Приложения Android» в панели и зарегистрируйте приложение. Отчёты по приложениям не зависят от сайта.
Заменяет ли WebmasterID AppsFlyer или Adjust?
Нет. Это партнёры по мобильным измерениям: они атрибутируют установки рекламным сетям и кампаниям. SDK WebmasterID не отправляют ни источник, ни кампанию, ни реферер, а WebmasterID не подключается ни к рекламным сетям, ни к SKAdNetwork, ни к AdServices, ни к Install Referrer.
Данные анонимны?
Нет. Идентификаторы установки и ключи аккаунта хранятся как хеши с секретным ключом, поэтому это псевдонимные, а не анонимные данные. При ограниченном согласии события несут только идентификатор сессии: это сокращённая идентификация, но всё равно не анонимность.
Используется ли IDFA и запрашивается ли App Tracking Transparency?
Нет. Сервер отклоняет рекламные идентификаторы и идентификаторы устройства, а WebmasterID не запрашивает ATT. Ответ на ATT не является согласием на аналитику: приложение передаёт SDK собственное решение об аналитике.
Можно ли увидеть активность одного человека на сайте и в приложении?
Нет. Сайты и приложения отображаются рядом в одном рабочем пространстве, но идентификаторы хешируются отдельно для каждого сайта и приложения, поэтому посетитель сайта и пользователь приложения никогда не связываются — как и один и тот же пользователь в приложениях iOS и Android.
Какие покупки учитываются как выручка?
Только покупки, подтверждённые Apple или Google: транзакции рабочей среды, приносящие выручку, — валовые, до возвратов и отдельно по каждой валюте. Покупки в песочнице и тестовые покупки не учитываются никогда. События оплаты, о которых сообщает приложение, показываются как утверждения самого приложения, отдельно от выручки.
Работает ли это с RevenueCat?
Нет. Проверка покупок работает со StoreKit 2 в iOS и Google Play Billing в Android. RevenueCat и другие фреймворки покупок не поддерживаются.
Работает ли это с React Native или Unity?
Нет. Есть нативные SDK для iOS (Swift) и Android (Kotlin или Java) и плагин для Flutter для приложений iOS и Android. React Native, Unity и .NET не поддерживаются.
Сколько это стоит?
Аналитика приложений входит в Pro (499 USD в месяц) и Agency (1 199 USD в месяц), а также в тарифы Business с индивидуальными условиями. Пакеты SDK доступны для скачивания публично; чтобы отправлять события и смотреть отчёты, нужен активный тариф. Бесплатного тарифа для новых аккаунтов нет.