Merchant Center Query Language (MCQL) est un langage de requête semblable à SQL. Toi vous pouvez utiliser MCQL avec l'API Merchant Reports pour pour récupérer les données sur les performances de vos produits et du marché sur lequel ils sont en concurrence.
Grammaire
Voici la documentation de référence sur la grammaire MCQL (dans la notation d'expression régulière):
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
Vous pouvez utiliser les symboles suivants:
?
indique un élément facultatif.*
signifie zéro ou plus.+
signifie un ou plusieurs.(xxxxxx)
indique un regroupement.[a-z0-9]
signifie des plages de caractères.|
signifie "ou".
Sensibilité à la casse
La plupart des opérateurs MCQL sont sensibles à la casse:
Opérateurs | Sensibilité à la casse |
---|---|
= ou != | Sensible à la casse |
(PAS) À L'ENTRÉE | Sensible à la casse |
(NOT) J'AIME | Sensible à la casse |
CONTAINS (...) | Sensible à la casse |
REGEXP_MATCH | Les deux (facultatif) |
Clauses
Voici les clauses que vous pouvez interroger avec MCQL:
SELECT
La clause SELECT
accepte une liste de champs à récupérer, séparés par une virgule.
Vous pouvez sélectionner n'importe quel champ de la vue utilisée. Voici quelques exemples que vous pouvez sélectionner:
Vous pouvez interroger plusieurs types de champs dans une même requête. Exemple :
SELECT
date,
marketingMethod,
impressions,
clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
FROM
La clause FROM
spécifie la table à partir de laquelle extraire les données de la requête. Vous pouvez
ne spécifiez qu'un seul champ dans la clause FROM
. La clause FROM
est obligatoire pour
toutes les requêtes.
WHERE
Utilisez la clause WHERE
pour filtrer les données associées à votre requête. La clause WHERE
est obligatoire pour les performances
requêtes.
Vous pouvez filtrer
segments,
et en fonction
metrics si
vous les spécifiez dans la clause SELECT
.
Voici un exemple qui utilise WHERE
pour renvoyer les impressions uniquement à partir d'une
Période (mois d'août):
SELECT offerId, impressions
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
Vous pouvez filtrer les données selon plusieurs conditions dans une même requête à l'aide de l'opérateur AND
.
Utilisez AND
entre les conditions complètes, par exemple: WHERE marketingMethod !=
"ADS" AND marketingMethod != "ORGANIC"
. Vous ne pouvez pas utiliser AND
entre les valeurs d'une
condition unique, par exemple: WHERE marketingMethod != "ADS" AND "ORGANIC"
.
Voici un exemple qui renvoie le nombre de clics par offre, lorsqu'il y a
plus de 100 clics pour la méthode marketing ADS
, au cours du mois de
Août:
SELECT offerId, clicks
FROM ProductPerformanceView
WHERE clicks > 100
AND marketingMethod = 'ADS'
AND date BETWEEN '2020-08-01' AND '2020-08-31'
La clause WHERE
n'est pas compatible avec OR
. Les opérateurs sont sensibles à la casse. Pour une
la liste complète des opérateurs, consultez la section grammaire.
ORDER BY (facultatif)
La clause ORDER BY
vous permet de récupérer les résultats dans un ordre spécifié.
Spécifiez l'ordre par fieldName
, puis ASC
ou DESC
. Vous ne pouvez commander que par
spécifiés dans la clause SELECT
de votre requête. Valeur par défaut de ORDER BY
:
ASC
si vous ne spécifiez aucune valeur.
La requête suivante trie les lignes renvoyées par nombre de clics, dans l'ordre décroissant par ordre décroissant:
SELECT offerId, clicks
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY clicks DESC
Vous pouvez spécifier plusieurs champs dans la clause ORDER BY
à l'aide d'un fichier
liste.
Par exemple, les résultats de la requête suivante sont triés dans l’ordre croissant par
offerId
, puis par ordre décroissant du nombre d'impressions, puis par ordre décroissant
trier par nombre 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 clause LIMIT
vous permet de spécifier le nombre de résultats à renvoyer.
Voici un exemple qui renvoie uniquement 50 résultats, même si davantage de lignes sont disponibles.
SELECT offerId, impressions
FROM ProductPerformanceView
WHERE date BETWEEN '2020-08-01' AND '2020-08-31'
ORDER BY impressions DESC
LIMIT 50
Utilisez le champ pageSize
pour gérer de longues listes de résultats.
Périodes
La requête MCQL vous permet de spécifier une plage de dates personnalisée ou relative. Vous devez utiliser le
La clause WHERE
pour spécifier une plage date
pour toutes les performances
requêtes.
Personnalisée
Vous pouvez spécifier les dates ISO 8601(AAAA-MM-JJ) dans les formats suivants:
date BETWEEN '2021-01-01' AND '2021-01-31'
date >= '2021-01-01' AND date <= '2021-01-31'
Vous pouvez définir des chaînes de date avec des guillemets simples ('
) ou doubles
("
).
Relative
Vous pouvez spécifier une plage de dates relative, telle que LAST_30_DAYS
ou THIS_MONTH
,
en utilisant DURING
au lieu de BETWEEN
et AND
:
WHERE date DURING LAST_30_DAYS
Consultez la section grammaire pour obtenir la liste complète des plages de dates relatives disponibles.