Merchant Center Query Language

Merchant Center Query Language (MCQL) एक क्वेरी लैंग्वेज है. यह SQL की तरह ही होती है. अपने प्रॉडक्ट और उनके जैसे प्रॉडक्ट बेचने वाले कारोबारियों या कंपनियों की परफ़ॉर्मेंस का डेटा पाने के लिए, Merchant Reports API के साथ MCQL का इस्तेमाल किया जा सकता है.

व्याकरण

यहां 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
  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 क्लॉज़ ज़रूरी है. सभी सेगमेंट फ़ील्ड के हिसाब से फ़िल्टर किया जा सकता है. साथ ही, अगर आपने 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 मार्केटिंग के तरीके के लिए, हर ऑफ़र पर मिले क्लिक की संख्या दिखाई गई है. इसमें उन ऑफ़र को शामिल किया गया है जिन पर 100 से ज़्यादा क्लिक मिले हैं:

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

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 की मदद से, कस्टम या तारीख की सीमा तय की जा सकती है. आपको सभी परफ़ॉर्मेंस क्वेरी के लिए, date रेंज तय करने के लिए WHERE क्लॉज़ का इस्तेमाल करना होगा.

पसंद के मुताबिक

ISO 8601(YYYY-MM-DD) फ़ॉर्मैट में तारीखें इन फ़ॉर्मैट में दी जा सकती हैं:

  • date BETWEEN '2021-01-01' AND '2021-01-31'
  • date >= '2021-01-01' AND date <= '2021-01-31'

तारीख की स्ट्रिंग को सिंगल कोट (') या डबल कोट (") में रखा जा सकता है.

संबंधी

BETWEEN और AND के बजाय DURING का इस्तेमाल करके, तारीख की मिलती-जुलती सीमा तय की जा सकती है. जैसे, LAST_30_DAYS या THIS_MONTH:

WHERE date DURING LAST_30_DAYS

उपलब्ध तारीख की पूरी सूची देखने के लिए, व्याकरण देखें.