ASO.dev - как я снова продукт для Apple делал

У каждого свой жизненный путь и выбор продуктов, у меня видимо какой-то фетиш делать продукты для Apple и их API... Вот уже 4-й год как я делаю плеер для Apple Music (статья 1, 2, 3), а 20 ноября 2022 года вместе с женой придумали и начали делать ASO.dev.

Когда в статье появляется мы - то я имею в виду мы, а не я такой крутой перец и пишу о себе от множественного числа
Когда в статье появляется мы - то я имею в виду мы, а не я такой крутой перец и пишу о себе от множественного числа

Начало

И так, обо всем по порядку, ну или как выйдет :D

С сентября 2022 мы очень сильно переписали плеер, добавили поддержку Spotify и вообще хотели добавить пользователей к проекту.

Развивать инди-проект без денег на маркетинг и вообще без денег очень тяжело, поэтому весь трафик для meows.app приходит из App Store - в приложении ~25 000 новых установок в месяц органики (чисто из поиска, есть куда расти).

Изменения за год (надо наращивать “conversion rate”)
Изменения за год (надо наращивать “conversion rate”)

И это не только Россия, но и все остальные страны, приложение заполнено на 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) - весело…

Переведи максимум в 30 символов - 43 меньше чем 30…
Переведи максимум в 30 символов - 43 меньше чем 30…

Сервисы ASO обычно достаточно хорошо работают по 10-20 странам и не заточены под работу с несколькими странами сразу - я пытался это решить новым подходом для отображения и тем что пользователю не надо добавлять слова. Сейчас в базе больше 300,000 слов для поиска и она постоянно растет - мы делаем 17 млн запросов в сутки, а база за 3 месяца весит около 1 ТБ.

Возможно, база не самая большая, но она получена через подсказки и поиск в iTunes и Apple Search Ads - поэтому достаточно релевантная!

Например, плеер meows.app можно найти по более чем 4,500 ключевых слов (RU)!

Рекомендации ключевых слов мы строим автоматически и показываем их в редакторе метаинформации с учетом знаний по популярности слов, топа в категории и сохраненных в список слов, постепенно улучшаем алгоритм.

Валидация cross localization, на мой взгляд самая крутая фишка - для США можно заполнить 10 стран, пересечения keywords между странами нежелательны. Мы показываем все дубликаты, не рекомендуемые слова и, конечно, рекомендации!

ASO.dev - как я снова продукт для Apple делал

- Ключевые слова

Таблицы и графики по всем найденным ключевым словам по приложению. Можно смотреть все или по списку ключевых слов (как фильтр). Есть разные вкладки - по стране, по дате и по слову. Есть сортировки, фильтрации(в том числе сложные) и скрытие колонок.

Ключевые слова приложения
Ключевые слова приложения

- Приложения конкурентов

Для получения релевантных слов из приложений конкурентов, особенно актуально для новых приложений. Приложения из этого списка будут использоваться для получения рекомендаций по ключевым словам на вкладке “Конкуренты” в редакторе.

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

Список ключевых слов, их рейтинг (синий), популярность (красная) и подсказки. И все без ограничения по количеству.

Список ключевых слов проекта и подсказки к ним
Список ключевых слов проекта и подсказки к ним

- Топ (бесплатно)

Топ приложения по категории, типу девайса, и типу платежа, а также совсем недавно выкатили топ по ключевому слову.

Топ приложений
Топ приложений
Результаты для ключевого слова
Результаты для ключевого слова

Ключевые слова любого приложения, по ссылке/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 в год…

ASO.dev - как я снова продукт для Apple делал

Почему мне нужен дорогой сертификат? - я сэкономил кучу денег и собираю 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/

1919
9 комментариев

мощно - один стэк чего стоит, при прочтении в голове рисуются образы смузи-стартапов с коллективом разрабов и кучей денег :)

перечитал два раза, с утра тяжело воспринять оказалось,
респектую.

What's new в Appstore это что-то вроде Release notes в google play?
интересно в гугле ноутсы на позицию аппки влияют ? - не задумывался об этом.

На флаттере сделали небольшую веб-админку проекта (кроме самой аппки), осталось впечатление, что всё получилось достаточно тормознутое, особенно когда списки записей на странице - например, список статей штук на 50.
Сделал вывод, что наверное не правильно готовим.

2

инди проект - два разраба без денег :D
"What's new" - да, это как "Release notes", на позиции не влияют, но для пользователей может быть полезно, может влиять на конверсию в установку.
У меня по работе(где я пока зарабатываю деньги на еду и т.д.) проект для Flutter web - там очень много элементов на странице(больше 8к) в списке+ карта и другие элементы и взаимодействия и все работает отлично.

1

очень круто, успехов 💪

2

Спасибо) Очень надеюсь, что мы так же сможем помочь многим инди разработчикам (наш фокус в проекте) !

1