Компания
56,40
рейтинг
17 сентября 2014 в 07:23

Разработка → Экспортируем комментарии и оценки из Google Play для анализа tutorial

Не все знают, но в Google Play существует вполне легальная возможность выгрузить все комментарии и оценки к своему приложению в отдельный CSV-файл, после чего заняться каким-нибудь анализом, не доступном из гугловской системы. Но делается это с помощью внешней утилиты gsutil, написанной на Python’е. Так что в этом посте будет небольшая инструкция по тому, как это сделать.

  1. Инсталлируем python 2.6 или 2.7, если его ещё нет в системе. Инструкция по установке на официальном сайте, там нет ничего сложного для любой ОС.

  2. Скачиваем и распаковываем в любую папку gsutil (прямая ссылка на zip, прямая ссылка на tar.gz)

  3. Открываем консоль в папке с gsutil и продолжаем работать в ней. (Для windows – shift+правый клик в этой папке и выбор “Открыть окно команд”, пользователи более популярных и сами знают, как это сделать, раз уж сумели их установить)

  4. Выполним команду
    gsutil.py update

    для очевидных целей. Обычно в архиве уже лежит свежая версия, но бывает всякое.



  5. Выполним команду
    gsutil.py config



    Получаем примерно такое сообщение. Что делать, опять же, очевидно – скопировать ссылку в браузер.

  6. Перейдя по ссылке мы попадём на страницу, на которой разрешим приложению работать с нашим аккаунтом.


  7. И скопируем код в консоль




  8. В ответ получим ещё одно сообщение, с предложением выбрать проект по умолчанию в Google Developer Console, но это делать не обязательно, тем более, что нужного нам проекта там может просто не быть. Но что-то ввести в скрипт нужно, пустую строку он не примет. Так что введём просто “1” например и закончим работу.



  9. На странице «Оценки и отзывы» своего приложения нужно найти идентификатор сегмента отчетов, начинающийся со строки pubsite_prod_rev_, например pubsite_prod_rev_1234567890123456789.





  10. Теперь никто не мешает нам скачать все отчеты. Для этого достаточно выполнить команду
    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 – команда копирования файлов.
    Подробно о командах утилиты можно прочитать тут.

  11. В результате в папке мы получим кучу файлов с именами по схеме reviews_[имя_пакета_приложения]_YYYYMM (Y — год, M — месяц). Причем для всех закреплённых за вашим аккаунтом приложений сразу.



    Конечно, если вам нужны отчеты только одному приложению, можно качать данные запросом вида
    gsutil.py -m cp gs://pubsite_prod_rev_1234567890123456789/reviews/* com.new_program*.* C:\Python27\texts

    Но, думаю, принцип фильтрации и так понятен.

  12. В целом, всё уже прекрасно, но работать с пачкой отдельных файлов неудобно, так что простым питоновским скриптом склеим их в один файл. Конечно, можно было бы простой командой 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
Автор: @Newbilius

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

  • +5
    Мне кажется, статья бы выиграла от примера «какой-то аналитики», которую удалось получить таким методом. И непонятно, действительно ли нужны такие телодвижения — разве нельзя воспользоваться Universal Analytics?
    • +1
      В Universal analytics можно как-то получить тексты отзывов?
  • –1
    Экспорт комментов и оценок никогда не был нужен, а вот экспорт сбоев, anr и комментов к ним — жизненно необходим.
    • 0
      А у вас часто пользователи оставляют комментарии?
      Просто в своих проектах у меня настроена отправка ANR на почту, так все сбои будут под рукой. С комментариями к ним хуже, да.
      • +1
        да, часто пользователи пишут полезную инфу по сбоям, помогает воспроизвести и быстро найти баг.
  • +1
    Добавьте в теги «Data Mining»
    • 0
      Резонно.
  • 0
    Самое неприятное — для того, чтобы это все работало, необходимо использовать Google Cloud Storage. А для того, чтобы его использовать — необходимо подключать billing. А бесплатных квот для Google Cloud Storage вроде не было.
    Я бы, например, хотел новые отзывы о своем приложении на почту получать. Пришлось скрипт для плагина X-Notifier к браузеру написать, чтоб уведомления о новых отзывах получать.
    • +1
      А для того, чтобы его использовать — необходимо подключать billing. А бесплатных квот для Google Cloud Storage вроде не было.

      Может быть раньше и было такое ограничение. Сейчас биллинг включать для использования данного функционала не нужно! :)
      Т.е., вы не можете при этом залить свои файлы в облако, но работать с этой «созданной системой папкой» в одностороннем режиме (только скачивать) — можете.
      • +1
        Т.е. вообще не нужно включать Google Cloud Storage? Ибо его включение все-таки требует включения billing'a и сейчас.
        • +1
          Проверил — действительно, включение Google Cloud Storage не требуется.
          Интересно, gsutil работает через Google API? Т.е. без gsutil я смогу самостоятельно вытаскивать эти отзывы (и, например, отправлять их по email)? Только вот — «Отчеты создаются ежедневно, сводятся в ежемесячные отчеты в виде CSV-файлов». Где эти ежедневные отчеты найти?

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

Самое читаемое Разработка