Рубрики
Без рубрики

Django A/B тестирование с Google Optimize

Более трудно определить будущий путь вашего продукта? A/B тестирование помогает вам решить, стоит ли вам взять T … С тегом Django, TodayLearned, WebDev, Python.

Более трудно определить будущий путь вашего продукта? A/B -тестирование помогает вам решить, стоит ли вам поехать по дороге, пройденной.

Чтобы понять ваших пользователей и их потребности, начните с создания двух вариаций продукта и сбора точек данных. Google Optimize упрощает этот процесс, управляя весами варианта, нацеливались на правила и предоставляя аналитику. Он также плавно интегрируется с другими продуктами G-Suite, такими как Google Adwords и Google Analytics.

Есть два способа запуска A/B-тестов: на стороне клиента и на стороне сервера. A/B-тесты Google Optimize A/B выполнят JavaScript In-Browser на основе ваших предпочтительных изменений, таких как изменения в стиле или позиционировании элементов. Хотя это полезно, это также ограничено.

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

Оптимизируйте основы Google

Когда пользователь посещает ваш сайт, и эксперимент активен, ему будет предоставлен экспериментальный вариант, который хранится в файле cookie, называемого _gaexp Анкет Cookie может иметь следующий контент Gax1.2.md68blrxqfkh- W8ZRKEVPA.18361.1 и он содержит несколько значений, где каждое значение делится на точки. Существует два значения ключа для сервера A/B-тестирования: Во -первых, идентификатор эксперимента, который в примере является Md68blrxqfkh-w8zrkevpa Анкет Во -вторых, экспериментальный вариант для сеанса, который является последним целым числом, которое в этом случае является 1 Анкет

Когда несколько экспериментов активны, эксперименты будут разделены восклицательным знаком, как в следующих _gaexp cookie Gax1.2.3x8_bbscreyqtwm1h1ourq.18166.1! 7ixtpxmlrzkwfu-eilh_0q.18166.0 Анкет Вы можете извлечь два эксперимента из cookie, 3x8_bbscreyqtwm1h1ourq с вариантом 1 и 7ixtpxmlrzkwfu-eilh_0q с вариантом 0 Анкет

Использование в Джанго

Мы можем проанализировать GA_EXP cookie с этим фрагментом кода:

ga_exp = self.request.COOKIES.get("_gaexp")

parts = ga_exp.split(".")
experiments_part = ".".join(parts[2:])
experiments = experiments_part.split("!")
for experiment_str in experiments:
    experiment_parts = experiment_str.split(".")
    experiment_id = experiment_parts[0]
    variation_id = int(experiment_parts[2])
    experiment_variations[experiment_id] = variation_id

Фрагмент отделяет файлы cookie от разделителей Google Optimize, которые являются точками ( . ) Для разных значений и восклицательных знаков ( ! ) для разделения экспериментов. Затем мы храним вариант эксперимента для каждого эксперимента в дикте. Затем мы можем отображать различные шаблоны на основе того, какие варианты эксперимента активны для текущего сеанса:

def get_template_names(self):
    experiments.get("my_experiment_cookie_id", None)
        if variant == "1":
            return ["jobs/xyz_new.html"]
        return ["jobs/xyz_old.html"]

Я создал Django Package Это упрощает это и добавляет как промежуточное программное обеспечение, так и управление экспериментом в Django-Admin. Пакет позволяет начать, останавливаться и приостановить эксперименты через администратора Django. Это также упрощает локальное тестирование экспериментальных вариантов. Я использую пакет в Findwork в A/B -тест UI/UX изменений.

Далее, я проведу вас, как настроить эксперимент в Google Optimize и Как отображать различные версии приложений на основе варианта эксперимента сеанса с использованием пакета.

Использование Django-Google-Optimize для запуска A/B-тестов

Начать с django-google-optimize Установите пакет с PIP:

PIP установить Django-Google-Optimize

Добавьте приложение в установленные приложения Django:

DJANGO_APPS = [
    ...
    "django_google_optimize",
    ...
]

Я добавил промежуточное программное обеспечение, которое делает вариант эксперимента легко доступным как в шаблонах, так и в представлениях, поэтому вам нужно добавить в себя промежуточное программное обеспечение настройки.py :

MIDDLEWARE = [
    ...
    "django_google_optimize.middleware.google_optimize",
    ...
]

Теперь запустите миграции ./manage.py мигрировать и настройка завершена.

Создание эксперимента Google Optimize

Отправляйтесь в Google Optimize и создайте свой первый эксперимент. По умолчанию у вас будет один вариант – это оригинальный вариант. Не стесняйтесь добавлять столько вариантов, сколько хотите для A/B -теста. Каждый вариант будет предоставлен индекс на основе порядка, который вы добавили варианты, но исходный вариант всегда будет иметь индекс 0:

Далее мы установим цели для теста A/B. Обязательно свяжите свое свойство Google Analytics с Google Optimize, чтобы установить цели, отслеживать метрики и измерить успех вашего эксперимента. Если вам еще предстоит добавить Google Analytics на свой сайт, Django-Analytical обеспечивает легкую интеграцию.

После того, как Google Analytics связана, вы сможете добавить цели в эксперимент. Они классифицируются двумя способами: системный дефолт (например. Скорость отскока, просмотры страниц) или определенные пользователи цели.

