Прим. автора: в продолжение темы продвижения приложений (ссылка), мы подготовили для вас перевод поста про элемент управления RateReminder, который позволит вам автоматизировать запрос выставления оценки у пользователей в приложениях для Windows, Windows Phone, а также универсальных приложений для обеих платформ.
Проблема с оценками
Не секрет, что чем выше оценки у приложения, тем лучше оно расположено в магазине. Лучшее расположение означает большее число загрузок, а, чем больше загрузок, тем больше денег приносит приложение. Но часть проблем с оценками происходит из-за того, что люди редко оценивают приложения. А когда все-таки оценивают, то делают это из-за того, что, либо им очень нравится приложение, либо наоборот – очень не нравится. InfoSurv, компания, которая предоставляет маркетинговые услуги для таких компаний, как CocaCola, Nestle и Emerson, дала комментарий по этому вопросу в своем разделе часто задаваемых вопросов:
В опросах удовлетворенности покупателей наблюдаются смещения в ответах в сторону экстремальных значений шкалы удовлетворенности, особенно среди тех покупателей, кто сильно недоволен. Другими словами, очень довольные или, наоборот, недовольные покупатели более склонны проходить опрос, нежели те, которые находятся в середине. Лучший способ борьбы с «поляризацией» опросов покупателей – получить максимальное число ответов, таким образом, захватив покупателей без четкого мнения, а также – делая опросы более репрезентативными относительно всей клиентской базы.
Так, как разработчики мы должны решить две проблемы:
- Получить оценки приложения от большего числа пользователей
- Обнаружить счастливых пользователей
Решаем проблему с рейтингом
Очевидно, что не имеет смысла просить кого-то оценить приложение после первого запуска – пользователь не будет знать, что ответить! С другой стороны, если пользователь продолжает использовать приложение какое-то время, мы можем сделать вывод, что приложение ценно для него. Поэтому, этих пользователей мы и хотим опросить.
Помимо поиска увлеченных пользователей, напоминание оценить приложение должно:
- Отслеживать число раз, которое оно было запущено – это помогает найти счастливых пользователей.
- Отслеживать, появлялось ли уведомление с просьбой об оценке приложения ранее. Так, мы не будем досаждать пользователям, которые уже проголосовали или ответили, что они не хотят голосовать.
- Дополнительно: приложение должно отслеживать число дней с момента установки приложения. Это ценно для сезонных приложений. К примеру, Рождественское приложение не актуально после 25 декабря (для тех, кто празднует его в эту дату) – пользователи не будут использовать его в течение года.
- Дополнительно: должна быть возможность отображать напоминание с учетом местного языка. Это важно для многоязычных приложений.
Код, выполняющий эти функции, не очень сложный, но он включает в себя некоторые компоненты (хранилище, диалоги, API магазина, локализацию и т.д.). Он шаблонный – одинаковый во всех приложений. Поэтому он является замечательным кандидатом для того, чтобы оформить его в библиотеку.
App Promo
App Promo — это небольшая управляющая библиотека для Windows Phone и Windows 8, созданная, чтобы помочь с продвижением приложений. На данный момент она содержит один элемент управления – RateReminder – и сейчас, вероятно, у вас есть хорошее понимание, чем он может вам помочь.
У RateReminder 4 основных свойства:
• RunsBeforeReminder – число раз, которое приложение должно быть запущено до показа напоминания об оценке. По умолчанию – 7.
• DaysBeforeReminder – число дней до того, когда напоминание должно быть показано. По умолчанию – 0 (отключено).
• TryReminderOnLoad – true, если элемент управления должен показать напоминание как только оно загрузится. В противном случае false. По умолчанию — true.
• CustomReminderText – собственный текст, который показывается пользователю в напоминании. По умолчанию – null (означает, что элемент управления будет использовать встроенное сообщение с учетом локализации).
Как вы можете видеть, RateReminder – настраиваемый элемент управления, но его настройки по умолчанию подразумевают, что вы можете просто поместить его на главную страницу приложения и забыть о нем. И, так как библиотека App Promo доступна в виде NuGet-пакета, нет причин не добавить его в свое приложение сегодня!
Использование App Promo
Давайте посмотрим, как добавить App Promo в проект. Инструкция для Windows Phone, но шаги такие же, как для Windows 8.
- Прежде, чем начать, убедитесь, что у вас установлен NuGet. В Visual Studio кликните на Tools –> Extensions and Updates. Если вы увидите в списке NuGet – значит, что он уже установлен. Если нет, напишите в поисковой строке NuGet и установите его (необходимо перезапустить Visual Studio).
- Теперь нужно установить NuGet-пакет App Promo. Вы можете сделать это через Package Manager Console, но я предпочитаю использовать GUI. В Solution Explorer кликните правой кнопкой мыши и выберите ‘Manage NuGet Packages’.
- Убедитесь, что слева выбрана ветвь ‘Online’ и напишите ‘AppPromo’ (без пробелов) в поисковой строке.
Замечание: Теперь App Promo – единый пакет. Убедитесь, что вы выбрали пакет «for Windows Phone and Windows 8».
- Кликните кнопку ‘Install’ рядом с App Promo. После завершения установки, закройте окно NuGet.
Замечание: App Promo был добавлен в ваше проект, но NuGet не может добавлять элементы управления в вашу панель инструментов. Необходимо сделать это до того, как вы поместите его на вашу страницу.
- Раскройте toolbox, если вы до сих пор этого не сделали, затем клик
ните правой кнопкой мыши на пункт ‘Choose Items…’. В выпавшем окне кликните на кнопку ‘Browse’ - Перейдите в папку проекта, затем в to packages –>AppPromo.#.#.#.# –> lib –>wp8 (или netcore45, или wp81a для Windows Phone universal).
- Дважды кликните на AppPromo.WP8.dll (или AppPromo.winmd) и нажмите OK. Элемент управления RateReminder должен появиться в вашей панели инструментов.
- Переместите элемент управления RateReminder на первую страницу вашего приложения (обычно ей является MainPage.xaml или GroupedItemsPage.xaml).
Замечание: Элемент управления RateReminder полностью прозрачный, у него нет внешнего вида. Если вы хотите выбрать его, то лучше запомнить, куда вы поставили его или использовать вид Xaml или Document Outline.
- Опционально: Изменяйте число запусков (по умолчанию 7) и число дней (по умолчанию 0 – отключено).
- Все готово! Вы только что добавили напоминание о голосовании для вашего приложения.
Замечание от переводчика: Вы также можете просто добавить элемент RateReminder в XAML-коде:
<appPromo:RateReminder RunsBeforeReminder="7"/>
Тестирование элемента управления RateReminder
Тестировать элемент управления RateReminder легко. Необходимо помнить, что приложение должно быть закрыто и перезапущено для того, чтобы это считалось ‘запуском’ (в противном случае пользователь просто переключается между приложениями). В Visual Studio вы можете быстро симулировать закрытие и перезапуск используя кнопку перезагрузки.
Если у вас не подключена Visual Studio, вы можете использовать аппаратную кнопку телефона «Назад», чтобы выйти из приложения и потом запустить его снова. Для Windows 8 используйте кнопку перезагрузки или переместите окно вниз экрана, чтобы закрыть приложение между запусками.
Важное замечание!: На Windows 8.1 приложения на самом деле не закрываются до тех пор, пока вы не удержите их внизу экрана до тех пор, пока они не перевернутся (около 3х секунд).
После 7ми запусков (или того количества, которое вы указали), появится напоминание о голосовании:
Нажатие кнопки ОК вызывает страницу оценки в случае, если приложение уже в магазине. Если нет, вы увидите сообщение с ошибкой, что приложение временно недоступно.
Использование статистики
RateReminder предоставляет небольшое набор статистических данных через событие TryReminderCompleted (если элемент запущен автоматически) или асинхронно через результат вызова метода TryReminder (если вызывать вручную). Оба возвращают экземпляр класса RateReminderResult, который предоставляет следующую статистику:
- Runs – Число раз, которое приложение было запущено после первой установки. Количество считается в случае, если счетчик запусков включен и еще не показывался.
- Days – Количество дней, прошедших с момента установки приложения. Оно считается только в случае, если счетчик дней включен и до этого не показывался.
- ReminderShown – true, если напоминание было показано в текущем цикле
- RatingShown – true, если пользователь принял напоминание и интерфейс оценивания был показан в текущем цикле.
Исходный код включает в себя пример, который показывает статистику использования. Важно отметить, что счетчик будет выдавать 0 после того, как напоминание было показано. Это необходимо для того, чтобы избежать затрат на чтение и обновление настроек после показа напоминания.
Счетчик может быть сброшен при помощи вызова метода ResetCounters элемента управления RateReminder. Это приведет к повторному показу напоминания, которое может понадобиться после того, как приложение было обновлено до новой версии.
Локализация
App Promo был переведен на более чем 35 различных языков, но важно понимать, что ваше приложение также должно быть локализовано для этих языков. Это необходимо потому, что загрузчик ресурсов стремится быть максимально эффективным. Например, когда ваше приложение запущено на испанском, загрузчик ресурсов будет искать испанские ресурсы в вашем приложении. Если они не найдутся, он больше не будет продолжать искать ресурсы на испанском, когда загружает библиотеку App Promo.
Локализация приложения не является главной темой этой статьи, но как только ваше приложение будет локализовано, App Promo также будет показан как локализованное. Проще всего локализовать приложение при помощи инструмента Multilangual App Toolkit. Эта статья одна из лучших, что я когда либо видел, а в купе с вводным видео и с видео по тестированию является замечательным ресурсом для того, чтобы быстро начать.
В завершении, если вы увидите ошибку в переводе, пожалуйста, заполните форму обратной связи или исправьте ее самостоятельно и отправьте исправленный вариант. Спасибо!
Поддержка WinJS и JavaScript
Начиная с версии 1.0.0.5 в NuGet, AppPromo поддерживает проекты на JS с WinJS! Проекты JavaScript + HTML не поддерживают перетаскивание элементов с toolbox в отличие от XAML, но добавить AppPromo довольно легко.
После добавления ссылки на NuGet, откройте JavaScript-файл для главной страницы вашего проекта (обычно default.js) и найдите следующий кусок кода:
args.setPromise(WinJS.UI.processAll());
Измените эту строчку на этот блок:
args.setPromise(WinJS.UI.processAll().then(function ()
{
// Создать объект помощника напоминания
rate = AppPromo.RateHelper();
// Попытаться показать напоминание
rate.tryReminderAsync();
}));
Если вы хотите поменять параметры по умолчанию, такие как число запусков до появления напоминания, вы можете сделать что-то на подобии этого:
args.setPromise(WinJS.UI.processAll().then(function ()
{
// Создать объект помощника напоминания
rate = AppPromo.RateHelper();
// Мы хотим ждать 3 запуска вместо 7
rate.runsBeforeReminder = 3;
// Пытаемся показать напоминание
rate.tryReminderAsync();
}));
А если вы хотите собрать какую-либо статистику, вы можете сделать это таким образом:
args.setPromise(WinJS.UI.processAll().then(function ()
{
// Создать объект помощника напоминания
rate = AppPromo.RateHelper();
// Мы хотим ждать 3 замуска вместо 7
rate.runsBeforeReminder = 3;
// Пытаемcя показать напоминание
rate.tryReminderAsync().then(function (result)
{
// Показать результаты на главной странице
numDays.innerText = result.days.toString();
numRuns.innerText = result.runs.toString();
reminderShown.innerText = result.reminderShown.toString();
ratingShown.innerText = result.ratingShown.toString();
});
}));
Поддержка универсальных приложений
Начиная с версии 1.0.0.9 в NuGet, AppPromo универсальные приложения. Имейте в виду, что на самом деле существуют 2 отдельных бинарных кода, один с главным файлом для Windows Phone и один для Windows 8. Это происходит из-за того, что AppPromo необходимо использовать различные счетчики для каждой платформы и отсутствует API (или автор просто не нашел), которые могли бы быть использованы для разделения того, на какой платформу запущен код. Без счетчиков разделения, как только напоминание показано для настольной версии приложения, напоминание никогда не покажется на телефоне (или наоборот).
Если вы используете пакеты NuGet, то правильные ссылки на файл WinMD уже заранее проставлены для вас.
Исходный код
Исходный код для App Promo был прикреплен к статье. Тем не менее, настоятельно рекомендуется перепроверять его свежую версию на GitHub. Не забывайте, что App Promo уже готово к использованию на NuGet и вот прямая ссылка на сайт Nuget-пакета.
Отдельное спасибо
Я хотел бы сказать отдельное «Спасибо моему коллеге и другу» Полю Декарло. Поль создал пакеты NuGet для App Promo и имеет большой опыт в том, что касается продвижения приложений для Windows Phone и Windows 8. Очень рекомендую вам посмотреть пост в его блоге Monetizing your app with AdRotator.
Автор: a_bogdanova