Настройка Google Analytics: пользовательские переменные

Немного теории

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

Модель для одного посетителя (я назвал его условно «Игнатий Прокофьевич»):

Наш вымышленный посетитель побывал на сайте 2 раза: во вторник и в среду. Для упрощения я обозначил сессии разными днями недели. Хотя 2 сессии могли случиться и в течение одного дня. Это могло произойти в одном из случаев:

  1. Игнатий закрыл браузер и открыл его заново
  2. Прошло 30 минут, после того как была зафиксирована последняя активность посетителя (речь о Google Analytics, поэтому важно учитывать, что он фиксирует, а что нет)
  3. Окончились сутки или начался отсчет нового дня
  4. Смена источника входа на сайт. Причем, под сменой источника входа подразумевается изменение любого из этих параметров:
    Сайт источник (реферер) – в GA это параметр source
    Канал трафика – в GA это параметр medium
    Ключевое слово – в GA это параметр keyword
    Содержание любой из utm-меток в разметке рекламных ссылок
    Содержание специальной метки gclid, которая используется при авто-пометке кампаний из AdWords

За первый сеанс (вторник) наш вымышленный посетитель просмотрел 3 страницы: «Главная», «О компании», «Продукция».

За второй — 2 страницы: «Продукция», «Контакты»

Три уровня взаимодействия (Посетитель, Сессия, Страница) определяют область взаимодействия с посетителем. Каждая пользовательская переменная ограничена конкретной областью.

Как добавить пользовательскую переменную?

<script type="text/javascript">
    _gaq.push(['_setCustomVar',
        index,    //ID переменной
        'name',   //Название переменной
        'value',  //Значение переменной
        opt_scope //Уровень переменной
    ]);
</script>
  • index — Число от 1 до 5. Это ID переменной. Обязательный параметр.
  • name — Название переменной, которое появляется в отчёте Google Analytics. Обязательный параметр.
  • value — Значение переменной. Обязательный параметр.
  • opt_scope — Уровень переменной (1 — посетитель, 2 — сессия, 3 — страница). Если не задан, то по умолчанию это переменная страницы. Необязательный параметр.

Примеры использования пользовательских переменных в Google Analytics

Большую часть примеров (хоть и со своими корректировками) я взял из поста Деваки.

В каждом примере я буду использовать index = 1, т.к. переменных в примерах много, а лимит у нас всего на 5 шт. При размещении моего кода на своём сайте учитывайте это. Index для 2 разных переменных должен быть разным.

Список всех примеров:

Лояльность клиента

Для интернет-магазинов можно анализировать поведение клиентов в зависимости от количества совершенных им покупок. Как только клиент достиг страницы оплаты, из базы данных CMS можно узнать, сколько покупок он делал раньше. Если это его первая покупка, создаём такую пользовательскую переменную:

<script type="text/javascript">
    _gaq.push([ '_setCustomVar', 1, 'Customer', 'New', 2 ]);
</script>

Для второй покупки можно сменить значение на ‘Returning’.

<script type="text/javascript">
    _gaq.push([ '_setCustomVar', 1, 'Customer', 'Returning', 2 ]);
</script>

Для тех, кто совершает 3 и более покупок:

<script type="text/javascript">
    _gaq.push([ '_setCustomVar', 1, 'Customer', 'Loyal', 2 ]);
</script>

Покупка товаров по акции

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

<script type="text/javascript">
    _gaq.push([ '_setCustomVar', 1, 'Special', 'Yes', 2 ]);
</script>

Качество отзывов

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

<script type="text/javascript">
    _gaq.push([ '_setCustomVar', 1, 'Read-review', 'Yes', 2 ]);
</script>

Конверсия из онлайн-помощи

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

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

<script type="text/javascript">
    _gaq.push([ '_setCustomVar', 1, 'Customer service', 'Used', 2 ]);
</script>

Жалобы

Наподобие с предыдущим пунктом, если в форме присутствует выпадающий список с разными опциями, одна из которых “Жалоба”, можно установить пользовательскую переменную для отслеживания поведения таких посетителей на сайте.

<script type="text/javascript">
    _gaq.push([ '_setCustomVar', 1, 'Complaint', 'Made', 2 ]);
</script>

Зарегистрированные пользователи

В чём разница между зарегистрированными пользователями и незарегистрированными? Кто как себя ведёт? Чтобы сравнить их, добавьте неавторизованным посетителям отметку «Гость»:

<script type="text/javascript">
    _gaq.push([ '_setCustomVar', 1, 'User', 'Guest', 2 ]);
</script>

А авторизованным меняйте метку на «Участник»:

<script type="text/javascript">
    _gaq.push([ '_setCustomVar', 1, 'User', 'Member', 2 ]);
</script>

Популярность разделов сайта

Чтобы отследить определённый раздел сайта, например, «Наушники» (представим, что у нас интернет-магазин электроники), нужно добавить такую пользовательскую переменную:

<script type="text/javascript">
    _gaq.push([ '_setCustomVar', 1, 'Section', 'Наушники', 3 ]);
</script>

Популярность автора

Можно узнать, какие авторы пользуются популярностью. Для этого в каждую статью автора нужно добавить переменную уровня страницы:

<script type="text/javascript">
_gaq.push([ '_setCustomVar', 1, 'Author', 'Имя автора', 3 ]);
</script>

Отдельный клиент / пользователь

Поведение конкретного зарегистрированного пользователя или клиента можно отслеживать, используя его уникальный ID в системе (вашей CMS).

<script type="text/javascript">
    _gaq.push([ '_setCustomVar', 1, 'CustomerID', 'id клиента', 2 ]);
</script>

Сегментация посетителей с помощью пользовательских переменных

К примеру, спросите у клиента его пол и возраст (дату рождения) при регистрации (или опросе) и Вы получите возможность собирать с сайта демографическую информацию ваших клиентов.

<script type="text/javascript">
    _gaq.push([ '_setCustomVar', 1, 'Gender', 'Male', 1 ]);
    _gaq.push([ '_setCustomVar', 2, 'Age', '16-25', 1 ]);
</script>

Это важно:

  • В бесплатной версии Google Analytics установлено ограничение на 5 переменных в одном запросе
  • Не дублируйте имена переменных
  • Переменные нужно задавать до вызова метода _trackPageview. Иногда это может быть невозможно, и потребуется создать дополнительный запрос _trackPageview() после задания пользовательской переменной.
  • Иногда имеет смысл использовать события вместо специальных переменных

Переменные настроили, где посмотреть результат?

  • Аудитория / Персонализированный / Мои переменные
  • Аудитория / Персонализированный / Пользовательские значения
  • Либо с помощью пользовательских отчётов.

В качестве примера приведу недавно установленную на одном из своих сайтов переменную.

Всем посетителям, которые воспользовались калькулятором на сайте, задаётся переменная «Calculator». Смотрим тех, кто считает (отчёт «Аудитория / Персонализированный / Мои переменные»):

Потом всех остальных (отчёт Аудитория / Обзор + расширенными сегментами исключаем пользователей калькулятора):

Делаем выводы:

  • Средняя продолжительность посещения у пользователей калькулятора — 6 минут, у остальных — 9
  • Количество просмотренных страниц за посещение у пользователей калькулятора — 7 минут, у остальных — 2

Разумеется, это далеко не все выводы, которые мы можем сделать. С помощью пользовательских переменных мы можем фильтровать посетителей практически в каждом отчёте.

17 комментариев
  1. Daffodil:

    Самый лучший пост на эту тему. Спасибо автору

  2. Антон:

    В чем отличие переменных (custom vars) от событий (events)?
    Что лучше использовать, если мне нужно пометить в GA каждую страницу публикации id автора в системе, и потом получать такую информацию, как число просмотров публикаций данного автора, среднее время нахождения на стра и др?
    Самое главное, что статистика нужна за все время существования публикации, а не только с момента выставления на страницу метки (переменной или event’а). То есть эта «метка» по сути служит для группировки страниц, ведь не вижу смысла указывать в запросе к API 100 урлов страниц публикаций конкретного автора, если можно просто указать что «author_id=123»
    А так да, единственная встреченная мной вменяемая статья по теме 🙂

    • Для решения описанной задачи лучше использовать пользовательские переменные.
      Но статистику за всё время (до настройки переменной) Вы не получите.
      Если в URL или title страницы есть зацепка за автора, можно настроить сегмент или фильтр.

      • Антон:

        В url или title нет зацепки за автора. Стало быть, ни переменные, ни event’ы мне не помогут? То есть, для получения ответа на вопрос «сколько просмотров публикаций было у автора с id=123 за последние 3 месяца» все же выбирать с сайта все его публикации за период и тупо их все передавать гуглу? Хм, а если таковых было порядка несколько сотен или даже тысяча — гугл такое скормит?

        • Не до конца понимаю Вашу задумку. Если запрос большой, Вы можете разбить его на несколько запросов.

          • Антон:

            Да задумка-то простая. Есть много публикаций, их пишут много авторов. В GA есть статистика и аналитика. Мне надо через API делать запросы на число просмотров у таких-то (там в запросе перечисляю URI страниц, штук 10-20, в зависимости сколько их у меня на странице выводится) публикаций. Это один момент.
            Второй, посложнее который — это когда я группирую публикации по авторам, и мне бы получить просмотры за период по публикациям конкретного автора. И тут я думал что есть 2 пути:
            — хреновый. Тупо передавать все урлы. Коих может быть вплоть до 1000. Не пробовал, честно, не знаю, как гугл скормит.
            — получше. Если удалось бы пометить в GA каждую страницу публикации id ее автора, то можно было бы делать запросы на получение числа просмотров страниц, помеченных таким-то автором. Помечать, как вы написали выше, можно либо customvars’ами, либо event’ами. Но минусище в том, что я не могу, пометив страницу сегодня, получить ее статистику за последние 3 месяца по этой метке, правильно я понял?

            • Антон:

              Да, сбор статистики пошел только с момента расстановки переменной на страницу. Странная логика, как по мне. У переменных правда есть еще уровень scope (user, session, page), ими если поиграться — как считаете, может помочь?

              • Ничего странного в логике. Вы настраиваете сбор определённых данных — они начинают собираться.

                Scope тут не поможет.

                Не вижу причин, по которым нельзя реализовать идею через api. Слишком длинный запрос можно разбить на необходимое количество коротких.

                Как вариант — Вы можете попробовать настроить сегменты. 1 сегмент = 1 автор. Но при написании новых статей нужно будет дополнять созданные сегменты. Рано или поздно будет достигнут лимит в условиях.

  3. Дарья:

    Добрый день!
    Подскажите можно ли настроить пользовательскую переменную для того чтобы отследить повторные заходы людей с определенного вида трафика? Например, люди перешли из директа, но ничего не купили. а в следующий раз совершили покупку через прямой заход

  4. Юлия:

    Здравствуйте! Есть интернет-магазин. Оплата осуществляется тремя способами: наличными, оплата онлайн (пееход в робо-кассу) и кредит (переход на страницу банка, где человек заполняет заявку на кредит). Возникло два вопроса:

    1) как в такой ситуации настроить электронную торговлю? если с оплатой наличными всё просто (стандартные настройки), то с онлайн-оплатой и заявкой на кредит не понятно, в какой момент отправлять данные о заказе.

    2) Можно ли присвоить пользователям, которые выбрали определённый способ оплаты, пользовательскую переменную и как это сделать в Universal Analytics?

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

      2. можно. проще всего это сделать на странице подтверждения заказа. размещайте вместе с кодом электронной торговли, чтобы не получить расхождения в отчётах. в gu в этом плане принципиально ничего не изменилось. синтаксис можно найти в справке гугла

      • Юлия:

        а если страница подтверждения заказа для всех способов оплаты одинаковая? как разделить пользователей?

        • Ну, на каком-то этапе они в любом случае делают выбор способа оплаты.

          Если после этого выбора нет страницы, на которой собрана вся заполненная инфа для проверки, а человек сразу отправляется на страницу оплаты/сайт кредитной организации, можно поставить событие на onclick или onsubmit — до отправки формы функция проверяет выбранный способ оплаты и присваивает пользовательское значение.

  5. Елена:

    Жаль что не затронута тема влияния различных скопов на переменные. Замечательная статья.

Добавить комментарий для Елена Отменить ответ

Ваш адрес email не будет опубликован.