Język zapytań Merchant Center (MCQL) to język zapytań podobny do SQL. Za pomocą MCQL i interfejsu Merchant Reports API możesz pobierać dane o skuteczności swoich produktów i rynku, na którym konkurują.
Gramatyka
Oto dokumentacja gramatyki 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 1.(xxxxxx)oznacza grupowanie.[a-z0-9]oznacza zakresy znaków.|oznacza „lub”.
Uwzględnianie wielkości liter
Większość operatorów MCQL uwzględnia wielkość liter:
| Operatory | Uwzględnianie wielkości liter |
|---|---|
| = lub != | Z uwzględnieniem wielkości liter |
| (NOT) IN | Z uwzględnieniem wielkości liter |
| (NOT) LIKE | Z uwzględnieniem wielkości liter |
| CONTAINS (...) | Z uwzględnieniem wielkości liter |
| REGEXP_MATCH | Opcjonalnie obie |
Klauzule
Oto klauzule, o które możesz wysyłać zapytania za pomocą MCQL:
WYBIERZ
Klauzula SELECT przyjmuje listę pól rozdzieloną przecinkami do pobrania.
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 pola różnych typów. 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 1 pole. Klauzula FROM jest wymagana we wszystkich zapytaniach.
WHERE
Za pomocą klauzuli WHERE możesz filtrować dane w żądaniu. Klauzula WHERE jest wymagana w zapytaniach o skuteczność.
Możesz filtrować według wszystkich
segmentów pól,
oraz dodatkowych
danych pól, jeśli
określisz je w klauzuli SELECT.
Oto przykład użycia klauzuli WHERE do zwracania wyświetleń tylko z określonego okresu (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 operatora AND między pełnymi warunkami, np. WHERE marketing_method !=
"ADS" AND marketing_method != "ORGANIC". Nie możesz używać 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 w sierpniu w metodzie marketingowej ADS było więcej niż 100 kliknięć:
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 operatora OR. Operatory uwzględniają wielkość liter. Pełną listę operatorów znajdziesz w sekcji Gramatyka.
ORDER BY (opcjonalnie)
Klauzula ORDER BY umożliwia pobieranie wyników w określonej kolejności.
Określ kolejność według field_name, a następnie ASC lub DESC. Możesz sortować tylko według pól określonych w klauzuli SELECT w zapytaniu. ORDER BY domyślnie używa
ASC, jeśli nie określisz.
To zapytanie sortuje 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 rosnąco według offer_id, a następnie malejąco według liczby wyświetleń i 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
Aby obsługiwać długie listy wyników, użyj pola pageSize.
Zakresy dat
MCQL umożliwia określenie niestandardowego lub względnego zakresu dat. Aby określić zakres date dla wszystkich zapytań o
skuteczność
, musisz użyć klauzuli
WHERE.
Niestandardowy
Daty w formacie ISO 8601(RRRR-MM-DD) możesz określić 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 cudzysłowów (') lub podwójnych
(").
Względny
Możesz określić względny zakres dat, np. LAST_30_DAYS lub THIS_MONTH, używając klauzuli 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.