У каждого свой жизненный путь и выбор продуктов, у меня видимо какой‑то фетиш делать продукты для 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.

Отдавать кучу денег профи я не готов, поэтому решил потратить полгода (сроки как всегда были провалены), чтобы написать свое решение — лучше, проще, и работающее совсем по‑другому — так как я это вижу!

Активность моего аккаунта по пэт проектам
Активность моего аккаунта по пэт проектам
Активность Юлиного аккаунта по aso.dev
Активность Юлиного аккаунта по aso.dev

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 между странами нежелательны. Мы показываем все дубликаты, не рекомендуемые слова и, конечно, рекомендации!

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

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

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

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

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

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

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

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

  • 15 000 фунтов для покрытия комиссий в 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 месяцев ????‍♂️

Скачать

Комментарии (0)