Merchant Center Query Language

שפת השאילתות של 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] מייצג טווחי תווים.
  • פירוש ראשי התיבות | הוא "or".

החשיבות של אותיות רישיות

רוב האופרטורים של MCQL הם תלויי אותיות רישיות:

אופרטורים התלות באותיות רישיות (Case sensitivity)
= או != תלות באותיות גדולות
(לא) בהודו תלות באותיות גדולות
(לא) LIKE תלות באותיות גדולות
CONTAINS (...) תלות באותיות גדולות
REGEXP_MATCH אופציונלי: שניהם

סעיפים

אלה הסעיפים שאפשר להריץ עליהם שאילתה ב-MCQL:

SELECT

התנאי SELECT משתמש ברשימת שדות שמופרדים בפסיקים שצריך לאחזר.

ניתן לבחור כל שדה מהתצוגה שבה משתמשים. הנה כמה דוגמאות לשדות שאפשר לבחור:

אפשר לשלוח שאילתות לגבי כמה סוגי שדות בבקשה אחת. לדוגמה:

SELECT
  date,
  marketingMethod,
  impressions,
  clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'

FROM

הסעיף FROM מציין את הטבלה שממנה יש לאחזר נתונים בבקשה. ניתן לציין רק שדה אחד בסעיף FROM. הסעיף FROM נדרש לכל השאילתות.

WHERE

ניתן להשתמש בסעיף WHERE כדי לסנן את הנתונים עבור הבקשה. הסעיף WHERE נדרש לשאילתות ביצועים. ניתן לך לסנן לפי כל שדות הפלחים, ולפי שדות metrics נוספים אם מציינים אותם בסעיף SELECT.

הנה דוגמה שבה נעשה שימוש ב-WHERE כדי להחזיר חשיפות רק מתקופת זמן מסוימת (חודש אוגוסט):

SELECT offerId, impressions
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'

אפשר לסנן לפי כמה תנאים בשאילתה יחידה באמצעות האופרטור AND. צריך להשתמש ב-AND בין תנאים מלאים, לדוגמה: WHERE marketingMethod != "ADS" AND marketingMethod != "ORGANIC". אי אפשר להשתמש ב-AND בין ערכים בתנאי יחיד, לדוגמה: WHERE marketingMethod != "ADS" AND "ORGANIC".

הנה דוגמה שמציגה את מספר הקליקים לכל מוצר, כאשר שיטת השיווק ADS קיבלה יותר מ-100 קליקים, במהלך חודש אוגוסט:

SELECT offerId, clicks
FROM ProductPerformanceView
WHERE clicks > 100
  AND marketingMethod = 'ADS'
  AND date BETWEEN '2020-08-01' AND '2020-08-31'

הסעיף WHERE לא תומך בOR. האופרטורים הם תלויי אותיות רישיות. לרשימת האופרטורים המלאה, ראו grammar.

ORDER BY (אופציונלי)

הסעיף ORDER BY מאפשר לאחזר תוצאות בסדר מסוים.

צריך לציין את הסדר לפי fieldName, ולאחר מכן ASC או DESC. ניתן לך לסדר רק לפי השדות שצוינו בסעיף SELECT בשאילתה. אם לא תציינו ערך, ברירת המחדל של ORDER BY היא ASC.

השאילתה הבאה מסדרת את השורות שהוחזרו לפי מספר הקליקים, מהגבוה לנמוך:

SELECT offerId, clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY clicks DESC

אפשר לציין כמה שדות בסעיף ORDER BY באמצעות רשימה שמופרדת בפסיקים.

לדוגמה, התוצאות של השאילתה הבאה ממוינות בסדר עולה לפי offerId, בסדר יורד לפי מספר החשיפות, ובסדר יורד לפי מספר הקליקים:

SELECT offerId, impressions, clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY
  offerId,
  impressions DESC,
  clicks DESC

הגבלה

הסעיף LIMIT מאפשר לציין את מספר התוצאות שיוחזרו.

הנה דוגמה שמחזירה רק 50 תוצאות, גם אם יש עוד שורות.

SELECT offerId, impressions
FROM ProductPerformanceView
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

ראו דקדוק לרשימה המלאה של טווחי התאריכים היחסיים הזמינים.