El lenguaje de consulta de Merchant Center (MCQL) es similar a SQL. Puedes usar MCQL con la API de Merchant Reports para recuperar datos de rendimiento de tus productos y el mercado en el que compiten.
Gramática
Esta es la referencia gramatical de MCQL (en notación de expresiones regulares):
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]
significa 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 |
(NO) EN | Distinción entre mayúsculas y minúsculas |
(NO ME GUSTA) | Distinción entre mayúsculas y minúsculas |
CONTIENE (...) | Distinción entre mayúsculas y minúsculas |
REGEXP_MATCH | Ambos (opcionales) |
modelo de la UE
Estas son las cláusulas que puedes consultar con MCQL:
SELECT
La cláusula SELECT
toma una lista de campos separados por comas para recuperar.
Puedes seleccionar cualquier campo de la vista que estés usando. Estos son algunos ejemplos de los campos que puedes seleccionar:
Puedes consultar varios tipos de campos en una sola solicitud. Por ejemplo:
SELECT
date,
marketingMethod,
impressions,
clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
FROM
La cláusula FROM
especifica la tabla de la que se deben recuperar 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 metrics adicionales si los especificas en la cláusula SELECT
.
A continuación, te mostramos un ejemplo en el que se usa WHERE
para mostrar impresiones de solo un período específico (el mes de agosto):
SELECT offerId, impressions
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
Puedes filtrar por varias condiciones en una sola consulta con el operador AND
.
Usa AND
entre condiciones completas, por ejemplo: WHERE marketingMethod !=
"ADS" AND marketingMethod != "ORGANIC"
. No puedes usar AND
entre valores en una sola condición, por ejemplo: WHERE marketingMethod != "ADS" AND "ORGANIC"
.
A continuación, te mostramos un ejemplo que muestra la cantidad de clics por oferta, cuando hay más de 100 clics para el método de marketing ADS
durante el mes de agosto:
SELECT offerId, clicks
FROM ProductPerformanceView
WHERE clicks > 100
AND marketingMethod = 'ADS'
AND date BETWEEN '2020-08-01' AND '2020-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.
ORDENAR POR (opcional)
La cláusula ORDER BY
te permite recuperar los resultados en un orden específico.
Especifica el orden con una fieldName
, 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 que se muestran por la cantidad de clics, de mayor a menor:
SELECT offerId, clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY clicks DESC
Puedes especificar varios campos en la cláusula ORDER BY
mediante una lista separada por comas.
Por ejemplo, los resultados de la siguiente consulta se ordenan de manera ascendente por offerId
, luego, en orden descendente por cantidad de impresiones y, por último, en orden descendente según la cantidad de clics:
SELECT offerId, impressions, clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY
offerId,
impressions DESC,
clicks DESC
LIMIT
La cláusula LIMIT
te permite especificar la cantidad de resultados que se mostrarán.
Aquí hay un ejemplo que devuelve solo 50 resultados, incluso si hay más filas disponibles.
SELECT offerId, impressions
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY impressions DESC
LIMIT 50
Usa el campo pageSize
para manejar listas largas de resultados.
Intervalos de fechas
MCQL te permite especificar un período personalizado o relativo. Debes usar la cláusula WHERE
si quieres especificar un rango date
para todas las consultas de rendimiento.
Personalizada
Puedes especificar las 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 strings de fecha con comillas simples ('
) o comillas dobles ("
).
Relativo
Puedes especificar un período relativo, como LAST_30_DAYS
o THIS_MONTH
, mediante DURING
en lugar de BETWEEN
y AND
:
WHERE date DURING LAST_30_DAYS
Consulta la gramática para ver la lista completa de períodos relativos disponibles.