La segmentación está disponible en la IU de Google Ads como un menú independiente. Puedes implementar la segmentación en la API de Google Ads agregando el campo adecuado a una consulta. Por ejemplo, supongamos que agregas segments.device a una búsqueda. Esto genera un informe con una fila para cada combinación de dispositivo y el recurso especificado en la cláusula FROM, y los valores estadísticos (impresiones, clics, conversiones, etcétera) divididos entre ellos.
En la IU de Google Ads, solo se puede usar un segmento a la vez, pero con la API, puedes especificar varios segmentos en la misma consulta.
SELECT
campaign.name,
campaign.status,
segments.device,
metrics.impressions
FROM campaign
Los resultados de enviar esta consulta a GoogleAdsService.SearchStream se parecen a esta cadena 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"
}
}
]
}
En este resultado de muestra, los atributos del primer y segundo objeto, incluido el nombre del recurso, son los mismos. Las impresiones se segmentan por dispositivo, por lo que se pueden devolver dos o más objetos para la misma campaña.
Segmentación implícita
Inicialmente, cada informe se segmenta según el recurso especificado en la cláusula FROM. Se devuelve el campo resource_name del recurso en la cláusula FROM y las métricas se segmentan según este campo, incluso cuando el campo resource_name no se incluye de forma explícita en la consulta. Por ejemplo, cuando especificas ad_group como el recurso en la cláusula FROM, se devuelve automáticamente ad_group.resource_name y las métricas se segmentan de forma implícita en función de él a nivel de ad_group.
Entonces, para esta búsqueda:
SELECT metrics.impressions
FROM ad_group
Obtendrás una cadena JSON como la siguiente:
{
"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"
}
}
]
}
El campo resource_name de adGroup siempre se devuelve porque ad_group se especifica como un recurso en la cláusula FROM.
search_term_view
El recurso search_term_view también se segmenta de forma implícita por grupo de anuncios, no solo por término de búsqueda, como se refleja en la estructura de su nombre del recurso, que también incluye el grupo de anuncios.
Por lo tanto, es posible que recibas filas aparentemente duplicadas con los mismos términos de búsqueda que aparecen en tus resultados cuando esas filas pertenecen a diferentes grupos de anuncios:
{
"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"
}
}
]
}
Si bien los dos objetos devueltos en este ejemplo parecen ser duplicados, sus nombres de recursos son diferentes, en particular en la parte del ID del grupo de anuncios.
Esto significa que el término de búsqueda "google photos" se atribuye a dos grupos de anuncios (IDs 2222222222 y 33333333333) en la misma fecha (2024-06-15). Por lo tanto, la API funcionó según lo previsto y no devolvió objetos duplicados en este caso.
Campos de segmentos seleccionables
No todos los campos de segmento se pueden seleccionar para un recurso determinado en la cláusula FROM.
Por ejemplo, supongamos que sigues realizando consultas desde el recurso ad_group. Para que un campo de segmentación se pueda seleccionar desde el recurso ad_group, ese campo debe existir en la lista Segments para ad_group. La lista Segments es la parte amarilla de la tabla de campos disponibles en la página de metadatos del recurso ad_group.
Recursos de segmentos
Cuando selecciones algunos recursos, es posible que tengas la opción de unirte de forma implícita a los recursos relacionados seleccionando sus campos junto con los campos del recurso en la cláusula FROM. Estos recursos relacionados se pueden encontrar en la lista Attributed Resources de la página de metadatos de la cláusula FROM. En el caso del recurso ad_group, verás que también puedes seleccionar campos del recurso campaign. El campo resource_name de cualquier Attributed Resources con al menos un campo en la cláusula SELECT se devuelve automáticamente, incluso cuando el campo resource_name no se incluye de forma explícita en la consulta.
Al igual que con la selección de campos Attributed Resource, también puedes seleccionar campos Segmenting Resource. Si un recurso determinado tiene una lista de Segmenting Resources en su página de metadatos, seleccionar campos de uno de esos recursos enumerados hace que la consulta se segmente aún más según el resource_name devuelto de ese Segmenting Resource. Por ejemplo, verás que el recurso campaign aparece como un Segmenting
Resource para el recurso campaign_budget.
Si seleccionas cualquier campo de la campaña, como campaign.name, del recurso campaign_budget, no solo se devolverá el campo campaign.name, sino que también se devolverá el campo campaign.resource_name y se segmentará en función de él.
Capacidad de selección entre segmentos y métricas
Es posible que un campo de segmentación determinado no sea compatible con algunos de los otros campos de segmentación o con algunos de los campos de métricas. Para identificar qué campos de segmentación son compatibles entre sí, revisa la lista selectable_with de los segmentos en la cláusula SELECT.
En el caso del recurso ad_group, hay más de 50 segmentos disponibles que puedes seleccionar. Sin embargo, la lista de selectable_with para segments.hotel_check_in_date es un conjunto mucho más pequeño de segmentos compatibles. Esto significa que, si agregas el campo segments.hotel_check_in_date a la cláusula SELECT, limitarás los segmentos disponibles que te quedan para seleccionar a la intersección de estas dos listas.
Restricciones de segmentos conjuntos
Algunos campos de segmentación tienen restricciones de selección explícitas que requieren que se soliciten junto con un segmento principal en la cláusula SELECT:
- Si seleccionas
segments.ad_sub_network_type(que desglosa las subredes de anuncios de YouTube, como in-stream, in-feed y Shorts), también debes seleccionarsegments.ad_network_type. - En la versión 25 y posteriores, si seleccionas
segments.ad_sub_format_type(que desglosa los anuncios in-stream que no se pueden omitir de YouTube por duración), también debes seleccionarsegments.ad_format_type.
Filtrado implícito por selección de segmentos
Cuando seleccionas ciertos campos de segmento en tu consulta, la API de Google Ads puede filtrar de forma implícita los resultados para incluir solo las filas en las que ese segmento es aplicable y tiene un valor.
Impacto de segments.keyword.*
Un ejemplo común e importante de este comportamiento se produce cuando se selecciona cualquier campo en segments.keyword (como segments.keyword.info.text y segments.keyword.ad_group_criterion):
- Exclusión del tráfico que no proviene de palabras clave: Si incluyes algún campo
segments.keyword.*en tu cláusulaSELECT, se restringirán los resultados solo a las filas asociadas directamente con un criterio del grupo de anuncios de palabras clave de la Red de Búsqueda. - Tipos de campañas afectadas: Por lo tanto, los datos de los tipos de campañas o grupos de anuncios que no dependen de las palabras clave de la Búsqueda se excluyen de los resultados.
Esto incluye, sin limitaciones, lo siguiente:
- Anuncios dinámicos de búsqueda (DSA): Esto se debe a que la segmentación de los DSA se basa en el contenido del sitio web y no en las palabras clave.
- Campañas de Shopping: Utilizan grupos de productos en lugar de palabras clave.
- Campañas de máximo rendimiento: Si bien las campañas de máximo rendimiento pueden publicarse en la Búsqueda, sus informes no suelen segmentarse según los mismos criterios de palabras clave.
- Red de Display: Los campos
segments.keyword.*se relacionan con las palabras clave que se utilizan en la Red de Búsqueda. No se segmentan por palabras clave de la Red de Display ni por otros métodos de segmentación de Display.
Reglas para los segmentos en la cláusula WHERE
Cuando un segmento se encuentra en la cláusula WHERE, también debe estar en la cláusula SELECT.
La excepción a esta regla son los siguientes segmentos de fecha, que se conocen como segmentos de fecha principales:
segments.datesegments.weeksegments.monthsegments.quartersegments.year
Reglas para los campos de segmentos de fechas principales
Los segmentos segments.date, segments.week, segments.month, segments.quarter y segments.year funcionan de la siguiente manera:
- Estos segmentos se pueden filtrar en la cláusula
WHEREsin aparecer en la cláusulaSELECT. - Si alguno de estos segmentos se encuentra en la cláusula
SELECT, se debe especificar un período finito compuesto por segmentos de fecha principales en la cláusulaWHERE. No es necesario que los segmentos de fecha sean los mismos que se especifican enSELECT.
Ejemplos
No es válido: Dado que segments.date se encuentra en la cláusula SELECT, debes especificar un rango de fechas finito en la cláusula WHERE para un segments.date, segments.week, segments.month, segments.quarter o segments.year.
|
SELECT campaign.name, metrics.clicks, segments.date FROM campaign |
Válida: Esta consulta devuelve los nombres de las campañas y los clics acumulados durante el período inclusivo. Ten en cuenta que segments.date no necesita aparecer en la cláusula SELECT.
|
SELECT campaign.name, metrics.clicks FROM campaign WHERE segments.date >= '2024-01-01' AND segments.date <= '2024-01-31' |
| Válida: Esta consulta devuelve los nombres de las campañas y los clics segmentados por fecha para todos los días del período inclusivo. |
SELECT campaign.name, metrics.clicks, segments.date FROM campaign WHERE segments.date >= '2024-01-01' AND segments.date <= '2024-01-31' |
| Válida: Esta consulta devuelve los nombres de las campañas y los clics segmentados por mes para todos los días del período inclusivo. |
SELECT campaign.name, metrics.clicks, segments.month FROM campaign WHERE segments.date >= '2024-01-01' AND segments.date <= '2024-01-31' |
| Válida: Esta consulta devuelve los nombres de las campañas y los clics segmentados por trimestre y, luego, por mes para todos los meses del período anual inclusivo. |
SELECT campaign.name, metrics.clicks, segments.quarter, segments.month FROM campaign WHERE segments.year >= 2020 AND segments.year <= 2024 |