Merchant Center Query Language (MCQL) è un linguaggio di query simile all'SQL. Tu puoi utilizzare MCQL con l'API Merchant Reports per recuperare i dati sul rendimento dei tuoi prodotti e del mercato in cui competono
Grammatica
Di seguito è riportato il riferimento grammaticale di MCQL (nella notazione di espressione regolare):
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
Puoi utilizzare i seguenti simboli:
?
indica un elemento facoltativo.*
significa zero o più;+
indica uno o più.(xxxxxx)
indica un raggruppamento.[a-z0-9]
indica intervalli di caratteri.|
sta per "or".
Sensibilità alle maiuscole
La maggior parte degli operatori MCQL è sensibile alle maiuscole:
Operatori | Distinzione tra maiuscole e minuscole |
---|---|
= o != | Maiuscole/minuscole |
(NON) IN | Maiuscole/minuscole |
(NON) MI PIACE | Maiuscole/minuscole |
CONTIENE (...) | Maiuscole/minuscole |
REGEXP_MATCH | Facoltativamente, entrambe |
Clausole
Ecco le clausole su cui puoi eseguire una query con la MCQL:
SELEZIONA
La clausola SELECT
richiede un elenco di campi separati da virgole da recuperare.
Puoi selezionare qualsiasi campo dalla vista in uso. Ecco alcuni esempi campi che puoi selezionare:
Puoi eseguire query su più tipi di campi in una singola richiesta. Ecco un esempio:
SELECT
date,
marketingMethod,
impressions,
clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
FROM
La clausola FROM
specifica la tabella da cui recuperare i dati nella richiesta. Puoi
specificare un solo campo nella clausola FROM
. La clausola FROM
è obbligatoria per:
tutte le query.
WHERE
Utilizza la clausola WHERE
per filtrare i dati per la tua richiesta. Clausola WHERE
è obbligatorio per le prestazioni
query SQL.
Puoi filtrare in base a tutte
segmenti,
e per altre
campi metriche se
devi specificarle nella clausola SELECT
.
Di seguito è riportato un esempio in cui viene utilizzato WHERE
per restituire impressioni solo da un
periodo di tempo (il mese di agosto):
SELECT offerId, impressions
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
Puoi filtrare in base a più condizioni in una singola query con l'operatore AND
.
Utilizza AND
tra le condizioni complete, ad esempio: WHERE marketingMethod !=
"ADS" AND marketingMethod != "ORGANIC"
. Non puoi utilizzare AND
tra i valori in un
condizione singola, ad esempio: WHERE marketingMethod != "ADS" AND "ORGANIC"
.
Ecco un esempio che restituisce il numero di clic per offerta, dove sono presenti
più di 100 clic, per il metodo di marketing ADS
, durante il mese
Agosto:
SELECT offerId, clicks
FROM ProductPerformanceView
WHERE clicks > 100
AND marketingMethod = 'ADS'
AND date BETWEEN '2020-08-01' AND '2020-08-31'
La clausola WHERE
non supporta OR
. Gli operatori sono sensibili alle maiuscole. Per un
elenco completo degli operatori, vedi grammar.
ORDER BY (facoltativo)
La clausola ORDER BY
consente di recuperare i risultati in un ordine specificato.
Specifica l'ordine in base a fieldName
, quindi ASC
o DESC
. Puoi ordinare solo per
specificati nella clausola SELECT
della query. Per impostazione predefinita, ORDER BY
è impostato su
ASC
se non specificato.
La seguente query ordina le righe restituite per numero di clic, a partire dal più alto al più basso:
SELECT offerId, clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY clicks DESC
Puoi specificare più campi nella clausola ORDER BY
utilizzando una virgola
dall'elenco di lettura.
Ad esempio, i risultati della seguente query vengono ordinati in ordine crescente per
offerId
, poi in ordine decrescente in base al numero di impressioni e poi in ordine decrescente
Ordina per numero di clic:
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 clausola LIMIT
consente di specificare il numero di risultati da restituire.
Ecco un esempio che restituisce solo 50 risultati, anche se sono disponibili più righe.
SELECT offerId, impressions
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY impressions DESC
LIMIT 50
Utilizza il campo pageSize
per gestire lunghi elenchi di risultati.
Intervalli di date
La MCQL ti consente di specificare un intervallo di date personalizzato o relativo. Devi utilizzare
Clausola WHERE
per specificare un intervallo date
per tutte le prestazioni
delle query.
Personalizzato
Puoi specificare le date ISO 8601(AAAA-MM-GG) nei seguenti formati:
date BETWEEN '2021-01-01' AND '2021-01-31'
date >= '2021-01-01' AND date <= '2021-01-31'
Puoi definire stringhe per la data usando virgolette singole ('
) o virgolette doppie
("
).
Relativo
Puoi specificare un intervallo di date relativo, ad esempio LAST_30_DAYS
o THIS_MONTH
,
utilizzando DURING
anziché BETWEEN
e AND
:
WHERE date DURING LAST_30_DAYS
Consulta grammar per l'elenco completo degli intervalli di date relativi disponibili.