Grammatica di Google Ads Query Language

Questa pagina contiene il riferimento alla grammatica del linguaggio di query Google Ads. Per i dettagli sulla struttura delle query, vedi Struttura delle query.

Riferimento grammaticale

Di seguito è riportato il riferimento alla grammatica di Google Ads Query Language (nella notazione delle espressioni regolari):

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 facoltativo.
  • * significa zero o più; + significa uno o più.
  • (...) indica un raggruppamento, mentre "(" e ")" indicano parentesi letterali.
  • [a-z0-9] indica gli intervalli di caratteri e [^...] indica qualsiasi carattere tranne quelli elencati.
  • | sta per "o".

Regole e limitazioni

  • FromClause è obbligatorio quando si esegue una query su GoogleAdsService e deve essere omesso quando si esegue una query su GoogleAdsFieldService.

  • WhereClause supporta la combinazione di condizioni solo con AND. L'operatore logico OR non è supportato. Utilizza invece l'operatore IN o REGEXP_MATCH.

  • L'operatore REGEXP_MATCH utilizza la sintassi RE2.

  • Per trovare una corrispondenza letterale con [, ], % o _ utilizzando l'operatore LIKE, racchiudi il carattere tra parentesi quadre. Ad esempio, la seguente condizione corrisponde a tutti i valori campaign.name che iniziano con [Earth_to_Mars]:

    campaign.name LIKE '[[]Earth[_]to[_]Mars[]]%'
    
  • L'operatore LIKE può essere utilizzato solo su un campo stringa, non su un array.