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

    Как Вы, вероятно, уже знаете не так давно произошло обновление 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();



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

    В данной статье только рассказал какими инструментами пользуюсь я для сегментации трафика, буду рад услышать чем пользуетесь Вы :-)

    Similar posts

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 21

      0
      Отлично! Пошёл использовать 8)
      За что люблю хабр, так это то, что только соберёшься что-то сделать, а тут как раз хорошая статья ;)
        +1
        Огромное спасибо за топик. В свое время, когда я на Амазоне увидел книжечку Advanced Web Metrics with Google Analytics, а ее можно было просмотреть перед покупкой (функция look inside) и я «просмторел» главу про пользовательские переменные — это был прорыв для меня. Я начал выжимать из аналитики то, что я хотел увидеть.

        теперь это будет делать еще проще.

          0
          Да, сам использовал свою статистику, самописную, что отдельно трекать зарегистрированных пользователей, и составлять по ним статистику отдельно.

          Теперь, наверное, может не понадобиться, так как все идет из ящика :-)
            0
            сейчас можно найти на books.google.com/
            0
            Раздел вы не верно выбрали.
              0
              эта функция сейчас не у всех доступна? добавил несколько переменных, однако в отчетах их найти не удалось
                0
                А у вас код аналитикса новый?
                  0
                  да. Ставлю вот так:

                  pageTracker._setCustomVar(1, «Authorized», «true»);

                  перед pageTracker._trackPageview();
                    0
                    Кстати, вы не правильно переменную ставите
                    из мануала:
                    When left undefined, the custom variable scope defaults to page-level interaction.

                    А у вас «Authorized» это вероятно сесионный scope

                    так что нужно контекст указывать явно

                    pageTracker._setCustomVar(1, «Authorized», «true», 2);

                    Но это все равно не объясняет почему данные у вас не появляются :-)
                      0
                      мне кажется тут более уместен page-level, потому как сервер сам отслеживает сессии.

                      А покажите plz скриншот как выглядит отчет с custom variables
                    0
                    Кстати, а если ставите visitor-level scope, то он посчитается только при следующем заходе пользователя на сайт
                  0
                  Тоже не нахожу в отчетах, код самый новый, пробовал задавать через все способы, но пока не видно ни в API ни в интерфейсе сайта. Есть только «User defined» который всегда "(not set)".
                  Возможно конешно что ещё в моём аккаунте это не включили, но «coming weeks» с 20 октября вроде бы должно уже было пройти… У кого появилась информация о кастомных переменных — пришлите, пожалуйста, скриншот или описание где их искать!
                    0
                    у меня та же ерунда. Хотя вот недавно появился новый пункт «разведка»
                      0
                      У меня наконец-то появился этот пункт! Только приходят эти переменные оказывается не со всеми данными вместе, а с задержкой в 2-3 суток! Т.е. посещаемость за вчера, например, у меня уже есть, а вот переменные пустые. Зайду послезавтра — они чудесным образом появятся!
                      А я до этого все мозги сломал, думал чё ж у меня не работает, 50 способов уж разных перепробовал! А оказывается надо было просто подождать ;)
                        0
                        получается что можно либо ждать, либо указывать точно указывать новые сегменты для каждой переменной, что бы было быстрей (http://habrahabr.ru/blogs/eCommerce/74730/#comment_2227391)?
                          0
                          Да, странно, если добавить сегмент — то их сразу видно!
                          Например за вчера в общей статистике «All visits» показывает у меня 0 переменных. Создал сегмент для переменной #1, выбираю этот сегмент — бах, появились значения. Выбираю обратно All visits — опять нету.
                          Так что это глюки GA похоже :(
                  +1
                  Тоже мучался с поиском пользовательских сегментов. В стандартных отчетах их на данный момент нет.
                  Но путем экспериментов выяснилось, что эти сегменты можно вытащить, создав пользовательские отчеты с использованием в качестве измерения Custom Variable.
                    +1
                    Если вы пометили зарегистрированных посетителей так:
                    pageTracker._setCustomVar(1, 'Users', 'registered', 1);
                    то для выделения достаточно создать такой сегмент:
                    значение: Custom Variable (Value 1)
                    условие: точное соответствие
                    значение: registered
                    0
                    А у кого-нибудь работает задание этих переменных на русском языке? Что-то javascript в alert выводит русские и английские нормально, а вот в отчете GA вижу только английские… Попробую поэксперементировать с кодировками…
                      0
                      Разобрался в чем проблема! Он делает urlencode для строчек referrer, в результате для каждой русской буквы получается 3 символа, строка становится длиннее чем 64 символа и он её отвергает. А с английскими влазит в 64 символа без проблем.

                    Only users with full accounts can post comments. Log in, please.