Search Analytics: query

Требуется авторизация

Запросите данные о поисковом трафике, используя заданные вами фильтры и параметры. Метод возвращает ноль или более строк, сгруппированных по заданным вами ключам (измерениям). Необходимо указать диапазон дат, равный одному или нескольким дням.

Если в качестве одного из параметров используется дата, то дни, по которым отсутствуют данные, исключаются из списка результатов. Чтобы узнать, по каким дням имеются данные, выполните запрос без фильтров, сгруппированный по дате, для интересующего вас диапазона дат.

Результаты сортируются по убыванию количества кликов. Если две строки имеют одинаковое количество кликов, они сортируются произвольным образом.

См. пример на Python для вызова этого метода.

API ограничен внутренними возможностями Search Console и не гарантирует возврат всех строк данных, а только самых первых.

См. ограничения на объем доступных данных .

Пример JSON POST-запроса:
POST https://www.googleapis.com/webmasters/v3/sites/https%3A%2F%2Fwww.example.com%2F/searchAnalytics/query?key={MY_API_KEY}
{
  "startDate": "2015-04-01",
  "endDate": "2015-05-01",
  "dimensions": ["country","device"]
}
Попробуйте прямо сейчас .

Запрос

HTTP-запрос

POST https://www.googleapis.com/webmasters/v3/sites/siteUrl/searchAnalytics/query

Параметры

Имя параметра Ценить Описание
Параметры пути
siteUrl string URL-адрес ресурса, определенный в Search Console. Примеры: http://www.example.com/ (для ресурса с префиксом URL) или sc-domain:example.com (для ресурса с доменом).

Авторизация

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

Объем
https://www.googleapis.com/auth/webmasters.readonly
https://www.googleapis.com/auth/webmasters

Текст запроса

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

{
  "startDate": string,
  "endDate": string,
  "dimensions": [
    string
  ],
  "type": string,
  "dimensionFilterGroups": [
    {
      "groupType": string,
      "filters": [
        {
          "dimension": string,
          "operator": string,
          "expression": string
        }
      ]
    }
  ],
  "aggregationType": string,
  "rowLimit": integer,
  "startRow": integer
}
Название объекта недвижимости Ценить Описание Примечания
startDate string [ Обязательно ] Начальная дата запрашиваемого диапазона дат в формате ГГГГ-ММ-ДД, по тихоокеанскому времени (UTC - 7:00/8:00) . Должна быть меньше или равна конечной дате. Это значение включается в диапазон.
endDate string [ Обязательно ] Конечная дата запрашиваемого диапазона дат в формате ГГГГ-ММ-ДД, по тихоокеанскому времени (UTC - 7:00/8:00). Должна быть больше или равна начальной дате. Это значение включается в диапазон.
dimensions[] list [ Необязательно ] Ноль или более измерений для группировки результатов. Результаты группируются в порядке, в котором вы указываете эти измерения. Вы можете использовать любое имя измерения. dimensionFilterGroups[].filters[].dimension а также "date" и "hour". Значения параметров группировки объединяются для создания уникального ключа для каждой строки результатов. Если параметры не указаны, все значения будут объединены в одну строку. Количество параметров группировки не ограничено, но нельзя группировать по одному и тому же параметру дважды. Пример: [country, device]
searchType string Устарело, используйте type вместо этого.
type string [ Необязательно ] Отфильтруйте результаты по следующим типам:
  • " discover ": Результаты поиска
  • " googleNews ": Результаты поиска с сайта news.google.com и приложения Google News для Android и iOS. Не включает результаты во вкладке "Новости" в поиске Google.
  • " news ": Результаты поиска во вкладке "Новости" в поиске Google.
  • " image ": Результаты поиска во вкладке "Изображение" в поиске Google.
  • " video ": Результаты поиска видео
  • " web ": [ По умолчанию ] Фильтровать результаты на объединенной вкладке ("Все") в поиске Google. Не включает результаты Discover или Google News.
