Оффтоп Alexander Lashkov
13 732

Статистический анализ App Store: данные для создания успешного приложения

Разработчик и CTO ShinobiControls Колин Эберхардт выкачал большой объем метаданных о приложениях в App Store и проанализировал эту информацию. В результате ему удалось собрать любопытную статистику и выявить некоторые закономерности, которые полезно знать при разработке нового приложения под iOS.

Скачав данные о 75 000 приложений с помощью API (поддерживаемые устройства, цена, рейтинг, категория, дата релиза, размер), Эберхардт написал несколько скриптов на JavaScript для автоматизации обработки информации, а затем визуализировал их с помощью инструмента D3.js. 

Категории

Один из скриптов, в частности, анализировал распределение приложений в App Store по различным категориям. Выяснилось, что самыми распространенными являются игры.

Ничего удивительного — игры являются самыми популярными приложениями с долей в 16% от общего числа программ в App Store. Самой непопулярной у разработчиков категорией стала «погода».

Рейтинг

Для всех разработчиков оценки, выставляемые пользователями в App Store, имеют очень большое значение, поскольку являются главным механизмом получения обратной связи. Кроме того, приложения с хорошим рейтингом имеют больше шансов на то, что их скачают. Если проанализировать распределение рейтинга программ в App Store, то становится ясно, что у 60% вообще нет оценок, поэтому проанализировать можно данные только по оставшимся 40%:

Чаще всего встречается средняя оценка 4,5, что говорит о том, что пользователи iOS, в целом удовлетворены качеством предлагаемых в App Store приложений. При этом логично предположить, что большое влияние на распределение оценок оказывает тот факт, что самыми популярными приложениями являются игры. Поэтому интересно взглянуть и на соотношение рейтинга по категориям.

Рейтинг по категориям

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

Обращает на себя внимание и большое число не очень благоприятных оценок навигационных приложений. Самые плохие показатели у приложений из категории «Развлечения» — средняя оценка составляет всего 3,0.

Размер файла

Метаданные для каждого приложения включают и информацию о его размере в байтах. Это позволяет построить график соответствующего распределения:

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

Распределение по цене

Одним из наиболее важных факторов, обеспечивающих успех или провал приложения, является его цена. Приложения в App Store могут быть бесплатны или стоить от $0.99 до $999.99 долларов. Чаще всего приложения бесплатны (75%), а у платных самая популярная ценовая категория — $0.99.

Если взглянуть на цены платных приложений, становится ясно, что разработчики игр активно пользуются приемами психологического ценообразования:

Интересна и статистика, демонстрирующая распределение цен по категориям приложений. Самые дорогие программы относятся к категориям «Бизнес» (средняя цена $12,25), «Навигация» ($11.29) и «Медицина» ($8.71), а меньше всего придется заплатить за игры — среднем, чуть более двух долларов.

Большинство категорий, обладающих наименьшей средней ценой приложения, относятся к сфере развлечений или ежедневного использования, в то время как самые «дорогие» категории включают программы для достижения конкретного результата, на который не жалко потратить $12.

Еще одна интересная корреляция — соотношение между ценой и оценками пользователей:

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

