#
Глобальная контрольная группа
В рамках данного документа под глобальной контрольной группой (Global Control Group – GCG) подразумевается некий процент пользователей (мы рекомендуем 10%), которые не видят ни одной кампании Gravity Field, включая рекомендательные виджеты. GCG позволяет оценить общий эффект от внедрения Gravity Field на сайте.
Обычно мы ориентируемся на пожелания клиента при запуске глобальной контрольной группы на сайте.
Как правило, не имеет смысла запускать GCG до момента запуска в Gravity Field кампаний, совокупно затрагивающих менее 30% трафика сайта. В этом случае глобальная контрольная группа сократит количество пользователей, попадающих в кампании, но не покажет значимых результатов. Более того, к моменту запуска основных кампаний GCG соберёт некоторое количество шума и измерение основных кампаний будет начинаться не с нулевой отметки, а с шумных данных, собранных ранее.
Надо понимать, что GCG не отменяет наличия локальных контрольных групп в кампаниях. Таким образом при запуске теста с разделением пользователей между вариацией и контрольной группой в режиме 50/50, реальное количество пользователей, увидевших тест, будет 45% (учитывая GCG 10%).
К плюсам GCG можно отнести то, что появляется возможность легко оценить инкрементальный прирост от внедрения персонализации.
К минусам GCG можно отнести следующее:
- Заметный процент пользователей сайта будет исключён из персонализации.
- Есть кампании, которые включаются на 100% пользователей (контентные кампании). Для этих кампаний либо приходится делать исключение и запускать их для GCG в том числе, что потенциально может повлиять на результаты и снизить их достоверность, либо будут пользователи, которые не будут видеть определённые элементы контента на сайте.
GCG оформляется в системе как кампания и позволяет оценивать результаты по тем же метрикам и в том же интерфейсе, что и остальные кампании.
#
Реализация при WEB интеграции
Создайте кампанию типа Custom Code в платформе, назовите её
Global Control Group
. Укажите, что кампания должна срабатывать при загрузке страницы раз в сессию.Создайте экспириенс с таргетингом на всех пользователей сайта.
Назначьте метод аллокации A/B Test, задайте первичную метрику, релевантную для вашего бизнеса, и создайте две вариации.
Назовите первую вариацию
Gravity Field Experiences
и укажите следующий код на вкладке JS в вариации:const GCG_STORAGE_NAME = '_gf_cs_gcg'; const GF_VALUE = 'Gravity Field Experiences'; const STORAGE_TYPE = 'localStorage'; SL.StorageUtils.remove(GCG_STORAGE_NAME, [STORAGE_TYPE]); SL.StorageUtils.set(GCG_STORAGE_NAME, GF_VALUE, [STORAGE_TYPE]);
Назовите вторую вариацию
Control Group
и укажите следующий код на вкладке JS в вариации:const GCG_STORAGE_NAME = '_gf_cs_gcg'; const CG_VALUE = 'Control Group'; const STORAGE_TYPE = 'localStorage'; SL.StorageUtils.remove(GCG_STORAGE_NAME, [STORAGE_TYPE]); SL.StorageUtils.set(GCG_STORAGE_NAME, CG_VALUE, [STORAGE_TYPE]);
Задайте распределение трафика — 90% для вариации
Gravity Field Experiences
и 10% дляControl Group
и опубликуйте кампанию.Создайте эвалюатор с названием
Global Control Group
и укажите два варианта ожидаемых значений: Gravity Field Experiences и Control Group. Укажите для эвалюатора следующий код и сохраните его:new Promise(resolve => { window.GFCS = window.GFCS || {}; if (GFCS.inGlobalControl) return resolve(GFCS.inGlobalControl); getGCValue(); function getGCValue () { var GCValue = SL.StorageUtils.get('_gf_cs_gcg', ['localStorage']) if (GCValue) { GFCS.inGlobalControl = GCValue; resolve(GCValue); } else { setTimeout(function() { getGCValue(); }, 20); } } })
Укажите в таргетинге всех фронтовых экспириенсов в секции:
#
Реализация при API интеграции
#
Вариант 1
Создайте API-кампанию в платформе, назовите её
Global Control Group
.Создайте экспириенс с таргетингом на всех пользователей сайта.
Назначьте метод аллокации A/B Test, задайте первичную метрику, релевантную для вашего бизнеса, и создайте две вариации.
Назовите первую вариацию
Gravity Field Experiences
и укажите следующий код на вкладке JSON в вариации:{ "_gf_cs_gcg": "GCG" }
Назовите вторую вариацию
Control Group
и укажите следующий код на вкладке JSON в вариации:{ "_gf_cs_gcg": "GFExperiences" }
Задайте распределение трафика — 90% для вариации
Gravity Field Experiences
и 10% дляControl Group
и опубликуйте кампанию.Запрашивайте кампанию для каждого пользователя, пришедшего на сайт, при первом просмотре страницы сайта за сессию (один раз за сессию). Ответ, полученный от кампании, необходиомо сохранить на своей стороне или на стороне пользователя (в случае сайта можно сохранить ответ в куках пользователя).
Все прочие кампании персонализации запрашивайте с параметром
context.pageAttributes
в запросеchoose
, в котором передавая в него название и значение сохранённого ответаУкажите в таргетинге всех серверных экспириенсов в секции:
Таким образом, кампании будут запускаться только для тех пользователей, которые попали в глобальную тестовую группу.
Обратите внимание, в случае, если вы передаёте информацию о просмотрах пользователями страниц в рамках запросов choose
, в первом запросе параметр options.isImplicitPageview
должен быть true
, а во втором — false
.
#
Вариант 2
Разбивка пользователей между тестовой и глобальной контрольной группами производится на стороне клиента. Для части пользователей кампании либо не запрашиваются вообще, либо в Gravity Field в рамках запроса choose передаётся параметр context.pageAttributes
, в котором указывается, к какой группе относится пользователь. В кампаниях по персонализации на уровне таргетинга включаются только пользователи, попавшие в тестовую группу. Здесь есть существенный минус — в платформе персонализации нет аналитики по глобальной контрольной группе и клиенту необходимо на своей стороне собирать все аналитические данные и вычислять эффективность глобальной контрольнкой группы.
#
Реализация при гибридной имплементации
При гибридной имплементации необходимо, чтобы одна GCG управляла кампаниями, запускаемыми и через фронтовую и через серверную имплементацию. Оптимальным решением в данном случае является создание серверной GCG.
Создайте API-кампанию в платформе, назовите её
Global Control Group
.Создайте экспириенс с таргетингом на всех пользователей сайта.
Назначьте метод аллокации A/B Test, задайте первичную метрику, релевантную для вашего бизнеса, и создайте две вариации.
Назовите первую вариацию
Gravity Field Experiences
и укажите следующий код на вкладке JSON в вариации:{ "_gf_cs_gcg": "GCG" }
Назовите вторую вариацию
Control Group
и укажите следующий код на вкладке JSON в вариации:{ "_gf_cs_gcg": "GFExperiences" }
Задайте распределение трафика — 90% для вариации
Gravity Field Experiences
и 10% дляControl Group
и опубликуйте кампанию.Запрашивайте кампанию для каждого пользователя, пришедшего на сайт, при первом просмотре страницы сайта за сессию (один раз за сессию). В зависимости от ответа, полученного от кампании, установите куку в браузер пользователя:
_gf_cs_gcg
со значениемGCG
илиGFExperiences
для контрольной и тестовой групп соответственно. Срок жизни куки — 1 неделя.
#
WEB кампании
В таргетинге всех фронтовых экспириенсов в секции необходимо указать:
Таким образом, кампании будут запускаться только для тех пользователей, которые попали в глобальную тестовую группу.
#
API кампании
Для серверных кампаний проще также ориентироваться по куке. В параметр context.pageAttributes
запроса choose
передавайте название и значение куки. Укажите в таргетинге всех серверных экспириенсов в секции:
Таким образом, кампании будут запускаться только для тех пользователей, которые попали в глобальную тестовую группу.
Обратите внимание, в случае, если вы передаёте информацию о просмотрах пользователями страниц в рамках запросов choose
, и делаете более, чем один запрос с одной страницы, в первом запросе параметр options.isImplicitPageview
должен быть true
, а во втором и последующих — false
.