La segmentación, disponible en la IU de Google Ads como un menú independiente, se puede
implementar en la API de Google Ads con solo agregar el campo adecuado a una consulta. Para
Por ejemplo, agregar segments.device
a una
consulta, genera un informe con una fila para cada combinación de dispositivo y el
recurso especificado en la cláusula FROM
y la
valores estadísticos (impresiones, clics, conversiones, etc.) divididos entre ellos.
Si bien en la IU de Google Ads solo se puede utilizar un segmento a la vez, en la API, puede 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 vería algo como 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"
}
},
...
]
}
Ten en cuenta que, en el resultado del ejemplo anterior, los atributos para la primera y la segunda incluidos el nombre del recurso son iguales. Las impresiones están segmentadas. por dispositivo y, por lo tanto, se pueden mostrar 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 el archivo FROM
.
. El campo resource_name del recurso en la cláusula FROM
es
que se devuelven y las métricas se segmentan por él, incluso cuando el campo resource_name
no se incluye explícitamente en la consulta. Por ejemplo, cuando especificas
ad_group
como el recurso en la cláusula FROM
y, luego,
ad_group.resource_name
hará lo siguiente
y las métricas se segmentarán implícitamente en función de este en el
a nivel del grupo de anuncios.
Entonces, para esta consulta,
SELECT metrics.impressions
FROM ad_group
obtendrías una cadena JSON como esta:
{
"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"
}
}
]
}
Ten en cuenta que el campo resource_name
de adGroup
siempre se muestra porque
Se especificó ad_group
como recurso en la cláusula FROM
.
Campos de segmentos seleccionables
No todos los campos de segmento se pueden seleccionar para un recurso determinado en la cláusula FROM
.
A modo de ejemplo, seguiremos consultando desde ad_group
.
recurso. Para que un campo del segmento se pueda seleccionar desde el recurso ad_group,
Ese campo debe existir en la lista Segments
de ad_group. El Segments
es la parte amarilla de la tabla de campos disponibles en la
Página de metadatos del recurso ad_group
.
Recursos del segmento
Cuando selecciones entre algunos recursos, tal vez tengas la opción de unir elementos de forma implícita
en recursos relacionados seleccionando sus campos junto a los campos de las
recurso en la cláusula FROM
. Estos recursos relacionados pueden encontrarse en
Lista Attributed Resources
en el recurso en los metadatos de la cláusula FROM
. En el caso del recurso ad_group
, verás
que también puedes seleccionar campos de la campaign
recurso. El campo resource_name de cualquier Attributed Resources
con al menos
1 en la cláusula SELECT
se mostrará automáticamente, incluso cuando la
resource_name no se incluye explícitamente en la consulta.
Al igual que cuando seleccionas campos de Attributed Resource
, también puedes seleccionar
Segmenting Resource
campos. Si un recurso determinado tiene un Segmenting Resources
lista en su página de metadatos y, a continuación, selecciona campos de uno de los recursos enumerados
hará que la consulta se segmente aún más por el resource_name devuelto de ese
Segmenting Resource
Por ejemplo, descubrirás que la
El recurso campaign
aparece como Segmenting Resource
.
para el recurso campaign_budget
. Seleccionar cualquiera
campo de la campaña, como campaign.name
, de
el recurso campaign_budget no solo hará que el campo campaign.name se
pero causará que la luz
campo campaign.resource_name
que se debe
que se muestran y se segmentan.
Posibilidad de seleccionar entre segmentos y métricas
Es posible que un campo de segmento determinado no sea compatible con algunos de los otros segmentos
o con algunos campos de métricas. Para identificar qué campos de segmentos
son compatibles entre sí, puedes revisar la lista de selectable_with
de los segmentos en la cláusula SELECT
.
En el caso de los
ad_group
, hay más de 50 segmentos disponibles que
que puedes seleccionar. Sin embargo, la lista selectable_with
de
segments.hotel_check_in_date
es un conjunto mucho más pequeño
de segmentos compatibles. Esto significa que, si agregas
segments.hotel_check_in_date
en la cláusula SELECT
, limitarás
los tramos disponibles que te quedan para seleccionar hasta la intersección de estos dos.
listas.
- Si agrega algunos segmentos, es posible que disminuyan las métricas de la fila de resumen.
- Cuando
segments.keyword.info.match_type
se agrega a una consulta conFROM ad_group_ad
, ese segmento le indica a la consulta que solo obtenga las filas de datos que contengan palabras clave y quitará cualquier fila que no esté asociada con un palabra clave. En este caso, las métricas serían menores porque excluiría cualquier métricas que no son de palabras clave.
Reglas para segmentos en la cláusula WHERE
Cuando un segmento está en la cláusula WHERE
, también debe estar en SELECT
. La excepción a esta regla son los siguientes segmentos de fechas, que se
denominados segmentos de fechas principales:
segments.date
segments.week
segments.month
segments.quarter
segments.year
Reglas para los campos de segmento 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
WHERE
sin aparecer. en la cláusulaSELECT
.Si alguno de estos segmentos está en la cláusula
SELECT
, un período finito compuestos por segmentos de fechas principales se deben especificar en la cláusulaWHERE
(no es necesario que los segmentos de fechas sean los mismos que se especifican en elSELECT
).
Ejemplos
No válido: Debido a que segments.date es
en la cláusula SELECT , debes especificar un período 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 nombres de campañas y
clics acumulados durante el período. Ten en cuenta que segments.date
no es necesario que aparezca en la cláusula SELECT .
|
SELECT campaign.name, metrics.clicks FROM campaign WHERE segments.date > '2020-01-01' AND segments.date < '2020-02-01' |
Válida: Esta consulta devuelve nombres de campañas y los clics segmentados por fecha para todos los días del período. |
SELECT campaign.name, metrics.clicks, segments.date FROM campaign WHERE segments.date > '2020-01-01' AND segments.date < '2020-02-01' |
Válida: Esta consulta devuelve nombres de campañas y los clics segmentados por mes para todos los días del período. |
SELECT campaign.name, metrics.clicks, segments.month FROM campaign WHERE segments.date > '2020-01-01' AND segments.date < '2020-02-01' |
Válida: Esta consulta devuelve nombres de campañas y los clics segmentados por trimestre y, luego, por mes para todos los meses del rango de año. |
SELECT campaign.name, metrics.clicks, segments.quarter, segments.month FROM campaign WHERE segments.year > 2015 AND segments.year < 2020 |
search_term_view
Ten en cuenta que
search_term_view
, también es
segmentada implícitamente por grupo de anuncios, no solo por término de búsqueda, como lo refleja el
de sus recursos
personalizado, que
también incluye el grupo de anuncios. Por lo tanto, obtendrás una copia
filas con los mismos términos de búsqueda que aparecen en los resultados cuando son
Las filas pertenecerán a un grupo de anuncios diferente:
{
"results":[
{
"searchTermView":{
"resourceName":"customers/1234567890/searchTermViews/111111111~2222222222~Z29vZ2xlIHBob3RvcyBpb3M",
"searchTerm":"google photos"
},
"metrics":{
"impressions":"3"
},
"segments":{
"date":"2015-06-15"
}
},
{
"searchTermView":{
"resourceName":"customers/1234567890/searchTermViews/111111111~33333333333~Z29vZ2xlIHBob3RvcyBpb3M",
"searchTerm":"google photos"
},
"metrics":{
"impressions":"2"
},
"segments":{
"date":"2015-06-15"
}
}
]
}
Aunque los dos objetos devueltos en este ejemplo parecen estar duplicados,
sus nombres de recursos son realmente diferentes, especialmente en el caso del "grupo de anuncios"
de una parte del proyecto. Esto significa que el término de búsqueda "google fotos" se atribuye a ambos
grupos de anuncios (ID 2222222222
y 33333333333
) en la misma fecha (15 de junio de 2015).
Por lo tanto, podemos concluir que la API funcionó según lo previsto y no devolvió
los objetos duplicados.