Firebase — платформа, и аналитика в ней одна часть. Большинство текстов о «замене Firebase» тихо имеет в виду замену целиком, а это другое и гораздо более крупное решение. Здесь речь только об аналитической части: что меняется, если вынуть Google Analytics for Firebase из приложения, что стоит оставить и чему замены действительно нет.
Почему вообще смотрят
Измерять приложение не должно требовать согласия с рекламной платформой. Firebase Analytics держит на устройстве идентификатор экземпляра приложения и построен для работы с платформенными рекламными идентификаторами (рекламным идентификатором Android, IDFA от Apple), потому что атрибуция к рекламным кампаниям и есть добрая часть его назначения. Если вы не рекламируетесь, вы всё равно везёте эту машинерию.
Согласие. Идентификатор на устройстве приносит с собой требование согласия в ЕЭЗ и Великобритании, а приложение, спрашивающее при первом запуске, теряет часть собственных пользователей из собственных чисел. Тот же довод, что и про баннер cookie на сайте, но с худшим первым впечатлением.
Модель событий. Firebase Analytics — система событий и параметров. Она вознаграждает команду, аккуратно моделирующую свои события, и даёт очень мало той, что этого не делает, а таково большинство команд на протяжении большей части жизни продукта.
Один поставщик, одни отношения. Некоторые организации просто не могут отправлять данные о пользовании приложением в Google. Это факт закупок, а не довод, и именно поэтому изрядная доля читающих это читает это.
Что вместо этого шлёт SDK с приватностью на первом месте
Полезный вопрос не «приватно ли это», а «что в полезной нагрузке». SDK приложений Skomi шлют:
- имя экрана, которое вы задали, ваши свойства и признак того, открыл ли он сессию;
- платформу, версию ОС и мобильное это устройство или настольное;
- версию приложения, которую вы передали, и то, какой сборкой SDK это отправлено;
- когда это произошло по часам устройства и когда пачка была отправлена;
- личность: случайный UUID, который установка порождает сама себе.
Больше ничего. Ни рекламного идентификатора, ни идентификатора устройства, ни местоположения, ни учётной записи, ни контактов, и, значит, ни одного разрешения во время работы ни на одной платформе, кроме доступа в интернет, потому что ничего из того, что требует разрешения, не запрашивается.
Размен в одну строку: связать пользование приложением с рекламной кампанией больше нельзя, а спрашивать у кого-либо разрешения, чтобы его посчитать, больше не надо.
Оставьте свою систему отчётов о падениях
Здесь ошибаются, и собственная документация SDK Skomi говорит об этом прямо, а не оставляет вам выяснять самим.
SDK аналитики приложения может сообщить об ошибках, которые ему передал ваш код, и о тех, что бросает фреймворк. Он не может сообщить о нативном падении (segfault в C++ какого-нибудь плагина, убийстве по нехватке памяти, NSException из канала платформы), потому что процесс, который бы сообщал, уже мёртв.
Так что Crashlytics, Sentry или собственная отчётность магазина остаются. С аналитической стороны вы получаете долю сессий без падений, стоящую рядом с числами вашего выпуска, и она отвечает на другой вопрос: не «что сломалось», а «хуже ли эта сборка предыдущей». Стоит знать: эта доля ошибается в пессимистичную сторону, потому что сессия, упавшая до своего первого экрана, считается упавшей и не считается сессией, а это безопасная сторона для ошибки.
Загрузки файлов сопоставления тоже нет, поэтому стек из минифицированной выпускной сборки приходит таким, каким его бросили. Ещё одна причина оставить систему отчётов о падениях.
Чему замены нет
Честно об остальной платформе, потому что «альтернатива Firebase» часто означает куда больше, чем аналитику:
- Remote Config, A/B-тесты, Cloud Messaging, Authentication, Firestore: ничто из этого не является аналитикой, и ничто из этого инструментом аналитики не заменяется.
- Аудитории и атрибуция рекламы. Построить аудиторию в Firebase и использовать её в Google Ads — та интеграция, ради которой Firebase Analytics и существует. Уберите рекламный идентификатор, и это уйдёт с ним, по построению.
- Выгрузка сырых событий. Firebase может лить каждое событие в BigQuery. API приложений Skomi отвечает агрегатами (сводками, временными рядами, разбивками), а не таблицей событий, которую вы моделируете сами.
Если что-то из этих трёх у вас несущее, такую замену делать не стоит.
Что вы получаете такого, чего Firebase не даёт
- Те же отчёты по вашему сайту и вашему приложению в одном аккаунте. Выпуск и маркетинговая кампания на одной неделе — это две линии на одной странице, а не два продукта и догадка. Смотрите аналитику приложения и сайта в одном месте.
- Очередь без сети, которая не считает дважды. Каждый экран несёт идентификатор, выданный один раз, поэтому пачка, переотправленная после двух недель без сигнала, опознаётся, а не считается снова.
- Переключатель согласия, который это всерьёз.
Enabled = falseничего не записывает и ничего не шлёт, так что SDK может существовать с запуска и начать только тогда, когда кто-то согласился.
Честное резюме
Если вы используете Firebase для аутентификации, сообщений и базы данных, это заменяет один компонент, а остальное остаётся, включая Crashlytics.
Если вы добавили Firebase в приложение только чтобы узнать, сколько людей его открыло и до каких экранов они дошли, вы везёте рекламную платформу ради ответа на вопрос, которому она не нужна, и её удаление — небольшое изменение с непропорционально большим эффектом на то, что вам приходится раскрывать.
Установка — один вызов: Flutter, .NET MAUI или любой из восьми SDK.
Что приходит, когда он начинает отчитываться, есть на странице аналитики приложений: экраны, сессии, версии и доля сессий без падений. Остальное поле, включая продукты, обходящие нас по цене, изложено на альтернативах Firebase.