Microsegment.ru
  • Главная страница
  • О проекте
  • Портфолио
  • Блог

Получение данных из PostgrSQL для проведения A/B теста

Описание проекта

Получение из базы данных маркетплейса Всё.техника промежуточных данных для проведения A/B теста по проверке гипотезы о том, что выделение игровых ноутбуков приведет к увеличению конверсии на 100%.

Описание данных

Используемые таблицы из БД проекта:

  • sessions_project_test_part — таблица с данными по сессиям пользователей в процессе проведения теста.

Таблица sessions_project_test_part:

  • user_id — Уникальный идентификатор пользователя;
  • session_id — Уникальный идентификатор сессии в приложении;
  • session_date — Дата сессии;
  • session_start_ts — Дата и время начала сессии;
  • install_date — Дата установки приложения;
  • session_number — Порядковый номер сессии для конкретного пользователя;
  • registration_flag — Флаг зарегистрированного пользователя;
  • page_counter — Количество просмотренных страниц во время сессии;
  • region — Регион пользователя;
  • device — Тип устройства пользователя;
  • test_name — Название теста;
  • test_group — Тестовая группа.

Содержание¶

  1. Распределение участников теста
  2. Пересечение групп теста

1. Распределение участников теста ¶

Определение распределения участников по датам, регионам, устройствам, тестовым группам в два этапа. На первом этапе формируется профиль каждого пользователя в указанный период. Профиль включает информацию об идентификаторе пользователя, дате установки приложения, наличие регистрации в приложении, первый зафиксированный регион и устройство пользователя, название теста и тестовая группа. На втором этапе подсчет количества уникальных пользователей в группах, сформированных по признакам из профиля пользователя.

WITH

-- Сформируем профиль пользователя
profiles AS (
    SELECT
           DISTINCT (user_id) AS user_id,
           FIRST_VALUE(install_date) OVER (PARTITION BY user_id ORDER BY session_start_ts) AS install_date,
           MAX(registration_flag) OVER (PARTITION BY user_id) AS registration_flag,
           FIRST_VALUE(region) OVER (PARTITION BY user_id ORDER BY session_start_ts) AS first_region,
           FIRST_VALUE(device) OVER (PARTITION BY user_id ORDER BY session_start_ts) AS first_device,
           FIRST_VALUE(test_name) OVER (PARTITION BY user_id ORDER BY session_start_ts) AS test_name,
           FIRST_VALUE(test_group) OVER (PARTITION BY user_id ORDER BY session_start_ts) AS test_group
    FROM sessions_project_test_part
    WHERE install_date BETWEEN '14-10-2020' AND '21-10-2020'
)

-- Распределение участников по датам, регионам, устройствам, тестовым группам
SELECT install_date,
       first_region,
       first_device,
       test_name,
       test_group,
       COUNT(DISTINCT user_id) AS new_dau
FROM profiles
GROUP BY install_date, first_region, first_device, test_name, test_group;
nstall_date first_region first_device test_name test_group new_dau
2020-10-14 CIS Android gaming_laptops_test current_groups 309
2020-10-14 CIS Android gaming_laptops_test new_groups 297
2020-10-14 CIS iPhone gaming_laptops_test current_groups 110
2020-10-14 CIS iPhone gaming_laptops_test new_groups 120
2020-10-14 CIS Mac gaming_laptops_test current_groups 66
2020-10-14 CIS Mac gaming_laptops_test new_groups 61
2020-10-14 CIS PC gaming_laptops_test current_groups 160
2020-10-14 CIS PC gaming_laptops_test new_groups 163
2020-10-14 EU Android gaming_laptops_test current_groups 97
2020-10-14 EU Android gaming_laptops_test new_groups 86
2020-10-14 EU iPhone gaming_laptops_test current_groups 32
2020-10-14 EU iPhone gaming_laptops_test new_groups 49
2020-10-14 EU Mac gaming_laptops_test current_groups 17
2020-10-14 EU Mac gaming_laptops_test new_groups 26
2020-10-14 EU PC gaming_laptops_test current_groups 70
2020-10-14 EU PC gaming_laptops_test new_groups 61
2020-10-14 MENA Android gaming_laptops_test current_groups 245
2020-10-14 MENA Android gaming_laptops_test new_groups 273
2020-10-14 MENA iPhone gaming_laptops_test current_groups 116
2020-10-14 MENA iPhone gaming_laptops_test new_groups 124
2020-10-14 MENA Mac gaming_laptops_test current_groups 51
2020-10-14 MENA Mac gaming_laptops_test new_groups 68
2020-10-14 MENA PC gaming_laptops_test current_groups 145
2020-10-14 MENA PC gaming_laptops_test new_groups 142

2. Пересечение групп теста ¶

Довухэтапный расчет количества вхождения уникальных пользователей в тестовые группы на основе данных, полученных путем формирования профиля пользователя и расчета количества вхождения уникальных пользователей в тестовые группы.

WITH

-- Формирование профиля пользователя
profiles AS (
    SELECT DISTINCT user_id,
           MIN(install_date) OVER (PARTITION BY user_id) AS install_date,
           MAX(registration_flag) OVER (PARTITION BY user_id) AS registration_flag,
           FIRST_VALUE(region) OVER (PARTITION BY user_id ORDER BY session_start_ts) AS first_region,
           FIRST_VALUE(device) OVER (PARTITION BY user_id ORDER BY session_start_ts) AS first_device,
           FIRST_VALUE(test_name) OVER (PARTITION BY user_id ORDER BY session_start_ts) AS test_name,
           test_group
    FROM sessions_project_test_part
    WHERE install_date BETWEEN '2020-10-14' AND '2020-10-14'
)

-- Расчет количества вхождения уникальных пользователей в тестовые группы
SELECT user_id,
       COUNT(DISTINCT test_group) AS in_groups
FROM profiles
WHERE test_name = 'gaming_laptops_test'
GROUP BY user_id
HAVING COUNT(DISTINCT test_group) > 1;

Результат

В базе данных не существует записей, удовлетворяющих вашему запросу

Политика конфиденциальности

Продолжая использовать данный сайт вы подтверждаете свое согласие с условиями его политики конфиденциальности. Подробнее…




Администрация и владельцы данного информационного ресурса не несут ответственности за возможные последствия, связанные с использованием информации, размещенной на нем.


Все права защищены. При копировании материалов сайта обязательно указывать ссылку на © Microsegment.ru (2020-2025)