Метод reportData.query предоставляет синхронный способ получения данных отчета. В отличие от стандартной службы Reports , которая генерирует отчеты в виде файлов (CSV или Excel), этот метод возвращает структурированные данные в формате JSON непосредственно в ответе. Он устраняет необходимость предварительного определения, создания и сохранения ресурса Report , что делает его идеальным для получения и анализа данных в режиме реального времени.
Обзор
Изучите это руководство, чтобы ознакомиться с использованием этой конечной точки для запроса данных отчетов Campaign Manager 360.
Подготовьте запрос
Создайте объект ReportDataQueryRequest указав измерения, метрики, диапазон дат, фильтры и критерии сортировки.
ОТДЫХ
{
"body": {
"dateRange": "LAST_7_DAYS",
"dimensionNames": [
"advertiser",
"campaign"
],
"metricNames": [
"impressions",
"clicks"
],
"sortBys": [
{
"name": "clicks",
"sortOrder": "DESCENDING"
}
],
"maxResults": 100
}
}
-
dateRange - Объект
DateRange, указывающий период времени для запроса. Это может быть пользовательский диапазон дат или относительный диапазон дат. -
dimensionNames - Список стандартных названий измерений для группировки.
-
metricNames - Обязательно. Список стандартных названий метрик для включения.
-
dimensionFilters - Список объектов DimensionValue, используемых для фильтрации данных отчета. Используйте его для ограничения результатов запроса определенными значениями измерения.
-
sortBys - Настройки сортировки для измерений или метрик. Каждая настройка включает имя поля и порядок сортировки.
-
maxResults - Максимальное количество строк, возвращаемых на странице (по умолчанию:
100, максимум:1000).
Пагинация
Поле maxResults определяет количество результатов, возвращаемых в одном ответе. Например, если вы установите maxResults равным 10 , API вернет не более 10 результатов. Возможно, API вернет меньше 10 результатов, если меньше 10 результатов соответствуют вашему запросу.
Если доступны дополнительные результаты, ответ будет содержать nextPageToken . Чтобы получить следующую страницу результатов, отправьте тот же запрос еще раз, установив в поле pageToken значение этого токена. Все остальные параметры запроса оставьте без изменений.
Отправить запрос
Отправьте HTTP POST-запрос на конечную точку reportdata/query :
POST https://dfareporting.googleapis.com/dfareporting/v5/userprofiles/{profileId}/reportdata/query
Убедитесь, что ваш запрос аутентифицирован с использованием стандартных учетных данных OAuth 2.0 и необходимых областей действия. Дополнительную информацию см. в разделе «Авторизация запросов» .
Успешный ответ
В случае успешного выполнения запроса возвращается HTTP-ответ 200 OK с JSON-данными, содержащими columnHeaders , rows и totalRow .
{
"columnHeaders": [
{ "name": "advertiser", "type": "DIMENSION" },
{ "name": "campaign", "type": "DIMENSION" },
{ "name": "impressions", "type": "METRIC" },
{ "name": "clicks", "type": "METRIC" }
],
"rows": [
{
"values": [ "Test Advertiser", "Summer Campaign", "148672", "420" ]
},
{
"values": [ "Test Advertiser", "Fall Campaign", "2159", "2" ]
}
],
"totalRow": {
"values": [ "", "", "150831", "422" ]
},
"nextPageToken": "1234567890"
}
-
columnHeaders - Названия и типы (
DIMENSIONилиMETRIC) возвращаемых полей. -
rows - Список объектов
ReportDataRow, содержащих результаты запроса. Строковые значения в каждой строке выравниваются по позиции относительноcolumnHeaders. -
totalRow - Единая сводная строка, представляющая сумму всех соответствующих метрик. Поля измерений и метрики, которые нельзя суммировать (например, метрики охвата, такие как
uniqueReachTotalReach), в этой строке пусты (""). -
nextPageToken - Токен, используемый в последующем запросе для получения следующей страницы, если существуют дополнительные строки.
Задержка и тайм-ауты
Поскольку это синхронная конечная точка, запросы выполняются немедленно, и данные возвращаются непосредственно в ответе (до предела пагинации maxResults ). Максимальное время выполнения запросов составляет 60 секунд . Если запрос превышает этот лимит, API завершает операцию и возвращает ошибку HTTP 503 Service Unavailable .
Если вы столкнулись с этой ошибкой, попробуйте сузить диапазон дат, сузить фильтры (например, отфильтровать по конкретным рекламодателям или кампаниям) или уменьшить количество запрашиваемых измерений и показателей. В качестве альтернативы, запустите Report с помощью reports.run , чтобы асинхронно сгенерировать файл отчета для загрузки.
Ограничения и лимиты запросов
Конечная точка reportdata.query устанавливает ряд ограничений для обеспечения надежных ответов. Запросы, нарушающие эти ограничения, отклоняются с ответом HTTP 400 Bad Request .
Ограничения диапазона дат
- Для пользовательских диапазонов дат
startDateдолжно находиться в пределах периода доступности данных для запрашиваемого типа данных отчета. Подробнее см. раздел «Доступность данных» .
Ограничения по метрике и размерности
- В поле
metricNamesнеобходимо указать как минимум одну метрику. - Метрики и измерения в списках
metricNamesиdimensionNamesдолжны быть уникальными. - Метрики и параметры, помеченные как «Только для скачивания», не могут быть использованы в этих запросах.
Ограничения квот
Запросы к этому адресу используют следующие квоты:
- Ограничение на количество запросов в минуту на пользователя: 120 запросов в минуту на пользователя (2 запроса в секунду).
- Дневной лимит на проект: 10 000 запросов в день на проект.
Запросы, превышающие эти лимиты, завершаются ошибкой HTTP 429 Too Many Requests . При постраничной навигации по результатам каждый запрос на новую страницу (с использованием параметра pageToken ) считается отдельным запросом и расходует ресурсы из этой квоты.