Gramática del lenguaje de consulta de Google Ads

En esta página, se incluye la referencia de la gramática del lenguaje de consultas de Google Ads. Para obtener detalles sobre la estructura de las consultas, consulta Estructura de la consulta.

Referencia gramatical

A continuación, se incluye la referencia de la gramática del lenguaje de consulta de Google Ads (en notación de expresiones regulares):

Query            -> SelectClause FromClause? WhereClause? OrderByClause?
                    LimitClause? ParametersClause?
SelectClause     -> SELECT FieldName ("," FieldName)*
FromClause       -> FROM ResourceName
WhereClause      -> WHERE Condition (AND Condition)*
OrderByClause    -> ORDER BY Ordering ("," Ordering)*
LimitClause      -> LIMIT PositiveInteger
ParametersClause -> PARAMETERS Literal "=" Value ("," Literal "=" Value)*

Condition        -> FieldName IS NULL
                  | FieldName IS NOT NULL
                  | FieldName BETWEEN Value AND Value
                  | FieldName Operator Value
Operator         -> "=" | "!=" | ">" | ">=" | "<" | "<=" | IN | NOT IN
                  | LIKE | NOT LIKE | CONTAINS ANY | CONTAINS ALL
                  | CONTAINS NONE | DURING
                  | REGEXP_MATCH | NOT REGEXP_MATCH
Value            -> Literal | LiteralList | Number | NumberList | String
                  | StringList | Function
Ordering         -> FieldName (ASC | DESC)?

FieldName        -> [a-z]([a-zA-Z0-9._])*
ResourceName     -> [a-z]([a-zA-Z0-9_])*

StringList       -> "(" String ("," String)* ")"
LiteralList      -> "(" Literal ("," Literal)* ")"
NumberList       -> "(" Number ("," Number)* ")"

PositiveInteger  -> [1-9]([0-9])*
Number           -> -?[0-9]+(\.[0-9]+)?
String           -> ("'" SingleQuoteChar* "'") | ('"' DoubleQuoteChar* '"')
SingleQuoteChar  -> [^'\\\r\n] | EscapeSequence
DoubleQuoteChar  -> [^"\\\r\n] | EscapeSequence
EscapeSequence   -> "\\" ("\\" | "'" | '"' | "n" | "r" | "t")
Literal          -> [a-zA-Z]([a-zA-Z0-9_])*

Function         -> LAST_14_DAYS | LAST_30_DAYS | LAST_7_DAYS
                  | LAST_BUSINESS_WEEK | LAST_MONTH | LAST_WEEK_MON_SUN
                  | LAST_WEEK_SUN_SAT | THIS_MONTH | THIS_WEEK_MON_TODAY
                  | THIS_WEEK_SUN_TODAY | TODAY | YESTERDAY
  • ? indica un elemento opcional.
  • * significa cero o más, y + significa uno o más.
  • (...) indica una agrupación, mientras que "(" y ")" indican paréntesis literales.
  • [a-z0-9] indica rangos de caracteres y [^...] indica cualquier carácter, excepto los que se enumeran.
  • | significa "o".

Reglas y limitaciones

  • FromClause es obligatorio cuando se consulta GoogleAdsService y se debe omitir cuando se consulta GoogleAdsFieldService.

  • WhereClause admite la combinación de condiciones solo con AND. No se admite el operador lógico OR. En su lugar, usa el operador IN o REGEXP_MATCH.

  • El operador REGEXP_MATCH usa la sintaxis de RE2.

  • Para que coincida con un carácter literal [, ], % o _ con el operador LIKE, encierra el carácter entre corchetes. Por ejemplo, la siguiente condición coincide con todos los valores de campaign.name que comienzan con [Earth_to_Mars]:

    campaign.name LIKE '[[]Earth[_]to[_]Mars[]]%'
    
  • El operador LIKE solo se puede usar en un campo de cadena, no en un array.