Las consultas para los campos de recursos, segmentos y métricas se pueden enviar a los métodos GoogleAdsService Search o SearchStream. Para crear una consulta en el lenguaje de consultas de Google Ads, deberás compilarla con la gramática del lenguaje. Una consulta se compone de varias cláusulas:
SELECTFROMWHEREORDER BYLIMITPARAMETERS
Las cláusulas usan nombres de campos, nombres de recursos, operadores, condiciones y ordenamientos para ayudarte a seleccionar los datos correctos. Cuando se combinan en una sola búsqueda, se puede realizar una solicitud con la API de Google Ads.
modelo de la UE
Video: Compatibilidad de los campos de GAQL
SELECT
La cláusula SELECT especifica un conjunto de campos que se recuperarán en la solicitud.
SELECT toma una lista separada por comas de campos de recursos, campos de segmentos y métricas, y devuelve los valores en la respuesta. La cláusula SELECT es obligatoria en una consulta.
En la siguiente consulta de ejemplo, se muestra cómo seleccionar atributos para un recurso determinado:
SELECT
campaign.id,
campaign.name
FROM campaign
Puedes solicitar diferentes tipos de campos en una sola solicitud, por ejemplo:
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
Campos de recursos
campaign.idcampaign.name
Campos de recursos
bidding_strategy.idbidding_strategy.name
Campos de segmento
segments.devicesegments.date
Métricas
metrics.impressionsmetrics.clicks
Es posible que algunos campos no se permitan en la cláusula SELECT debido a las siguientes restricciones:
- Consultar campos que no se pueden seleccionar Estos campos tendrán su atributo de metadatos
Selectablemarcado comofalse. - Seleccionar atributos de campos repetidos Estos campos tendrán su atributo de metadatos
isRepeatedmarcado comotrue. - Seleccionar campos que no están disponibles para el recurso determinado en la cláusula
FROMLos atributos de algunos recursos no se pueden seleccionar juntos. Además, solo estará disponible un subconjunto de todas las métricas y los segmentos para el recurso en la cláusulaFROM. - Seleccionar segmentos o métricas que no son compatibles entre sí Para obtener más información, consulta la sección de segmentación.
Puedes encontrar información relacionada con las condiciones anteriores en nuestros documentos de referencia o en GoogleAdsFieldService.
FROM
La cláusula FROM especifica el recurso principal que se devolverá. El recurso en la cláusula FROM define qué campos se pueden usar en todas las demás cláusulas para la consulta determinada. Solo se puede especificar un recurso en la cláusula FROM. La cláusula FROM es obligatoria en una consulta a los métodos GoogleAdsService Search o SearchStream. Sin embargo, la cláusula FROM no se debe especificar cuando se usa GoogleAdsFieldService.
Si bien solo puede existir un recurso en la cláusula FROM para una búsqueda determinada, también pueden estar disponibles los campos de los recursos atribuidos. Estos recursos se unen de forma implícita con el recurso de la cláusula FROM, por lo que solo debes agregar sus atributos a la cláusula SELECT para devolver sus valores. No todos los recursos tienen recursos atribuidos. En el siguiente ejemplo, puedes solicitar el ID del grupo de anuncios y el ID de la campaña de los grupos de anuncios:
SELECT
campaign.id,
ad_group.id
FROM ad_group
Siempre se muestra el campo resource_name del recurso principal.
En el siguiente ejemplo, ad_group.resource_name se incluirá en la respuesta a pesar de no haberse seleccionado de forma explícita en la búsqueda:
SELECT ad_group.id
FROM ad_group
Lo mismo sucede con otros recursos cuando se selecciona al menos un campo.
Por ejemplo, campaign.resource_name se incluirá en la respuesta de la siguiente búsqueda:
SELECT
campaign.id,
ad_group.id
FROM ad_group
WHERE
La cláusula WHERE especifica las condiciones que se deben aplicar cuando se filtran los datos para la solicitud. Cuando se usa la cláusula WHERE, se pueden especificar una o más condiciones con AND para separarlas. Cada condición debe seguir el patrón field_name Operator value. La cláusula WHERE es opcional en una consulta.
A continuación, se muestra un ejemplo del uso de WHERE para devolver métricas de un período determinado:
SELECT
campaign.id,
campaign.name,
metrics.impressions
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
Puedes combinar varias condiciones para filtrar los datos. En este ejemplo, se solicitará la cantidad de clics de todas las campañas con impresiones en dispositivos móviles en los últimos 30 días.
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
Los segmentos de la cláusula WHERE deben estar en la cláusula SELECT, con los siguientes segmentos de fecha, que se conocen como segmentos de fecha principales, como excepciones:
segments.datesegments.weeksegments.monthsegments.quartersegments.year
En la siguiente búsqueda, observa que se seleccionó segments.date.
Dado que este segmento es un segmento de fecha principal, requiere que se proporcione un rango de fechas finito compuesto por segmentos de fecha principales en la cláusula WHERE.
SELECT
campaign.id,
campaign.name,
segments.date,
metrics.clicks
FROM campaign
WHERE segments.date DURING LAST_30_DAYS
Todos los segmentos que cumplen con la condición anterior son: segments.date, segments.week, segments.month, segments.quarter y segments.year. Si se selecciona alguno de estos segmentos, se debe usar al menos uno de ellos en la cláusula WHERE.
Cuando filtres, es importante que tengas en cuenta si tu operador distingue mayúsculas y minúsculas. Consulta Distinción entre mayúsculas y minúsculas para obtener más detalles.
Para obtener una lista completa de los operadores, consulta la gramática del lenguaje.
ORDER BY
La cláusula ORDER BY especifica el orden en que se deben devolver los resultados. Esto te permite ordenar los datos de forma ascendente o descendente según el nombre de un campo. Cada ordenamiento se especifica como un field_name seguido de ASC o DESC. Si no se especifican ASC ni DESC, el orden predeterminado es ASC. La cláusula ORDER BY es opcional en una consulta.
La siguiente consulta ordena las campañas devueltas por la cantidad de clics, de mayor a menor:
SELECT
campaign.name,
metrics.clicks
FROM campaign
ORDER BY metrics.clicks DESC
Puedes especificar varios campos en la cláusula ORDER BY con una lista separada por comas. El ordenamiento se realizará en la misma secuencia que se especifica en la consulta.
Por ejemplo, en esta consulta que selecciona datos del grupo de anuncios, los resultados se ordenarán de forma ascendente por nombre de la campaña, luego de forma descendente por cantidad de impresiones y, por último, de forma descendente por cantidad de clics:
SELECT
campaign.name,
ad_group.name,
metrics.impressions,
metrics.clicks
FROM ad_group
ORDER BY
campaign.name,
metrics.impressions DESC,
metrics.clicks DESC
LIMIT
La cláusula LIMIT te permite especificar la cantidad de resultados que se mostrarán.
Esto es útil si solo te interesa un resumen.
Por ejemplo, LIMIT se puede usar para restringir la cantidad total de resultados de la siguiente consulta:
SELECT
campaign.name,
ad_group.name,
segments.device,
metrics.impressions
FROM ad_group
ORDER BY metrics.impressions DESC
LIMIT 50
PARÁMETROS
La cláusula PARAMETERS te permite especificar parámetros de metadatos para la solicitud.
Estos parámetros pueden afectar los tipos de filas que se muestran.
Se admiten los siguientes parámetros de metadatos:
include_drafts
Establece include_drafts en true para permitir que se muestren entidades de borrador.
La configuración predeterminada es false.
Por ejemplo, la siguiente consulta recupera las campañas en borrador junto con las campañas normales:
SELECT campaign.name
FROM campaign
PARAMETERS include_drafts=true
omit_unselected_resource_names
Establece omit_unselected_resource_names en true para evitar que se devuelva el nombre del recurso de cada tipo de recurso en la respuesta, a menos que se solicite de forma explícita en la cláusula SELECT. La configuración predeterminada es false.
| Ejemplos de omit_unselected_resource_names | |
|---|---|
SELECT campaign.name, customer.id FROM campaign |
Returned resources:campaign.resource_name
omit_unselected_resource_names se establece de forma predeterminada en false, por lo que
se devuelven todos los campos resource_name.
|
SELECT campaign.name, customer.id FROM campaign PARAMETERS omit_unselected_resource_names = true |
Returned resources: Ninguno. omit_unselected_resource_names se especifica como true
y campaign.resource_name y customer.resource_name
no forman parte de la cláusula SELECT.
|
SELECT campaign.name, campaign.resource_name FROM campaign PARAMETERS omit_unselected_resource_names = true |
Returned resource:campaign.resource_name
omit_unselected_resource_names se especifica como true
y campaign.resource_name se solicita como parte de la
cláusula SELECT.
|
Reglas de idioma adicionales
Además de los ejemplos de cada cláusula, el lenguaje de consultas de Google Ads tiene los siguientes comportamientos que se pueden utilizar:
No es necesario que el campo del recurso principal esté en la cláusula
SELECTde una consulta. Por ejemplo, es posible que solo desees usar uno o más campos de recursos principales para filtrar los datos:SELECT campaign.id FROM ad_group WHERE ad_group.status = PAUSEDLas métricas se pueden seleccionar exclusivamente para un recurso determinado. No se requieren otros campos del recurso en la consulta:
SELECT metrics.impressions, metrics.clicks, metrics.cost_micros FROM campaignLos campos de segmentación se pueden seleccionar sin ningún campo de recurso o métrica acompañante:
SELECT segments.device FROM campaignEl campo
resource_name(campaign.resource_name, por ejemplo) se puede usar para filtrar u ordenar datos:SELECT campaign.id, campaign.name FROM campaign WHERE campaign.resource_name = 'customers/1234567/campaigns/987654'