Ключевые термины
- Ресурс
- Объект в Google Ads, например,
campaignилиad_group. - Сегмент
- Измерение, используемое для группировки данных, например,
segments.dateилиsegments.device. Когда сегменты включаются в предложениеSELECTвместе с метриками, метрики разделяются по сегментам. - Метрика
- Показатель эффективности, например,
metrics.impressionsилиmetrics.clicks. - Приписываемый ресурс
- Ресурс, который неявно связан с основным ресурсом в предложении
FROM, что позволяет выбирать его атрибуты наряду с атрибутами основного ресурса.
Запрос информации о ресурсах или метаданных.
Язык запросов Google Ads позволяет запрашивать у API Google Ads следующие типы информации:
Ресурсы и связанные с ними атрибуты, сегменты и метрики с помощью поиска
GoogleAdsServiceили SearchStream : результатом запросаGoogleAdsServiceявляется список экземпляровGoogleAdsRow, причем каждый экземплярGoogleAdsRowпредставляет собой ресурс.Если запрашиваются какие-либо атрибуты или метрики, то строка также включает эти поля. Если запрашиваются какие-либо сегменты, то в ответе также отображается дополнительная строка для каждой пары сегмент-ресурс.
Метаданные о доступных полях и ресурсах в
GoogleAdsFieldService: Этот сервис предоставляет каталог полей, по которым можно выполнять запросы, с указанием их совместимости и типа.Результатом запроса к
GoogleAdsFieldServiceявляется список экземпляровGoogleAdsField, причем каждыйGoogleAdsFieldсодержит подробную информацию о запрошенном поле.
Для получения более подробной информации о структуре запроса см. разделы «Структура запроса» и «Грамматика языка запросов Google Ads» .
Запрос атрибутов ресурса
Вот пример простого запроса для получения атрибутов ресурса кампании, иллюстрирующий, как вернуть идентификатор, название и статус кампании:
SELECT
campaign.id,
campaign.name,
campaign.status
FROM campaign
ORDER BY campaign.id
Этот запрос сортирует данные по идентификатору кампании. Каждая полученная строка GoogleAdsRow представляет собой объект campaign , заполненный выбранными полями, включая resource_name кампании.
Чтобы узнать, какие еще поля доступны для запросов по кампаниям, обратитесь к справочной документации Campaign .
Запрос метрик
Помимо выбранных атрибутов для данного ресурса, вы также можете запрашивать связанные метрики:
SELECT
campaign.id,
campaign.name,
campaign.status,
metrics.impressions
FROM campaign
WHERE campaign.status = 'PAUSED'
AND metrics.impressions > 1000
ORDER BY campaign.id
Этот запрос фильтрует только кампании со статусом PAUSED и более чем 1000 показами, сортируя по ID кампании. В каждой полученной строке GoogleAdsRow будет поле metrics заполненное выбранными метриками.
Список метрик, по которым можно выполнять запросы, см. в документации Metrics .
Запрос по сегментам
Помимо выбранных атрибутов для данного ресурса, вы также можете запрашивать связанные сегменты:
SELECT
campaign.id,
campaign.name,
campaign.status,
metrics.impressions,
segments.date
FROM campaign
WHERE campaign.status = 'PAUSED'
AND metrics.impressions > 1000
AND segments.date DURING LAST_30_DAYS
ORDER BY campaign.id
Аналогично запросам метрик, этот запрос фильтрует только кампании со статусом PAUSED и более чем 1000 показами. Однако этот запрос сегментирует данные по дате. В результате каждая результирующая GoogleAdsRow будет представлять собой кортеж из кампании и сегмента дат. Сегментация разделяет выбранные метрики, группируя их по каждому сегменту в предложении SELECT .
Список сегментов, по которым можно выполнять запросы, см. в документации Segments .
Запрос атрибутов связанного ресурса
При выполнении запроса к заданному ресурсу вы можете объединить его с другими связанными ресурсами, если таковые имеются. Эти связанные ресурсы известны как «атрибутированные ресурсы». Вы можете выполнить объединение с атрибутированными ресурсами неявно, выбрав атрибут в своем запросе.
SELECT
campaign.id,
campaign.name,
campaign.status,
bidding_strategy.name
FROM campaign
ORDER BY campaign.id
Этот запрос не только выбирает атрибуты кампании, но и извлекает связанные атрибуты из каждой выбранной кампании. Каждая полученная строка GoogleAdsRow представляет собой объект campaign , заполненный выбранными атрибутами кампании, а также выбранным атрибутом стратегии назначения ставок bidding_strategy.name .
Чтобы узнать, какие ресурсы доступны для запросов по кампаниям, обратитесь к справочной документации Campaign .
Передовые методы
- Выбирайте только необходимые поля, чтобы избежать длительного времени ответа и тайм-аутов.
- Используйте
LIMITво время разработки и тестирования, чтобы избежать обработки больших наборов результатов. - Примените фильтры в предложении
WHERE, чтобы минимизировать передачу данных и размер ответа. - Используйте
GoogleAdsFieldServiceдля проверки совместимости полей и типов данных перед составлением сложных запросов. - Следует учитывать, что некоторые поля, особенно те, которые содержат большие объемы данных или требуют сложных вычислений, могут увеличить стоимость запроса.
Изменить на основе результатов запроса
При запросе к определенному ресурсу вы можете немедленно получить возвращенные результаты в виде объектов, изменить их и отправить обратно в метод `mutate` в сервисе этого ресурса. Вот пример рабочего процесса:
- Выполните запрос для всех
PAUSEDкампаний, количество показов которых превышает 1000. - Получите объект
Campaignиз поляcampaignкаждойGoogleAdsRowв ответе. - Измените статус каждой кампании с
PAUSEDнаENABLED. - Для обновления кампаний вызовите
CampaignService.MutateCampaigns, указав измененные кампании и соответствующуюFieldMask.
Метаданные поля
Запросы, отправляемые в GoogleAdsFieldService предназначены для получения метаданных полей. Эта информация может быть использована для понимания того, как поля могут использоваться вместе в запросе. Поскольку данные доступны через API и предоставляют необходимые метаданные для проверки или построения запроса, это позволяет разработчикам делать это программно. Вот типичный запрос для получения метаданных:
SELECT
name,
category,
selectable,
filterable,
sortable,
selectable_with,
data_type,
is_repeated
WHERE name = "<INSERT_RESOURCE_OR_FIELD>"
В этом запросе вы можете заменить <INSERT_RESOURCE_OR_FIELD> либо на ресурс (например, customer или campaign ), либо на поле (например, campaign.id , metrics.impressions или ad_group.id ).
Список полей, доступных для выполнения запросов, см. в документации GoogleAdsField .
Различия, специфичные для каждой версии
Хотя синтаксис, условия и операторы языка запросов Google Ads идентичны для всех поддерживаемых версий API Google Ads (v23, v24 и v25), каталог доступных для запросов ресурсов, сегментов, метрик и поведения при составлении отчетов различается в зависимости от основной версии. Для проверки полей и правил совместимости для этой версии выполните запрос к GoogleAdsFieldService по конечной точке целевой версии API:
- Ресурсы целей жизненного цикла: В версии 25 и более поздних версиях все цели жизненного цикла (привлечение новых клиентов, удержание клиентов и удержание лояльных клиентов) запрашиваются из объединенных ресурсов
goalиcampaign_goal_config, заменяяcustomer_lifecycle_goalиcampaign_lifecycle_goal(которые использовались для целей привлечения новых клиентов в версии 24 и более ранних версиях, наряду сgoalиcampaign_goal_configдля целей удержания клиентов). - Показатели представления конечного URL-адреса расширения: В версиях 25 и выше запрос
final_url_expansion_asset_viewвозвращает все выбираемые показатели для представления. В версиях 24 и более ранних ответах содержатся толькоmetrics.conversionsиmetrics.conversions_valueдля кампаний Performance Max иmetrics.impressionsдля поисковых кампаний. - Отчеты по товарам для рекламных кампаний в приложениях: В версии 24 и более поздних версиях ресурс
shopping_productвозвращает строки с товарами для рекламных кампаний в приложениях в дополнение к кампаниям в приложениях, Performance Max, Demand Gen и Video (в версии 23 рекламные кампании в приложениях исключены из результатовshopping_product). - Ресурсы, сегменты и метрики, специфичные для каждой версии:
- В версиях 25 и более поздних: Включает ресурсы для измерения эффективности (например,
lift_measurement_config), сегменты, такие какsegments.ad_sub_format_typeиsegments.loyalty_membership, а также метрики вовлеченности на YouTube (metrics.youtube_likes,metrics.youtube_commentsиmetrics.youtube_shares). Удаляетlocal_services_lead.contact_details.email(который можно выбрать в версиях 24 и более ранних). - В версиях 24 и более поздних: включает ресурс
cart_data_sales_view,segments.conversion_attribution_event_typeвshopping_performance_view,segments.mobile_device_platformиsegments.ad_network_typeвperformance_max_placement_view. Удаляетcampaign.video_brand_safety_suitability(заменен наcustomer.video_brand_safety_suitability),segments.ad_sub_network_typeвcampaign_budgetиsegments.click_typeвad_group_asset,campaign_assetиcustomer_asset(которые можно выбрать только в версии 23).
- В версиях 25 и более поздних: Включает ресурсы для измерения эффективности (например,
- Код ошибки при детальном поиске дат: Запросы, сегментирующие по
segments.date,segments.weekилиsegments.hour(или фильтрующие по диапазону дат за пределами 37-месячного периода), возвращаютDateRangeError.REQUESTED_DATE_GRANULARITY_NOT_SUPPORTEDв версиях 24 и выше (илиDateRangeError.UNKNOWNв версии 23). Подробнее см. раздел « Диапазоны дат» .
Примеры кода
В клиентских библиотеках есть примеры использования языка запросов Google Ads в GoogleAdsService . В папке с основными операциями находятся примеры, такие как GetCampaigns , GetKeywords и SearchForGoogleAdsFields .