dimensionFilterGroups[] list [ Необязательно ] Ноль или более групп фильтров для применения к значениям группировки измерений. Для того чтобы строка была возвращена в ответе, все группы фильтров должны совпадать. В рамках одной группы фильтров можно указать, должны ли совпадать все фильтры или хотя бы один.
dimensionFilterGroups[]. groupType string Необходимо ли, чтобы все фильтры в этой группе возвращали значение true ("и"), или же значение true должен возвращать только один или несколько фильтров ( пока не поддерживается).

Допустимые значения:
  • " and ": Все фильтры в группе должны возвращать значение true для данной группы фильтров t быть правдой.
dimensionFilterGroups[]. filters[] list [ Необязательно ] Ноль или более фильтров для проверки строки. Каждый фильтр состоит из названия измерения, оператора и значения. Максимальная длина 4096 символов. Примеры:
country equals FRA
query contains mobile use
device notContains tablet
dimensionFilterGroups[].filters[]. dimension string Измерение, к которому применяется этот фильтр. Вы можете фильтровать по любому из перечисленных здесь измерений, даже если вы не группируете данные по этому измерению.

Допустимые значения:
  • " country ": Фильтр по указанной стране, заданной 3-буквенным кодом страны ( ISO 3166-1 alpha-3 ).
  • " device ": Фильтр результатов по указанному типу устройства. Поддерживаемые значения:
    • НАСТОЛЬНЫЙ КОМПЬЮТЕР
    • МОБИЛЬНЫЙ
    • ПЛАНШЕТ
  • " page ": Фильтрация по указанной строке URI.
  • " query ": Фильтрация по указанной строке запроса.
  • " searchAppearance ": Фильтр по определенному параметру результатов поиска. Чтобы увидеть список доступных значений, выполните запрос, сгруппированный по "searchAppearance". Полный список значений и описаний также доступен в справочной документации .
dimensionFilterGroups[].filters[]. operator string [ Необязательно ] Как указанное вами значение должно соответствовать (или не соответствовать) значению измерения для строки.

Допустимые значения:
  • " contains ": значение строки должно либо содержать ваше выражение, либо быть равным ему (регистр не имеет значения).
  • " equals ": [ По умолчанию ] Ваше выражение должно точно соответствовать значению строки (регистр имеет значение для измерений страницы и запроса).
  • " notContains ": Значение строки не должно содержать ваше выражение ни в виде подстроки, ни в виде полного совпадения (без учета регистра).
  • " notEquals ": Ваше выражение не должно точно совпадать со значением строки (регистр имеет значение для параметров страницы и запроса).
  • " includingRegex ": Регулярное выражение синтаксиса RE2 , которое должно совпадать.
  • " excludingRegex ": Регулярное выражение синтаксиса RE2 , которое не должно совпадать.
dimensionFilterGroups[].filters[]. expression string Значение, которое фильтр должен сопоставить или исключить, зависит от оператора.
aggregationType string

[ Необязательно ] Способ агрегирования данных. Если агрегирование выполняется по свойству, агрегируются все данные для одного и того же свойства; если агрегирование выполняется по странице, агрегируются все данные по каноническому URI. Если вы фильтруете или группируете данные по странице, выберите «Авто»; в противном случае вы можете агрегировать данные либо по свойству, либо по странице, в зависимости от того, как вы хотите, чтобы ваши данные рассчитывались; см. справочную документацию , чтобы узнать, как данные рассчитываются по-разному для сайта и для страницы.

Примечание: При группировке или фильтрации по страницам невозможно выполнить агрегирование по свойствам.

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

Допустимые значения:
  • " auto ": [ По умолчанию ] Позвольте сервису определить подходящий тип агрегации.
  • " byNewsShowcasePanel ": Агрегировать значения по панели "Витрина новостей" . Этот параметр необходимо использовать в сочетании с фильтром searchAppearance NEWS_SHOWCASE и либо type=discover , либо type=googleNews . Если вы группируете по страницам, фильтруете по страницам или фильтруете по другому searchAppearance , агрегирование по byNewsShowcasePanel невозможно.
  • " byPage ": Агрегировать значения по URI.
  • " byProperty ": Агрегирование значений по свойству. Не поддерживается для type=discover или type=googleNews
