Не все знают, но в Google Play существует вполне легальная возможность выгрузить все комментарии и оценки к своему приложению в отдельный CSV-файл, после чего заняться каким-нибудь анализом, не доступном из гугловской системы. Но делается это с помощью внешней утилиты gsutil, написанной на Python’е. Так что в этом посте будет небольшая инструкция по тому, как это сделать.
Ну вот вроде бы и всё. Полученный файл в экселе выглядит примерно так:
А уж какую аналитику творить с полученным файлом – смотрите сами. :)
support.google.com/googleplay/android-developer/answer/138230#export_ratings_and_reviews
developers.google.com/storage/docs/gsutil
- Инсталлируем python 2.6 или 2.7, если его ещё нет в системе. Инструкция по установке на официальном сайте, там нет ничего сложного для любой ОС.
- Скачиваем и распаковываем в любую папку gsutil (прямая ссылка на zip, прямая ссылка на tar.gz)
- Открываем консоль в папке с gsutil и продолжаем работать в ней. (Для windows – shift+правый клик в этой папке и выбор “Открыть окно команд”, пользователи более популярных и сами знают, как это сделать, раз уж сумели их установить)
- Выполним команду
gsutil.py update
для очевидных целей. Обычно в архиве уже лежит свежая версия, но бывает всякое.
- Выполним команду
gsutil.py config
Получаем примерно такое сообщение. Что делать, опять же, очевидно – скопировать ссылку в браузер.
- Перейдя по ссылке мы попадём на страницу, на которой разрешим приложению работать с нашим аккаунтом.
- И скопируем код в консоль
- В ответ получим ещё одно сообщение, с предложением выбрать проект по умолчанию в Google Developer Console, но это делать не обязательно, тем более, что нужного нам проекта там может просто не быть. Но что-то ввести в скрипт нужно, пустую строку он не примет. Так что введём просто “1” например и закончим работу.
- На странице «Оценки и отзывы» своего приложения нужно найти идентификатор сегмента отчетов, начинающийся со строки pubsite_prod_rev_, например pubsite_prod_rev_1234567890123456789.
- Теперь никто не мешает нам скачать все отчеты. Для этого достаточно выполнить команду
gsutil.py -m cp gs://pubsite_prod_rev_1234567890123456789/reviews/*.* Адрес_папки_куда_копировать
В нашем случае:
gsutil.py -m cp gs://pubsite_prod_rev_1234567890123456789/reviews/*.* C:\Python27\texts
-m – флаг копирования в несколько параллельных потоков
cp – команда копирования файлов.
Подробно о командах утилиты можно прочитать тут.
- В результате в папке мы получим кучу файлов с именами по схеме reviews_[имя_пакета_приложения]_YYYYMM (Y — год, M — месяц). Причем для всех закреплённых за вашим аккаунтом приложений сразу.
Конечно, если вам нужны отчеты только одному приложению, можно качать данные запросом вида
gsutil.py -m cp gs://pubsite_prod_rev_1234567890123456789/reviews/* com.new_program*.* C:\Python27\texts
Но, думаю, принцип фильтрации и так понятен.
- В целом, всё уже прекрасно, но работать с пачкой отдельных файлов неудобно, так что простым питоновским скриптом склеим их в один файл. Конечно, можно было бы простой командой copy объединить файлы в один, но тогда у нас будет дублироваться заголовок, а это неприятно.
import os import codecs files = os.listdir(".") csvs = filter(lambda x: x.endswith(".csv") and x!="all_csv.csv", files) file_write = codecs.open('all_csv.csv', 'w','utf-16') header_writed = False for file_name in csvs: file_read = codecs.open(file_name,'r','utf-16') lines_count=0 for line in file_read: lines_count=lines_count+1 if (lines_count == 1): if (header_writed == False): header_writed = True file_write.write(line) else: file_write.write(line) file_read.close() file_write.close()
Ну вот вроде бы и всё. Полученный файл в экселе выглядит примерно так:
А уж какую аналитику творить с полученным файлом – смотрите сами. :)
Список использованной литературы
support.google.com/googleplay/android-developer/answer/138230#export_ratings_and_reviews
developers.google.com/storage/docs/gsutil