Кейс

Парсер отзывов App Store

Отзывы на приложение видны всем, но выгрузить их некуда. Копировать вручную — день работы, а через неделю данные уже устарели.

Мы опубликовали его в открытом каталоге и сделали бесплатным. Запустить можно за пять минут без единой строчки кода — инструкция ниже.

Заказать анализ отзывов
Парсер отзывов App Store — выгрузка отзывов iOS-приложений без имён авторов

Задача

Отзывы в App Store публичны — их видит любой человек с телефоном. Но увидеть и посчитать не одно и то же.

Продакт-менеджеру нужно понять, за что ругают приложение после релиза. Маркетологу — сравнить своё приложение с двумя конкурентами. Аналитику — найти темы, которые повторяются чаще других. Во всех трёх случаях нужна таблица, а Apple таблицу не отдаёт: отзывы можно только листать в интерфейсе.

Дальше начинается ручная работа. День на копирование, неделя — и данные устарели. Задача, которая должна занимать пять минут, не решается вовсе.

Что делает инструмент

Забирает отзывы и карточку приложения и отдаёт готовый файл — CSV, Excel, JSON или сразу в Google Таблицу.

По отзывам: заголовок, текст, оценка от одного до пяти, дата, версия приложения, на которой отзыв написан, число полезных голосов, страна витрины.

Заголовок отзыва — особенность именно App Store, у Google Play его нет. Для анализа он часто полезнее самого текста: человек формулирует в нём суть претензии одной фразой.

По приложению: название, разработчик, цена, средняя оценка, число оценок, категория, версия, дата выхода и обновления, минимальная версия iOS, размер, описание, что нового в релизе.

Работает по идентификатору приложения, ссылке на страницу в App Store, bundle ID вроде net.whatsapp.WhatsApp или по поисковому запросу — можно, например, взять первые десять приложений по слову «трекер привычек» и собрать отзывы у всех сразу.

Как он работает

Только через официальные публичные эндпоинты Apple: RSS-фид отзывов, lookup для карточки приложения, поиск. Ни авторизации, ни обхода защиты — интерфейсы, которые Apple сама предоставляет для машинного доступа.

Три вещи, которые обычно ломают анализ, решены внутри.

Даты. Apple отдаёт время в часовом поясе витрины: для США со сдвигом минус семь часов, для Германии плюс два. Если собрать несколько стран и не привести к общему виду, сортировка по дате перестанет что-либо означать. Все даты переводятся в UTC в формате ISO 8601.

Ошибки. Четыре попытки с нарастающей паузой на каждый запрос. Одно недоступное приложение не роняет весь прогон: остальные данные приходят, а в журнале появляется предупреждение.

Повторный сбор. Указываете дату в поле reviewsSince, и сбор останавливается, дойдя до отзывов старше неё. Для ежедневного наблюдения это разница между тридцатью секундами и получасом.

Ограничение, о котором надо знать заранее

Публичный фид Apple отдаёт максимум 500 отзывов на приложение — десять страниц по пятьдесят. Обойти это нельзя, и любой инструмент, обещающий больше из публичного источника, либо показывает те же 500 строк, либо лезет туда, куда лезть не должен.

Мы это ограничение не прячем, а выносим в описание. Работают два способа набрать глубину, и оба поддержаны:

Собирать по нескольким странам. Потолок считается на каждую витрину отдельно. Десять стран — до пяти тысяч отзывов, причём с разбивкой по рынкам, что для анализа обычно полезнее однородной кучи.

Запускать по расписанию. Окно в 500 отзывов постоянно сдвигается. Собирая раз в сутки, вы накапливаете собственную историю, которая быстро перерастает любой разовый лимит.

Если приложение ваше собственное, у Apple есть App Store Connect API — он отдаёт всю историю отзывов без ограничений, но требует вашего личного ключа. Это другой инструмент и другая задача.

Защита данных

Никнеймы рецензентов — персональные данные по GDPR. В выгрузке их нет.

Вместо имени возвращается authorHash: SHA-256 с секретной солью, усечённый до шестнадцати символов. Одинаковый никнейм всегда даёт одинаковый хеш, поэтому сгруппировать отзывы одного автора можно. Восстановить имя из хеша — нельзя.

Отдельно про то, чего мы намеренно не берём. В фиде Apple рядом с отзывом лежит ссылка на профиль рецензента — стабильный идентификатор пользователя. Технически он доступен, и хеш от него был бы точнее нашего.

