Skip to content

Что и как делаем?

Мы запускаем эксперимент: небольшой части пользователей показываем вариант A, другой части — вариант B, и сравниваем результат. Результат — это не «красиво/некрасиво», а метрика: клики, покупки, регистрации, удержание.

Чтобы это работало, продукту нужны две способности:

  1. получать значение флага и на его основе показывать правильный вариант;
  2. отправлять в платформу события о том, что произошло после показа.

Где это живёт в приложении

Section titled “Где это живёт в приложении”

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

То есть в коде продукта есть простая логика:
“Мне нужен цвет кнопки → возьму его из A/B‑платформы → нарисую кнопку таким цветом”.

Важно: продукт не анализирует и не считает статистику. Он просто:

  • спрашивает “что показывать?”
  • показывает
  • отправляет “что произошло?”

Как аналитик запускает эксперимент

Section titled “Как аналитик запускает эксперимент”

Аналитик создаёт эксперимент на фича‑флаге button_color. При создании он задаёт:

  • варианты (например, blue и red);
  • долю аудитории (например, 20%);
  • метрику, по которой оцениваем эффект (например, «покупка» или «клик»).

С этого момента платформа готова отвечать приложению: кому какой цвет показывать.

Что происходит, когда пользователь открывает экран

Section titled “Что происходит, когда пользователь открывает экран”

Вот пользователь открыл экран с кнопкой.

Приложение в этот момент делает очень простую вещь: просит у платформы значение фича‑флага.

personId = "u42"
defaultButtonColor = "green"
buttonColor = ab.getFeature(
featureName="button_color",
personId=personId,
fallbackValue=defaultButtonColor,
)
renderButton(text="Купить", color=buttonColor)

Если пользователь попал в эксперимент, платформа вернёт “blue” или “red”.
Если не попал — вернёт default значение флага. В этом примере default для button_colorgreen.

Для Лотти это важно: эксперимент не требует отдельных релизов “под синий/красный”. Всё переключается настройками.

Как платформа узнаёт, что было дальше

Section titled “Как платформа узнаёт, что было дальше”

Показать вариант — половина дела. Нужно понять, что случилось после.

Поэтому приложение отправляет ивенты.
Ивенты — это короткие сообщения вроде “кнопку показали” и “на кнопку нажали”.

# экран показали
ab.sendEvent("buttonShown", personId="u42", props={"screen": "checkout"})
# пользователь нажал кнопку
ab.sendEvent("buttonClicked", personId="u42", props={"screen": "checkout"})

Платформа собирает эти события и потом сравнивает: в каком варианте кликов/покупок получилось больше.