Tata bahasa Google Ads Query Language

Halaman ini berisi referensi tata bahasa Google Ads Query Language. Untuk mengetahui detail struktur kueri, lihat Struktur kueri.

Referensi tata bahasa

Berikut referensi tata bahasa Google Ads Query Language (dalam notasi ekspresi reguler):

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
  • ? menunjukkan elemen opsional.
  • * berarti nol atau lebih; + berarti satu atau lebih.
  • (...) menunjukkan pengelompokan, sedangkan "(" dan ")" menunjukkan tanda kurung literal.
  • [a-z0-9] menandakan rentang karakter, dan [^...] menandakan karakter apa pun kecuali karakter yang tercantum.
  • | adalah singkatan dari "atau".

Aturan dan batasan

  • FromClause wajib ada saat membuat kueri GoogleAdsService dan harus dihilangkan saat membuat kueri GoogleAdsFieldService.

  • WhereClause hanya mendukung penggabungan kondisi dengan AND. OR logis tidak didukung; gunakan operator IN atau REGEXP_MATCH sebagai gantinya.

  • Operator REGEXP_MATCH menggunakan sintaksis RE2.

  • Untuk mencocokkan [, ], %, atau _ literal menggunakan operator LIKE, apit karakter dalam tanda kurung siku. Misalnya, kondisi berikut cocok dengan semua nilai campaign.name yang diawali dengan [Earth_to_Mars]:

    campaign.name LIKE '[[]Earth[_]to[_]Mars[]]%'
    
  • Operator LIKE hanya dapat digunakan pada kolom string, bukan array.