Существует предопределенный предел 3 целей. Одна будет основной целью, определяя успех эксперимента. Два других визуально отображаются позже в экспериментальном отчете Google Optimize. Все остальные пользовательские и системные цели будут видны в Google Analytics, привязанные индивидуально с каждым экспериментом. Не волнуйся – это только Визуально отображается и не определяет успех эксперимента .

Ниже приведен эксперимент с двумя целями системы и целью, которую я определил для Findwork Что измеряет, сколько пользователей подписано на список электронной почты работы:

Варианты и цели необходимы для начала эксперимента, но Google Optimize предоставляет множество других вариантов. Нацеливание на аудиторию (с Google Ads и интеграцией Google Analytics), варианты веса, распределение трафика и многое другое может улучшить ваши исследования. Если вы уже используете продукты Google в качестве Google Analytics и AdWords, то Google Optimize является еще одним эффективным инструментом в наборе инструментов.

Добавление эксперимента в Django-admin

Давайте отправимся в Джанго-Админ, чтобы добавить наш эксперимент. При добавлении эксперимента требуется только идентификатор эксперимента. После этого добавлено промежуточное программное обеспечение добавит эксперименты и их варианты в контекстную переменную, называемую Google_optimize Анкет Эксперименты будут доступны как в представлениях, так и в шаблонах (необходимо добавить процессор запроса request.google_optimize. объект. Тем не менее, ссылка на эксперимент по ID в ваших шаблонах Django и взглядах затруднит понимание того, какой эксперимент ссылается конкретный ID. Поэтому вы можете (и должны) добавить псевдонимы для экспериментов и вариантов. Это сделает ваш кодекс разборным и экономным. Вот пример различий::

Без псевдоним эксперимента Google вам придется ссылаться на эксперимент по ID:

{% if request.google_optimize.3x8_BbSCREyqtWm1H1OUrQ == 0 %}
{% include "jobs/xyz_new.html" %}
{% endif %}

Вместо эксперимента псевдоним:

{% if request.google_optimize.redesign_landing_page == 0 %}
{% include "jobs/xyz_new.html" %}
{% endif %}

Без псевдоним варианта вам придется ссылаться на свой вариант по индексу как:

{% if request.google_optimize.redesign_landing_page == 0 %}
{% include "jobs/xyz_new.html" %}
{% endif %}

Вместо псевдоним варианта:

{% if request.google_optimize.redesign_landing_page == "New Background Color" %}
{% include "jobs/xyz_new.html" %}
{% endif %}

Для примеров выше следующего объекта Google эксперимент был добавлен:

Местное развитие

Чтобы проверить варианты, вы можете добавить _gaexp cookie или управлять активным вариантом в джанго-админе. Для каждого браузера, используя либо плагины, либо инструменты разработчика, отрегулируйте _gaexp cookie и протестируйте каждый вариант, изменив вариант индекса в файле cookie сеанса. Например, в cookie Gax1.2.md68blrxqfkh- W8ZRKEVPA.18361.1 Вы можете настроить последнее целое число 1 к индексу варианта, который вы хотите проверить. В качестве альтернативы, django-google-optimize Обеспечивает каждый эксперимент с экспериментом объектом cookie, который затем устанавливает активный вариант. На панели администратора Django эксперимента вы можете добавить файл cookie, как на изображении ниже:

Обязательно установите его для активности для переопределения или добавления выбранного варианта, в противном случае Cookie сеанса будет использоваться! Эксперимент Cookie работает только в Отладка режим. Google устанавливает файл cookie в производство, и у нас нет желания переопределять его.

использование

Как вы узнали, вы можете использовать django-google-optimize В шаблонах, как ниже:

{% if request.google_optimize.redesign_landing_page == "New Background Color" %}
{% include "jobs/xyz_new.html" %}
{% endif %}

Чтобы использовать пакет в представлениях и отобразить два разных шаблона на основе экспериментального варианта

def get_template_names(self):
    variant = request.google_optimize.get("redesign_landing_page", None)
    if variant == "New Background Color":
        return ["jobs/xyz_new.html"]
    return ["jobs/xyz_old.html"]

Регулировка запроса в представление на основе варианта эксперимента:

def get_queryset(self):
    variant = self.request.google_optimize.get("redesign_landing_page", None)

    if variant == "New Background Color":
        qs = qs.exclude(design__contains="old")

Полученные результаты

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

Вы по -прежнему получаете ежедневные обновления о прогрессе эксперимента, где у вас будут все идеи, которые вам понадобятся, чтобы закончить эксперимент. В верхней части страницы отчетности будет составлена ссылка на панель управления Google Analytics для эксперимента, как показано ниже на изображении:

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

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

Резюме

Плавная интеграция Google Optimize с Google Analytics позволяет подробно анализировать каждый вариант A/B. Пакет Django-Google-Optimize упрощает этот процесс еще больше. Используйте это пошаговое руководство при разработке приложений, чтобы получить более глубокое понимание ваших клиентов, их потребностей и того, как вы можете разработать продукт для их выполнения.

Проект можно найти на GitHub Анкет

Пакет опубликован на Pypi Анкет

Документация доступна в Прочитайте документы Анкет

Оригинал: “https://dev.to/adinhodovic/django-a-b-testing-with-google-optimize-9cb”