Запросы по полям ресурсов, сегментов и показателей можно отправлять в методы поиска GoogleAdsService
Search или SearchStream . Чтобы построить запрос на языке запросов Google Ads, необходимо использовать грамматику языка . Запрос состоит из ряда предложений:
-
SELECT
-
FROM
-
WHERE
-
ORDER BY
-
LIMIT
-
PARAMETERS
В предложениях используются имена полей , имена ресурсов , операторы , условия и порядок сортировки , чтобы помочь вам выбрать правильные данные. Объединив их в один запрос, можно выполнить запрос через API Google Ads.
Пункты
Видео: Совместимость с полями GAQL
ВЫБИРАТЬ
Предложение 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.id
-
campaign.name
-
Ресурсные поля
-
bidding_strategy.id
-
bidding_strategy.name
-
Сегмент полей
-
segments.device
-
segments.date
-
Метрики
-
metrics.impressions
-
metrics.clicks
-
Некоторые поля могут быть недопустимы в предложении SELECT
из-за следующих ограничений:
- Запрос полей, которые нельзя выбрать. Атрибут метаданных
Selectable
для таких полей будет иметь значениеfalse
. - Выбор атрибутов повторяющихся полей. Атрибут метаданных
isRepeated
этих полей будет иметь значение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
можно указать одно или несколько условий, разделив их оператором AND
. Каждое условие должно соответствовать шаблону field_name Operator value
. Предложение 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.date
-
segments.week
-
segments.month
-
segments.quarter
-
segments.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
определяет порядок возврата результатов. Это позволяет упорядочить данные по возрастанию или убыванию имени поля. Каждый порядок задаётся как 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
в true
, чтобы разрешить возврат черновиков сущностей. Значение по умолчанию — false
.
Например, следующий запрос извлекает черновики кампаний вместе с обычными кампаниями:
SELECT campaign.name
FROM campaign
PARAMETERS include_drafts=true
пропустить невыбранные_имена_ресурсов
Установите для omit_unselected_resource_names
значение true
, чтобы предотвратить возврат имени ресурса каждого типа в ответе, если только это явно не указано в предложении SELECT
. Значение по умолчанию — false
.
примеры omit_unselected_resource_names | |
---|---|
SELECT campaign.name, customer.id FROM campaign | Returned resources:campaign.resource_name Значение по умолчанию omit_unselected_resource_names равно false , поэтому возвращаются все поля resource_name. |
SELECT campaign.name, customer.id FROM campaign PARAMETERS omit_unselected_resource_names = true | Returned resources: Никто. omit_unselected_resource_names указано как true , а campaign.resource_name и customer.resource_name не являются частью предложения SELECT . |
SELECT campaign.name, campaign.resource_name FROM campaign PARAMETERS omit_unselected_resource_names = true | Returned resource:campaign.resource_name omit_unselected_resource_names указано как true , а campaign.resource_name запрошено как часть предложения SELECT . |
Дополнительные языковые правила
В дополнение к примерам для каждого предложения язык запросов Google Ads имеет следующие варианты поведения, которые можно использовать:
Основное поле ресурса не обязательно должно присутствовать в предложении
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'