Тестирование кастомной медиации

2 minute read

Недавно писал статью про кастомную медиацию. В этом посте расскажу про первые эксперименты. Пока результаты не однозначны.

Настройка

Настраивал эксперименты с помощью 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 на очереди