Язык запросов Merchant Center (MCQL) – это язык запросов, аналогичный SQL. Вы можете использовать MCQL с API Merchant Reports API для получения данных о производительности ваших продуктов и рынка, на котором они конкурируют.
Грамматика
Вот справочник по грамматике 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 чувствительны к регистру:
Операторы | Чувствительность к регистру |
---|---|
= или != | С учетом регистра |
(НЕ)В | С учетом регистра |
(НЕ) НРАВИТСЯ | С учетом регистра |
СОДЕРЖИТ (...) | С учетом регистра |
РЕГЭКСП_МАТЧ | Опционально оба |
Положения
Вот предложения, которые вы можете запросить с помощью 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
необходимо для всех запросов.
ГДЕ
Use the WHERE
clause to filter the data for your request. Предложение 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
вашего запроса. ORDER BY
по умолчанию имеет значение ASC
, если вы не укажете.
Следующий запрос упорядочивает возвращаемые строки по количеству кликов, от большего к меньшему:
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 позволяет указать собственный или относительный диапазон дат. Вы должны использовать предложение WHERE
, чтобы указать диапазон date
для всех запросов производительности .
Обычай
Вы можете указать даты ISO 8601(ГГГГ-ММ-ДД) в следующих форматах:
-
date BETWEEN '2021-01-01' AND '2021-01-31'
-
date >= '2021-01-01' AND date <= '2021-01-31'
You can define date strings with either single quotes ( '
) or double quotes ( "
).
Родственник
Вы можете указать относительный диапазон дат, например LAST_30_DAYS
или THIS_MONTH
, используя DURING
вместо BETWEEN
и AND
:
WHERE date DURING LAST_30_DAYS
Полный список доступных относительных диапазонов дат см. в грамматике .