ASO.dev - как я снова продукт для Apple делал
Начало
И так, обо всем по порядку, ну или как выйдет :D
С сентября 2022 мы очень сильно переписали плеер, добавили поддержку Spotify и вообще хотели добавить пользователей к проекту.
Развивать инди-проект без денег на маркетинг и вообще без денег очень тяжело, поэтому весь трафик для meows.app приходит из App Store - в приложении ~25 000 новых установок в месяц органики (чисто из поиска, есть куда расти).
И это не только Россия, но и все остальные страны, приложение заполнено на 39 локализаций (все в App Store), на тот момент еще с помощью переводов и таблиц от Google вручную.
Собственно, это и стало проблемой, решая которую мы создали ASO.dev. Когда тебе надо перевести "Что нового" на очень много языков - ты просто всегда пишешь "Исправления и улучшения", а твое ASO очень ограничено и направлено всего на несколько стран.
Так что же такое это ASO, черт возьми?! ASO - это AppStore Search Optimization (не прошло и пол года, как я расшифровал это вам).
По-простому - это привлечение пользователей из поиска магазина приложений (App Store, Google Play и другие).
Вообще, ASO довольно сложен и дорог, тарифы на сервисах для ASO обычно начинаются от 100 долларов/месяц, есть и немного дешевых, но там и функций почти нет, в лучшем случае можно сделать половину правок из-за ограничения по тарифам.
Еще немного теории как работают с ASO: берут приложение и собирают к нему список ключевых слов (инструментов много) - долго, сложно и дорого.
Вообще aso-шники очень трудолюбивые люди :D Они пересечение 10 стран по списку ключевых слов - руками делают в Word!
Страшный сон для меня...
Заполнение локализации многие или не делают, или оставляют за скобками ASO.
Отдавать кучу денег профи я не готов, поэтому решил потратить полгода (сроки как всегда были провалены), чтобы написать свое решение - лучше, проще, и работающее совсем по-другому - так как я это вижу!
Apple review
Когда вы планируете публикацию нового приложения в App Store - нужно отправить его на проверку как можно раньше, потому что все пойдет не по плану и вы будете что-то исправлять или объяснять команде Apple Review неделями.
Мне было очень тяжело отправлять незаконченную версию на проверку, но я знал, что это неизбежное зло! (Версия отправлена 24 апреля 2023)
На удивление macOS версию проверили очень быстро и без проблем. С iOS версией aso.dev застрял на параметрах privacy - указали больше чем собираем и долго пытались понять что от нас хочет команда и что вообще нужно исправить. Потом нас 5 раз заставили объяснить как работает приложение, какая бизнес модель и даже записать видео как работает приложение (15-минутное видео и куча исправленных багов в процессе).
А дальше настала “неприятная ситуация” - нас отправили на App Review Board так как мы используем Connect API и можем менять данные приложений пользователей. С 12 мая мы ждали проверки и после 6 звонков, проверки и одобрения от Apple Legal Team (юристы) и Apple App Review Board (совет собирается 1 раз в неделю и решает судьбы приложений, попавших к ним) "8 июня 2023" мы получили одобрение! 🚀🎉
Цели
Как я решил делать свою программу? У меня было несколько основных целей первой версии (я был очень амбициозен или глуп):
- Создание 39 локализаций максимально быстро, а лучше одной кнопкой
- Перевод "What's new" на все языки одной кнопкой
- Все ключи по приложению без поиска и ручного заполнения списка слов по 59 странам (есть куда расти, но базис у нас уже есть)
- Рекомендации ключевых слов (с сервера максимально автоматически, чтобы не искать и не думать как вообще можно улучшить свои ключевые слова)
- Интерактивная табличка cross localization с метаданными и их валидацией
- Работать без ограничений по количеству слов (привет всем тарифным сеткам ASO-программ)
- Минимизировать походы в AppStore Connect
Функции
И так по пунктам зачем все это нужно и что из этого получилось.
При каждом релизе нужно заполнить "Что нового" на всех языках, или перевести любое другое поле, если что-то там изменилось. Небольшие стартапы или инди-разработчики не могут нанять переводчика или не хотят тратить время на перевод информации о приложении через какой-нибудь онлайн переводчик, копировать и вставлять 39 языков. Даже готовые переводы вставить в AppStore не так просто (а у нас можно!).
Чем больше локализаций - тем больше возможностей оптимизации приложения и больше пользователей.
- (Google Translate, DeepL или Chat GPT) - весело…
Сервисы ASO обычно достаточно хорошо работают по 10-20 странам и не заточены под работу с несколькими странами сразу - я пытался это решить новым подходом для отображения и тем что пользователю не надо добавлять слова. Сейчас в базе больше 300,000 слов для поиска и она постоянно растет - мы делаем 17 млн запросов в сутки, а база за 3 месяца весит около 1 ТБ.
Возможно, база не самая большая, но она получена через подсказки и поиск в iTunes и Apple Search Ads - поэтому достаточно релевантная!
Например, плеер meows.app можно найти по более чем 4,500 ключевых слов (RU)!
Рекомендации ключевых слов мы строим автоматически и показываем их в редакторе метаинформации с учетом знаний по популярности слов, топа в категории и сохраненных в список слов, постепенно улучшаем алгоритм.
Валидация cross localization, на мой взгляд самая крутая фишка - для США можно заполнить 10 стран, пересечения keywords между странами нежелательны. Мы показываем все дубликаты, не рекомендуемые слова и, конечно, рекомендации!
- Ключевые слова
Таблицы и графики по всем найденным ключевым словам по приложению. Можно смотреть все или по списку ключевых слов (как фильтр). Есть разные вкладки - по стране, по дате и по слову. Есть сортировки, фильтрации(в том числе сложные) и скрытие колонок.
- Приложения конкурентов
Для получения релевантных слов из приложений конкурентов, особенно актуально для новых приложений. Приложения из этого списка будут использоваться для получения рекомендаций по ключевым словам на вкладке “Конкуренты” в редакторе.
Список ключевых слов, их рейтинг (синий), популярность (красная) и подсказки. И все без ограничения по количеству.
- Топ (бесплатно)
Топ приложения по категории, типу девайса, и типу платежа, а также совсем недавно выкатили топ по ключевому слову.
- Шпион
Ключевые слова любого приложения, по ссылке/id приложения или из топов, списка приложений конкурентов
Возможность быстро предоставить доступ к проекту, с возможностью точечных настроек каждого раздела, без выдачи прав в Apple (нужны большие компании для тестирования)
- Переключение страны iTunes (бесплатно)
Switcher - возможность переключить App Store на iOS и macOS для просмотра приложений, поиска, рейтингов из другого региона напрямую в App Store
- Выбор билда и публикация
Возможность быстро, в том числе с телефона выбрать билд и отправить на проверку
- Переводы и история с DeepL и OpenAi (Chat GPT) ключами
Мы добавили несколько сервисов переводов и их сортировку при работе с ними, так как тот же DeepL не все языки может перевести. Ключ используется пользовательский, хранится и используется только с клиента (так дешевле и безопаснее), но Apple решил на быстрой проверке - что мы нарушаем правила 3.1.1 и остановил нам весь процесс выпуска версий еще на две недели - мы убрали эту функцию на время апелляции, сейчас все работает, почти два месяца ждали решения…
После того как нам разрешили публикацию с использованием ключей DeepL и OpenAl приложение выкинули из стора в Китае из-за того, что AI сервисы у них запрещены, отключили для Китая все, что связано с OpenAI по региону стора, написали апелляцию - ждем снятия запрета для Китая.
Еще недели 2 занял перенос приложения с одного аккаунта разработчика на другой. Зависали на том, что после удаления всех бетта-тестировщиков - Apple какое-то время их все еще видел при запросе на перенос
Быстрые релизы
Чтобы решить проблемы с “зависанием” на проверках у Apple, мы делаем сборку dmg и сюрприз - Windows! .dmg получилось сделать довольно быстро. Но решение проблемы, почему у меня запускается, а у клиентов нет заняло приличное количество времени - начинающие macOS разработчики или кто еще столкнулся с распространением билдов впервые - гуглите “notarize”.
Windows
Мы используем Flutter - поэтому сделать рабочую версию под Windows заняло примерно два дня. Еще дня четыре я настраивал автоматическую сборку, так как локально все работало, а на CI\CD из-под Runner - падало. Позже я узнал что наш установщик определяется как потенциальный вирус. Чтобы решить проблему - надо купить Сертификат для подписи кода, который должен быть выпущен только в определенных сертифицированных центрах (от ~200$). А тот который мне нужен - стоит 450 в год…
Почему мне нужен дорогой сертификат? - я сэкономил кучу денег и собираю Windows в Azure, поэтому мне нужен “облачный” (HMS) сертификат. Тут вы скажите - “Где, блин экономия?! - он же дорогой” и будете правы, но я уже получил 5к$ на Azure по программе от Microsoft для стартапов (https://www.microsoft.com/en-us/startups)...
Microsoft для стартапов
Заявка оформляется очень легко и быстро.
Мы уже получили:
- 2500$ на OpenAI (GPT)
- 5000$ на Azure
- 15000 фунтов для покрытия комиссий в Stripe!
Именно поэтому наши платежи в .dmg и Windows сделаны через Stripe. Интеграция Stripe и Windows заняла кучу времени, так как все это было впервые, но я счастлив, что мы закончили эти задачи!
Техническая часть
Gitlab CI\CD, Kubernetes + Rancher, .Net core для бэка, Flutter для клиента, Astro.build для сайта, RabbitMQ для очередей, MongoDB - для мелких и сложных данных, ClickHouse для хранения позиций по ключевым словам.
MacOS и iOS уже в App Store, .dmg и Windows версии уже на сайте,
Android - можем сделать.
Web - полноценно его сделать невозможно по ограничениям безопасности (CORS для работы с Connect API мы обходить не хотим, потому что не передаем никакой приватной информации через свой сервер, в первую очередь ключи), не уверен, что будем делать урезанную версию - пиши свои комментарии на этот счет.
Планы:
- редактор подписок (в работе)
- редактор скриншотов (в работе) - перемещение - удаление - добавление скриншотов
- редактирование скриншотов - создание самих скриншотов, рамки и локализация
- редактор in app events
- dashboard приложения, отчеты, подсказки
И очень много других идей
Начали мы проект на Бали, большую часть написали в Таиланде, выпустили первую версию из Казахстана, а доделали и запускаем маркетинг из Грузии…
Время запуска ~10 месяцев 🤦♂
Скачать - https://aso.dev/download/
мощно - один стэк чего стоит, при прочтении в голове рисуются образы смузи-стартапов с коллективом разрабов и кучей денег :)
перечитал два раза, с утра тяжело воспринять оказалось,
респектую.
What's new в Appstore это что-то вроде Release notes в google play?
интересно в гугле ноутсы на позицию аппки влияют ? - не задумывался об этом.
На флаттере сделали небольшую веб-админку проекта (кроме самой аппки), осталось впечатление, что всё получилось достаточно тормознутое, особенно когда списки записей на странице - например, список статей штук на 50.
Сделал вывод, что наверное не правильно готовим.
инди проект - два разраба без денег :D
"What's new" - да, это как "Release notes", на позиции не влияют, но для пользователей может быть полезно, может влиять на конверсию в установку.
У меня по работе(где я пока зарабатываю деньги на еду и т.д.) проект для Flutter web - там очень много элементов на странице(больше 8к) в списке+ карта и другие элементы и взаимодействия и все работает отлично.
очень круто, успехов 💪
Спасибо) Очень надеюсь, что мы так же сможем помочь многим инди разработчикам (наш фокус в проекте) !
🚀