Проект: ASO.dev — как я снова продукт для Apple делал  Публичный пост
13 сентября 2023  1130
ASO.dev - как я снова продукт для Apple делал
https://aso.dev

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


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

Начало

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

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


Изменения за год (надо наращивать “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…

Сервисы 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/

Связанные посты
6 комментариев 👇

Спасибо за статью, интересно было почитать. Но не могу понять, а зачем нужен сторонний плеер для Apple Music на яблочных девайсах? Какие преимущества перед встроенным?

Могу представить что для других платформ это может быть юзабельно (например если в разных экосистемах сосуществуешь и по каким то причинам используешь Apple Music и хочешь видеть его на своих андроид/windows девайсах)

  Развернуть 1 комментарий

@codedbear, это все таки больше комментарий про другой проект =) https://vas3k.club/project/3705/ , но я с радостью отвечу тут:

  • пропускать дизлайки песен и артистов!
  • слушать все рекомендации от Apple одним плейлистом
  • слушать топ плейлисты разных стран

функций там еще много даже собственная система рекомендаций и отслеживание новых релизов любимых артистов, но вот эти три пункта для меня основные. Почему плеер качают 25к раз в месяц - ну кто-то ищет бесплатный apple music, кто-то интеграцию со Spotify (есть планы ее развития), а кто-то ищет что-то новое)

  Развернуть 1 комментарий
Roman Kotov iOS разработчик в мессенджере ВКонтакте 8 октября 2023

Подскажи, вот у меня есть приложение Секундомеров, оно локализовано на 6 языков, смогу ли я используя твое приложение в пару кликов его локализовать автоматически на все остальные языки и автоматически подобрать ключевые слова или это все придется делать ручками? (PS: не совсем понял из статьи как это работает)

  Развернуть 1 комментарий

@daskioff, все будет почти автоматически - переводы будут через один из переводчиков(Google (бесплатно), Deepl(ключ), GPT(ключ)). Перевести можно как метаданные, так и само приложение(.strings,json,arb). Создание новых локалей приложения через выбор новой локали - она автоматически будет переведена, дальше тебе надо проверить название, подзаголовок и ключевые слова, поправить при необходимости. Мы даем автоматические подсказки ключевых слов. У нас теперь есть немного видео по приложению - https://www.youtube.com/@asodevapp/playlists

  Развернуть 1 комментарий

@Gorniv, Круто, надо будет тогда попробовать, в таких сервисах обычно отпугивает цена. Из России же получится оплатить?)

  Развернуть 1 комментарий

@daskioff, через App Store из России пока только) Цены обычно очень негуманные - мы вот стараемся сделать сервис доступным для каждого разработчика)

  Развернуть 1 комментарий

😎

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

Что вообще здесь происходит?


Войти  или  Вступить в Клуб