ASO · App Store Connect · SDK · подписки
От поискового запроса до выручки — в одной рабочей области
AppMetrio сводит позиции в поиске App Store, данные App Store Connect, собственную продуктовую аналитику и подписки. У каждой метрики одно определение, у каждого релиза и правки витрины — отметка на графике.
Бесплатный тариф: до 1 000 000 событий и 5 000 устройств в месяц.
01Что заменяет
Четыре инструмента, которые обычно открыты в разных вкладках
ASO-сервис, App Store Connect, продуктовая аналитика и подписочная аналитика. У каждого свой период, свои определения и своя «правда» об одном и том же числе.
- ASO
Магазин
Позиции по фразам и сторфронтам, подсказки поиска, конкуренты, отзывы с ответами и темами, история правок витрины.
- App Store Connect
Установки и продажи
Установки по странам, подписки Apple, воронка «показы → страница → загрузка», источники трафика — каждый день без ручного похода в ASC.
- SDK
Продуктовая аналитика
События, сессии, удержание, когорты, воронки, пути, сегменты и профили — из собственного SDK для iOS, Android и Flutter.
- Revenue
Деньги
MRR, триалы и отток из RevenueCat, пейволы, своя выручка по когортам, прогноз LTV и сверка источников.
Метрики описаны в общем реестре. Сервер, конструктор отчётов и ассистент считают их одним кодом, а «как это считается» видно в словаре прямо в интерфейсе.
02Ключ → деньги
Цель — не позиция в выдаче, а платящие пользователи
ASO-сервисы видят выдачу, но не видят, что человек делал после установки. Продуктовая аналитика и MMP видят события и деньги, но не видят магазин. AppMetrio держит обе половины в одной базе.
- Когорта по запросу. Установки одного дня по одному запросу считаются отдельно: D1, D7, триалы, оплаты и выручка за первые 30 дней жизни когорты.
- Рядом с позицией. На столе ключевых слов у фразы есть колонки «Установки» и «Деньги». Прочерк значит «меток не было», ноль — «пришли и не заплатили».
- Алерт, когда фраза перестала приносить деньги. Сравниваются только когорты, прожившие свои 30 дней.
Запрос берётся из атрибуции Apple Ads на уровне ключевых слов. Органический запрос App Store не раскрывает, поэтому такие установки в отчёт не попадают — по органике доступны позиции и воронка стора.
03Возможности
Разделы идут в порядке пути пользователя
Увидел в магазине, пришёл, пользуется, платит, возвращается. Над карточками приложений — общий уровень рабочей области: портфель, входящие и хроника.
Магазин
Видимость в App Store и то, что о приложении пишут.
Позиции по фразам
По сторфронтам, с историей, движениями за неделю и тепловой картой «страна × фраза». Фразы из названия и подзаголовка меряются ежедневно.
Подсказки поиска
Автоподсказки App Store по вашим фразам — для исследования хвоста запросов.
Конкуренты
Кто рядом в выдаче, по каким фразам вы пересекаетесь и что пишут в их публичных отзывах.
Отзывы
Все сторфронты одним потоком, темы по правилам и вручную, рейтинг по странам. Ответ разработчика отправляется из интерфейса.
Витрина
Метаданные по локалям со счётчиком длины и история правок: что добавили в ключевые слова и что убрали.
Воронка стора
Показы → страница → загрузки по источникам трафика из App Store Connect.
Привлечение
Откуда пришли установки и что из них вышло.
Источники установок
По источнику, кампании и стране. Источник становится окончательным через сутки после первого запуска.
Apple Ads
Токен AdServices SDK берёт сам на первом запуске — отдельного вызова в коде нет.
Play Install Referrer
Детерминированная атрибуция на Android:
utm_sourceиutm_campaignиз Google Play.Короткие ссылки и QR
Ссылки на go.appmetrio.com: метка уходит в магазин, клик остаётся у вас, открытие приложения по ссылке связывается с установкой.
Ключ → деньги
Когорты установок по запросу Apple Ads — до выручки за 30 дней. Подробнее
Без фингерпринтинга
Сопоставления по IP и характеристикам устройства нет и не будет. SKAdNetwork не поддерживается сознательно.
Продукт
Что делают внутри приложения и кто возвращается.
События и словарь
Имена и параметры событий объявлены в словаре. Приём отвергает то, чего в нём нет, — опечатка не становится новым событием.
Удержание и когорты
Три метода — классический, скользящий, интервальный — с объяснением каждого. Аудитория: DAU, WAU, MAU, липкость.
Воронки
Шаги из словаря, окно конверсии и порядок. Ответ считается заново при каждом открытии.
Пути
Куда уходят с шага и что было перед ним.
Сегменты и профили
Сегмент — фильтр сразу для всех отчётов приложения. Профиль хранит историю значений атрибутов.
Трасса сессии
Лента событий вместо видео: какие экраны, в каком порядке и где сломалось. Запись экрана не ведётся.
Heatmap-lite
Тапы в долях экрана — только на экранах, которые приложение само перечислило в SDK. Без снимков экрана.
Конструктор отчётов
Метрика × разрез × период. Вид графика и сравнение с прошлым периодом живут в ссылке; экспорт в CSV и PNG.
Монетизация
Сколько приносит каждая когорта, каждый пейвол и каждый продукт.
Подписки
MRR, активные подписки и триалы, отток, конверсии и новые клиенты — ряды RevenueCat по дням.
Своя выручка и пейволы
По событиям SDK: когортная выручка, ARPU и ARPPU, плательщики, конверсия триала, показы и конверсия пейвола по размещению и варианту.
Прогноз LTV и оттока
Кривая когорты продолжается по первым 14 дням и приходит с интервалом. На когортах меньше 200 человек прогноз не строится.
Клиенты
Карточка установки: источник и правило атрибуции, профиль с историей, покупки и хвост событий на одном экране.
Продукты и цены
То, что реально покупают, с ценами по валютам сторфронтов и конверсией триала там, где триалы были.
Сверка источников
Proceeds Apple против RevenueCat за общее окно — расхождение видно до того, как оно вырастет. Метрики ЮKassa собираются рядом.
Качество и рост
Проверить сборку, выкатить безопасно, вернуть ушедших. Сбор крэшей и ANR пока не входит в продукт.
Живая отладка
События тестовых устройств в потоке за секунду, без перезагрузки страницы. Там же — готовая команда
curlс подписью.Правила по данным SDK
Падение D1 свежих когорт, просевший шаг воронки, замолчавшее событие, провал приёма, падение выручки.
Флаги и kill switch
Значение по умолчанию — из сборки. Выключение выката доезжает до устройств за пять минут, без релиза.
Эксперименты
Назначение фиксируется навсегда, выборка объявляется до старта, есть holdout. Вывод — по интервалу разницы с контролем.
Пуши по сегментам
Число получателей видно до отправки, контрольная группа выделяется сама. Тихие часы 22:00–9:00 по времени телефона, не больше одного пуша в день и трёх в неделю.
Версии
Версия приложения и ОС — разрезы отчётов. Версия SDK приходит с каждой пачкой событий.
Над приложениями
Что требует внимания во всём портфеле и почему изменились числа.
Портфель
KPI по всем приложениям, таблица приложений и свежесть данных по каждому источнику.
Входящие
Одна очередь того, что ждёт человека: тревоги, отзывы без ответа, простои сбора, эксперименты, дозревшие до решения. Запись можно отложить.
Хроника
Релизы, правки витрины, ссылки, флаги, эксперименты, пуши, простои сбора и заметки — одной лентой и отметками на временных графиках.
Дашборды
Обзор приложения собирается из виджетов: переставляется мышью и с клавиатуры, меняет размер и сохраняется под именем.
Ассистент
Вопрос на русском превращается в отчёт. Модель выбирает метрику, разрез, период и вид из реестра и не пишет SQL; прочтение вопроса показано рядом.
Алерты и дайджест
Аномалии сравниваются с тем же днём недели по медианному отклонению, а не с порогом. Доставка и утренняя сводка — в почту и Telegram.
04Как подключить
Первое событие — за три шага
Позиции в поиске и публичные данные магазина SDK не требуют. SDK нужен для событий, удержания, атрибуции, флагов, экспериментов и пушей.
-
Шаг 1
Рабочая область и приложение
Создайте рабочую область и добавьте приложение. В «Настройках» → «Приложения и ключи» выпустите ключ: получите ключ приложения
am_…и секрет подписи. Секрет показывается один раз.Ключ для релизной сборки лучше выпустить отдельно от отладочного — чтобы отозвать один, не трогая другой.
-
Шаг 2
Одна строка на старте приложения
Подключите Swift Package
AppMetrioи вызовитеstart. Установка, первый запуск, обновление, сессии и экраны уходят сами; продуктовые события — явным вызовом.Секрет подставляйте на этапе сборки — из переменной окружения,
xcconfigили CI, — а не храните в git.AppDelegate.swiftSwiftimport AppMetrio AppMetrio.start( AMConfiguration( appKey: "am_…", secret: "…", endpoint: URL(string: "https://in.appmetrio.com")!, isTestDevice: isDebugBuild // такие устройства видит «Живая отладка» ) ) // Продуктовые события — явно, имена из словаря AppMetrio.track(.featureUsed, ["feature": "экспорт"]) -
Шаг 3
Первое событие в «Живой отладке»
Запустите сборку с
isTestDeviceи откройте «Живую отладку» в карточке приложения. Событие появляется в потоке за секунду, без перезагрузки страницы.
Платформы SDK
Нативные реализации одного контракта с общим словарём событий. Подпись обеих платформ проверяется одной фикстурой и обязана совпасть с серверной байт в байт.
iOS Swift
- Минимум
- iOS 15
- Пакет
- Swift Package
- Экраны
- UIKit сам, SwiftUI —
screen - Атрибуция
- Apple Ads (AdServices)
Android Kotlin
- Минимум
- Android 7.0 (API 24)
- Зависимости
- одна — Install Referrer
- Экраны
- активити сами, Compose —
screen - Подключение
- из исходников, Maven — позже
Показать код
AppMetrio.start(
this,
AMConfiguration(
appKey = "am_…",
secret = "…",
endpoint = "https://in.appmetrio.com",
isTestDevice = BuildConfig.DEBUG,
),
)
Flutter Dart
- Минимум
- Flutter 3.44
- Устройство
- мост к нативным SDK
- Экраны
- из роутера —
screen - Подключение
- из исходников, pub.dev — позже
Показать код
await AppMetrio.start(
const AMConfiguration(
appKey: 'am_…',
secret: '…',
endpoint: 'https://in.appmetrio.com',
isTestDevice: kDebugMode,
),
);
Автособытия
install,first_open,app_update,session_start,session_end,screen_view.Очередь на диске
До 5 000 записей, пачка — до 100 событий или 256 КБ. На 429 и 503 SDK ждёт
Retry-Afterи повторяет.Подпись
Каждая пачка подписана HMAC-SHA256. Приём — отдельный домен in.appmetrio.com без cookie.
Без персональных данных
Ключи вроде
email,phone,nameвырезаются на устройстве. Геопозиция не собирается.Согласие
setCollectionEnabled(false)останавливает сбор и стирает очередь. Ответ запоминается.Удаление
forget()стирает данные на устройстве, а сервер удаляет сырые данные этого устройства.Флаги и пуши
Флаги и варианты экспериментов отдаются из кеша мгновенно; push-токен и открытия пушей — отдельными вызовами.
Не роняет экран
Вызов аналитики не бросает исключений в приложение. Нет сети или ответа — флаги возвращают значения из сборки.
05Тарифы
Два тарифа, разница — в лимитах потребления
Счётчики против лимитов тарифа видны в настройках рабочей области, на странице «Потребление».
Бесплатный
FreeБесплатноДля старта и небольшой аудитории
- События
- 1 000 000 / мес
- Устройства
- 5 000 / мес
- Пуши
- 10 000 / мес
Профессиональный
ProПо запросуДля приложений с растущей аудиторией
- События
- 50 000 000 / мес
- Устройства
- 100 000 / мес
- Пуши
- 500 000 / мес
При 80% лимита — предупреждение в интерфейсе и алерт.
Сверх лимита приём отвечает 429 с Retry-After, а счётчик отказов виден на странице «Потребление». SDK держит пачку на диске и повторяет отправку.
06Безопасность
Изоляция данных — на уровне базы, а не дисциплины
Каждая команда работает в своей рабочей области. Ошибка в запросе должна давать пустой результат, а не чужие данные.
- RLS
Изоляция рабочих областей
Row Level Security PostgreSQL включена на каждой таблице с данными. Соединение привязывается к рабочей области до первого запроса, и забытый фильтр в коде даёт пустой ответ.
- HttpOnly
Сессия в cookie
Непрозрачный токен в cookie с HttpOnly и SameSite=Lax — скрипт на странице его не прочитает. В базе хранится только хэш, смена пароля отзывает все сессии.
- Шифрование
Секреты зашифрованы
Ключи интеграций и секреты подписи SDK хранятся зашифрованными. Секрет SDK показывается один раз, у ключей интеграций видны только последние символы.
- Роли
Владелец, администратор, аналитик, наблюдатель
Права упорядочены: наблюдатель только смотрит, квитировать тревоги и писать заметки в хронику может аналитик и выше.
- Журнал
Журнал действий
Кто и что сделал в рабочей области — отдельный раздел настроек.
- HMAC
Приём отдельно от интерфейса
События принимает отдельная служба на своём домене, без сессий и cookie. Пачки подписаны, лимиты действуют по ключу, устройству и адресу, ключ отзывается с датой.
Где хранятся данные
Инфраструктура платформы размещена в Германии, у Hetzner. SDK не собирает имён, email, телефонов и геопозиции; идентификатор аккаунта попадает в аналитику, только если приложение само передаёт его через identify.
Раздел описывает техническое устройство и не является юридическим заключением. Требования GDPR, 152-ФЗ и других законов к вашему приложению стоит оценить с юристом.
07Вопросы
Частые вопросы
Нужен ли SDK, чтобы видеть ASO и данные App Store Connect?
Нет. Позиции, подсказки и публичные данные магазина собираются без SDK, установки и продажи приходят из App Store Connect. SDK нужен для событий, удержания, атрибуции, флагов, экспериментов и пушей.
Какой ключ App Store Connect нужен?
Ключ App Store Connect API с ролью Admin и vendor number для отчётов о продажах. С ролью App Manager Apple отказывает и в Analytics Reports, и в Sales and Trends.
Собирает ли AppMetrio крэши?
Нет. Крэш-репортинг и ANR пока не входят в продукт. SDK не ставит свой обработчик крэшей, поэтому не конфликтует с тем, что уже стоит в приложении.
Видно ли органический запрос, по которому установили приложение?
Нет, App Store его не раскрывает. «Ключ → деньги» работает по запросам Apple Ads, а по органике доступны позиции по фразам и воронка стора.
Поддерживается ли SKAdNetwork?
Нет, сознательно. Источник установки определяется по Apple Ads через AdServices, Play Install Referrer, открытию собственных ссылок и явному коду; остаток считается органикой. Сопоставления по IP и характеристикам устройства нет.
Как подключается RevenueCat?
Секретным ключом V2 с правами на чтение графиков и вебхуком. Ключ хранится зашифрованным, ряды MRR, подписок, оттока и конверсий забираются раз в сутки.
Секрет подписи лежит в приложении — это безопасно?
Секрет удостоверяет сборку, а не человека: извлёкший его сможет слать события за это приложение, и только. Против этого — отзыв ключа с датой, до которой доживает старый билд, и лимиты по ключу, устройству и адресу.
Есть ли публичный API и SSO?
Пока нет. Вход — через учётную запись рабочей области, выгрузка — CSV и PNG из любого отчёта.
Подключите первое приложение
Рабочая область, ключ и первое событие в «Живой отладке». Бесплатный тариф — до 1 000 000 событий в месяц.