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.