SkillAgentSearch skills...

RetailRocket.Segmentator

No description available

Install / Use

/learn @RetailRocket/RetailRocket.Segmentator
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Retail Rocket Segmentator

Код позволяет случайно в равных пропорциях разделить пользователей на сайте на любое количество сегментов для проведения A/B/N тестирования.

Пример использования:

var numberOfSegments = 2;
retailrocket.segmentator.getVisitorSegment(numberOfSegments);

Результатом работы кода будет номер сегмента (начиная с 1), в который попал пользователь. Принадлежность пользователя к сегменту сохраняется в cookie на 2 месяца и обновляется до двух месяцев при каждом срабатывании кода.

Сценарий проведения A/B теста с помощью Retail Rocket Segmentator

  1. Файл retailrocket.segmentator.js сохраняется в директорию сайта и подключается внутри <head>, например так:
<script type="text/javascript" src="/path/to/retailrocket.segmentator.js"></script>
  1. Сразу после подключения файла размещается код
<script type="text/javascript">
	var numberOfSegments = 2;
	var visitorSegment = retailrocket.segmentator.getVisitorSegment(numberOfSegments);
</script>
  1. После того, как пользователь отнесен на сегмент, необходимо показать ему соответствующий вариант сайта/страницы. Возможные варианты:

3.1. Переадресация на альтернативный вариант страницы

<script type="text/javascript">
	var visitorSegment = retailrocket.segmentator.getVisitorSegment(numberOfSegments);
	if(visitorSegment==1 && document.location.pathname=="path/to/pageBeingTested.html") {
		window.location = "http://yourwebsite.com/path/to/alternative.html";
	}
</script>

3.2. Отображение одного из вариантов кнопки (или любого другого элемента интерфейса). Для этого все вариации тестируемого элемента интерфейса выводятся на страницу со стилем display:none, а затем, в зависимости от того, в какой сегмент попал пользователь, один из скрытых элементов меняет стиль на display:block

<script type="text/javascript">
	var visitorSegment = retailrocket.segmentator.getVisitorSegment(numberOfSegments);
	$(function() {
		if(visitorSegment == 1) {
			$(".button_ver1").css('display','block');  // на сайте выше по коду должна быть подключена библиотека jQuery
		} else if (visitorSegment == 2){
			$(".button_ver2").css('display','block');  // на сайте выше по коду должна быть подключена библиотека jQuery
		}
	});
</script>
  1. Последним шагом является передача идентификатора сегмента в систему веб-аналитики для проведения пост-тест анализа.

Пример тестирования двух вариантов кнопки c отправкой идентификатора сегмента в Universal Analytics

<script type="text/javascript" src="/path/to/retailrocket.segmentator.js"></script>
<script type="text/javascript">
	var numberOfSegments = 2;
	
	var visitorSegment = retailrocket.segmentator.getVisitorSegment(numberOfSegments);
	var variation = 'Variation ' + visitorSegment;
	
	$(function () {
	    if (visitorSegment == 1) {
	        $(".button_ver1").css('display', 'block'); // на сайте выше по коду должна быть подключена библиотека jQuery
	    } else if (visitorSegment == 2) {
	        $(".button_ver2").css('display', 'block'); // на сайте выше по коду должна быть подключена библиотека jQuery
	    }
	});
</script>

Затем в трекинг-коде Universal Analytics (который должен располагаться после приведенного выше кода), необходимо сделать вызов:

ga('send', 'event', 'A/B Test', variation);

Пример тестирования двух вариантов главной страницы с отправкой идентификатора сегмента в Яндекс.Метрика

<script type="text/javascript" src="/path/to/retailrocket.segmentator.js"></script>
<script type="text/javascript">
	var numberOfSegments = 2;
	var visitorSegment = retailrocket.segmentator.getVisitorSegment(numberOfSegments);
	if (visitorSegment == 1 && document.location.pathname == "path/to/oldVersion.html") {
    		window.location = "http://yourwebsite.com/path/to/newVersion.html";
	} else if (visitorSegment == 2 && document.location.pathname == "path/to/oldVersion.html") {
    	var yaParams = {
        	ab_test: 'Старая версия'
    	};
	}
	else if(visitorSegment == 1 && document.location.pathname == "/path/to/newVersion.html") {
    		var yaParams = {
        		ab_test: 'Новая версия'
    		};
	}
	else if(visitorSegment == 2 && document.location.pathname == "/path/to/newVersion.html") {
    		window.location = "http://yourwebsite.com/path/to/oldVersion.html";
	}	
</script>

Затем в трекинг-коде Яндекс.Метрики (который должен располагаться после приведенного выше кода) создаем объект счетчика и указываем свойство params c нашими параметрами:

new Ya.Metrika({id: XXXXXX, params: yaParams});

Related Skills

View on GitHub
GitHub Stars36
CategoryDevelopment
Updated7mo ago
Forks8

Languages

JavaScript

Security Score

77/100

Audited on Aug 12, 2025

No findings