Инструменты · key

complex_queries_analyser Комплексный анализ запросов: набор проверок в одном отчёте

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

Режим
асинхронный: report_id
Запросов
до 5 000 за задачу
Стоимость
сумма по выбранным проверкам, см. ниже
Одновременно
одна задача на пользователя

Постановка задачи

POST /api/complex_queries_analyser

Ключ — в query-строке, всё остальное — в теле формы. Нужна хотя бы одна проверка: geo, intent, gruppirovka, site_type, competition, wordstat_advanced или positions. vital_answer и comm сами по себе не считаются — передавайте их вместе с одной из перечисленных.

Флаги включаются самим присутствием параметра: geo=0 тоже включит проверку. Чтобы выключить — не передавайте параметр.

Параметры query и тело формы

  • key string обязательный
  • requests array обязательный
    Запросы: массив requests[] или строка с запросами через перевод строки. Дубли и пустые строки отбрасываются. Не больше 5 000.
  • lr int
    Регион Яндекса, например 213 — Москва.
    По умолчанию 213
  • search_system int
    Поисковая система для анализа выдачи.
    1
    Яндекс
    2
    Google
    По умолчанию 1
  • deep int
    Глубина анализа выдачи.
    10
    ТОП-10
    25
    ТОП-25
    50
    ТОП-50
    По умолчанию 25
  • geo int
    Геозависимость и степень локализации выдачи.
    1
    включить
  • vital_answer int
    Есть ли в выдаче витальный (официальный) сайт.
    1
    включить
  • comm int
    Коммерциализация. Включает и колонки интента.
    1
    включить
  • intent int
    Интент: доли отзывов, медиа, словарей, музыки, путешествий и тематические слова.
    1
    включить
  • intent_comm_ai int
    Уточнить коммерциализацию нейросетью. Работает только при deep=10 вместе с comm; +10 лимитов за запрос.
    1
    включить
  • site_type int
    Типы сайтов в выдаче по базе размеченных сайтов.
    1
    включить
  • competition int
    Конкуренция по запросу в баллах (ИКС, типы страниц, коммерциализация, агрегаторы в ТОП-10).
    1
    включить
  • wordstat_advanced int
    Общая и точная частота Wordstat по региону lr.
    1
    включить
  • gruppirovka int
    Кластеризация запросов по совпадению URL в ТОПе.
    1
    включить
  • gruppirovka_method string
    Сила связи при кластеризации. Другие значения — hard.
    hard
    сильная
    middle
    средняя
    soft
    слабая
    По умолчанию hard
  • gruppirovka_user_grouping_pow int
    Степень группировки, от 1 до 10.
    По умолчанию 3
  • gruppirovka_generate_url int
    Сформировать относительный URL из названия группы (транслитом; при wordstat_advanced — из самого частотного запроса группы).
    1
    включить
  • gruppirovka_home_pages int
    Посчитать число главных страниц в ТОПе по запросу.
    1
    включить
  • gruppirovka_exclude_data int
    Исключить из сравнения витальные ответы, новости и агрегаторы. Рекомендуется.
    1
    включить
  • gruppirovka_exclude_domains_chbx int
    Исключить из сравнения свой список доменов.
    1
    включить
  • gruppirovka_exclude_domains array
    Домены для исключения, до 100.
  • positions int
    Позиции сайта и релевантные страницы.
    1
    включить
  • positions_url string
    Сайт, позиции которого проверяются. Нужен при positions.
  • positions_ss array
    Поисковые системы: yandex-xml, yandex-mobile, google-desktop, google-mobile. До 6, пары с positions_lrs по порядку.
  • positions_lrs array
    Регионы Яндекса для каждой системы из positions_ss, в том же порядке.
  • positions_ss_count int
    Сколько пар «система — регион» брать (последние N из списков). Обязателен при positions: без него не проверится ни одна пара.
  • positions_deep int
    Глубина съёма позиций.
    10
    ТОП-10
    20
    ТОП-20
    50
    ТОП-50
    100
    ТОП-100
  • positions_subdomains string
    Учитывать поддомены сайта.
    on
    включить
  • positions_force_check_relevant string
    Определить релевантный URL, даже если сайта нет в ТОП-100 (только Яндекс; +1 лимит за запрос на каждую систему Яндекса).
    on
    включить
  • delete_none_target_queries int
    Включить удаление нецелевых запросов. Без него параметры del_* ниже не действуют.
    1
    включить
  • del_implicit_duplicates int
    Удалить неявные дубли (одинаковые после лемматизации); с частотами оставляется самый частотный. +5 лимитов.
    1
    включить
  • del_geo int
    Удалить запросы по геозависимости (нужен geo).
    1
    включить
  • del_geo_type string
    Какие удалять.
    with
    геозависимые
    without
    геонезависимые
  • del_local int
    Удалить по степени локализации (нужен geo); пороги — del_local_less, del_local_more.
    1
    включить
  • del_commer int
    Удалить по коммерциализации (нужен comm); пороги — del_commer_less, del_commer_more, в процентах.
    1
    включить
  • del_frequency int
    Удалить запросы с нулевой общей или точной частотой (нужен wordstat_advanced).
    1
    включить
  • del_frequency_ratio int
    Удалить по отношению точной частоты к общей, от 0 до 1; пороги — del_frequency_ratio_less, del_frequency_ratio_more.
    1
    включить
  • exceptions_words_filter int
    Отбросить запросы со стоп-словами до запуска проверок.
    1
    включить
  • exceptions_words array
    Стоп-слова, до 1 000. Слово сравнивается по лемме; *часть* — по вхождению подстроки.

