دستور زبان «زبان پُرسمان Google Ads»

این صفحه حاوی مرجع دستور زبان Google Ads Query Language است. برای جزئیات ساختار پُرسمان، ساختار پُرسمان را ببینید.

مرجع دستور زبان

در اینجا مرجع دستور زبان 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] نشان‌دهنده محدوده نویسه است و [^...] نشان‌دهنده هر نویسه‌ای به‌جز نویسه‌های فهرست‌شده است.
  • | به‌معنی «یا» است.

قوانین و محدودیت‌ها

  • FromClause هنگام پُرسمان GoogleAdsService لازم است و باید هنگام پُرسمان GoogleAdsFieldService حذف شود.

  • WhereClause فقط از ترکیب شرایط با AND پشتیبانی می‌کند. از OR منطقی پشتیبانی نمی‌شود؛ درعوض از عملگر IN یا REGEXP_MATCH استفاده کنید.

  • اپراتور REGEXP_MATCH از نحو RE2 استفاده می‌کند.

  • برای مطابقت دادن [، ]، %، یا _ واقعی بااستفاده از عملگر LIKE، نویسه را در کروشه قرار دهید. برای مثال، شرط زیر با همه مقادیر campaign.name که با [Earth_to_Mars] شروع می‌شوند مطابقت دارد:

    campaign.name LIKE '[[]Earth[_]to[_]Mars[]]%'
    
  • از عملگر LIKE فقط می‌توان در فیلد رشته استفاده کرد، نه در آرایه.