Сегментация доступна в пользовательском интерфейсе Google Ads в виде отдельного меню. Вы можете реализовать сегментацию в API Google Ads, добавив соответствующее поле в запрос. Например, предположим, вы добавите segments.device в запрос. В результате вы получите отчет со строкой для каждой комбинации устройства и указанного ресурса в предложении FROM , а также статистические значения (показы, клики, конверсии и т. д.), распределенные между ними.
В пользовательском интерфейсе Google Ads можно использовать только один сегмент за раз, но с помощью API можно указать несколько сегментов в одном запросе.
SELECT
campaign.name,
campaign.status,
segments.device,
metrics.impressions
FROM campaign
Результаты отправки этого запроса в GoogleAdsService.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"
}
},
...
]
}
В этом примере результатов атрибуты первого и второго объектов, включая имя ресурса, совпадают. Показы сегментируются по устройствам , поэтому для одной и той же кампании может быть возвращено два или более объектов.
Неявная сегментация
Каждый отчет изначально сегментируется по ресурсу, указанному в предложении FROM . Возвращается поле resource_name ресурса из предложения FROM , и метрики сегментируются по нему, даже если поле resource_name явно не включено в запрос. Например, если вы указываете ad_group в качестве ресурса в предложении FROM , то 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"
}
}
]
}
Поле resource_name объекта adGroup всегда возвращается, поскольку ad_group указан как ресурс в предложении FROM .
Выбираемые поля сегмента
Не все поля сегмента доступны для выбора в предложении FROM для данного ресурса. Например, предположим, вы продолжаете запрашивать данные из ресурса ad_group . Чтобы поле сегмента было доступно для выбора из ресурса ad_group , это поле должно присутствовать в списке Segments для ad_group. Список Segments — это выделенная желтым цветом часть таблицы доступных полей на странице метаданных ресурса ad_group .
Сегментные ресурсы
При выборе некоторых ресурсов может быть возможность неявного объединения с связанными ресурсами путем выбора их полей вместе с полями ресурса в предложении FROM . Эти связанные ресурсы можно найти в списке Attributed Resources на странице метаданных предложения FROM . В случае ресурса ad_group вы увидите, что также можете выбрать поля из ресурса campaign . Поле resource_name любого Attributed Resources имеющего хотя бы одно поле в предложении SELECT будет автоматически возвращено, даже если поле resource_name явно не включено в запрос.
Аналогично выбору полей Attributed Resource , вы также можете выбрать поля Segmenting Resource . Если у данного ресурса на странице метаданных есть список Segmenting Resources , то при выборе полей из одного из перечисленных ресурсов запрос будет дополнительно сегментирован по возвращаемому resource_name этого Segmenting Resource . Например, вы увидите, что ресурс campaign указан как Segmenting Resource для ресурса campaign_budget . Выбор любого поля кампании, например campaign.name , из ресурса campaign_budget приводит не только к возврату поля campaign.name , но и к возврату поля campaign.resource_name , по которому будет производиться сегментация.
Возможность выбора между сегментами и показателями
Поле сегмента может быть несовместимо с некоторыми другими полями сегментов или с некоторыми полями метрик. Чтобы определить, какие поля сегментов совместимы друг с другом, просмотрите список selectable_with сегментов в предложении SELECT .
В случае ресурса ad_group доступно более 50 сегментов для выбора. Однако список selectable_with для segments.hotel_check_in_date содержит гораздо меньший набор совместимых сегментов. Это означает, что если вы добавите поле segments.hotel_check_in_date в предложение SELECT , вы ограничите количество доступных для выбора сегментов пересечением этих двух списков.
Неявная фильтрация путем выбора сегмента
Когда вы выбираете определенные поля сегмента в своем запросе, API Google Ads может неявно фильтровать результаты, чтобы включить только те строки, где этот сегмент применим и имеет значение.
Влияние segments.keyword.*
Распространенный и важный пример такого поведения наблюдается при выборе любого поля в параметре segments.keyword (например, segments.keyword.info.text и segments.keyword.ad_group_criterion ).
- Исключение трафика, не связанного с ключевыми словами: если вы включите какое-либо поле
segments.keyword.*в свой запросSELECT, это ограничит результаты только теми строками, которые непосредственно связаны с критерием группы объявлений по ключевым словам в поисковой сети. Затронутые типы кампаний: Следовательно, данные из типов кампаний или групп объявлений, которые не зависят от ключевых слов поиска, исключаются из результатов. Это включает, помимо прочего:
- Динамическая поисковая реклама (DSA): Потому что целевая аудитория DSA определяется контентом веб-сайта, а не ключевыми словами.
- Торговые кампании: в которых вместо ключевых слов используются группы товаров.
- Кампании Performance Max: Хотя Performance Max может размещать рекламу в поисковой выдаче, отчеты по ним обычно не сегментируются по тем же критериям ключевых слов.
Медийная сеть: Поля
segments.keyword.*относятся к ключевым словам, используемым в поисковой сети . Они не сегментируют данные по ключевым словам медийной сети или другим методам таргетинга в медийной сети.
Рекомендации: Если для анализа необходимо использовать данные о производительности из DSA, Shopping или других источников, не основанных на поисковых ключевых словах, не включайте поля из segments.keyword.* в запрос. Сначала проанализируйте данные по всем типам кампаний и применяйте сегментацию по ключевым словам только при анализе эффективности поисковых ключевых слов.
Правила для сегментов в предложении WHERE
Если сегмент присутствует в предложении WHERE , он также должен присутствовать в предложении SELECT . Исключением из этого правила являются следующие сегменты дат, которые называются основными сегментами дат :
-
segments.date -
segments.week -
segments.month -
segments.quarter -
segments.year
Правила для основных полей сегментов даты
Сегменты segments.date , segments.week , segments.month , segments.quarter и segments.year функционируют следующим образом:
Эти сегменты можно фильтровать в предложении
WHERE, не указывая их в предложенииSELECT.Если какой-либо из этих сегментов присутствует в предложении
SELECT, то в предложенииWHEREнеобходимо указать конечный диапазон дат, состоящий из основных сегментов дат . Сегменты дат не обязательно должны совпадать с сегментами, указанными вSELECT.
Примеры
Недопустимо: Поскольку segments.date находится в предложении SELECT , необходимо указать конечный диапазон дат в предложении WHERE для segments.date , segments.week , segments.month , segments.quarter или segments.year . | SELECT campaign.name, metrics.clicks, segments.date FROM campaign |
Допустимое значение: Этот запрос возвращает названия кампаний и количество кликов, совершенных в указанном диапазоне дат. Обратите внимание, что segments.date не обязательно должно присутствовать в предложении SELECT . | SELECT campaign.name, metrics.clicks FROM campaign WHERE segments.date > '2024-01-01' AND segments.date < '2024-02-01' |
| Допустимое значение: Этот запрос возвращает названия кампаний и клики, сегментированные по дате, для всех дней в диапазоне дат. | SELECT campaign.name, metrics.clicks, segments.date FROM campaign WHERE segments.date > '2024-01-01' AND segments.date < '2024-02-01' |
| Допустимое значение: Этот запрос возвращает названия кампаний и клики, сегментированные по месяцам, за все дни в указанном диапазоне дат. | SELECT campaign.name, metrics.clicks, segments.month FROM campaign WHERE segments.date > '2024-01-01' AND segments.date < '2024-02-01' |
| Допустимое значение: Этот запрос возвращает названия кампаний и клики, сегментированные по кварталам, а затем по месяцам, для всех месяцев в течение года. | SELECT campaign.name, metrics.clicks, segments.quarter, segments.month FROM campaign WHERE segments.year > 2019 AND segments.year < 2024 |
поиск_термин_просмотр
Ресурс search_term_view также неявно сегментируется по группам объявлений, а не только по поисковому запросу, что отражается в структуре его имени ресурса , которое также включает группу объявлений. Поэтому в результатах поиска могут появляться строки с одинаковыми поисковыми запросами, но принадлежащие разным группам объявлений.
{
"results":[
{
"searchTermView":{
"resourceName":"customers/1234567890/searchTermViews/111111111~2222222222~Z29vZ2xlIHBob3RvcyBpb3M",
"searchTerm":"google photos"
},
"metrics":{
"impressions":"3"
},
"segments":{
"date":"2024-06-15"
}
},
{
"searchTermView":{
"resourceName":"customers/1234567890/searchTermViews/111111111~33333333333~Z29vZ2xlIHBob3RvcyBpb3M",
"searchTerm":"google photos"
},
"metrics":{
"impressions":"2"
},
"segments":{
"date":"2024-06-15"
}
}
]
}
Хотя в этом примере два возвращенных объекта кажутся дубликатами, их имена ресурсов на самом деле различаются, особенно в части «группа объявлений». Это означает, что поисковый запрос «google photos» относится к двум группам объявлений (ID 2222222222 и 33333333333 ) за одну и ту же дату (15.06.2024). Таким образом, можно заключить, что API сработал должным образом и в данном случае не вернул дубликаты объектов.