Блог Яндекс.Метрики

Практикум. Параметры посетителей: передача данных онлайн

28 июля 2016, 16:00

По умолчанию Метрика собирает множество данных о посетителях сайта — их пол, интересы, историю визитов и другие сведения. А у вас как у владельца бизнеса есть масса другой полезной информации о клиентах: наличие карты лояльности, марка автомобиля или срок действия полиса. Если эти знания совместить с данными, которые уже есть в отчётах, можно выделять самые разные группы посетителей для анализа и прицельной рекламы. Например, сравнить поведение клиентов с дисконтной картой и без. И клиентам с карточкой, которые давно не заходили на сайт, точечно предложить специальную скидку.     

Чтобы добавить собственные данные о клиентах в отчёты, нужно настроить передачу в Метрику параметров посетителей: их можно отправлять онлайн (пока посетитель на сайте) или офлайн, загружая csv-файл.

Мы подробно разберём оба способа в двух статьях-практикумах, и начнём с передачи данных онлайн. Этот способ позволяет отправлять в Метрику как события, которые происходят в момент взаимодействия посетителя с сайтом, так и те данные, которые уже есть в вашей базе.
 

Передаём в отчёты данные из собственной базы 

Для примера возьмём интернет-магазин, у которого есть два типа покупателей — «обычные» и «vip». Данные о статусе клиента хранятся в собственной базе сайта. После того, как посетитель авторизуется на сайте, на каждой странице вместо ссылки «Войти» он будет видеть своё имя или логин, а рядом — свой особый статус, если он у него есть: Василий / VIP.

Чтобы отправлять в Метрику статус клиента, на все страницы сайта нужно добавить код, который будет вызывать специальный метод userParams — он и будет передавать данные о статусе.

Для «особых» клиентов метод будет принимать вот такой вид:

yaCounterXXXXXX.userParams ({     
            vip_status: true
});

А так метод будет выглядеть, когда на сайте авторизуется «обычный» посетитель:

yaCounterXXXXXX.userParams ({
            vip_status: false
});

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



А проверить, что данные передаются корректно, можно в специальном отчёте «Параметры посетителей» (в разделе «Содержание»):



Если у «обычного» клиента появится особый статус, то при его следующей авторизации на сайте метод userParams просто отправит в Метрику изменившиеся данные. При этом новый статус распространится на всю историю визитов этого посетителя — как если бы он был vip-клиентом изначально.
 

Онлайн-события: как отправлять только нужные данные

С помощью метода userParams можно передавать любые данные из вашей собственной базы, которые отображаются в браузере посетителя. Этот же метод позволяет работать с данными, которые появляются прямо в момент взаимодействия с сайтом (например, нажатие на кнопку), и тут важно не запутаться: такие данные могут относиться и к посетителю, и к конкретному визиту. И если событие визита передавать в качестве параметра посетителя, в отчётах будут собираться некорректные данные. Чтобы этого избежать, полезно помнить про уровни данных, с которыми работает Метрика.

Базовый уровень — это просмотр страницы. Следующий уровень — визит, то есть несколько просмотров от одного посетителя за один раз. А все визиты одного посетителя Метрика провязывает в единую историю посещений, которая составляет уровень посетителя.

Каждому уровню данных соответствуют свои атрибуты. О просмотре страницы известно, когда он был сделан и откуда перешёл посетитель. Среди характеристик визита — его дата/время, длительность, география, браузер и другие данные. А про посетителей Метрика знает, например, их пол, долгосрочные интересы, дату первого визита и время с последнего визита.

Для визитов и посетителей можно передавать любые другие параметры — и тут важно не перепутать, какие из них относятся к визиту, а какие — к посетителю. Свойства посетителя отличаются от свойств просмотра и визита тем, что они не привязаны ко времени. Например, событие «отправка отзыва» приходится на конкретный визит: за всю историю посещений человек мог оставить отзыв только один раз. Поэтому нет смысла делать такое событие атрибутом посетителя: в этом случае в отчётах вы будете видеть, что якобы на каждый визит этого посетителя приходилось по одному отзыву.

