Le langage de requête Merchant Center (MCQL) est un langage de requête semblable à SQL. Vous pouvez utiliser MCQL avec l'API Merchant Reports pour récupérer les données sur les performances de vos produits et du marché sur lequel ils évoluent.
Grammaire
Voici la documentation de référence sur la grammaire du langage de requête 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 plusieurs ;+
signifie un ou plusieurs.(xxxxxx)
indique un ensemble.[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 |
(NOT) IN | Sensible à la casse |
(NOT) LIKE | Sensible à la casse |
CONTAINS (…) | Sensible à la casse |
REGEXP_MATCH | Sensible ou non à la casse, au choix |
Clauses
Voici les clauses que vous pouvez interroger avec MCQL:
SELECT
La clause SELECT
prend une liste de champs à récupérer, séparés par une virgule.
Vous pouvez sélectionner n'importe quel champ de la vue que vous utilisez. Voici quelques exemples de champs que vous pouvez sélectionner:
Vous pouvez interroger plusieurs types de champs dans une même requête. Exemple :
SELECT
date,
marketing_method,
impressions,
clicks
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
FROM
La clause FROM
spécifie la table dont vous souhaitez extraire les données dans la requête. Vous ne pouvez spécifier 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 de votre requête. La clause WHERE
est requise pour les requêtes de performances.
Vous pouvez filtrer par tous les champs de segments et par des champs de métriques supplémentaires si vous les spécifiez dans la clause SELECT
.
Voici un exemple qui utilise WHERE
pour renvoyer uniquement les impressions d'une période spécifiée (le mois d'août):
SELECT offer_id, impressions
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
Vous pouvez filtrer par 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 marketing_method !=
"ADS" AND marketing_method != "ORGANIC"
. Vous ne pouvez pas utiliser AND
entre les valeurs d'une seule condition, par exemple: WHERE marketing_method != "ADS" AND
"ORGANIC"
.
Voici un exemple qui renvoie le nombre de clics par offre, où il y a plus de 100 clics, pour la méthode marketing ADS
, au cours du mois d'août:
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 clause WHERE
n'est pas compatible avec OR
. Les opérateurs sont sensibles à la casse. Pour obtenir la liste complète des opérateurs, consultez la 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 un field_name
, puis ASC
ou DESC
. Vous ne pouvez trier que par les champs spécifiés dans la clause SELECT
de votre requête. ORDER BY
est défini par défaut sur ASC
si vous ne le spécifiez pas.
La requête suivante trie les lignes affichées par nombre de clics, du plus élevé au plus faible:
SELECT offer_id, clicks
FROM product_performance_view
WHERE date BETWEEN '2023-08-01' AND '2023-08-31'
ORDER BY clicks DESC
Vous pouvez spécifier plusieurs champs dans la clause ORDER BY
à l'aide d'une liste d'éléments séparés par une virgule.
Par exemple, les résultats de la requête suivante sont triés par ordre croissant d'offer_id
, puis par nombre décroissant d'impressions, puis par nombre décroissant de clics:
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
LIMIT
La clause LIMIT
vous permet de spécifier le nombre de résultats à renvoyer.
Voici un exemple qui ne renvoie que 50 résultats, même si d'autres lignes sont disponibles.
SELECT offer_id, impressions
FROM product_performance_view
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
Le langage MCQL vous permet de spécifier une plage de dates personnalisée ou relative. Vous devez utiliser la clause WHERE
pour spécifier une plage date
pour toutes les requêtes de performances.
Personnalisée
Vous pouvez spécifier les dates ISO 8601(AAAA-MM-JJ) aux 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 comportant des guillemets simples ('
) ou doubles ("
).
Relative
Vous pouvez spécifier une plage de dates relative, comme LAST_30_DAYS
ou THIS_MONTH
, en utilisant DURING
au lieu de BETWEEN
et AND
:
WHERE date DURING LAST_30_DAYS
Consultez la grammaire pour obtenir la liste complète des plages de dates relatives disponibles.