Прочитайте разделы ниже, чтобы узнать, как создавать отчеты по поисковой рекламе в API отчетов Search Ads 360.
Поисковая служба
API для создания отчетов в Search Ads 360 предоставляет специальную услугу для поиска и формирования отчетов.
SearchAds360Service — это унифицированный сервис для получения объектов и создания отчетов, предоставляющий два метода поиска: SearchStream и Search . Запросы передаются в строке запроса, написанной на языке запросов Search Ads 360. Вы можете определять запросы для:
- Получение конкретных атрибутов объектов.
- Получение показателей производительности объектов на основе заданного диапазона дат.
- Упорядочивайте объекты на основе их атрибутов.
- Отфильтруйте результаты, используя условия, указывающие, какие объекты следует вернуть.
- Ограничьте количество возвращаемых объектов.
Оба метода поиска возвращают все строки, соответствующие вашему запросу. Например, при получении campaign.id , campaign.name и metrics.clicks API возвращает объект SearchAds360Row содержащий объект campaign с заданными полями id и name , и объект metrics с заданным полем clicks .
Методы поиска
-
SearchStream Отправляет один запрос и устанавливает постоянное соединение с API отчетов Search Ads 360 независимо от размера отчета.
- Загрузка пакетов данных начинается немедленно, при этом весь результат кэшируется в буфере данных.
- Ваш код может начать чтение буферизованных данных, не дожидаясь завершения всего потока.
-
Search Отправляет несколько запросов с постраничной навигацией для загрузки всего отчета.
SearchStream обычно обеспечивает более высокую производительность, поскольку исключает время, затрачиваемое на обмен данными по сети для запроса отдельных страниц. Мы рекомендуем использовать SearchStream для всех отчетов, содержащих более 10 000 строк. Для отчетов меньшего размера (<10 000 строк) существенной разницы в производительности между этими методами нет.
Используемый вами метод не влияет на ваши квоты и лимиты API: один запрос или отчет считается одной операцией независимо от того, выводятся ли результаты постранично или в потоковом режиме.
Пример поискового запроса
Этот пример запроса возвращает данные о производительности аккаунта за последние 30 дней по кампаниям, сегментированные по устройствам:
SELECT
campaign.name,
campaign.status,
segments.device,
metrics.impressions,
metrics.clicks,
metrics.ctr,
metrics.average_cpc,
metrics.cost_micros
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
Отправить запрос
Для отправки запроса необходимо передать customer_id и строку query в интерфейс SearchAds360Service.SearchStream или SearchAds360Service.Search .
Запрос представляет собой HTTP POST к серверу API отчетов Search Ads 360 по одному из следующих URL-адресов:
https://searchads360.googleapis.com/VERSION_NUMBER/customers/CUSTOMER_ID/searchads360:searchStream
https://searchads360.googleapis.com/VERSION_NUMBER/customers/CUSTOMER_ID/searchads360:search
Вот полный пример определения отчета для searchStream , заключенного в HTTP POST запрос:
POST /VERSION_NUMBER/customers/CUSTOMER_ID/searchads360:searchStream HTTP/1.1 Host: searchads360.googleapis.com User-Agent: curl Content-Type: application/json Accept: application/json Authorization: Bearer [OAUTH_2.0_ACCESS_TOKEN] Parameters: { "query" : "SELECT campaign.name, campaign.status, segments.device, metrics.impressions, metrics.clicks, metrics.ctr, metrics.average_cpc, metrics.cost_micros FROM campaign WHERE segments.date DURING LAST_30_DAYS" }
Обработать ответ
SearchAds360Service возвращает список объектов SearchAds360Row .
Каждый объект SearchAds360Row представляет собой объект, возвращаемый запросом. Каждый объект состоит из набора атрибутов, которые заполняются на основе полей, запрошенных в предложении SELECT запроса. Атрибуты, не включенные в предложение SELECT не заполняются в объектах в ответе.
Например, приведенный ниже запрос заполняет каждый объект SearchAds360Row только значениями campaign.id , campaign.name и campaign.status . Другие атрибуты, такие как campaign.engine_id или campaign.bidding_strategy_type , опускаются.
SELECT
campaign.id,
campaign.name,
campaign.status
FROM campaign
Справочная документация
В разделе «Справочник» содержится вся необходимая информация для правильного использования каждого артефакта. Для каждого ресурса, например ad_group и campaign , отведена отдельная страница. На страницах segments и metrics перечислены все доступные сегменты и поля метрик.
Некоторые ресурсы, сегменты и показатели несовместимы и не могут использоваться вместе, в то время как другие полностью совместимы и дополняют друг друга. Каждая страница ресурса содержит следующую информацию (если она доступна и уместна) и многое другое:
- Приписываемые ресурсы
Для некоторых ресурсов может быть предусмотрена возможность неявного объединения связанных ресурсов путем выбора их полей вместе с полями ресурса в предложении
FROM. Например, ресурсcampaignявляется атрибутированным ресурсом ресурсаad_group. Это означает, что вы можете включить такие поля, какcampaign.idиcampaign.bidding_strategy_typeв свой запрос при использованииad_groupв предложенииFROM.В разделе «Атрибутированные ресурсы» перечислены доступные атрибутированные ресурсы. Не все ресурсы имеют атрибутированные ресурсы.
- Столбец полей ресурсов
Все поля ресурса включены в столбец «Поля ресурса» . Каждое поле ресурса содержит ссылку на более подробную информацию о поле, включая его описание, категорию, тип данных, URL-адрес типа, а также параметры фильтрации, выбора, сортировки и повторения.
- Столбец «Сегменты»
Не все поля сегмента доступны для выбора при использовании данного ресурса.
В столбце «Сегменты» перечислены поля
segments, которые можно использовать в том же предложенииSELECTчто и поля ресурса. Каждое поле содержит ссылку на подробную информацию о поле, включая его описание, категорию, тип данных, URL-адрес типа, а также параметры фильтрации, выбора, сортировки и повторения. Если вы используете ресурс в предложенииFROM, вы можете использовать раскрывающийся список «Да/Нет», чтобы отфильтровать недоступные сегменты.- Столбец «Метрики»
Не все поля метрик доступны для выбора применительно к конкретному ресурсу.
В столбце «Метрики» перечислены поля
metrics, которые можно использовать в том же предложенииSELECT, что и поля ресурса. Каждое поле содержит ссылку на подробную информацию о поле, включая его описание, категорию, тип данных, URL-адрес типа, а также параметры фильтрации, выбора, сортировки и повторения. Если вы используете ресурс в предложенииFROM, используйте раскрывающийся список «Да/Нет», чтобы отфильтровать недоступные метрики.
- Сегментация ресурсов
Некоторые ресурсы имеют поля сегментации, которые можно выбрать, когда ресурс находится в предложении
FROM. Например, если вы выберете поле ресурсаcampaign, такое какcampaign.name, при использованииcampaign_budgetв предложенииFROM,campaign.resource_nameбудет автоматически возвращено и сегментировано, посколькуcampaignявляется ресурсом сегментации дляcampaign_budget.В разделе «Ресурсы сегментации» перечислены доступные ресурсы сегментации. Не все ресурсы имеют ресурсы сегментации.
- Выбирается с помощью
Некоторые поля
segmentsнесовместимы с другими ресурсами, сегментами и показателями.На странице
segmentsимеется выбираемый элемент с возможностью расширения для каждого поляsegments, в котором перечислены все совместимые поля ресурсов, поляmetricsи другие поляsegments, которые можно включить в операторSELECT.
Сегментация
Вы можете сегментировать результаты поиска, добавив поле segments. FIELD_NAME в предложение SELECT вашего запроса.
Например, segments.device в приведенном ниже запросе приводит к созданию отчета, содержащего строку с данными о impressions каждого устройства для ресурса, указанного в предложении FROM .
SELECT
campaign.name,
campaign.status,
segments.device,
metrics.impressions
FROM campaign
Результаты, возвращаемые функцией SearchAds360Service.SearchStream , выглядят примерно так (см. следующую JSON-строку):
{
"results":[
{
"campaign":{
"resourceName":"customers/1234567890/campaigns/111111111",
"name":"Test campaign",
"status":"ENABLED"
},
"metrics":{
"impressions":"10922"
},
"segments":{
"device":"MOBILE"
}
},
{
"campaign":{
"resourceName":"customers/1234567890/campaigns/111111111",
"name":"Test campaign",
"status":"ENABLED"
},
"metrics":{
"impressions":"28297"
},
"segments":{
"device":"DESKTOP"
}
},
...
]
}
Список доступных полей сегментов можно найти в разделе segments .
Множественные сегменты
В предложении SELECT вашего запроса можно указать несколько сегментов. Ответ будет содержать один объект SearchAds360Row для каждой комбинации экземпляра основного ресурса, указанного в предложении FROM , и значения каждого выбранного поля segment .
Например, следующий запрос вернет одну строку для каждой комбинации параметров campaign , segments.ad_network_type и segments.date .
SELECT
segments.ad_network_type
segments.date
FROM campaign
Обратите внимание, что результаты сегментируются неявно по каждому экземпляру основного ресурса, а не по значениям отдельных выбранных полей.
В результате выполнения следующего примера запроса будет получена одна строка для каждой кампании, а не одна строка для каждого уникального значения поля campaign.status .
SELECT
campaign.status,
metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_14_DAYS
Неявная сегментация
Каждый отчет изначально сегментируется по ресурсу, указанному в предложении FROM . Метрики сегментируются по полю resource_name этого ресурса.
В этом примере запроса автоматически возвращается значение ad_group.resource_name , которое неявно используется для сегментации метрик на уровне ad_group .
SELECT metrics.impressions
FROM ad_group
Возвращаемая JSON-строка выглядит примерно так:
{
"results":[
{
"adGroup":{
"resourceName":"customers/1234567890/adGroups/2222222222"
},
"metrics":{
"impressions":"237"
}
},
{
"adGroup":{
"resourceName":"customers/1234567890/adGroups/33333333333"
},
"metrics":{
"impressions":"15"
}
},
{
"adGroup":{
"resourceName":"customers/1234567890/adGroups/44444444444"
},
"metrics":{
"impressions":"0"
}
}
]
}
Основные сегменты даты
В предложении WHERE можно использовать основные сегменты дат для указания даты или периода времени.
Следующие поля сегментов известны как основные сегменты дат : segments.date , segments.week , segments.month , segments.quarter и segments.year .
Этот пример запроса возвращает показатели clicks по кампании за последние 30 дней.
SELECT
campaign.id,
campaign.name,
segments.date,
metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
Поля основных сегментов дат являются исключением из общего правила, согласно которому нельзя использовать поле сегментов в предложении WHERE , если вы не включите это поле также в предложение SELECT . Дополнительную информацию см. в разделе «Запрещенная фильтрация» .
Правила для основных сегментов даты:
Вы можете использовать поле с основной датой в предложении
WHERE, не включая его в предложениеSELECT. При желании вы также можете включить это поле в оба предложения.В этом примере запроса возвращаются показатели
clicksпо названию кампании за указанный диапазон дат. Обратите внимание, чтоsegments.dateне включено в предложениеSELECT.SELECT campaign.name, metrics.clicks FROM campaign WHERE segments.date > '2022-02-01' AND segments.date < '2022-03-01'Если вы включаете поле с ключевой датой в предложение
SELECT, необходимо указать конечную дату или диапазон дат в предложенииWHERE. Поля, указанные в предложенияхSELECTиWHEREне обязательно должны совпадать.В этом примере запроса возвращаются показатели
clicksпо названию кампании, сегментированные по месяцам, за все дни в диапазоне дат.SELECT campaign.name, metrics.clicks, segments.month FROM campaign WHERE segments.date > '2022-02-01' AND segments.date < '2022-03-01'
Даты ISO 8601
Для указания дат и диапазонов дат можно использовать формат YYYY-MM-DD (ISO 8601), например:
WHERE segments.date BETWEEN '2022-06-01' AND '2022-06-30'
WHERE segments.date >= '2022-06-01' AND segments.date <= '2022-06-30'
Для ключевых временных сегментов, требующих указания временного периода ( segments.week , segments.month , segments.quarter ), можно использовать оператор = с первым днем временного периода, например:
WHERE segments.month = '2022-06-01'
Заранее определенные даты
Вы также можете использовать следующие предопределенные даты и диапазоны дат:
| Заранее определенные даты | |
|---|---|
TODAY | Только сегодня. |
YESTERDAY | Только вчера. |
LAST_7_DAYS | За предыдущие 7 дней, не считая сегодняшнего дня. |
LAST_BUSINESS_WEEK | Предыдущая пятидневная рабочая неделя (с понедельника по пятницу). |
THIS_MONTH | Все дни текущего месяца. |
LAST_MONTH | Все дни предыдущего месяца. |
LAST_14_DAYS | За предыдущие 14 дней, за исключением сегодняшнего дня. |
LAST_30_DAYS | За последние 30 дней, за исключением сегодняшнего дня. |
THIS_WEEK_SUN_TODAY | Период между предыдущим воскресеньем и текущим днем. |
THIS_WEEK_MON_TODAY | Период между предыдущим понедельником и текущим днем. |
LAST_WEEK_SUN_SAT | Семидневный период, начинающийся с предыдущего воскресенья. |
LAST_WEEK_MON_SUN | Семидневный период, начинающийся с предыдущего понедельника. |
Пример:
WHERE segments.date DURING LAST_30_DAYS
Нулевые показатели
При выполнении запроса вы можете столкнуться с метриками, имеющими нулевое значение для некоторых сущностей. Узнайте, как обрабатывать нулевые метрики в ваших запросах .
НЕИЗВЕСТНЫЕ типы перечислений
Если ресурс возвращается с типом данных перечисления UNKNOWN , это означает, что данный тип не полностью поддерживается в данной версии API. Эти ресурсы могли быть созданы через другие интерфейсы. Например, новая кампания или объявление добавлены в пользовательский интерфейс Search Ads 360, но еще не поддерживаются в версии API, к которой вы обращаетесь.
Вы по-прежнему можете выбирать метрики, даже если ресурс имеет тип UNKNOWN , но при этом необходимо учитывать следующее:
Ресурс с
UNKNOWNтипом может быть поддержан позже, но он может оставатьсяUNKNOWNнеограниченно долго.Новые объекты с типом
UNKNOWNмогут появиться в любое время. Эти объекты обратно совместимы, поскольку значение перечисления уже доступно. Мы добавляем ресурсы с этим изменением по мере их доступности, чтобы у вас было точное представление о вашей учетной записи. РесурсUNKNOWNможет появиться из-за новой активности в вашей учетной записи через другие интерфейсы или потому, что ресурс больше не поддерживается официально.К
UNKNOWNресурсам могут быть прикреплены подробные метрики, к которым вы можете обращаться с запросами.UNKNOWNресурсы, как правило, полностью отображаются в пользовательском интерфейсе Search Ads 360.