Запросы по полям ресурсов, сегментов и показателей можно отправлять в методы поиска 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_nameomit_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'