Эффект мерцания, также называемый вспышкой исходного контента, — это короткий момент, в течение которого посетитель видит контрольную версию страницы, прежде чем скрипт тестирования на стороне клиента заменит её вариантом. Это происходит потому, что браузер отображает исходную разметку сразу после её получения, в то время как библиотека тестирования всё ещё загружается, инициализируется, определяет, какой вариант применяется, и применяет изменения. В результате получается видимая вспышка: текст меняется, элементы перемещаются, изображения меняются местами, и страница возвращается в своё окончательное состояние после того, как посетитель уже начал читать.
Мерцание — это не косметический дефект, а источник погрешности измерений. Посетители в экспериментальной группе испытывают скачок, которого посетители в контрольной группе никогда не видят, поэтому две группы получают разный опыт, не связанный с тестируемым дизайном. Некоторая часть посетителей экспериментальной группы покидает сайт во время или сразу после вспышки, а некоторые отвлекаются настолько, что их последующее поведение меняется. Это искажает результаты в пользу экспериментальной группы, что означает, что реальные улучшения остаются незамеченными, и программа тестирования систематически недооценивает ценность оцениваемых изменений.
Стандартное решение — это фрагмент кода, предотвращающий мерцание, который скрывает содержимое страницы до тех пор, пока тестовый скрипт не завершит применение изменений, а затем отображает его. Это заменяет видимое мерцание пустым экраном, и такой компромисс выгоден только в том случае, если скрипт загружается быстро. Если тестовая библиотека работает медленно или вообще не загружается, таймаут фрагмента определяет, как долго посетители будут смотреть в никуда, прежде чем отобразится исходный код. Таймауты часто оставляют на значениях по умолчанию от двух до четырех секунд, что при медленном мобильном соединении означает, что исправление мерцания снижает конверсию больше, чем предотвращает мерцание.
Таким образом, правильная реализация зависит от последовательности и скорости, а не только от самого фрагмента кода. Тестовый скрипт должен загружаться синхронно из заголовка документа, чтобы запускаться как можно раньше, в идеале с быстрого, хорошо обеспеченного ресурса, а не с общего. Тайм-аут защиты от мерцания следует установить достаточно высоким, обычно значительно меньше секунды, чтобы сбой сводился к короткой вспышке, а не к длительному пустому экрану. Изменения вариантов следует применять, по возможности, путем замены CSS-классов, а не путем индивидуального манипулирования множеством элементов. Тесты, требующие значительной структурной переработки, лучше создавать на стороне сервера, чем принудительно использовать клиентский инструмент.
Для диагностики мерцания необходимо анализировать реальные условия, а не только компьютер разработчика. Сетевые профили с ограничением скорости, мобильные устройства среднего класса и данные мониторинга реальных пользователей показывают, что на самом деле видит аудитория. Несоответствие соотношения выборок является наиболее сильным косвенным сигналом: если посетители теряются во время инициализации скрипта, распределение трафика не будет соответствовать настроенному распределению, и эту проверку следует запускать при каждом тестировании независимо от того, подозревается ли мерцание.
Измерение мерцания, а не предположение о его отсутствии, — простая задача, которая выполняется редко. Запись загрузки страницы при ограниченном соединении и пошаговое отображение кадров точно показывают, что видит посетитель и как долго, и выполнение этого на устройстве среднего уровня, а не на машине разработчика, обычно дает неудовлетворительный результат. Вторая и все более распространенная проблема — взаимодействие между тестовыми скриптами и платформами управления согласием, поскольку оба конкурируют за выполнение первыми и оба могут блокировать рендеринг. Если инструмент управления согласием загружается раньше инструмента тестирования, применение варианта задерживается до тех пор, пока согласие не будет получено, что может добавить секунду или больше и применяется неравномерно в регионах с различными требованиями к согласию. Преднамеренное определение последовательности этих двух зависимостей и измерение их совокупного влияния на рендеринг необходимо, прежде чем можно будет доверять каким-либо выводам о производительности варианта.
Основная проблема заключается в том, что инструмент тестирования представляет собой дополнительную зависимость, вставляемую в критически важный путь рендеринга каждой страницы. Управление этой зависимостью является частью процесса тестирования. веб-производительность Это скорее задача, которую команда по оптимизации не может решить самостоятельно, и поэтому необходимо координировать работу двух дисциплин. В тех случаях, когда мерцание невозможно контролировать приемлемым образом, требуется соответствующая реакция в рамках... Услуги CRO Цель программы — перенести затронутые эксперименты на серверную сторону, а не мириться с постоянной, невидимой предвзятостью по отношению к каждому варианту, который тестирует программа.