Если же вы хотите сравнить поведение посетителей, которые хотя бы однажды написали отзыв, и «молчунов», нужно настроить передачу соответствующего события через параметры визитов, а затем создать соответствующие сегменты. А в параметрах посетителей следует передавать только те характеристики, которые не меняются от визита к визиту. Например, тип клиента — «розничный» или «дилер».


Примеры передачи событий

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

yaCounterXXXXXX.userParams ({
            status: «client»
});

yaCounterXXXXXX.userParams ({
             status: «partner»
});


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

yaCounterXXXXXX.userParams ({
            pet: «собака»
});


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

yaCounterXXXXXX.userParams ({
            delivery: «арбат»
});

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

В следующих практикумах мы подробно поговорим про загрузку данных офлайн и разберём частые вопросы по обоим способам работы с параметрами посетителей.  

28 комментариев
Антон Леонтьев
29 июля 2016, 10:17
Есть ли возможность устанавливать параметры посетителей не через yaCounterXXXXXX.userParams, а при инициализации счетчика new Ya.Metrika({id: 4234234....... userParams: { ... }   ? В документации про это не написано.
Яндекс Василиса
29 июля 2016, 16:58
Антон Леонтьев,
не написано, потому что такой возможности пока нет. Она появится в ближайшее время и тогда мы обновим описание в Помощи.
1. «Чтобы отправлять в Метрику статус клиента, на все страницы сайта нужно добавить код, который будет вызывать специальный метод userParams — он и будет передавать данные о статусе.»
Зачем добавлять код на все страницы, если, по моему мнению, достаточно разместить его на странице авторизации?
2. «Если у «обычного» клиента появится особый статус, то при его следующей авторизации на сайте метод userParams просто отправит в Метрику изменившиеся данные. При этом новый статус распространится на всю историю визитов этого посетителя — как если бы он был vip-клиентом изначально».

Если прошлое посетителя будет переписано, то это исказит отчётность за прошлые периоды.
Яндекс Василиса
30 июля 2016, 00:00
parom1957,
1. а если человек приходит на сайт и уже авторизован?
2. "Свойства посетителя отличаются от свойств просмотра и визита тем, что они не привязаны ко времени."
У посетителя есть неизменные или редко меняющиеся характеристики, такие как пол, год рождения, логин, источник первого посещения и т.д.
В этом примере посетитель стал vip-клиентом и всю его историю мы начали рассматривать как историю vip-клиента - какой первый источник привел vip-клиента, как часто он возвращался, с какой периодичностью делал покупки, что его интересует.
Яндекс Василиса,
1. Если посетитель приходит на сайт, уже получив статус в одном из предыдущих визитов, толи в этом случае нет нужды ставить код на все страницы, так как с точки зрения сегментации всё работает, посетитель распознаётся   Метрикой (сайтом) правильно. Так как я при авторизации в тестовых целях дублирую параметры посетителей в параметрах визитов, то то при сегментации по параметрам пользователя в отчёте Вебвизора присутствуют визиты статусных посетителей как  посетивших страницы авторизации, так и визиты без авторизации. Эти визиты хорошо различаются по содержимому столбца параметров визитов, который или заполнен параметрами, или пуст.
2. Так как посетитель получает статус "обычный", пройдя авторизацию, то предполагается, что некоторое время назад посетитель прошёл регистрацию, превратившись из анонимного пользователя в статусного. Может возникнуть интерес к анализу поведения клиента на разных этапах его жизни, (анонимный-обычный-ВИП). Видно, что статус меняется со временем, история обычного клиента предшествует его истории в качестве ВИПа. Но если Метрика работает, как Вы описали, то остаётся это принять. 
Яндекс Василиса
1 августа 2016, 16:03
parom1957,
1. представим ситуацию:
- сайт не новый, у него есть база клиентов, которые заходят, уже залогинившись. При этом попадать они могут на любую страницу сайта.
- владелец сайта ранее не пользовался разметкой посетителей и только сейчас начал это делать, используя параметры посетителей.
В этом случае необходимо отправлять параметры с любой страницы сайта.

2. еще одна ситуация, утрированная: владелец сайта всегда считал пользователя мальчиком, а потом внезапно оказалось, что на самом деле это девочка. Можно ли в этом случае продолжать всю предыдущую историю посетителя приписывать к "мальчикам" и не будет ли это оскорблять его/ее чувства?
Чтобы увидеть время изменения в отчетах, можно:
1) использовать параметры визитов, т.к. именно у них есть временная привязка. Однако при этом в каждом визите посетителя должна передаваться необходимая характеристика (например, что посетитель "мальчик"). Когда характеристика сменится, во всех последующих визитах должна передаваться новая характеристика.
2) использовать несколько параметров посетителей:
параметр "пол1" = "мальчик"
параметр "дата изменения"
параметр "пол2" = "девочка".
Яндекс Василиса,
, 1. Хорошо, Ваш  пример теперь понятен, спасибо. В нашем проекте мы знали, что статусные клиенты обязательно заглянут на ряд страниц, где и были раставлены коды с передачей параметров. После первоначально присваивания статуса коды на оставшихся страницах не требовались, так как параметры пользователей имеют облась действия user (в гугловской терминологии). При сегментации по параметрам пользователей, как я писал выше, в отчёт попадали визиты статусных пользователей без захода на  страницы с "ловушками".
2. И с этим примером понятно, спасибо. У нас используется подход, похожий на 1)
Яндекс Василиса
2 августа 2016, 17:03
parom1957,
да, в вашем случае можно и не ставить код на все страницы.
Яндекс Василиса,
Правильно я поняли, что параметры посетителей будут перезаписаны, если обновятся данные?
Яндекс Василиса
22 октября 2016, 17:29
batievskiy,
если для пользователя с параметром изменится значение этого параметра, то оно перезапишет предыдущее значение.
Здравствуйте! Ситуация: интернет-магазин. Человек добавляет товар в корзину, регистрируется и указывает свои данные (имя и телефон). Бросает товар в корзине. Приходит в оффлайн точку продаж, оформляет покупку и его данные продавец вносит в CRM (имя и телефон). Что порекомендуете здесь использовать, чтобы в дальнейшем отследить источник продажи (параметр посетителя или параметр визита)?
Яндекс Василиса
2 августа 2016, 20:06
reklama@it-don.ru,
в данное время Яндекс.Метрика не поддерживает отправку конверсий из оффлайна. Однако вы можете для этого клиента передавать параметры посетителей через оффлайн загрузку:
- тип покупки: offline
- дата покупки: 01.01.2016
- ID заказа: 12345
Яндекс Василиса,
А когда появится оффлан конверсия? Не понял фразу "Однако вы можете для этого клиента передавать параметры посетителей через оффлайн загрузку", разъясните пожалуйста.
Яндекс Василиса,
очень жаль, что до сих пор нет работы с оффлайн-заказами. Они же есть почти в каждом интернет-магазине.


