הדקדוק של Google Ads Query Language

בדף הזה מופיע מדריך לדקדוק של שפת השאילתות של Google Ads. פרטים על מבנה השאילתה זמינים במאמר מבנה השאילתה.

הפניה לדקדוק

בהמשך מופיע קישור להפניה לדקדוק של Google Ads Query Language (בסימון של ביטוי רגולרי):

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
  • הסמל ? מציין רכיב אופציונלי.
  • ‫* מייצג אפס או יותר; + מייצג אחד או יותר.
  • הסמל (...) מציין קיבוץ, והסמלים "(" ו-")" מציינים סוגריים מילוליים.
  • ‫[a-z0-9] מציין טווחים של תווים, ו-[^...] מציין תו כלשהו חוץ מהתווים שמופיעים ברשימה.
  • ‫| מייצג 'או'.

כללים ומגבלות

  • כששולחים שאילתה ל-GoogleAdsService, צריך להשתמש ב-FromClause. כששולחים שאילתה ל-GoogleAdsFieldService, צריך להשמיט את .

  • ‫WhereClause תומך בשילוב תנאים רק עם AND. האופרטור הלוגי OR לא נתמך. במקומו צריך להשתמש באופרטור IN או REGEXP_MATCH.

  • האופרטור REGEXP_MATCH משתמש בתחביר RE2.

  • כדי להתאים את התווים [,‏ ],‏ % או _ באמצעות האופרטור LIKE, צריך להקיף את התו בסוגריים מרובעים. לדוגמה, התנאי הבא מתאים לכל הערכים של campaign.name שמתחילים ב-[Earth_to_Mars]:

    campaign.name LIKE '[[]Earth[_]to[_]Mars[]]%'
    
  • אפשר להשתמש באופרטור LIKE רק בשדה מחרוזת, ולא במערך.