Merchant Center Query Language (MCQL) یک زبان پُرسمان مشابه SQL است. میتوانید از MCQL با Merchant Reports API استفاده کنید تا دادههای عملکرد محصولاتتان و بازاری را که در آن رقابت میکنند بازیابی کنید.
دستور زبان
در اینجا مرجع دستور زبان MCQL (در نماد عبارت باقاعده) آمده است:
Query -> SelectClause FromClause? WhereClause? OrderByClause? LimitClause?
SelectClause -> SELECT FieldName (, FieldName)*
FromClause -> FROM TableName
WhereClause -> WHERE Condition (AND Condition)*
OrderByClause -> ORDER BY Ordering (, Ordering)*
LimitClause -> LIMIT PositiveInteger
Condition -> FieldName Operator Value | FieldName BETWEEN Value AND Value
Operator -> = | != | > | >= | < | <= | <> | IN | NOT IN |
CONTAINS ANY | CONTAINS ALL | CONTAINS NONE | DURING |
LIKE | NOT LIKE | REGEXP_MATCH | NOT REGEXP_MATCH
Value -> Number | NumberList | String | StringList | Function
Ordering -> FieldName (ASC | DESC)?
FieldName -> [a-z] ([a-zA-Z0-9._])*
TableName -> [A-Z] ([a-zA-Z_])*
StringList -> ( String (, String)* )
NumberList -> ( Number (, Number)* )
PositiveInteger -> [1-9] ([0-9])*
Number -> -? [0-9]+ (. [0-9] [0-9]*)?
String -> (' Char* ') | (" Char* ")
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
میتوانید از نمادهای زیر استفاده کنید:
?نشاندهنده عنصر اختیاری است.*یعنی صفر یا بیشتر؛+یعنی یک یا بیشتر.-
(xxxxxx)نشاندهنده گروهبندی است. [a-z0-9]نشاندهنده محدوده نویسه است.|بهمعنی «یا» است.
حروفحساس
اکثر عملگرهای MCQL به حروف بزرگ و کوچک حساس هستند:
| اپراتورها | حروفحساس |
|---|---|
| = یا ≠ | حروفحساس |
| (NOT) IN | حروفحساس |
| (NOT) LIKE | حروفحساس |
| شامل (...) | حروفحساس |
| REGEXP_MATCH | اختیاری هر دو |
بندها
عبارتهایی که میتوانید با MCQL پُرسمان کنید در اینجا آمده است:
انتخاب
عبارت SELECT فهرستی از فیلدهای جداشده با کاما را برای بازیابی دریافت میکند.
میتوانید هر فیلدی را از نمایی که استفاده میکنید انتخاب کنید. در اینجا چند نمونه از فیلدهایی که میتوانید انتخاب کنید آورده شده است:
-
impressionsclicks
-
datemarketing_method
میتوانید چندین نوع فیلد را در یک درخواست پُرسمان کنید. مثالی در اینجا ارائه شده است:
SELECT
date,
marketing_method,
impressions,
clicks
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
فرستنده
بند FROM جدولی را که دادهها باید از آن واکشی شود در درخواست مشخص میکند. فقط میتوانید یک فیلد را در عبارت FROM مشخص کنید. عبارت FROM برای همه پُرسمانها لازم است.
WHERE
از عبارت WHERE برای فیلتر کردن دادههای درخواستتان استفاده کنید. بند WHERE
برای پرسوجوهای
عملکرد لازم است.
میتوانید براساس همه فیلدهای
بخشها
و براساس فیلدهای
سنجههای تکمیلی
فیلتر کنید، بهشرطی که آنها را در عبارت SELECT مشخص کنید.
در اینجا مثالی آورده شده است که از WHERE برای برگرداندن ظهورها فقط از یک دوره زمانی مشخص (ماه اوت) استفاده میکند:
SELECT offer_id, impressions
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
میتوانید بااستفاده از عملگر AND، براساس چند شرط در یک پُرسمان فیلتر کنید.
از AND بین شرایط کامل استفاده کنید، برای مثال: WHERE marketing_method !=
"ADS" AND marketing_method != "ORGANIC". نمیتوانید از AND بین مقادیر در یک شرط استفاده کنید، برای مثال: WHERE marketing_method != "ADS" AND
"ORGANIC".
در اینجا مثالی آورده شده است که تعداد کلیکها را بهازای هر پیشنهاد ویژه برمیگرداند، که در آن
بیشاز ۱۰۰ کلیک برای روش بازاریابی ADS درطول ماه
اوت وجود دارد:
SELECT offer_id, clicks
FROM product_performance_view
WHERE clicks > 100
AND marketing_method = 'ADS'
AND date BETWEEN '2023-08-01' AND '2023-08-31'
بند WHERE از OR پشتیبانی نمیکند. عملگرها حروفحساس هستند. برای
فهرست کامل عملگرها، دستور زبان را ببینید.
ORDER BY (اختیاری)
بند ORDER BY به شما امکان میدهد نتایج را با ترتیب مشخصی بازیابی کنید.
ترتیب را با field_name، سپس ASC یا DESC مشخص کنید. فقط میتوانید براساس فیلدهای مشخصشده در عبارت SELECT پُرسمانتان مرتب کنید. اگر مشخص نکنید، ORDER BY بهطور پیشفرض روی
ASC تنظیم میشود.
پرسوجو زیر ردیفهای برگرداندهشده را براساس تعداد کلیکها، از بیشترین به کمترین، مرتب میکند:
SELECT offer_id, clicks
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
ORDER BY clicks DESC
میتوانید چندین فیلد را در عبارت ORDER BY بااستفاده از فهرست جداشده با کاما مشخص کنید.
برای مثال، نتایج پُرسمان زیر بهترتیب صعودی براساس
offer_id، سپس بهترتیب نزولی براساس تعداد ظهورها، و سپس بهترتیب
نزولی براساس تعداد کلیکها مرتب شده است:
SELECT offer_id, impressions, clicks
FROM product_performance_view
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY
offer_id,
impressions DESC,
clicks DESC
محدودیت
بند LIMIT به شما امکان میدهد تعداد نتایج برگشتی را مشخص کنید.
در اینجا مثالی آورده شده است که فقط ۵۰ نتیجه را برمیگرداند، حتی اگر ردیفهای بیشتری دردسترس باشد.
SELECT offer_id, impressions
FROM product_performance_view
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY impressions DESC
LIMIT 50
از فیلد pageSize برای مدیریت فهرستهای طولانی نتایج استفاده کنید.
محدوده تاریخ
MCQL به شما امکان میدهد محدوده تاریخ سفارشی یا نسبی را مشخص کنید. باید از عبارت
WHERE برای مشخص کردن محدوده date برای همه پرسوجوهای عملکرد استفاده کنید.
سفارشی
میتوانید تاریخهای ISO 8601(سال-ماه-روز) را در قالبهای زیر مشخص کنید:
date BETWEEN '2021-01-01' AND '2021-01-31'date >= '2021-01-01' AND date <= '2021-01-31'
میتوانید رشتههای تاریخ را با علامت نقلقول تکی (') یا علامت نقلقول دوتایی (") تعریف کنید.
خویشاوند
میتوانید محدوده تاریخ نسبی، مثل LAST_30_DAYS یا THIS_MONTH،
را بااستفاده از DURING بهجای BETWEEN و AND مشخص کنید:
WHERE date DURING LAST_30_DAYS
برای مشاهده فهرست کامل محدوده تاریخهای نسبی دردسترس، به دستور زبان مراجعه کنید.