Василиса, вы порекомендовали передавать в параметр посетителя данные, которые относятся к визиту: время, тип заказа, номер заказа. Но один посетитель может создать несколько заказов и тогда данные каждого заказа будут отображаться в каждом его посещении на протяжении всего срока жизни посетителя. Это расходится с рекомендациями в самой статье, где не рекомендуют этого делать. Поясните, пожалуйста, ваш ответ. А то мы запутались))
Яндекс Василиса
8 августа 2016, 19:20
Kvanto,
да, эти данные будут приписаны ко всей истории посетителя. Это не рекомендация, а возможный план действий, если очень хочется все-таки как-то передать эти данные. Мы, как и раньше, рекомендуем передавать в параметры посетителей только данные, которые относятся к пользователю и не меняются/редко меняются на протяжении его истории.
Яндекс Василиса
12 августа 2016, 15:10
Vertalmoney,
добавили статью про загрузку данных оффлайн https://yandex.ru/blog/metrika/praktikum-peredacha-parametrov-posetiteley-oflayn
Добрый день!
Использую параметры посетителей для сегментации посетителей сайта на пользователей и гостей. Для пользователей передаю нужные мне параметры, а для гостей не передаю ничего.
Задача: сравнить количество пользователей с количестом гостей.
Проблема: чтобы получить количество гостей, нужно задать условие в стиле != или IS NULL.

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

