El lenguaje de consulta de Merchant Center (MCQL) es un lenguaje de consulta similar a SQL. Puedes usar el MCQL con la API de Merchant Reports para recuperar datos de rendimiento de tus productos y del mercado en el que compiten.
Gramática
Esta es la referencia de la gramática de MCQL (en notación de expresión regular):
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
Puedes usar los siguientes símbolos:
?indica un elemento opcional.*significa cero o más;+significa uno o más.(xxxxxx)indica una agrupación.[a-z0-9]indica rangos de caracteres.|significa "o".
Cómo distinguir mayúsculas de minúsculas
La mayoría de los operadores de MCQL distinguen mayúsculas de minúsculas:
| Operadores | Distinción de mayúsculas |
|---|---|
| = o != | Distinción entre mayúsculas y minúsculas |
| (NOT) IN | Distinción entre mayúsculas y minúsculas |
| (NOT) LIKE | Distinción entre mayúsculas y minúsculas |
| CONTAINS (...) | Distinción entre mayúsculas y minúsculas |
| REGEXP_MATCH | Opcionalmente, ambos |
modelo de la UE
Estas son las cláusulas que puedes consultar con el MCQL:
SELECT
La cláusula SELECT toma una lista separada por comas de los campos que se recuperarán.
Puedes seleccionar cualquier campo de la vista que estés usando. Estos son algunos ejemplos de campos que puedes seleccionar:
Puedes consultar varios tipos de campos en una sola solicitud. Por ejemplo:
SELECT
date,
marketing_method,
impressions,
clicks
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
FROM
La cláusula FROM especifica la tabla de la que se recuperarán los datos en la solicitud. Solo
puedes especificar un campo en la cláusula FROM. La cláusula FROM es obligatoria para
todas las consultas.
WHERE
Usa la cláusula WHERE para filtrar los datos de tu solicitud. La cláusula WHERE
es obligatoria para las consultas
de rendimiento.
Puedes filtrar por todos los campos de segmentos y por campos de métricas adicionales si los especificas en la cláusula SELECT.
A continuación, se muestra un ejemplo en el que se usa WHERE para devolver impresiones solo de un período
específico (el mes de agosto):
SELECT offer_id, impressions
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
Puedes filtrar por varias condiciones en una sola consulta con el operador AND.
Usa AND entre condiciones completas, por ejemplo: WHERE marketing_method !=
"ADS" AND marketing_method != "ORGANIC". No puedes usar AND entre valores en
una sola condición, por ejemplo: WHERE marketing_method != "ADS" AND
"ORGANIC".
Este es un ejemplo que devuelve la cantidad de clics por oferta, en la que hay
más de 100 clics, para el método de marketing ADS, durante el mes de
agosto:
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'
La cláusula WHERE no admite OR. Los operadores distinguen mayúsculas de minúsculas. Para obtener una lista completa de operadores, consulta gramática.
ORDER BY (opcional)
La cláusula ORDER BY te permite recuperar resultados en un orden específico.
Especifica el orden con un field_name y, luego, ASC o DESC. Solo puedes ordenar por
los campos especificados en la cláusula SELECT de tu consulta. ORDER BY se establece de forma predeterminada en
ASC si no lo especificas.
La siguiente consulta ordena las filas devueltas por cantidad de clics, de mayor a menor:
SELECT offer_id, clicks
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
ORDER BY clicks DESC
Puedes especificar varios campos en la cláusula ORDER BY con una lista separada por comas.
Por ejemplo, los resultados de la siguiente consulta se ordenan de forma ascendente por
offer_id, luego, de forma descendente por cantidad de impresiones y, por último,
de forma descendente por cantidad de clics:
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
La cláusula LIMIT te permite especificar la cantidad de resultados que se mostrarán.
Este es un ejemplo que devuelve solo 50 resultados, incluso si hay más filas disponibles.
SELECT offer_id, impressions
FROM product_performance_view
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY impressions DESC
LIMIT 50
Usa el campo pageSize para controlar listas largas de resultados.
Intervalos de fechas
El MCQL te permite especificar un período personalizado o relativo. Debes usar la
cláusula WHERE para especificar un rango de date en todas las consultas de rendimiento.
Personalizado
Puedes especificar fechas ISO 8601(AAAA-MM-DD) en los siguientes formatos:
date BETWEEN '2021-01-01' AND '2021-01-31'date >= '2021-01-01' AND date <= '2021-01-31'
Puedes definir cadenas de fecha con comillas simples (') o dobles (").
Relativo
Puedes especificar un período relativo, como LAST_30_DAYS o THIS_MONTH,
con DURING en lugar de BETWEEN y AND:
WHERE date DURING LAST_30_DAYS
Consulta la gramática para ver la lista completa de los períodos relativos disponibles.