Как написать эксперимент по контенту Google, который отключает таблицу стилей?

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

Для меня нет смысла делать это A/B способом по умолчанию, потому что тогда мне нужно будет настроить вторую страницу с отключенной таблицей стилей для каждой страницы моего сайта.

Есть также Проведение Эксперимента на стороне Сервера, но мне это слишком тяжело для кое-чего, я думаю, должно быть несколько простым.

У меня есть настройка js all, мне просто нужно иметь возможность сообщить странице, что при наличии определенного варианта отключите таблицу стилей или не отображайте таблицу стилей до загрузки DOM.

Одна вещь, которую я рассмотрел, это, учитывая определенный вариант, перенаправить на ту же страницу, но добавить параметр запроса URL, например &stylesheet_disabled=true тогда я просто не рендерил бы таблицу стилей на стороне сервера, но когда я кратко посмотрел на это, я столкнулся с циклом перенаправления, но, возможно, у кого-то есть лучший способ написать js.

Любая помощь с благодарностью.

2 ответа

Решение

Вы могли бы сделать что-то вроде этого:

<head>
  ...
  <script>
    if (cxApi.chooseVariation() != 1) { // not in the experiment
      document.write('<link href="... />'); // add the stylesheet
    }
  </script>
  ...

Использовать только document.write пока страница все еще загружается.

Это все на стороне клиента, поэтому нет необходимости в перенаправлениях и дополнительной работе сервера.

Вот как я это сделал:

<head>
    <script src="//www.google-analytics.com/cx/api.js?experiment=EXPERIMENT_ID"></script>
    <script>
        // Ask Google Analytics which variation to show the visitor.
        var chosenVariation = cxApi.chooseVariation();
        function redirectVariation($variation) {
            var url = window.location.href;
            if ($variation === 1) {
                var queryString = document.location.search;
                if (queryString.indexOf("stylesheet_disabled=true") == -1) {
                    if (Boolean(queryString)) {
                        url += "&stylesheet_disabled=true";
                    } else {
                        url += "?stylesheet_disabled=true";
                    }
                    window.location.href = url;
                }
            }
        }
        redirectVariation(chosenVariation);
    </script>

Это только настройка для одного другого варианта, но может быть легко изменено для большего. Тогда ваше приложение на стороне сервера обнаружит наличие параметра строки запроса и выполнит любую логику, которая вам нравится, в моем случае не отображая таблицу стилей.

Теоретически это можно использовать для выполнения любой логики на стороне сервера с перенаправлениями на стороне клиента GA Content Experiment. Надеюсь, это поможет кому-то еще.

Другие вопросы по тегам