rowLimit integer [ Необязательно; допустимый диапазон: 1–25 000; значение по умолчанию: 1000 ] Максимальное количество возвращаемых строк. Для постраничной навигации используйте смещение startRow .
startRow integer [ Необязательно; по умолчанию 0 ] Индекс первой строки в ответе, начинающийся с нуля. Должен быть неотрицательным числом. Если startRow превышает количество результатов запроса, ответ будет успешным и содержать ноль строк.
dataState string [ Необязательно ] Если параметр "all" (регистр не имеет значения), данные будут включать свежие данные . Если параметр "final" (регистр не имеет значения) или если этот параметр опущен, возвращаемые данные будут включать только окончательные данные. Если параметр "hourly_all" (регистр не имеет значения), данные будут включать почасовую разбивку. Это означает, что почасовые данные содержат неполные данные и должны использоваться при группировке по измерению HOUR API.

Ответ

Результаты группируются в соответствии с параметрами, указанными в запросе. Все значения с одинаковым набором параметров будут сгруппированы в одну строку. Например, если вы группируете по параметру «страна», все результаты для «США» будут сгруппированы вместе, все результаты для «MDV» будут сгруппированы вместе и так далее. Если вы группируете по стране и устройству, то все результаты для «США, планшет» будут сгруппированы, все результаты для «США, мобильный» будут сгруппированы и так далее. См. документацию по отчету «Аналитика поиска» , чтобы узнать подробности о том, как рассчитываются клики, показы и т.д., и что они означают.

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

См. Свойство rowLimit в запросе используется для определения максимального количества значений, которые могут быть возвращены.

{
  "rows": [
    {
      "keys": [
        string
      ],
      "clicks": double,
      "impressions": double,
      "ctr": double,
      "position": double
    }
  ],
  "responseAggregationType": string
}
Название объекта недвижимости Ценить Описание Примечания
rows[] list Список строк, сгруппированных по ключевым значениям в порядке, указанном в запросе.
rows[]. keys[] list Список значений измерений для данной строки, сгруппированных в соответствии с измерениями, указанными в запросе, в порядке, заданном в запросе.
rows[]. clicks double Нажмите на счетчик, чтобы открыть строку.
rows[]. impressions double Количество показов для этой строки.
rows[]. ctr double Показатель кликабельности (CTR) для данной строки. Значения варьируются от 0 до 1,0 включительно.
rows[]. position double Средняя позиция в результатах поиска.
responseAggregationType string Как были агрегированы результаты. Подробнее о том, как данные рассчитываются по-разному для каждого сайта и для каждой страницы, см. в справочной документации .

Допустимые значения:
  • " auto "
  • " byPage ": Результаты были сгруппированы по страницам.
  • " byProperty ": Результаты были агрегированы по объектам недвижимости.
metadata object

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

При запросе последних данных (используя all или hourly_all для dataState ) некоторые из возвращаемых строк могут представлять собой неполные данные, что означает, что сбор и обработка данных всё ещё продолжаются. Этот объект метаданных помогает точно определить, когда начинается и заканчивается этот процесс.

Все даты и время, указанные в этом объекте, приведены в часовом поясе America/Los_Angeles .

Конкретное поле, возвращаемое в этом объекте, зависит от того, как вы сгруппировали данные в запросе:

  • first_incomplete_date ( string ): Первая дата, для которой данные все еще собираются и обрабатываются, представлена ​​в формате YYYY-MM-DD (расширенный локальный формат даты ISO-8601).

    Это поле заполняется только в том случае, если dataState запроса имеет значение all , данные сгруппированы по date , а запрошенный диапазон дат содержит неполные данные.

    Все значения после даты first_incomplete_date могут заметно измениться.

  • first_incomplete_hour ( string ): Первый час, для которого данные все еще собираются и обрабатываются, представленный в формате YYYY-MM-DDThh:mm:ss[+|-]hh:mm (формат даты и времени с расширенным смещением ISO-8601).

    Это поле заполняется только тогда, когда dataState запроса имеет значение hourly_all , данные сгруппированы по hour , а запрошенный диапазон дат содержит неполные данные.

    Все значения после first_incomplete_hour могут заметно измениться.

Попробуйте!

Воспользуйтесь приведенным ниже инструментом API Explorer, чтобы вызвать этот метод на реальных данных и увидеть ответ.