Merchant Center Query Language (MCQL) to język zapytań podobny do SQL. MCQL możesz używać z interfejsem Merchant Reports API, aby pobierać dane o skuteczności Twoich produktów i rynku, na którym konkurują.
Gramatyka
Oto gramatyka MCQL (w notacji wyrażeń regularnych):
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
Możesz używać tych symboli:
?oznacza element opcjonalny.*oznacza zero lub więcej, a+oznacza co najmniej jeden.(xxxxxx)oznacza grupę.[a-z0-9]oznacza zakresy znaków.|oznacza „lub”.
Uwzględnianie wielkości liter
Większość operatorów MCQL rozróżnia wielkość liter:
| Operatory | Rozróżnianie wielkości liter |
|---|---|
| = lub != | Z uwzględnieniem wielkości liter |
| (NIE) W | Z uwzględnieniem wielkości liter |
| (NOT) LIKE | Z uwzględnieniem wielkości liter |
| ZAWIERA (...) | Z uwzględnieniem wielkości liter |
| REGEXP_MATCH | Opcjonalnie oba |
Klauzule
Oto klauzule, o które możesz zapytać za pomocą MCQL:
WYBIERZ
Klauzula SELECTzawiera listę pól do pobrania rozdzieloną przecinkami.
Możesz wybrać dowolne pole z używanego widoku. Oto kilka przykładów pól, które możesz wybrać:
W jednym żądaniu możesz wysyłać zapytania o wiele typów pól. Oto przykład:
SELECT
date,
marketing_method,
impressions,
clicks
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
FROM
Klauzula FROM określa tabelę, z której mają być pobierane dane w żądaniu. W klauzuli FROM możesz określić tylko jedno pole. Klauzula FROM jest wymagana w przypadku wszystkich zapytań.
WHERE
Użyj klauzuli WHERE, aby filtrować dane w swoim żądaniu. Klauzula WHERE jest wymagana w przypadku zapytań dotyczących skuteczności.
Możesz filtrować według wszystkich pól segmentów i dodatkowych pól danych, jeśli określisz je w klauzuli SELECT.
Oto przykład użycia właściwości WHERE do zwracania wyświetleń tylko z określonego okresu (miesiąca sierpnia):
SELECT offer_id, impressions
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
W jednym zapytaniu możesz filtrować według wielu warunków za pomocą operatora AND.
Używaj znaku AND między pełnymi warunkami, np. WHERE marketing_method !=
"ADS" AND marketing_method != "ORGANIC". Nie możesz używać znaku AND między wartościami w jednym warunku, np. WHERE marketing_method != "ADS" AND
"ORGANIC".
Oto przykład, który zwraca liczbę kliknięć na ofertę, w przypadku której liczba kliknięć jest większa niż 100, dla metody marketingowej ADS w sierpniu:
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'
Klauzula WHERE nie obsługuje atrybutu OR. W operatorach jest rozróżniana wielkość liter. Pełną listę operatorów znajdziesz w gramatyce.
ORDER BY (opcjonalnie)
Klauzula ORDER BY umożliwia pobieranie wyników w określonej kolejności.
Określ kolejność, podając field_name, a potem ASC lub DESC. Możesz sortować tylko według pól określonych w klauzuli SELECT zapytania. Jeśli nie podasz wartości, domyślnie przyjmuje się ORDER BY.ASC
Poniższe zapytanie porządkuje zwrócone wiersze według liczby kliknięć, od największej do najmniejszej:
SELECT offer_id, clicks
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
ORDER BY clicks DESC
W klauzuli ORDER BY możesz określić wiele pól, używając listy rozdzielonej przecinkami.
Na przykład wyniki tego zapytania są sortowane w kolejności rosnącej według kolumny offer_id, następnie w kolejności malejącej według liczby wyświetleń, a potem w kolejności malejącej według liczby kliknięć:
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
Klauzula LIMIT umożliwia określenie liczby wyników do zwrócenia.
Oto przykład, który zwraca tylko 50 wyników, nawet jeśli dostępnych jest więcej wierszy.
SELECT offer_id, impressions
FROM product_performance_view
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY impressions DESC
LIMIT 50
Użyj pola pageSize, aby obsługiwać długie listy wyników.
Zakresy dat
MCQL umożliwia określenie niestandardowego lub względnego zakresu dat. Aby określić date zakres dla wszystkich zapytań o skuteczność, musisz użyć klauzuli
WHERE.
Niestandardowy
Daty w formacie ISO 8601(RRRR-MM-DD) możesz podać w tych formatach:
date BETWEEN '2021-01-01' AND '2021-01-31'date >= '2021-01-01' AND date <= '2021-01-31'
Ciągi dat możesz definiować za pomocą pojedynczych (') lub podwójnych cudzysłowów (").
Względny
Możesz określić względny zakres dat, np. LAST_30_DAYS lub THIS_MONTH, używając DURING zamiast BETWEEN i AND:
WHERE date DURING LAST_30_DAYS
Pełną listę dostępnych względnych zakresów dat znajdziesz w sekcji gramatyka.