Skip to content
This repository was archived by the owner on Jan 30, 2024. It is now read-only.

Latest commit

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Сегментатор

php 5.5+

Назначение

Проведение A/B-тестов, защищенных от внешнего вмешательства.

Сегмент пользователя устанавливается на длину его сессии (единственный верный вариант при тестировании товарных рекомендаций). Сегмент хранится в сессии PHP. Уничтожается через N часов неактивности пользователя (время устанавливается в php.ini).

Сегмент необходимо добавлять к оформленному заказу в базе данных магазина. Результаты теста считать по выполненным не отмененным заказам.

Установка

  1. Положить файл ServerSideSegmentator.php в папку с вашим проектом и подключить его

Использование

Получение сегмента пользователя в контролере

<?php// Инициализировать эксперимент$recSegmentator = newServerSideSegmentator('recommendations', 3);
// Получить сегмент пользователя$segment = $recSegmentator->getSegment();
?>

Использование в шаблонах:

...
<!-- Сегмент может быть не задан, например для поисковых роботов, поэтому проверяем его наличие --><?php if($segment): %><?php if($segment == 'A'): ?><!-- Показать рекомендер подрядчика № 1--><?php endif;?><?php if($segment == 'B'): ?><!-- Показать рекомендер подрядчика № 2--><?php endif;?><?php if($segment == 'C'): ?><!-- Показать рекомендер подрядчика № 3--><?php endif;?><!-- Отправить сегмент в Google Analytics --><javascript>
ga('set', 'dimension5', '<?php echo $segment ?>');
</javascript><?php endif; ?>
...

Запись сегмента в оформленный заказ:

<?php// ... где-то здесь получили order_id заказа$order_id = 123;
// Добавляем сегмент к заказу// Считаем, что у заказа может быть несколько экспериментов, поэтому сегменты пишем в отдельную таблицу "order_segments"$recSegmentator = newServerSideSegmentator('recommendations', 3);
$segment = $regSegmentator->getSegment();
if($segment) {
$query = "INSERT INTO order_segments (order_id, segment) VALUES (" . $order_id . ", '" . $segment . "');";
mysql_query($segment);
}
?>

About

Server-side A/B test segmentator for eCommerce

Topics

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages