Pull to refresh

Кастомные переменные Google Analytics, или новые возможности для сегментирования вашего трафика

Reading time4 min
Views11K
Как Вы, вероятно, уже знаете не так давно произошло обновление Google Analytics. Данное обновление было освещено и здесь, на хабре, — Грандиозное обновление Google Analytics

В частности изменения коснулись:
  • Увеличено количество целей до 20 (4 набора по 5 целей в каждом)
  • Появились цели новых типов (время проведенное на сайте и кол-во просмотренных страниц)
  • Веб-аналитика мобильных сайтов. Статистика с приложений на платформах Android и IPhone также как для веб-сайтав
  • Адаптация кода Analytics под выбранную платформу
  • Появление Pivot таблиц в отчетах — то чего очень не хватало многим, и из-за чего приходилось использовать Excel
  • Фильтрация данных в отчетах на лету
  • Добавлена новая метрика — уникальные посетители
  • Расширена возможность работы с событиями
  • Полностью изменены принципы работы с пользовательскими переменными


На последнем я бы и хотел остановить свое внимание.

Долгое время единственным предоставляемым GA способом сегментировать свой трафик в статистике была ф-ия _setVar(). С помощью этой ф-ии можно было установить пользовательскую переменную (только одну!) и таким образом, причислить пользователя к определенной категории. Выглядело это как-то так:

pageTracker._setVar(”registered”);
pageTracker._trackPageview();


Скажем, код выше мог стоять на странице thankyou_for_registration.html и здесь мы устанавливаем, что пользователь зарегистировался на сайте, чтобы в дальнейшем отслеживать отдельно исключительно поведение зарегистрированных пользователей на сайте.
Сделать можно это в разделе Visitors->User-Defined

Как это работало:
При установки переменной выставлялась дополнительная кука для пользователя __utmv, значение которой присваивалось название переменной из ф-ии _setVar, т.е. в нашем случае: ”registered”. Эта кука ставилась продолжительность на 2 года.

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

В некоторых случаях этого было достаточно, например, если хотелось сигментировать по гендорному признаку, по тому зарегистрирован пользователь или нет, сделал ли уже покупку. Но если хотелось добавить несколько таких фильтров, то все шло наперекосяк, т.к. если у пользователя была уже установлена эта кука, скажем, в значение ”registered”, и после этого он заполнял о себе в профайле инфо и указывал свой пол, и мы вызывали повторно ф-ию pageTracker._setVar(”male”); то вызов этой ф-ии перезатирал предыдущее установленное значение (”registered”).

Таким образом GA сохранял только последнее значение переменно, записанной в __utmv куки.

Было и частичное решение этой проблемы, о котором можно прочитать перейдя по этой ссылке
Основная идея этого решения: не перезаписывать переменные в __utmv куки, а дополнять к текущему значению переменной — новое (конкатенировать новый лейбл к уже установленному)

Например, после последовательных вызовов:
pageTracker._setVar(”male”);
pageTracker._setVar(”registered”);
Реально мы будем иметь данные только о том, что пользователь ”registered”

Используя метод конкатенации:
superSetVar('/male');
superSetVar('/registered');

Мы создадим переменную /male/registered которая будет отражать композитный смысл нашей сегментации.

Но все еще оставалось проблема подсчета таких важных критериев как bounce rate и time on site, а именно они очень сильно изменялись bounce rate — рос, time on site — падал. Это происходило потому, что после установки переменной _setVar — визит считался новым.

Все это вместе привело к тому, что после обновления GA метод _setVar стал deprecated

А что появилось вместо него?



А появился, собственно метод __setCustomVar

Сигнатура данного метода выглядит следующим образом:
_setCustomVar(index, name, value, opt_scope)

Помимо имени переменной (name) и значения (value) тут появились еще 2 интересных параметра

opt_scope: существует 3 контекста переменных: 1 (visitor-level), 2 (session-level), 3 (page-level).
  • visitor-level — Время жизни — вечная. Полезно когда ставится для пользователя раз и навсегда (например, пол, зарегистрирован или нет, совершил ли покупку, является ли вип пользователем(клиентом)).
  • session-level — Время жизни сессия. Полезна, например, для треккинка залогиненых пользователей и анонимов
  • page-level — Применяется для отслеживания событий или определенных просмотров страниц.


index — слот. существует 5 слотов (от 1 до 5). Переменная должна быть помещена в один из слотов.

Не буду вдаваться дальше в детали, т.к. есть очень неплохой мануал от Google по кастомным переменным . Правда на английском. Там приведены примеры и описано подробно что, как и зачем.

Приведу пример только как использую это я.

Например, для сегментации по полу и по тому зарегистрирован ли пользователь, на первой странице после регистрации (та самая thankyou_for_registration.html ) я добавляю

pageTracker._setCustomVar(
1, // This custom var is set to slot #1
"Users", // The name of the custom variable
"Registered", // Sets the value of "Users" var
1 // Sets the scope to visitor-level
);

pageTracker._setCustomVar(
2, // This custom var is set to slot #2
"Gender", // The name of the custom variable
"$Gender", // Sets the value of "Gender" to "Male" or "Female" depending on field in registration form
1 // Sets the scope to visitor-level
);

pageTracker._trackPageview();



При использовании различных скопов нужно быть предельно внимательным, чтобы переменные не перезаписали друг друга. Об этом также можно почитать здесь

В данной статье только рассказал какими инструментами пользуюсь я для сегментации трафика, буду рад услышать чем пользуетесь Вы :-)
Tags:
Hubs:
Total votes 42: ↑37 and ↓5+32
Comments21

Articles