Язык запросов Merchant Center (MCQL) — это язык запросов, похожий на SQL. Вы можете использовать MCQL с API отчетов Merchant Reports для получения данных о производительности ваших товаров и рынке, на котором они конкурируют.
Грамматика
Вот справочник по грамматике 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 чувствительны к регистру:
| Операторы | Учитывается регистр символов |
|---|---|
| = или != | С учетом регистра |
| (НЕ) В | С учетом регистра |
| (НЕ) НРАВИТСЯ | С учетом регистра |
| СОДЕРЖИТ (...) | С учетом регистра |
| 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 обязательно для всех запросов.
ГДЕ
Используйте предложение 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" .
Вот пример, который возвращает количество кликов по каждому предложению, где количество кликов превышает 100, для метода маркетинга ADS в течение августа:
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 позволяет получать результаты в указанном порядке.
Укажите порядок сортировки по field_name , а затем по ASC или DESC . Сортировка возможна только по полям, указанным в предложении SELECT вашего запроса. Если порядок сортировки не указан, по умолчанию используется порядок ASC для параметра ORDER BY .
Следующий запрос упорядочивает возвращаемые строки по количеству кликов, от наибольшего к наименьшему:
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 позволяет указать количество возвращаемых результатов.
Вот пример, который возвращает только 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 (ГГГГ-ММ-ДД) можно указывать в следующих форматах:
-
date BETWEEN '2021-01-01' AND '2021-01-31' -
date >= '2021-01-01' AND date <= '2021-01-31'
Строковые значения даты можно задавать как в одинарных кавычках ( ' ), так и в двойных кавычках ( " ).
Родственник
Вы можете указать относительный диапазон дат, например, LAST_30_DAYS или THIS_MONTH , используя DURING вместо BETWEEN и AND :
WHERE date DURING LAST_30_DAYS
Полный список доступных относительных диапазонов дат см. в разделе «Грамматика» .