Firebase приложение не найдено
Здесь приведены решения наиболее распространенных проблем, которые могут возникнуть при связывании приложений AdMob с Firebase.
Не удалось установить связь с проектом Firebase. Проверьте свои разрешения.
Чтобы связать приложение AdMob с Firebase, в аккаунтах AdMob, Firebase и Google Аналитики должны выполняться следующие условия:
- Если у вас аккаунт AdMob с несколькими пользователями, вы должны быть тем пользователем, который запустил процесс связывания с Firebase и принял Условия использования Firebase. Только такой пользователь может связать AdMob с Firebase.
- В Firebase у вас должно быть разрешение firebase.links.create . Оно по умолчанию есть у владельца и администратора аккаунта Firebase. Если у вас другая роль, попросите владельца проекта назначить вашему аккаунту подходящую роль в настройках IAM консоли Firebase.
- В Google Аналитике у вас должна быть роль с правами на изменение или управление пользователями для ресурса, связанного с проектом Firebase. Подробнее…
При связывании AdMob и Firebase произошла ошибка. Обновите страницу и ещё раз попробуйте установить связь.
Если неполадки устранить не удалось:
- Убедитесь, что для AdMob и Firebase используется один и тот же адрес электронной почты.
- Убедитесь, что проект, который вы хотите подключить, не удален.
Как правило, это происходит, когда вы пытаетесь создать более 11 проектов в течение суток после связывания первого приложения AdMob с Firebase.
При попытке создать проект в Firebase произошла ошибка. Возможно, не удалось установить соединение между AdMob и Firebase, или превышен лимит числа проектов в аккаунте Firebase.
При попытке создать новое приложение в Firebase произошла ошибка. Возможно, не удалось установить связь между AdMob и Firebase, или в проекте Firebase уже есть приложение с тем же идентификатором пакета.
Другой пользователь уже связал приложение из вашего аккаунта в AdMob с Firebase, но не предоставил вам доступ к данным Google Аналитики для Firebase.
Попросите его предоставить вам доступ с помощью консоли Firebase.
Другой пользователь уже связал приложение из вашего аккаунта в AdMob с Firebase, но не предоставил вам доступ к данным Google Аналитики для Firebase.
Попросите его предоставить вам доступ с помощью консоли Firebase.
Если проблемы со связыванием AdMob и Firebase не исчезнут, воспользуйтесь инструментом устранения неполадок.
Я пытаюсь добавить ссылки Firebase в свое приложение для Android, но сталкиваюсь со следующей проблемой:
4 ответа
Следуй этим шагам
Обновите свои Сервисы Google Play и Репозиторий Google .
В Android Studio
- Нажмите Инструменты> Android> Диспетчер SDK.
- Перейдите на вкладку Инструменты SDK.
- Выберите и установите Google Play Services и Google Repository
- Синхронизируйте и соберите свой проект.
Чтобы подключить приложение к Firebase непосредственно в Android Studio, выполните следующие действия:
Убедитесь, что вы загрузили репозиторий Google версии 26 или выше:
Нажмите Инструменты> Android> Диспетчер SDK .
Откройте вкладку Инструменты SDK .
Выберите Google Repository , затем нажмите OK.
Откройте окно Ассистента, нажав Инструменты> Firebase .
Щелкните, чтобы развернуть одну из перечисленных функций, например, Google Analytics, затем щелкните руководство по началу работы, чтобы создать новый проект Firebase или подключиться к существующему за несколько щелчков мышью.
Сначала добавьте правила в файл build.gradle корневого уровня, чтобы включить плагин google-services :
Затем в файле Gradle вашего модуля (обычно это app / build.gradle) добавьте строку apply plugin внизу файла, чтобы включить плагин Gradle:
Вы также можете перейти по ссылке ниже, чтобы добавить firebase в приложение для Android.
Сначала убедитесь, что вы установили Google Repository версии 26 или выше, выполнив следующие действия:
ЕСЛИ вам не хватает FireBase ..
Щелкните Инструменты> Android> Диспетчер SDK. Щелкните вкладку Инструменты SDK. Установите флажок Репозиторий Google и нажмите ОК. Нажмите ОК, чтобы установить. Щелкните Фон, чтобы завершить установку в фоновом режиме, или дождитесь завершения установки и щелкните Готово. Теперь вы можете открыть и использовать окно Ассистента в Android Studio, выполнив следующие действия:
Нажмите Инструменты> Firebase, чтобы открыть окно Ассистента .
У меня была такая же проблема с добавлением Firebase. Я обнаружил, что, похоже, существует разница между добавлением файла json при выполнении указанных шагов и добавлением файла json после того, как проект установлен в Firebase.
Вы можете попробовать перейти в настройки своего проекта и загрузить эту версию json. Он исправил все совершенно случайные ошибки, которые не имели смысла.
Александр Осташевский, Head of Performance Marketing в агентстве WAMP в колонке для AIN.UA рассказал, как специалисты агентства запускали рекламу приложения по поиску работы в Польше и с какими неожиданностями столкнулись в процессе. А заодно составил подробную инструкцию по запуску кампаний в Google и Facebook.
Александр Осташевский. Фото и изображения далее предоставлены автором
Первым делом нужно настроить всю аналитику и передачу конверсий (событий внутри приложения). Для этого необходимо определиться с инструментом аналитики, но сперва понять, какие каналы рекламы будем запускать.
Настройка аналитики
Есть инструменты для трекинга Adjust и AppsFlyer, но они платные и больше подходят тогда, когда вы запускаетесь с подрядчиками, множеством рекламных сетей, аффилиатскими программами и т.д. Мы же собирались запускать Google, Facebook и Apple Search Ads, которые генерируют 80% всего трафика, и для этих целей нам хватило Firebase, Google Ads и Facebook Ads SDK.
Для отслеживания установок и действий внутри приложений нужно сделать конфигурацию в Firebase и добавить код в приложения. В первую неделю мы забыли вписать ID приложения из App Store после публикации и не могли понять, почему не работает.
Для рекламы приложений в Google есть специальный тип рекламной кампании с оптимизацией бюджета на получение максимум установок.
В ней таргетинги практически все автоматические, на основе машинного обучения, так что основными задачами при запуске являются:
- Передача максимального количества конверсий (флажков для машинного обучения), чтобы Google понимал, как и какие люди лучше взаимодействуют с приложением, и перенастроил свой таргетинг.
- Качественные креативы: нам потребуются тексты и баннеры специальных размеров для этого типа кампаний (самые популярные согласно рекомендаций Google 1200х628, 320х50, 250х250).
Видео
Отдельно хотим поговорить про видео как отличный формат рекламного объявления при рекламе приложения.
Наш совет: потратьте время и сделайте сразу свой YouTube-канал, оформите его, сделайте описание и хотя бы одно видео, описывающее возможности приложения. Это может быть не профессиональная съемка, а анимация, показывающая действия внутри приложения. Видео хорошо работает в этом типе кампаний как конверсионный формат, а бонусом вы получите дополнительные просмотры видео на вашем канале и подписчиков.
Мы добавили ключевые слова в настройках канала. Связали канал с Google Ads и Google Analytics, чтобы импортировать метрики канала в рекламный кабинет.
Google-кампании
Запускайте кампанию с небольшим бюджетом и предельно внимательно следите за ней в первые дни, чтобы не потратить слишком много денег. После 1-2 дня, когда вы зайдете в настройки кампании, вы можете посмотреть, как целевая цена за установку, заданная вами, влияет на бюджет и количество установок.
Рекламные кампании на установку приложения, к сожалению, не дают возможности вручную выбирать ключевые слова для показа рекламы. Мы же хотели попробовать рекламу по топ-запросу [работа в польше]. Поэтому предложили сделать стандартные поисковые кампании, задать вручную ключевые слова и рекламировать сайт, а с него отслеживать переходы в магазины приложений.
Аналогично предложили сделать отдельную баннерную кампанию со ссылкой на сайт и выбрать местом размещения Viber, так как у большинства пользователей это приложение установлено и его часто используют для звонков родным из-за рубежа.
Рекламу на посещения сайта на мобильных устройствах запускали с таргетингом на desktop. Понимая, что мы не отследим взаимосвязь установок приложения и посещений сайта с компьютера, решили на сайте разместить QR-код на первый скрин и отслеживать количество сканирований QR.
Facebook SDK
Так как Facebook SDK не установлен, Firebase трекает Facebook трафик, как direct трафик, и точное количество установок посчитать невозможно. Чтобы видеть конверсии в рекламном кабинете Facebook, нам нужно установить их SDK, так как Facebook не дружит с Google и импорт из Firebase нельзя настроить напрямую в Facebook.
Нужно создать и настроить:
Чтобы сделать базовую настройку приложения в Facebook, нужно задать его параметры и добавить ссылку на политику конфиденциальности (может быть как на сайте, так и просто в Google Docs). Для создания текста политики конфиденциальности можно воспользоваться бесплатным генератором Firebase:
Далее нужно установить Facebook SDK в приложение. Тут не обойтись без помощи разработчиков.
Для того, чтобы интегрировать Facebook SDK в приложение? Можно воспользоваться этой инструкцией.
После установки SDK, мы можем сразу запускать в Facebook специальный тип кампаний на установку приложения, видеть количество установок и оптимизировать бюджет по ним. Также нам будет доступен инструмент анализа аудитории Facebook Analytics.
Он достаточно мощный и позволяет делать анализ всех и наиболее активных пользователей приложения по демографии, интересам и т.д.
Анализ аудитории
Далее мы начали анализировать аудиторию приложения, качество трафика и удержание пользователей. Нужно быть готовым, что с ростом количества установок будет расти и количество людей, которые открыли приложение пару раз и удалили его.
Лишь 40%, установив приложение, не удаляют его через сутки. И это считается средним показателем удержания для всех приложений.
Начали смотреть в разделы аналитики аудиторий. Firebase ничего интересного не показал, если сравнивать всех, кто установил приложение и кто им активно пользуется.
В то же время Facebook Analytics на основе данных о самых активных 10% пользователей показал, что это люди в возрасте 25-54 лет и чуть более активными из них являются мужчины.
Поэтому мы решили исключить из таргетинга лиц моложе 25 лет и старше 54 лет и начали следить за отчетами по удержанию пользователей в Facebook.
Также аналогичные отчеты по удержанию есть в Firebase.
Оптимизация кампаний
Также можно оптимизировать рекламные кампании не по установкам, а по целевым действиям внутри приложения, если настроим события внутри приложения, которые считаем целевыми для нас. Базовыми являются такие действия конверсии:
Мы для себя выделили такое целевое действие как sign-up и решили запустить новые рекламные кампании с оптимизацией не на количество установок, а на пользователей, которые с большей вероятностью совершат целевое действие после установки.
В случае с Google все чуть проще: разработчик должен настроить передачу события в Firebase, потом мы передаем это событие в Google и выбираем новые настройки кампании.
С Facebook сложнее. Вместе с установкой Facebook SDK все события автоматически передаются в Facebook, однако мы не можем эти события использовать для оптимизации рекламы. Чтобы оптимизировать рекламу по событиям, нужно установить дополнительный код Facebook-трекинга и выбрать название одной из “стандартных” конверсий, которые понимает Facebook.
Мы пытались без помощи разработчиков настроить отслеживание sign-up через Facebook инструмент настройки, но приложение начало падать при таком варианте отслеживании событий.
В Facebook есть три типа конверсий:
- Авто-конверсии, когда FB сам, исходя из действий и кусочков кода, считает определенное действие конверсией,
- Стандартные конверсии из FB-списка для каждой ниши,
- Специальные конверсии, которые задаются вручную и которых нет в списке стандартных.
Странно, но нет возможности задать как цель оптимизации авто- и специальные конверсии. Можно выбрать только «стандартную» конверсию.
Чтобы создать стандартную конверсию в приложении, есть 2 варианта: вручную указать в приложении, на каких кнопках эта конверсия есть, или с помощью разработчиков добавить кусок кода при срабатывании конверсии. Мы вручную задали sign-up как стандартную конверсию «завершенная регистрация» при клике на кнопку Create an account в приложении, и запустили кампании с оптимизацией на это действие. Но при таком отслеживании приложение иногда подвисало, и мы его отключили. Поэтому мы предлагаем все же добавить кусок кода FB при срабатывании sign-up, чтобы таким образом трекать все sign-up с гарантией.
Справка по названию стандартных Facebook событий конверсий.
Далее для передачи конверсии необходимо сгенерировать нужный код и добавить его отработку при нужном событии в приложении. Если все сделано правильно, потом в настройке группы объявлений в Facebook вы увидите такую возможность для оптимизации.
Теперь, после всех настроек мы первично анализируем стоимость за установки по каналам, а потом еженедельно анализируем удержание привлеченных пользователей по отчетам “Удержание” в Facebook Analytics и Firebase Analytics и высчитываем такую метрику, как стоимость за одного пользователя, который продолжил пользоваться приложением через неделю (Retained W1 users).
Увидели, что на Facebook удержание лучше. Выделили больший бюджет, несмотря на то, что стоимость установки выше, чтобы получить максимум Retained W1 users по обеим платформам. Стоимость установки определили второстепенной метрикой.
На основе данных по удержанию на первую неделю, корректировали ставки в разрезе Facebook/Google и внутри кампаний в них. Стремимся, чтобы цена за 1 пользователя, который открыл приложение через неделю, по всем кампаниям и платформам была одинаковая.
Сейчас ждем настройки этой конверсии разработчиками и приступим к запуску новых кампаний.
Проблема с поисковой выдачей
Приложение не находилось в поиске. Мы переписали текст описания приложения в Google play и App Store, и добавили нужные ключевые слова, по которым хотели, чтобы находили наше приложение.
Поправили описание страницы в Google Play и добавили в название ключевые слова на украинском и русском языке.
Теперь приложение по запросам [работа в Польше] и т.п. начало появляться в выдаче Google Play на 5 месте, и в общем поиске Google также стало показываться.
Видеокампании
Также мы создали видеокампании с целью повысить узнаваемость бренда:
- с таргетингом по выбранным YouTube-каналам,
- по аудиториям-интересам,
- кампания типа последовательность видео: суть ее в том, чтобы человеку показать последовательно все три видео, не сразу, а, к примеру, через день. Если пользователь просмотрит все видео, у него создастся более целостное представление о бренде и функциях приложения.
Создали указанные выше 5 аудиторий по интересам, запустили одну видеокампанию на них.
В итоге запустили 3 типа видеокампаний.
Видео на выбранных каналах не дало много показов, но мы уверены в местах размещения. Стоимость за переход, конечно, очень высокая, но это работа на знание бренда, а никак не на прямые переходы/конверсии.
Последовательность из трех видео вышла чуть дороже, чем обычная рекламная кампания с показом одного из роликов. Таргетинги у кампаний аналогичные, поэтому «последовательность» мы остановили через пару дней.
Видео с таргетингом по созданным пяти аудиториям дало хорошее количество показов и самую низкую стоимость за клик среди запущенных видео кампаний.
Важно отметить, что при этом основная кампания Android Install крутилась с видеорекламой на YouTube. Также у нее самые лучшие показатели по CTR, стоимости клика и т.д. Поэтому мы предложили оставить видео на выбранных каналах, так как там максимально целевая аудитория. Расширять список таких каналов и крутить ее с ограниченным бюджетом до 100 евро в неделю. При этом видеореклама из основной кампании Android Install будет охватывать на остальных каналах людей, которые по поведенческим паттернам подходят под нашу ЦА.
Запустили рекламу и сразу появились брендовые запросы в поиске. Немного, но тоже неплохо.
Поэтому можно утверждать, что любая реклама влияет на рост органических установок и на брендовые запросы и прямые посещения сайта, если адрес сайта легко запомнить.
Автор: Александр Осташевский, Head of Performance Marketing в нашем WAMP агентстве
Маркетинг стал частью мира разработки. По количеству звездочек на GitHub определяют, какое из похожих друг на друга решений круче, а по количеству твитов можно спрогнозировать, какая технология будет развиваться в ближайшие полгода. В таких условиях мы рискуем стать жертвами хайпа, что мы в Лайв Тайпинге и сделали, принимая Firebase за Священный Грааль, способный решить все проблемы разом: сбора статистики, интеграции чатов, выбора базы данных, быстрой разработки MVP. Когда же я столкнулся с этим сервисом в бою, то понял, что моё представление о Firebase расходилось с реальностью настолько сильно, что понимание области применения технологии стало для меня настоящим откровением. Я хочу поделиться этим пониманием и тем, как всё-таки использовать Firebase правильно.
Желание поработать с Firebase появилось у меня давно, но я ждал подходящего проекта. И дождался: MVP системы бронирования офисов. Так как это MVP, бизнес-логика бэкендa довольно примитивная. К тому же к Firebase будет подключаться мобильное приложение на iOS. С виду идеальный случай для использования сервиса, но в ходе реализации пришлось столкнуться с некоторыми проблемами, о которых и пойдёт речь дальше.
Но сначала хотелось бы устранить все недопонимания. Вот две вещи, которые нужно усвоить для работы с Firebase:
- это не бэкенд, а база данных. Можете забыть о тех чудо-примерах приложений на Firebase без серверной части, это пока недостижимо;
- это NoSQL со всеми его преимуществами и недостатками.
- его область применения намного меньше, чем у NoSQL-решения;
- Firebase сильно ограничивает вас при выборке данных и при необходимости записать данные в несколько мест одновременно;
- далеко не со всеми структурами данных удобно работать в Firebase.
Преамбула
Представим, что вы разрабатываете систему бронирования для сети отелей.
Там есть такие сущности:
- отель
- номер
- клиент
- бронь
Как реализовать это на NoSQL (Firebase)? Можно попробовать вложить сущности в друг-друга:
Тут начинают возникать вопросы: а стоит ли вкладывать все букинги в номер? а куда вкладывать клиентов? И т.п. Проблема NoSQL зачастую в том, что данные приходится дублировать.
Есть второй вариант: попытаться использовать NoSQL схожим с SQL способом и создать в корне объекты для каждой сущности, а связи поддерживать, храня id других объектов.
Вероятно, в других NoSQL-базах бороться с этими проблемами проще, но решения для своих задач я в Firebase не нашёл.
Какой бы вариант вы не предпочли, у них есть одинаковая проблема: невозможность сделать сложную выборку данных. Что делать, если вы хотите получить список бронирований конкретного клиента? Эти бронирования могут оказаться вложенными в разные номера и отели, а если структура плоская, то Firebase не сможет отфильтровать данные по нескольким параметрам (эту проблему даже обсуждали на StackOverflow). В общем, если вы хотите сделать выборку по клиенту и дате бронирования, Firebase SDK вам ничем не поможет.
Можно попытаться решить эту проблему на бэкенде, но тогда вам придётся выкачивать выборку данных, отфильтрованных по одному параметру, и фильтровать её дальше самостоятельно. Это неприемлемо.
Что делать?
Не использовать Firebase для сложной выборки данных. В этом нам может помочь собственный бэкенд на Node.js и один из нижеописанных инструментов.
ElasticSearch
Это поисковый движок с JSON REST API, использующий Lucene и написанный на Java. Подробности можно почитать на официальном сайте, а мы сразу начнём рассматривать его в связке с Firebase.
Установка
Нужно поставить ElasticSearch на сервер (сделать это по инструкции будет несложно). После нужно интегрировать его с Firebase, а именно — создать поисковый индекс из базы Firebase. Я использовал официальную интеграцию от Firebase. Для запуска нужно скачать репозиторий, установить зависимости и заполнить config с ключами для Firebase.
В этом решении я нашел несколько минусов:
- это отдельное приложение на Node.js, и его сложно связать с бэкендом;
- создать правильный индекс для ElasticSearch непросто, и одной синхронизацией данных с базой Firebase не обойтись;
- типы полей присваиваются автоматически.
ElasticSearch бесплатен и разворачивается на своём подконтрольном сервисе — это плюс. Но вместе с тем возникает ряд проблем с деплоем и безопасностью, которые нужно продумать заранее.
Пример: открыт порт, используемый Elastic Search для внешних запросов. Это создаёт уязвимость, так как этот же порт используется для записи и управления поисковыми индексами. Возможным результатом такого недосмотра станет удаление поискового индекса или внесение в него своих данных. Поэтому изначально этот порт открыт только для запросов с той же машины, на которой установлен ElasticSearch.
Сделаем вывод: вопрос того, как реализовать взаимодействие между пользователем, ElasticSearch и бэкендом, ложится на плечи разработчика.
Algolia
SaaS-решение для поиска. Платное, но с бесплатным планом. С прайсом и прочими деталями можно ознакомиться на официальном сайте.
Интеграция с Firebase реализована при помощи официальной js-библиотеки. Процесс установки и запуска подробно описан в readme, и у меня всё заработало с первой попытки.
Выглядит интеграция примерно так:
В результате мы получаем поисковый индекс в Algolia, содержащий все объекты rooms из Firebase. Обратите внимание, что по ходу импорта данные можно обработать дополнительно, например подтянуть название отеля из другого объекта в базе данных.
После того, как мы создали индекс, мы не собираемся обновлять его целиком, поэтому в дальнейшем следим за событиями в Firebase и обрабатываем их:
Единственный минус в использовании Algolia в том, что за SaaS нужно платить. Но для MVP бесплатного тарифа должно быть достаточно, а делать на Firebase масштабный проект мало кому придёт в голову (я надеюсь).
В противовес этому сомнительному минусу мы получаем удобную админку с доступом к аналитике, поисковому индексу и нюансам работы поисковых запросов.
Важным плюсом является наличие SDK под всё и вся — от мобильных платформ до фреймворков для бэкенда. В суть я не вникал, но iOS-разработчик сказал: это удобнее, чем REST.
Я советую вам попробовать именно Algolia: интеграция с Firebase лучше, установка проще, а в довесок мы получаем консоль с аналитикой и SDK. Я оставил без внимания технические детали и не анализировал производительность и скорость, это сложная и отдельная тема.
Итоги
Выгоды этой довольно простой системы ощутимы. Мы получаем:
- Firebase для хранения данных, всех операций чтения и простых неконкурентных запросов;
- Node.js для всех конкурентных запросов и сложной бизнес-логики + обслуживания Algolia/ElasticSearch;
- Algolia/ElasticSearch для поиска и сложной выборки данных.
При условии грамотного использования Firebase становится вполне приемлемым решением для доступа и хранения данных. Всегда помните, что данные первичны, и если вы выбрали неправильную структуру данных или способ работы с ними, вас ждут серьёзные проблемы в разработке.
Жду в комментариях ваших историй об интеграции Firebase и замечаний по статье. Спасибо!
Читайте также: