Merchant Center Query Language

El lenguaje de consulta de Merchant Center (MCQL) es un lenguaje de consulta similar a SQL. Tú puedes usar MCQL con la API de Merchant Reports para recuperan datos de rendimiento sobre 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] hace referencia a los 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 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 recuperarán datos en la solicitud. Puedes solo especificas 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 se requiere para el rendimiento del usuario. Puedes filtrar por todos segments, y los sistemas metrics si las especificas en la cláusula SELECT.

En este ejemplo, se usa WHERE para mostrar impresiones de solo un (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 de una única condición, por ejemplo: WHERE marketingMethod != "ADS" AND "ORGANIC".

Este es un ejemplo que muestra el número de clics por oferta, cuando hay más de 100 clics para el método de marketing ADS durante el mes del 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 un lista completa de operadores, consulta la gramática.

ORDENAR POR (opcional)

La cláusula ORDER BY te permite recuperar resultados en un orden específico.

Especifica el orden con fieldName; luego, ASC o DESC. Solo puedes pedir por campos especificados en la cláusula SELECT de tu consulta. La configuración predeterminada de ORDER BY es Es ASC si no lo especificas.

La siguiente consulta ordena las filas devueltas por cantidad de clics, de mayor al más bajo:

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 con una coma separada lista.

Por ejemplo, los resultados de la siguiente consulta se ordenan en sentido ascendente por offerId, luego en orden descendente por cantidad de impresiones y, luego, en orden descendente Ordenar por 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.

Este es 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 administrar listas largas de resultados.

Intervalos de fechas

Las MCQL te permiten especificar un período personalizado o relativo. Debes usar la Cláusula WHERE para especificar un rango date para todo el rendimiento por lotes.

Personalizado

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 cadenas 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 obtener la lista completa de los períodos relativos disponibles.