Тестирование кастомной медиации
Недавно писал статью про кастомную медиацию. В этом посте расскажу про первые эксперименты. Пока результаты не однозначны.
Настройка
Настраивал эксперименты с помощью RuStore Remote Config. Сейчас очень легко настроить разбивку 50/50 всех запросов. Если чуть заморочиться, то можно сделать разбивку не только по запросам, но и по пользователям.
Пример того, как я настроил тест в конфиге:
Важно отметить, что у меня приложение написано на flutter и для работы с Remote Config я пользовался API напрямую. Получить JSON с конфигом можно по URL https://client-api.remote-config.rustore.ru/api/get?app_id=xxxx-xxx-xxx
- тут app_id
это идентификатор, который выдает Remote Config для подключенного приложения.
Весь код на flutter:
1import 'dart:convert';
2
3import 'package:downloader/models/config.dart';
4import 'package:downloader/system/http.dart';
5import 'package:downloader/system/query.dart';
6
7class TestingService {
8 TestingService({required this.client});
9
10 Client client;
11 final String base = "https://client-api.remote-config.rustore.ru/api/get";
12
13 Future<Config> config() async {
14 String q = query({
15 'app_id': 'xxxx-xxx-xxx',
16 });
17
18 var link = base + '?' + q;
19 var response = await client.get(link);
20 var data = jsonDecode(response.body);
21
22 return Config.fromJson(data);
23 }
24}
В этом классе я использую модель для работы с конфигом, в которой указано только одно поле:
1class Config {
2 String mediation;
3
4 Config({required this.mediation});
5
6 factory Config.fromJson(Map<String, dynamic> json) {
7 return Config(mediation: json["config"]["mediation"]);
8 }
9}
mediation - в это поле будет сохраняться значение из настроек Remote Config и его буду использовать для использования обычного плейсмента или плейсмента из кастомной медиации.
В сам тест я добавил только один стишел, который отображается у меня в приложении при нажатии на кнопку “скачать”.
Результаты
Тест я гоняю уже неделю на небольших объемах трафика и пока результаты меня больше смущают. Показ стишела через кастомную медиацию работает значительно лучше и приносит больше денег чем через обычную.
Для плейсмента в кастомной медиации какие-то космические eCPM. Возможно, это связано с тем, что для кастомной медиации я использовал новый стишел.
Разное кол-во запросов на старый плейсмент и на новый. К сожалению, в партнерке РСЯ я не смог отделить показы рекламы в новой версии приложения от старой версии.
В каждом из плейсментов были подключены две сетки - Yandex и MyTarget. По внутренней стате сервиса getapp.store видно, что Yandex быстро захватил лидерство и дальше большая часть показов отдавалась ему. МyTarget получал небольшой процент показов (не больше 15%) и не смог посчитать eCPM
Собрал отдельно стату по майтаргету:
Нужно посмотреть, как будут вести себя другие рекламные сетки.
Что дальше
Меня радует, что моя медиация сходу не проиграла на порядок, а даже принесла больше денег. Но тут явно еще очень много тестить, чтобы определиться с планом доработки. Что я хочу потестить дальше:
- Использовать новые плейсменты для контрольной и для тестовой группы
- Отдавать больший процент показов на другие сетки(конкретно для майтаргета)
- Подключить больше рекламных сеток - bigo и appodeal на очереди