#статистика #мобильные_приложения #статистика_AppStore

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
Статьи по теме
Facebook запускает расширенную статистику видео для публичных страниц
Приложение «ВКонтакте» для iPhone удалили из App Store из-за порнографии
{ "author_name": "Alexander Lashkov", "author_type": "self", "tags": ["\u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430_appstore","\u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430","\u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0435_\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f"], "comments": 12, "likes": 22, "favorites": 0, "is_advertisement": false, "subsite_label": "flood", "id": 3726, "is_wide": true }
00
дни
00
часы
00
мин
00
сек
(function(){ var banner = document.querySelector('.teaserSberbank'); var isAdsDisabled = document.querySelector('noad'); if (!isAdsDisabled){ var countdownTimer = null; var timerItem = document.querySelectorAll('[data-sber-timer]'); var seconds = parseInt('15388' + '59599') - now(); function now(){ return Math.round(new Date().getTime()/1000.0); } function timer() { var days = Math.floor(seconds / 24 / 60 / 60); var hoursLeft = Math.floor((seconds) - (days * 86400)); var hours = Math.floor(hoursLeft / 3600); var minutesLeft = Math.floor((hoursLeft) - (hours * 3600)); var minutes = Math.floor(minutesLeft / 60); var remainingSeconds = seconds % 60; if (days < 10) days = '0' + days; if (hours < 10) hours = '0' + hours; if (minutes < 10) minutes = '0' + minutes; if (remainingSeconds < 10) remainingSeconds = '0' + remainingSeconds; if (seconds <= 0) { clearInterval(countdownTimer); } else { timerItem[0].textContent = days; timerItem[1].textContent = hours; timerItem[2].textContent = minutes; timerItem[3].textContent = remainingSeconds; seconds -= 1; } } timer(); countdownTimer = setInterval(timer, 1000); } else { banner.style.display = 'none'; } })();
{ "id": 3726, "author_id": 729, "diff_limit": 1000, "urls": {"diff":"\/comments\/3726\/get","add":"\/comments\/3726\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/3726"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199791 }

12 комментариев 12 комм.

Популярные

По порядку

Написать комментарий...
1

Любопытно, что данные этого исследования полностью повторяют таковые для исследования 2010 года (тоже на основе метаданных) и не содержат абсолютно ничего нового.

А вообще сильно не хватает информации по in-app purchase. Сколько в среднем берут по категориям? Сколько в среднем и где в разного рода приложениях ин-аппов, и т.д.

Самое ценное, пожалуй, это замечание: чем дороже приложение, тем выше, в среднем его рейтинг. Это, кстати, на примере Google Play даже более явно. У нас бесплатное приложение там имеет рейтинг 4.0, а почти такое же платное - 4,7.

Ответить
0

в переводе пропущена одна из самых любопытных частей:

Apple actually make it quite easy for you to access app metadata by exposing an API for searching the App Store. You can use queries of the following form to search for app listings:

https://itunes.apple.com/search?country=us&entity=software&term=flappy
The query returns data in JSON format including details such as the supported devices, price, rating, category, release date, app size (in bytes) and more. You can find documentation for this API on the Apple Affiliate Resource pages.

Ответить
2

В данном контексте важны именно сами данные и корреляции, которые удалось на их основе выявить. Поэтому я решил, что эти подробности можно опустить, а так-то да — интересно, чуть обновил текст.

Ответить
0

По поводу "всплеска" на 50 мб - на графике и на 30 и на 40 мб есть всплески. Я думаю что про важность порога 50мб знают от силы 5% разрабов

Ответить
1

Даже я, не разработчик, знаю, что выше 50мб iOS не будет качать через сотовую сеть.

Ответить
0

Илья, я написал "знают про важность", имея ввиду, что знают-то многие, но забивают. Оптимизировать сложно

Ответить
0

Пфф, платная стата Distimo куда интереснее

Ответить

Комментарий удален

0

Статья не отвечает на основной вопрос: насколько количество скачиваний или место в Топе зависит от тех или иных характеристик? (Для сопоставимых приложений).

Ответить
0

Статья не отвечает на основной вопрос: насколько количество скачиваний или место в Топе зависит от тех или иных характеристик? (Для сопоставимых приложений).

Ответить
0

Очевидно же, что тут более широкие сравнения по категориям приложений и ценовым группам. Это тоже интересные корреляции, да и тот же момент про размер приложения 50 мб должен быть полезен многим разработчикам

Ответить
0

На самом деле там не слишком большой всплеск кривой распределения, чтобы отказываться от чего-то важного ради того, чтобы поместиться в 50.

Ответить
0

Я делал подобную статистику для Statsios.com
Вот тут можно например почитать http://blog.statsios.com/post/70995857813/sql-queries-to-appstore

Из интересных цифр: в сторе 300к селлеров, из них половина (150 тысяч) имеют ровно по одной аппе.
Половина всех приложений - платные.
Цены на платных приложениях стремятся к кратности 5, т.е. если разложить на графике распределение цен, ту будут явные пики на 4.99 9.99 14.99 и тд, чем выше цена тем больше тяготение к кратности.
Статистически самая средняя цена платного приложения - полтора доллара.

Ответить
0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Компания отказалась от email
в пользу общения при помощи мемов
Подписаться на push-уведомления