Gramática del lenguaje de consulta de Google Ads

Esta página contiene la referencia de la gramática del Lenguaje de consulta de Google Ads. Para obtener detalles sobre la estructura de las consultas, consulta Estructura de las consultas.

Referencia de la gramática

Esta es 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 solo admite la combinación de condiciones con AND. No se admite OR lógico; en su lugar, usa el operador IN o REGEXP_MATCH.

  • El operador REGEXP_MATCH usa la sintaxis de RE2.

  • Para hacer coincidir un valor 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.