Предотвратить перекрытие между двумя экспериментами в Google Optimize?
Не могли бы вы помочь мне с правилом, которое может исключать пользователей, которые уже подвергались одному из других экспериментов в Google Optimize?
Каков наилучший подход?
Я думаю об использовании сторонней переменной cookie или какой-либо другой пользовательской переменной, которая пометит пользователя как "открытого", чтобы другой эксперимент не повлиял на него.
Кроме того, я могу использовать "запускать собственный"JavaScript в визуальном редакторе Optimize, который создаст такой файл cookie. Это решит проблему?
Также я не могу понять, как предотвратить запуск двух экспериментов одновременно. Так что пользователь, который видит эксперимент A, не увидит эксперимент B или C (бесплатная версия ограничена 3 экспериментами). Есть ли какие-либо правила или конфигурации, которые могут помочь с этим?
1 ответ
Просто надо было с этим разобраться! Подход @swapnil-jain, казалось, работал на поверхностном уровне, но, к сожалению, имел некоторые проблемы.
Когда Optimize оценивает, следует ли включать нового пользователя в список экспериментов, он создает _gaexp
cookie один раз для всех подписок, он не создает его, а затем обновляет между подписками.
Итак, он ищет _gaexp
cookie, оценивает подписку на Exp A (does not contain
<expBId>
) и выбирает пользователя для Exp A. Затем он оценивает выбор для Exp B (does not contain
<expAId>
) и выбирает пользователя для Exp B. Затем он создает файл cookie, читающий что-то вроде GAX1.3.<expAId>.<expDate>.<value>.<expBId>.<expDate>.<value>
.
Проблема в том, что при втором посещении пользователь будет исключен из просмотра вариантов для любого эксперимента, потому что теперь они не соответствуют условиям таргетинга на аудиторию. Их файл cookie теперь содержит оба<expAId>
а также <expBId>
!
У меня были похожие проблемы при попытке настроить таргетинг на _gaexp
cookie с регулярным выражением, поскольку cookie создается сразу для обоих экспериментов после принятия решения о включении.
Мое текущее рабочее решение - создать собственное правило JavaScript под названием rand100
. Для первого пользователя он генерирует случайное число от 0 до 100. Если это число меньше 50, они оцениваются для опыта A, и сохраняется файл cookie, содержащийrand100
ценность. Если они равны или больше 50, они оцениваются для Exp B. Для вернувшихся пользователей извлекается cookie, и предыдущее значениеrand100
возвращается вместо нового, и поэтому они по-прежнему соответствуют условиям таргетинга для эксперимента, в котором они участвовали.
Один файл cookie используется совместно для оценки подписки, поскольку он запускает пользовательский JavaScript во время оценки Exp A, и поэтому файл cookie доступен для оценки Exp B. Срок действия файла cookie истекает через 90 дней, что является сроком действия по умолчанию для отслеживания Optimize.
Я провожу эти эксперименты на 100% трафика, но технически они видят только 50% трафика из-за rand100
. Трафик делится на 25%/25%/25%/25% между control/v1/control/v1.
Когда мы создаем любой эксперимент, Google создает идентификатор эксперимента, который мы можем найти в разделе деталей. Кроме того, когда для пользователя запускается эксперимент, он устанавливает_gaexp
файл cookie, который содержит этот идентификатор эксперимента (помимо других идентификаторов).
Итак, если вы хотите провести два взаимоисключающих эксперимента, все, что вам нужно сделать, это исключить пользователя из эксперимента, если _gaexp
содержит идентификатор другого. Вот шаги:
- В таргетинге на аудиторию добавьте правило и выберите
First-party cookie
- Создайте переменную и установите для нее значение
_gaexp
- Выбрать
does not contain
вариант и добавьте идентификатор другого эксперимента в значение - Сохранить
Повторите те же шаги для другого эксперимента.
Это одна из причин, по которой я до сих пор использую Google Experiment. Это обеспечивает намного больше контроля с его API. С учетом вышесказанного вы сможете достичь желаемого результата, установив файл cookie в браузере пользователя. Вот как я это вижу:
- Все экспериментальные файлы cookie имеют одинаковые имена, но разные значения, чтобы избежать создания нескольких файлов cookie.
- После нового сеанса проверьте наличие файлов cookie.
- Exists - метка огня для инициализации соответствующего эксперимента.
- Не существует - определите, в какое экспериментальное ведро поместить пользователя и использовать метку для инициализации соответствующего эксперимента.
Я знаю, что в Optimizely есть алгоритм, позволяющий объединять экспериментальных пользователей таким образом, чтобы каждый пользователь мог участвовать в нескольких экспериментах, но я не верю, что в Google Optimize такой функциональности пока нет.