Merchant Center Query Language (MCQL) è un linguaggio di query simile a SQL. Puoi utilizzare MCQL con l'API Merchant Reports per recuperare i dati sul rendimento dei tuoi prodotti e del mercato in cui competono.
Grammatica
Ecco il riferimento alla grammatica MCQL (in notazione di espressioni regolari):
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.*
indica zero o più;+
indica uno o più.(xxxxxx)
indica un raggruppamento.[a-z0-9]
indica gli intervalli di caratteri.|
sta per "o".
Sensibilità alle maiuscole
La maggior parte degli operatori MCQL è sensibile alle maiuscole:
Operatori | Distinzione tra maiuscole e minuscole |
---|---|
= o != | Maiuscole/minuscole |
(NOT) IN | Maiuscole/minuscole |
(NOT) LIKE | Maiuscole/minuscole |
CONTIENE (...) | Maiuscole/minuscole |
REGEXP_MATCH | Facoltativamente entrambi |
Clausole
Di seguito sono riportate le clausole su cui puoi eseguire query con MCQL:
SELEZIONA
La clausola SELECT
accetta un elenco di campi da recuperare separati da virgole.
Puoi selezionare qualsiasi campo dalla vista in uso. Ecco alcuni esempi di campi che puoi selezionare:
Puoi eseguire query su più tipi di campi in una singola richiesta. Ecco un esempio:
SELECT
date,
marketing_method,
impressions,
clicks
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-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. La clausola WHERE
è obbligatoria per le query sul rendimento.
Puoi filtrare in base a tutti i campi
segmenti e a campi aggiuntivi
metriche se
li specifichi nella clausola SELECT
.
Ecco un esempio che utilizza WHERE
per restituire le impressioni solo di un determinato periodo di tempo (il mese di agosto):
SELECT offer_id, impressions
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
Puoi filtrare in base a più condizioni in una singola query con l'operatore AND
.
Utilizza AND
tra condizioni complete, ad esempio: WHERE marketing_method !=
"ADS" AND marketing_method != "ORGANIC"
. Non puoi utilizzare AND
tra i valori in
una singola condizione, ad esempio: WHERE marketing_method != "ADS" AND
"ORGANIC"
.
Ecco un esempio che restituisce il numero di clic per offerta, se sono presenti più di 100 clic, per il metodo di marketing ADS
durante il mese di 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 clausola WHERE
non supporta OR
. Gli operatori sono sensibili alle maiuscole. Per un
elenco completo degli operatori, consulta la grammatica.
ORDER BY (facoltativo)
La clausola ORDER BY
consente di recuperare i risultati in un ordine specificato.
Specifica l'ordine con un field_name
, quindi ASC
o DESC
. Puoi ordinare solo in base ai campi specificati nella clausola SELECT
della query. Se non lo specifichi, il valore predefinito di ORDER BY
è ASC
.
La seguente query ordina le righe restituite in base al numero di clic, dal più alto al più basso:
SELECT offer_id, clicks
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
ORDER BY clicks DESC
Puoi specificare più campi nella clausola ORDER BY
utilizzando un elenco delimitato da virgole.
Ad esempio, i risultati della seguente query sono ordinati in ordine crescente per
offer_id
, poi in ordine decrescente per numero di impressioni e poi in
ordine decrescente per numero di clic:
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
LIMITE
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 offer_id, impressions
FROM product_performance_view
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
MCQL consente di specificare un intervallo di date personalizzato o relativo. Devi utilizzare la clausola WHERE
per specificare un intervallo date
per tutte le query sul rendimento.
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 le stringhe di date con virgolette singole ('
) o 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 la grammatica per l'elenco completo degli intervalli di date relativi disponibili.