שפת השאילתות של Merchant Center (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 | תלוי רישיות |
CONTAINS (...) | תלוי רישיות |
REGEXP_MATCH | אפשר גם את שניהם |
משפטי משנה
אלה התנאים שאפשר להשתמש בהם בשאילתות באמצעות MCQL:
SELECT
התנאי SELECT
מקבל רשימה של שדות לאחזור, המופרדים בפסיקים.
אפשר לבחור כל שדה מהתצוגה שבה אתם משתמשים. ריכזנו כאן כמה דוגמאות לשדות שאפשר לבחור:
אפשר לשלוח שאילתות לגבי כמה סוגי שדות בבקשה אחת. לדוגמה:
SELECT
date,
marketing_method,
impressions,
clicks
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
FROM
התנאי FROM
מציין את הטבלה שממנה צריך לאחזר נתונים בבקשה. אפשר לציין רק שדה אחד בפסקה FROM
. התנאי FROM
נדרש בכל השאילתות.
WHERE
משתמשים בפסקה WHERE
כדי לסנן את הנתונים של הבקשה. התנאי WHERE
נדרש לשאילתות ביצועים.
אפשר לסנן לפי כל השדות של segments, וגם לפי שדות נוספים של metrics אם מציינים אותם בפסקה 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"
.
דוגמה למחרוזת שמציגה את מספר הקליקים לכל מבצע, כאשר יש יותר מ-100 קליקים, בשיטת השיווק 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'
אין תמיכה ב-OR
בפסקה WHERE
. המערכת מבחינה בין אותיות רישיות לאותיות רגילות באופרטורים. רשימה מלאה של האופרטורים מופיעה בקטע תחביר.
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
התנאי LIMIT
מאפשר לציין את מספר התוצאות שיש להחזיר.
הנה דוגמה שמחזירה רק 50 תוצאות, גם אם יש שורות נוספות.
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(YYYY-MM-DD) בפורמטים הבאים:
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
בדקדוק מפורטת הרשימה המלאה של טווחי התאריכים היחסיים הזמינים.