Есть ли другое решение поставленной задачи?
Яндекс Василиса
5 сентября 2016, 16:51
illuzionds,
есть параметры визитов https://yandex.ru/support/metrika/data/visit-params.xml
Как раз могут подойти для этой задачи.
Яндекс Василиса,
спасибо за ответ, но боюсь это не поможет в решении моей задачи.
Мне нужно создать сегмент "Гости", чтобы использовать его для сегментации отчетов. В него должны войти все посетители, для которых не были переданы никакие параметры.
Это бы легко решилось, если бы при настройке сегмента была возможность выбрать всех посетителей, у которых отсутствует некоторый заданный мной параметр.
Вы не планируете реализовать такую возможность в будущем?
Яндекс Василиса
6 сентября 2016, 14:00
illuzionds,
пожалуйста, пришлите номер счетчика, где вы хотите реализовать такие условия.
Яндекс Василиса
7 сентября 2016, 19:09
illuzionds,
в интерфейсе, действительно получить такие данные нельзя, но запросом в API можно. Например, 
https://api-metrika.yandex.ru/stat/v1/data?date1=2016-08-08&date2=2016-09-07&filters=not%20exists%20ym:up:userID%20with%20(ym:up:paramsLevel1==%27user_ID%27)&dimensions=ym%3As%3Adate&sort=ym%3As%3Adate&ids=XXXXXX&metrics=ym%3As%3Avisits&&oauth_token=YYYYYY
Где XXX - ID счетчика,
YYY - токен
Яндекс Василиса,
когда планируется внести изменения в документацию по API Яндекс.Метрикки, отражающие внедрение параметров пользователей? В справочнике разработчика API Яндекс.Метрики от 13.09.2016 такой информации нет.
Яндекс Василиса
22 октября 2016, 18:51
parom1957,
в API управления - https://tech.yandex.ru/metrika/doc/api2/management/userparams/findall-docpage/
API отчетов - https://tech.yandex.ru/metrika/doc/api2/api_v1/attributes/user_param/user_param-docpage/
https://tech.yandex.ru/metrika/doc/api2/api_v1/metrics/user_param/user_params-docpage/
Добрый день!


У меня несколько вопросов:


1. Как именно ведет себя система, если для двух clientID прописан один UserID?


2. Что будет, если у двух разных clientID при одинаковом UserID будет скажим разны параметр "возраст"? Какой будет отдаваться?



Яндекс Василиса
22 октября 2016, 18:52
batievskiy,

1. объединяет 2  CID под один UID.
2. последнее переданное значение, если "возраст" - это название параметра, а цифра - значение и меняется именно она.
Здравствуйте, как и где можно посмотреть отчеты по меткам key1=x&key2=y&key3=z и так далее
Яндекс Василиса
31 октября 2016, 15:16
seymur02,
это нестандартные метки, поэтому они не будут показаны в отчетах по источникам трафика. Их можно найти в отчете Параметры URL https://yandex.ru/support/metrika/content/url-params.xml
Чтобы данные по меткам были в отчетах по источникам трафика, используйте эти варианты разметки - https://yandex.ru/support/metrika/reports/tags.xml