Сегментация

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

Вы можете сегментировать запрос по группировкам и метрикам. При этом группировка и метрика могут быть не указаны в запросе.

Фильтры по группировкам будут применены к исходным (не сгруппированным) данным, фильтры по метрикам — уже к сгруппированным строкам результата.

Для задания фильтра в URL-адресе запроса необходимо использовать URL-кодирование.

    Формат фильтра

    attribute operator 'value'

    где

    • attribute — группировка или метрика. Например, ym:s:trafficSource или ym:s:pageDepth.
    • operatorоператор фильтрации. Указывает какой тип фильтра будет применен. Например, == или >=.
    • value — значение для сравнения. В строке со значением должны быть экранированы символы ' и \ с помощью символа \.

    При этом действует лимит: количество уникальных группировок и метрик — до 10, количество отдельных фильтров — до 20, длина строки в фильтре — до 2000 символов.

    Например, чтобы получить данные только по визитам из Москвы, используйте фильтр:

    filters=ym:s:regionCityName=='Москва'

    Для разных группировок доступны разные операторы фильтрации (например, см. столбец Типы соответствий в разделе Источники).

    Чтобы сочетать фильтры между собой в запросе, используйте бинарные операторы AND и OR, а также унарный оператор NOT:

    &metrics=ym:s:visits&dimensions=ym:s:age&filters=NOT(ym:s:age!=18)
    ym:s:regionCityName=='Москва' OR ym:s:regionCityName=='Санкт-Петербург'

    А также задавайте приоритет с помощью круглых скобок:

    (ym:s:regionCityName=='Москва' OR ym:s:regionCityName=='Санкт-Петербург') AND ym:s:sex=='мужской'

    Фильтры по группировкам и по метрикам можно комбинировать только на верхнем уровне (вне скобок) и только через оператор AND.

    Примечание.

    Язык запроса (параметр lang) влияет на значения фильтров. Рекомендуем всегда указывать данный параметр.

    Множества и отношения

    В одном визите может быть несколько параметров визитов или просмотров. API позволяет осуществлять более точные запросы с помощью специального расширенного синтаксиса. Он может применяться в следующих случаях:

    • Сегментация по группировкам из Множеств (например, см. раздел Параметры визита).
    • Сегментация визитов по просмотрам.

    Синтаксис

    В синтаксисе фильтров можно использовать следующие операторы:

    [EXISTS|ALL|NONE](<filter>)
    Оператор Значение Описание
    EXISTS Содержит Используйте, если требуется наличие хотя бы одного элемента множества/просмотра в визите, удовлетворяющего условию в скобках.
    ALL Все Используйте, если требуется, чтобы все элементы множества/просмотры в визите удовлетворяли условию в скобках.
    NONE Не содержит Используйте, если требуется, чтобы ни один элемент множества/просмотр в визите не удовлетворял условию в скобках.

    Например, фильтр по визитам, которые содержат параметр визита client_id , будет иметь вид:

    filters=EXISTS(ym:s:paramsLevel1=='client_id')

    Метрики по множествам можно фильтровать, используя группировки этого множества:

    <metric>[<metric_filter>]

    Например, сумма параметров визитов для всех параметров с ключом первого уровня money:

    metrics=ym:s:sumParams[ym:s:paramsLevel1=='money']

    Разрешается использование фильтров по множествам и без операторов EXISTS, ALL, NONE . При этом будут применяться заменяющие операторы:

    Оператор Заменяющие операторы
    EXISTS == > < >= <= =@ =~ =* ! =.
    NONE != !@ !~ !* !.
    Нажмите, чтобы посмотреть примеры

    Сумма числовых значений параметров визитов для всех параметров с ключом первого уровня money:

    metrics=ym:s:sumParams(ym:s:paramsLevel1=='money')

    Количество параметров order:created:

    metrics=ym:s:paramsNumber(ym:s:paramsLevel1=='order' AND ym:s:paramsLevel2=='created')

    Сегментация по визитам с параметром визита {"new_client":"no"}:

    filters=EXISTS(ym:s:paramsLevel1=='new_client' AND ym:s:paramsLevel2=='no')

    Сегментация по визитам с параметром визита {"new_client":"no"} и параметром визита {"orange_button":"yes"}:

    filters=EXISTS(ym:s:paramsLevel1=='new_client' AND ym:s:paramsLevel2=='no') AND EXISTS(ym:s:paramsLevel1=='orange_button' AND ym:s:paramsLevel2=='yes')

    Сегментация по визитам с параметром визита {"new_client":"no"} и без параметра визита {"orange_button":"yes"}:

    filters=EXISTS(ym:s:paramsLevel1=='new_client' AND ym:s:paramsLevel2=='no') AND NONE(ym:s:paramsLevel1=='orange_button' AND ym:s:paramsLevel2=='yes')

    Количество визитов по запросам на URL, содержащий category1:

    metrics=ym:s:visits&filters=EXISTS(ym:pv:URL=='category1')

    Количество визитов по отсутствию запросов на URL, содержащий category1:

    metrics=ym:s:visits&filters=NONE(ym:pv:URL=='category1')

    Примеры использования сегментации

    Используйте данные примеры, чтобы формировать более детальные отчеты.

    Количество визитов и посетителей с учетом поисковых систем

    dimensions=ym:s:searchEngineName

    metrics=ym:s:visits,ym:s:users

    filters=ym:s:trafficSourceName=='Переходы из поисковых систем'

    https://api-metrika.yandex.ru/stat/v1/data?dimensions=ym:s:searchEngineName&metrics=ym:s:visits,ym:s:users&filters=ym:s:trafficSourceName=='Переходы из поисковых систем'&id=2138128&oauth_token=05dd3dd84ff948fdae2bc4fb91f13e22bb1f289ceef0037

    Количество визитов и новых посетителей с учетом поисковых систем

    dimensions=ym:s:searchEngineName

    metrics=ym:s:visits,ym:s:users

    filters=ym:s:trafficSourceName=='Переходы из поисковых систем' AND ym:s:isNewUser=='Yes'

    https://api-metrika.yandex.ru/stat/v1/data?dimensions=ym:s:searchEngineName&metrics=ym:s:visits,ym:s:users&filters=ym:s:trafficSourceName=='Переходы из поисковых систем' AND ym:s:isNewUser=='Yes'&id=2138128&oauth_token=05dd3dd84ff948fdae2bc4fb91f13e22bb1f289ceef0037

    Количество визитов с глубиной просмотра больше 5 страниц

    metrics=ym:s:visits

    filters=ym:s:pageViews>5

    https://api-metrika.yandex.ru/stat/v1/data?metrics=ym:s:visits&filters=ym:s:pageViews>5&id=2138128&oauth_token=05dd3dd84ff948fdae2bc4fb91f13e22bb1f289ceef0037

    Отчет Источники-Поисковые фразы

    Пример помогает сформировать отчет с учетом пользователей, которые посетили указанную в запросе страницу. В данном запросе URL-адрес страницы содержит заданный id.

    Чтобы задать id в параметре filters, необходимо использовать регулярное выражение: .*/id[0-9]+/.*

    preset=sources_search_phrases

    filters=ym:pv:URL=~'.*/id[0-9]+/.*'

    https://api-metrika.yandex.ru/stat/v1/data?preset=sources_search_phrases&filters=ym:pv:URL=~'.*/id[0-9]+/.*'&id=2138128&oauth_token=05dd3dd84ff948fdae2bc4fb91f13e22bb1f289ceef0037