- PVSM.RU - https://www.pvsm.ru -
[1]
В данной статье я рассмотрю несколько инструментов для A/B-тестирования мобильных приложений с примерами и дам их краткую характеристику. Для успешного проведения тестирования также необходим сервис аналитики, в котором можно сравнивать результаты. Независимые сервисы аналитики мы сегодня рассматривать не будем, но затронем те возможности, которые есть внутри инструментов, о которых пойдет речь.
Существует большое количество сервисов, позволяющих проводить A/B-тестирование сайтов, но если вы хотите использовать данный метод на мобильных приложениях, то здесь тоже есть из чего выбрать. Необходимый минимум для такого рода сервисов состоит из создания переменных и распределения их между аудиторией. На разработчиках приложения лежит обязанность правильно интерпретировать эти переменные: прямая замена текстовых и числовых данных в приложении, модификация интерфейса на основании значений.
В некоторых сервисах есть удобный визуальный редактор, позволяющий без изменения приложения создавать различные вариации. Но функциональность таких редакторов всё-таки сильно ограничена, с помощью них, например, не получится изменить интерфейс какого-то экрана так, чтобы при других модельных данных этот экран отображался стандартным образом. Для фреймворка это будет один и тот же экран, и изменения будут применяться повсеместно.
Перед нами стояла задача сравнить как текстовые варианты переменных (тексты ошибок, подсказок), так и изменение интерфейса приложения (например, наличие бокового меню и таббара). Из этого исходили при составлении нашего шорт-листа инструментов для A/B-тестирования. Все сервисы, о которых пойдет речь дальше, предоставляют SDK для iOS и Android, c Windows Phone сложнее, в этом случае использование сервисов возможно через HTTP-запросы.
apptimize.com [4]
Есть три способа для создания варианта A/B-тестирования:
[Apptimize runTest:@"Dummy test" withBaseline:^{
//Базовая конфигурация
} andVariations:@{@"variation1": ^{
//Альтернативная конфигурация
}}];
ApptimizeString(name, value), ApptimizeInt(name, value), ApptimizeDouble(name, value), ApptimizeBoolean(name, value), ApptimizeArrayOfStrings(name, value), ApptimizeDictionaryOfStrings(name, value), ApptimizeArrayOfInts(name, value), ApptimizeDictionaryOfInts(name, value), ApptimizeArrayOfDoubles(name, value) ...
Альтернативные значения переменных задаются через веб-сайт. Например:
ApptimizeString(screenName, @"стандартное значение");
При создании вариантов есть возможность выбрать базу пользователей для тестирования.
Фреймворк позволяет логировать события:
[Apptimize track:@"event name"]
[Apptimize track:@"event name" value:<double value>]
Также возможна агрегация событий других сервисов аналитики: Google Analytics, Mixpanel, Flurry, Localytics, Omniture.
Цена и количество пользователей: есть ограниченная бесплатная версия, 300$/месяц до 100 000 пользователей, выше — не указано.
optimizely.com [5]
Сервис предоставляет те же три способа создания вариантов:
[Optimizely codeBlocksWithKey:myCheckoutBlocksKey
blockOne:^{
// Первая конфигурация
}
blockTwo:^{
// Вторая конфигурация
}
defaultBlock:^{
// Базовая конфигурация
}];
OptimizelyVariableKeyForString(screenName, @"Hello");
Как видим, возможности c Apptimize идентичные. На первый взгляд, визуальный редактор Optimizely чуть менее функционален. Optimizely возможно интегрировать с Fabric, но сервис имеет достаточно скудный инструмент для аналитики.
Цена и количество пользователей: цены не указаны, есть ограниченная бесплатная версия.
mixpanel.com [6]
Трекинг событий:
[mixpanel timeEvent:@"Загрузка изображения"]; // Временное событие
[self uploadImageWithSuccessHandler:^{
[mixpanel track:@"Загрузка изображения"];
}];
Переменные в Mixpanel называются твиками (tweaks). Для получения твика используется макрос MPTweakValue:
if( MPTweakValue(@"Выполнить альтернативную конфигурацию", NO) ) {
// Выполнить альтернативную конфигурацию
} else {
// Выполнить стандартную конфигурацию
}
Есть биндинг значений для изменения параметров на лету:
MPTweakBind(self.label, text, @"label text", @"Hello World");
Применяется в случае, если при нахождении пользователя на экране нужно динамически менять значения переменных (иными словами реализуется KVO для них).
Инструменты аналитики в Mixpanel достаточно хорошие, есть возможность выстраивать сложные фильтры, при этом используя дополнительные атрибуты, отправляемые с устройств.
Визуальный редактор есть, но работает не очень стабильно и часто «отваливается».
Цена и количество пользователей: можно выбрать вариант по количеству пользователей, либо по количеству событий за месяц. Например, 100 000 пользователей обойдутся в 250$, или за 350$ 2 миллиона событий.
splitforce.com [7]
Здесь есть работа с блоками:
[[SFManager currentManager] experimentNamed:@"Имя эксперимента"
applyVariationBlock:^(SFVariation *variation) {
//Альтернативная конфигурация
} applyDefaultBlock:^(NSError *error) {
//Базовая конфигурация
}];
И возможность отслеживать время событий:
-(void)timedResultNamed:(NSString *)name;
Визуального редактора нет, агрегации аналитики тоже. Встроенная аналитика достаточно удобная.
Цена и количество пользователей: цены сопоставимы с прочими сервисами, например, 369$ за 150 000 пользователей.
developer.amazon.com/appsandservices/apis/manage/ab-testing [8]
Главным преимуществом перед аналогами является его бесплатность. Для того, чтобы использовать функциональность A/B-тестирования от Amazon, необходимо добавить в проект фреймворк Amazon Insights.
SDK предоставляет только «ручной» режим работы с проектами A/B тестирования:
[self.abTestClient variationsByProjectNames:[NSArray arrayWithObject:@"Имя проекта"]
withCompletionHandler:^(id<AIVariationSet> variationSet, NSError* error) {
//Меняем что-либо исходя из данных в переменной variationSet
}];
// Логирование события
id<AIEvent> level3Start = [self.eventClient createEventWithEventType:@“Тип события"];
[self.eventClient recordEvent:level3Start];
На мой скромный взгляд, интерфейс слегка примитивный, но может, это и к лучшему.
Название сервиса | Удобство встраивания (1-5 баллов) | UI-редактор (1-5 баллов) | Аналитика (1-5 баллов) | Цена за месяц | Поддержка (1-5 баллов) | Общий балл |
Apptimize | 4 | 5 | 4 | 300$ за 100 000 пользователей | 4 | 17 |
Optimizely | 4 | 3 | 3 | Не указано | 3 | 13 |
SplitForce | 3 | 0 | 3 | 369$ за 150 000 пользователей | 4 | 10 |
Mixpanel | 5 | 4 | 5 | 250$ за 100 000 пользователей или 2 миллиона событий за 350$ | 5 | 19 |
Amazon A/B Testing(Beta) | 3 | 0 | 4 | Бесплатно | 3 | 10 |
Автор: REDMADROBOT
Источник [9]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/objective-c/111215
Ссылки в тексте:
[1] Image: https://habrahabr.ru/company/redmadrobot/blog/276489/
[2] статью: http://megamozg.ru/post/15190/
[3] в этом материале: http://conversionxl.com/12-ab-split-testing-mistakes-i-see-businesses-make-all-the-time/
[4] apptimize.com: http://apptimize.com
[5] optimizely.com: https://optimizely.com
[6] mixpanel.com: https://mixpanel.com/
[7] splitforce.com: https://splitforce.com
[8] developer.amazon.com/appsandservices/apis/manage/ab-testing: https://developer.amazon.com/appsandservices/apis/manage/ab-testing
[9] Источник: https://habrahabr.ru/post/276489/
Нажмите здесь для печати.