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 Twoich produktów i rynku, na którym się one znajdują.
Gramatyka
Oto referencje 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żyć tych symboli:
?oznacza element opcjonalny.*oznacza co najmniej 0, a+– 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 rozróżnia wielkość liter:
| Operatory | Wielkość liter |
|---|---|
| = lub != | Z uwzględnieniem wielkości liter |
| (NIE) W | Z uwzględnieniem wielkości liter |
| (NIE) TAK | Z uwzględnieniem wielkości liter |
| ZAWIERA (...) | Z uwzględnieniem wielkości liter |
| REGEXP_MATCH | Opcjonalnie oba |
Klauzule
Oto klauzule, których możesz używać w zapytaniach MCQL:
WYBIERZ
Klauzula SELECT przyjmuje listę pól do pobrania, rozdzielonych przecinkami.
Możesz wybrać dowolne pole z widoku, którego używasz. Oto kilka przykładów pól, które możesz wybrać:
W jednym żądaniu możesz wysłać zapytanie dotyczące wielu 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 podać tylko jedno pole. W przypadku wszystkich zapytań wymagana jest klauzula FROM.
WHERE
Aby filtrować dane w ramach żądania, użyj klauzuli WHERE. Klauzula WHERE jest wymagana w przypadku zapytań dotyczących skuteczności.
Możesz filtrować według wszystkich pól segments oraz dodatkowych pól metrics, jeśli określisz je w klauzuli SELECT.
Oto przykład, w którym użyto parametru WHERE, aby zwrócić wyświetlenia tylko z określonego przedziału czasowego (sierpnia):
SELECT offer_id, impressions
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
Za pomocą operatora AND możesz filtrować według wielu warunków w jednym zapytaniu.
Używaj 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 ramach jednego warunku, np. WHERE marketing_method != "ADS" AND
"ORGANIC".
Oto przykład zapytania, które zwraca liczbę kliknięć na ofertę, gdzie w przypadku metody marketingowej ADS w sierpniu było ponad 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 OR. W przypadku operatorów rozróżniana jest 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ść: najpierw field_name, potem ASC lub DESC. Możesz sortować tylko według pól określonych w klauzuli SELECT w zapytaniu. Jeśli nie podasz wartości ORDER BY, zostanie użyta wartość domyślna ASC.
Zapytanie to 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 podać wiele pól, korzystając z listy rozdzielonej przecinkami.
Na przykład wyniki tego zapytania są sortowane w kolejności rosnącej według kolumny offer_id, a potem w kolejności malejącej według liczby wyświetleń, a następnie 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 pozwala określić liczbę 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ń dotyczących skuteczności, musisz użyć klauzuli WHERE.
Inne
Daty w formacie ISO 8601(RRRR-MM-DD) możesz podawać w tych formatach:
date BETWEEN '2021-01-01' AND '2021-01-31'date >= '2021-01-01' AND date <= '2021-01-31'
Ciągi znaków daty możesz definiować za pomocą cudzysłowów pojedynczych (') lub podwójnych (").
Krewny
Możesz określić względny zakres dat, np. LAST_30_DAYS lub THIS_MONTH, używając operatora DURING zamiast BETWEEN i AND:
WHERE date DURING LAST_30_DAYS
Pełną listę dostępnych zakresów dat względnych znajdziesz w sekcji gramatyka.