Запросы полей ресурсов, сегментов и показателей можно отправлять в метод GoogleAdsService Search или SearchStream. Чтобы составить запрос на языке запросов Google Рекламы, используйте грамматику языка. Общие сведения о языке запросов Google Рекламы можно найти в этой статье. Запрос состоит из нескольких частей:
SELECTFROMWHEREORDER BYLIMITPARAMETERS
В предложениях используются названия полей, названия ресурсов, операторы, условия и сортировка, которые помогают выбрать нужные данные. Объединив их в один запрос, вы можете отправить его в Google Ads API.
Пункты
В следующих разделах описываются назначение и синтаксис каждого предложения языка запросов Google Рекламы.
ВЫБРАТЬ
Предложение SELECT указывает набор полей, которые нужно получить в запросе.
SELECT принимает список полей ресурсов, полей сегментов и показателей, разделенных запятыми, и возвращает значения в ответе. Предложение SELECT является обязательным в запросе.
В примере ниже показано, как выбрать атрибуты для определенного ресурса.
SELECT
campaign.id,
campaign.name
FROM campaign
В одном запросе можно указать разные типы полей, например:
SELECT
campaign.id,
campaign.name,
bidding_strategy.id,
bidding_strategy.name,
segments.device,
segments.date,
metrics.impressions,
metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
- Основные поля ресурса:
campaign.idcampaign.name
- Поля ресурса атрибуции
bidding_strategy.idbidding_strategy.name
- Поля сегмента
segments.devicesegments.date
- Показатели
metrics.impressionsmetrics.clicks
- Запрос полей, которые нельзя выбрать. У этих полей атрибут метаданных
selectableимеет значениеfalse. - Выбор атрибутов повторяющихся полей. У этих полей атрибут метаданных
is_repeatedимеет значениеtrue. - Выбор полей, недоступных для указанного ресурса в предложении
FROM. Атрибуты некоторых ресурсов нельзя выбирать вместе, а для ресурса в предложенииFROMдоступен только поднабор всех показателей и сегментов. - Выбор сегментов или показателей, несовместимых друг с другом. Подробнее о сегментировании…
Информацию, связанную с вышеуказанными условиями, можно найти в нашей справочной документации или на сайте GoogleAdsFieldService.
СО
Предложение FROM указывает основной ресурс, который нужно вернуть. Ресурс в условии FROM определяет, какие поля можно использовать во всех остальных условиях запроса. В предложении FROM можно указать только один ресурс. Предложение FROM обязательно в запросе к методу GoogleAdsService Search или SearchStream. Однако при использовании GoogleAdsFieldService не следует указывать условие FROM.
В предложении FROM для определенного запроса может быть только один ресурс, но поля из связанных ресурсов также могут быть доступны. Эти ресурсы неявно связаны с ресурсом в предложении FROM, поэтому вам нужно только добавить их атрибуты в предложение SELECT, чтобы получить их значения. Не у всех ресурсов есть связанные ресурсы. В примере ниже показано, как запросить идентификаторы групп объявлений и кампаний:
SELECT
campaign.id,
ad_group.id
FROM ad_group
Поле resource_name основного ресурса возвращается всегда.
В примере ниже поле ad_group.resource_name включено в ответ, хотя оно не было явно выбрано в запросе:
SELECT ad_group.id
FROM ad_group
То же самое относится к ресурсам с атрибутами, если выбрано хотя бы одно поле.
Например, campaign.resource_name включается в ответ на следующий запрос:
SELECT
campaign.id,
ad_group.id
FROM ad_group
WHERE
Предложение WHERE задает условия, которые применяются при фильтрации данных для запроса. При использовании оператора WHERE укажите одно или несколько условий, разделенных оператором AND. Условия обычно соответствуют шаблону field_name Operator value (или используют BETWEEN value AND value, IS NULL или IS NOT NULL). Предложение WHERE в запросе необязательно.
В следующем примере используется WHERE, чтобы получить показатели за определенный период времени:
SELECT
campaign.id,
campaign.name,
metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
Чтобы отфильтровать данные, можно комбинировать несколько условий. В этом примере запрашивается количество кликов для всех кампаний с показами на мобильных устройствах за последние 30 дней:
SELECT
campaign.id,
campaign.name,
segments.device,
metrics.clicks
FROM campaign
WHERE metrics.impressions > 0
AND segments.device = 'MOBILE'
AND segments.date DURING LAST_30_DAYS
Сегменты в условии WHERE также должны быть в условии SELECT, за исключением следующих сегментов дат, которые называются базовыми сегментами дат:
segments.datesegments.weeksegments.monthsegments.quartersegments.year
В следующем запросе выбрано поле segments.date.
Поскольку это базовый сегмент дат, в условии WHERE, состоящем из базовых сегментов дат, необходимо указать конечный диапазон дат:
SELECT
campaign.id,
campaign.name,
segments.date,
metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
Все сегменты, которые соответствуют предыдущему условию: segments.date, segments.week, segments.month, segments.quarter и segments.year. Если выбран любой из этих сегментов, то хотя бы один из них должен использоваться в условии WHERE.
Подробнее о диапазонах дат…
При фильтрации учитывайте регистр оператора. Подробнее об учете регистра…
Полный список операторов приведен в грамматике языка.
ORDER BY
Предложение ORDER BY определяет порядок, в котором возвращаются результаты. Это позволяет упорядочить данные в порядке возрастания или убывания на основе названия поля. Каждый порядок сортировки указывается как field_name, за которым следует ASC или DESC. Если не указано ни ASC, ни DESC, по умолчанию используется ASC. Предложение ORDER BY в запросе необязательно.
Следующий запрос упорядочивает возвращенные кампании по количеству кликов от наибольшего к наименьшему:
SELECT
campaign.name,
metrics.clicks
FROM campaign
ORDER BY metrics.clicks DESC
В операторе ORDER BY можно указать несколько полей, разделенных запятыми. Сортировка выполняется в той же последовательности, которая указана в запросе.
Например, в этом запросе, выбирающем данные группы объявлений, результаты сортируются по возрастанию по названию кампании, затем по убыванию по количеству показов, а затем по убыванию по количеству кликов:
SELECT
campaign.name,
ad_group.name,
metrics.impressions,
metrics.clicks
FROM ad_group
ORDER BY
campaign.name,
metrics.impressions DESC,
metrics.clicks DESC
ОГРАНИЧЕНИЕ
Предложение LIMIT позволяет указать количество результатов, которые нужно вернуть.
Это удобно, если вам нужна только часть результатов.
Например, LIMIT может ограничить общее количество результатов для следующего запроса:
SELECT
campaign.name,
ad_group.name,
segments.device,
metrics.impressions
FROM ad_group
ORDER BY metrics.impressions DESC
LIMIT 50
ПАРАМЕТРЫ
Предложение PARAMETERS позволяет указать метапараметры для запроса.
Эти параметры могут влиять на то, какие строки будут возвращены.
Поддерживаются следующие метапараметры:
include_drafts
Задайте для параметра include_drafts значение true, чтобы возвращать объекты черновиков.
Значение по умолчанию – false.
Например, следующий запрос возвращает как проекты кампаний, так и обычные кампании:
SELECT campaign.name
FROM campaign
PARAMETERS include_drafts = true
omit_unselected_resource_names
Задайте для параметра omit_unselected_resource_names значение true, чтобы в ответе не указывалось название ресурса для каждого типа ресурсов, если это не было явно запрошено в условии SELECT. Значение по умолчанию – false.
| Запрос | Возвращенные ресурсы |
|---|---|
SELECT campaign.name, customer.id FROM campaign |
Значение по умолчанию для |
SELECT campaign.name, customer.id FROM campaign PARAMETERS omit_unselected_resource_names = true |
Нет Для параметра |
SELECT campaign.name, campaign.resource_name FROM campaign PARAMETERS omit_unselected_resource_names = true |
|
Дополнительные правила в отношении языка
Помимо примеров для каждой конструкции, язык запросов Google Рекламы поддерживает следующие действия:
Поле основного ресурса не требуется в условии
SELECTзапроса. Например, вы можете использовать одно или несколько полей основного ресурса для фильтрации данных, не выбирая их:SELECT campaign.id FROM ad_group WHERE ad_group.status = 'PAUSED'Показатели можно выбирать исключительно для заданного ресурса. Другие поля из ресурса в запросе не требуются.
SELECT metrics.impressions, metrics.clicks, metrics.cost_micros FROM campaignПоля сегментации можно выбирать без сопутствующих полей ресурсов или показателей:
SELECT segments.device FROM campaignПоле
resource_name(например,campaign.resource_name) можно использовать для фильтрации или упорядочивания данных:SELECT campaign.id, campaign.name FROM campaign WHERE campaign.resource_name = 'customers/1234567/campaigns/987654'