[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "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", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "create", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } } ] { "gtm": "GTM-NDH47H" }
{ "author_name": "Редакция DTF", "author_type": "self", "tags": ["\u0433\u0435\u0439\u043c\u0434\u0438\u0437\u0430\u0439\u043d"], "comments": 0, "likes": 14, "favorites": 0, "is_advertisement": false, "section": "pro" }
Редакция DTF
5 146
Gamedev

Наглядная математика: как рассчитать ценность пользователя с помощью интегралов

Младший геймдизайнер Nevosoft Руслан Герасим в своем коллективном блоге геймдизайнеров на Medium рассказал, как рассчитать среднее время жизни пользователя в проекте и доход от него за это время.

Часто люди, имея в наличии инструмент для расчета какого-либо показателя, используют его «на веру». Если известна его функция, то зачем углубляться в происхождение? Я считаю такой подход в корне неправильным. Специалист должен стремиться улучшать свои профессиональные навыки и разбираться в базовых и основополагающих моментах, ведь с этими знаниями придет возможность модифицировать и улучшать используемые методы.

Итак, напомню, что такое LTV (англ. Lifetime Value). Фактически это доход с одного пользователя за время его существования в проекте. Знание LTV позволит оценить окупаемость инвестиций (ROI), определить лучшие каналы трафика и так далее.

Безусловно, время «жизни» в игре у каждого пользователя разное, как и количество внесенных средств, поэтому целесообразно взять среднее время жизни игрока (LT) и средний доход в день (ARPDAU).

Из всего вышесказанного вытекает метод прогнозирования LTV, основанный на знании среднего времени жизни LT и дохода с одного пользователя в день.

Интегральные функции распределения
(функции ухода и удержания)

Рассмотрим некоторую неотрицательную непрерывную случайную величину t, которая является временем до возникновения интересующего нас события, а именно до «смерти»  — ухода пользователя. Плотность вероятности этой величины обозначим f(t). Как будет показано позднее, вид этой функции нас не интересует.

Возьмем интегральный закон распределения величины F(t). Данная функция говорит нам о вероятности того, что событие произойдет на промежутке времени [0, T):

Таким образом, F(t) — функция ухода пользователя. Очевидно, значения этой функции лежат на промежутке от 0 до 1. Чтобы не было сомнений, рассмотрим пример. Будем отсчитывать время жизни проекта с нуля (то есть нулевой день — первый день жизни проекта). Пусть в нулевой день в игру пришло N человек — вероятность ухода пользователя равна 0 (в нулевой день уходов не происходит). В следующий день вероятность пользователя уйти составляет, например, 0,5. Умножая эту вероятность на N, мы получим количество ушедших человек.

Нетрудно догадаться, что функция удержания описывает вероятность события, обратного уходу:

S(t) — функция удержания, которая получается путем аппроксимации (приближения — прим. ред.) наблюдательных данных Retention — Days степенной функцией (ax^b). В общем случае данная функция называется Survival function (функция выживаемости). Она применяется для прогнозирования исходов в медицине, социологии и так далее.

S(t) — вероятность того, что событие произойдет на промежутке времени [T, +∞), то есть не произойдет на [0, T):

Расчет lifetime

Перейдем непосредственно к расчету среднего времени, на котором произойдет уход пользователя — математическое ожидание величины t:

Заметим, что

Таким образом,

Интегрируем по частям:

Вспомним, что вероятность ухода в нулевой день равна F(0) = 0, а в последний день промежутка F(T) = 1 (все пользователи уйдут из проекта):

Следовательно,

В принципе, этого уже достаточно, чтобы посчитать среднее время жизни пользователя. Но мы привыкли работать не с уходом, а с удержанием (retention):

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

Заключение

Остался последний шаг:

Теперь мы знаем, откуда берутся эти функции.

Используя инструмент, понимайте не только то, какой результат он выдаст, но и как он работает.

#геймдизайн

Популярные материалы
Показать еще
{ "is_needs_advanced_access": false }

Комментарии Комм.

Популярные

По порядку

Прямой эфир

Узнавайте первым важные новости

Подписаться