Мы его не читаем.

Хеш от настоящего идентификатора позволял бы надёжно отслеживать конкретного человека по всем приложениям, где он когда-либо что-то писал. Это профилирование, и инструмент для него мы делать не хотим. Отговорка «мы просто не будем им пользоваться» защитой не является — важно, что данные не попадают в выгрузку вообще.

Точность склейки от этого ниже, и мы этого не скрываем. Три служебных поля показывают, насколько хешу можно доверять: сколько отзывов делят один хеш, в скольких приложениях он встретился и в скольких странах. Один Apple ID может оставить только один отзыв на приложение — значит повтор внутри одного приложения всегда означает разных людей с одинаковым никнеймом. Повтор между приложениями в одной стране уже стоит посмотреть внимательнее.

Побочный эффект: искать накрутку это не мешает. Работаешь с поведением, а не с личностями.

Контакты разработчика из карточки приложения тоже исключены.

Как запустить за пять минут

  1. Откройте страницу инструмента в каталоге Apify и нажмите Try for free. Регистрация занимает минуту, карта не нужна.

  2. В поле appIds вставьте ссылку на приложение из App Store — прямо из адресной строки браузера, целиком. Можно добавить несколько, каждое с новой строки. Вместо ссылок подойдут числовые идентификаторы или bundle ID.

  3. В поле countries укажите страны через запятую: ru, us, de. Каждая даёт свои 500 отзывов и свой срез по цене и рейтингу.

  4. Задайте maxReviewsPerApp — сколько отзывов брать с каждой витрины. 500 это максимум.

  5. Нажмите Start. Прогон на одно приложение занимает секунды, на десяток с несколькими странами — пару минут.

  6. Когда появится результат, откройте вкладку Storage и нажмите Export. Выберите CSV для Excel или JSON для своего кода.

Если понадобится повторять регулярно — на вкладке Schedule ставится расписание, и выгрузка будет собираться сама.

Если данные нужны, а разбираться некогда

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

Это мы и делаем. Частотные темы жалоб, динамика после релизов, сравнение с конкурентами, различия между рынками — на выходе отчёт с выводами, а не файл.

И это не только про отзывы. Если нужны данные с другого сайта, из каталога, с маркетплейса или доски объявлений — опишите задачу, мы посмотрим и скажем, решается она или нет. Отвечаем в течение рабочего дня, до оплаты показываем пробную выгрузку на 50–100 строк.

Границы

Инструмент читает только публично доступные эндпоинты Apple. Он не проходит авторизацию, не обходит техническую защиту и не имеет доступа к закрытым данным.

Это независимый инструмент, не связанный с Apple Inc. и не одобренный ею. Ответственность за то, как вы используете полученные данные, остаётся на вас — это описание инструмента, а не юридическая консультация.

Частые вопросы

Сколько это стоит?

Сам инструмент бесплатный. Вы платите только платформе Apify за вычислительные ресурсы, которые съел запуск. У Apify есть бесплатный месячный лимит, и обычного прогона на несколько приложений он хватает с запасом.

Нужно ли уметь программировать?

Нет. Заполняете форму в браузере, нажимаете кнопку, скачиваете файл. Программирование понадобится только если захотите вызывать инструмент из своего кода — для этого есть API.

Почему всего 500 отзывов?

Это ограничение Apple, оно действует для любого инструмента, работающего с публичным фидом. Считается на каждую страну отдельно, поэтому десять витрин дают до пяти тысяч отзывов. Второй способ набрать глубину — запускать сбор по расписанию и накапливать историю.

Почему в выгрузке нет имён авторов?

Так задумано. Никнеймы — персональные данные, а для анализа отзывов они не нужны ни в одной задаче. Вместо имени возвращается необратимый хеш, по которому можно сгруппировать отзывы, но нельзя узнать человека.

А для Android есть такой же?

Есть — сборщик отзывов Google Play, разбор в кейсе. Оба отдают данные в одинаковой схеме полей, поэтому выгрузки складываются в одну таблицу без переименования колонок: как это устроено — в кейсе «Два стора, одна таблица».

Оценка задачи

Опишите, что нужно собрать

Ответим в течение рабочего дня. Перед оплатой покажем пробную выгрузку на 50–100 строк, чтобы вы увидели формат данных.