Ответ

  • report_id int
    Номер задачи.

Получение результата

GET /api/complex_queries_analyser

Пока задача выполняется, приходит массив с объектом {"type":"in_progress","code":50}, по возможности с progress в процентах.

Параметры query

  • key string обязательный
  • report_id int обязательный
    Номер задачи из ответа на постановку.

Ответ

Результат лежит на два уровня вглубь: response.response. Колонки, проверка для которых не запускалась, приходят как null; какие колонки заполнены, видно в dictionary.columns.

  • status, msg string
    success, completed.
  • time string
    Время ответа инструмента.
  • cost int
    Расчётная стоимость в лимитах; фактическая может быть немного меньше.
  • request object
    Параметры задачи после нормализации.
  • response.response.result[] array
    Строка на каждый запрос, оставшийся после фильтров.
    Вложенные поля
    • query string
      Запрос.
    • geo, local_pow bool|int
      Геозависимость и степень локализации (geo).
    • vital bool
      Есть витальный ответ (vital_answer).
    • com int
      Коммерциализация, % (comm).
    • rev, media, lex, music, trav, thematic_words number|array
      Интент: доли отзывов, медиа, словарей, музыки, путешествий и тематические слова (intent или comm).
    • classified object
      Типы сайтов и их доли (site_type); названия типов — в dictionary.classified.
    • competition number
      Конкуренция в баллах (competition).
    • ws_exact, ws_overall int
      Точная и общая частота (wordstat_advanced).
    • group int
      Индекс запроса — названия группы, к которой отнесён запрос (gruppirovka).
    • top_url, rel_url, site_pos, morda_count, generated_url mixed
      Данные кластеризации: ТОП-10 URL, релевантный URL и позиция сайта, число главных страниц, сгенерированный URL.
    • <система_регион> object
      Для positions: по ключу на пару из dictionary.prep_slugs — position (пусто, если вне ТОПа) и relevant_URL.
  • response.response.dictionary object
    classified — справочник типов сайтов, prep_slugs — пары «система — регион» для позиций, columns — какие колонки заполнены.

Ошибки

КодСообщениеКогда
-930 Keywords empty or is not an array. Нет запросов. Ошибки этого метода приходят массивом объектов {type, code, message} — их может быть несколько сразу.
-931 All keywords hit the stop word filter. Все запросы отброшены стоп-словами.
-932 Maximum number of keywords 5000 pieces. Запросов больше 5 000.
-933 Necessary pass the check parameters to run the tool. Не выбрана ни одна проверка (см. описание постановки).
-51 No requests data. Задача ставится не POST-запросом.
-32 The process already run. Предыдущая задача ещё выполняется; её номер — в report_id.
-68, -80…-83 Not enough … limits Не хватает лимитов на расчётную стоимость; объект ошибки — {error, code, available, need}.
-4 Access denied report_id не найден или чужой.
50 In progress Задача ещё выполняется.
-104…-107, -125 Processing error / Limits run out / … Задача завершилась ошибкой, закончились лимиты, отменена или шла дольше 6 часов.
-1, -2 Access denied Ключ не передан или не найден (обычный объект {error, code}).

Стоимость

ПроверкаЛимитов за запрос
Анализ выдачи: geo, vital_answer, comm, intent, site_type — любые вместе1 (один раз за все)
intent_comm_ai+10
gruppirovka2
competition4
wordstat_advanced2
positions1 на каждую пару «система — регион», +1 на каждую систему Яндекса с positions_force_check_relevant
del_implicit_duplicates5 за задачу

Перед постановкой проверяется, что лимитов хватает на всю расчётную стоимость. Списываются они по ходу работы проверок, поэтому cost в результате — оценка сверху.

Чем отличается от intent

intent — одна проверка: какая выдача по запросу (коммерческая, отзывы, медиа…). Этот метод — конструктор отчёта по семантике: те же доли плюс геозависимость, кластеры, частоты, конкуренция и позиции, с фильтрацией нецелевых запросов.

Время работы

Сначала идут проверки по выдаче, затем параллельно остальные. На тысячах запросов с кластеризацией и позициями задача может идти часами; ожидание результата ограничено 7 часами.

Обратная связь и помощь
Если у вас есть идеи, как улучшить данный инструмент или остались вопросы по работе с ним, напишите в нашу службу поддержки, мы обязательно вам поможем.