Les requêtes sur des champs de métrique et de segment peuvent être envoyées à la méthode reports.search
. Pour créer une requête dans le langage de requête Merchant Center, vous devez d'abord la rédiger à l'aide de sa grammaire. Une requête se compose de plusieurs clauses :
SELECT
FROM
WHERE
ORDER BY
LIMIT
Les clauses utilisent des noms de champ, des noms de table, des opérateurs, des conditions et des tris pour vous aider à sélectionner les données souhaitées. Une fois ces éléments combinés en une seule requête, celle-ci peut être exécutée à l'aide de Google Content API for Shopping. Voyons comment utiliser chaque clause.
Clauses
SELECT
La clause SELECT
spécifie un ensemble de champs à extraire dans la requête. SELECT
utilise une liste de métriques et de champs de segment séparés par une virgule, renvoyant les valeurs dans la réponse. La clause SELECT
est obligatoire dans une requête.
Voici un exemple de requête qui sélectionne les métriques de clics dans une table donnée :
SELECT
metrics.clicks
FROM MerchantPerformanceView
WHERE segments.date BETWEEN ‘2020-08-01’ AND ‘2020-08-31’
Vous pouvez également interroger différents types de champs dans une même requête :
SELECT
segments.date,
segments.program,
metrics.impressions,
metrics.clicks
FROM MerchantPerformanceView
WHERE segments.date BETWEEN ‘2020-08-01’ AND ‘2020-08-31’
Champs de segment
segments.date
segments.program
Métriques
metrics.impressions
metrics.clicks
Certains champs ne sont pas autorisés dans la clause SELECT
en raison de la restriction suivante :
- Interrogation de champs de segment sans au moins un champ de métrique
Vous trouverez des informations sur la condition ci-dessus dans notre documentation de référence.
FROM
La clause FROM
spécifie la table dont vous souhaitez extraire les données dans la requête. La table de la clause FROM
définit les champs qui peuvent être utilisés par toutes les autres clauses d'une requête donnée. Une seule table peut être spécifiée dans la clause FROM
. Actuellement, seule la table MerchantPerformanceView est acceptée.
La clause FROM
est obligatoire dans une requête adressée à la méthode search
sur le service reports
.
WHERE
La clause WHERE
spécifie les conditions à appliquer lors du filtrage des données pour la requête. Lorsque vous utilisez la clause WHERE
, une ou plusieurs conditions peuvent être spécifiées en utilisant AND
comme séparateur. Chaque condition doit respecter le format field_name Operator value
. Tous les champs de segment peuvent être utilisés dans la clause WHERE
, mais les champs de métrique doivent être spécifiés dans la clause SELECT
pour pouvoir être utilisés dans la clause WHERE
. La clause WHERE
est obligatoire dans une requête, car vous devez toujours spécifier la plage de dates pour laquelle vous souhaitez afficher vos données de performances.
Voici un exemple d'utilisation de WHERE
pour afficher des métriques d'une période donnée :
SELECT
segments.offer_id,
metrics.impressions
FROM MerchantPerformanceView
WHERE segments.date BETWEEN ‘2020-08-01’ AND ‘2020-08-31’
Vous pouvez combiner plusieurs conditions pour filtrer les données. Cet exemple affiche le nombre de clics par offre pour le programme SHOPPING_ADS, où le nombre de clics est supérieur à 100 sur une période de 30 jours.
SELECT
segments.offer_id,
segments.program,
metrics.clicks
FROM MerchantPerformanceView
WHERE metrics.clicks > 100
AND segments.program = SHOPPING_ADS
AND segments.date BETWEEN ‘2020-08-01’ AND ‘2020-08-31’;
Dans la requête suivante, vous remarquerez que segments.date
a été sélectionné.
Que vous sélectionniez segments.date
ou non, une plage de dates finie doit toujours être fournie dans la clause WHERE
pour récupérer les données de performances.
SELECT
segments.date,
metrics.clicks
FROM MerchantPerformanceView
WHERE segments.date BETWEEN ‘2020-08-01’ AND ‘2020-08-31’
Lors du filtrage, vous devez savoir que votre opérateur est sensible à la casse.
Pour obtenir la liste complète des opérateurs, consultez la grammaire du langage.
ORDER BY
La clause ORDER BY
spécifie l'ordre dans lequel les résultats doivent être affichés. Cela vous permet d'organiser les données par ordre croissant ou décroissant en fonction d'un nom de champ. Chaque tri est spécifié en tant que field_name
suivi de ASC
ou DESC
. Si vous ne spécifiez pas ASC
ni DESC
, le tri utilise ASC
par défaut. Seuls les champs spécifiés dans la clause SELECT
peuvent être utilisés dans la clause ORDER BY
. La clause ORDER BY
est facultative dans une requête.
La requête suivante trie les lignes affichées par nombre de clics, du plus élevé au plus faible :
SELECT
segments.offer_id,
metrics.clicks
FROM MerchantPerformanceView
WHERE segments.date BETWEEN ‘2020-08-01’ AND ‘2020-08-31’
ORDER BY metrics.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. Le tri s'effectue dans la même séquence que celle spécifiée dans la requête.
Par exemple, dans cette requête, les résultats sont triés par ordre croissant d'offer_id
, puis par nombre décroissant d'impressions, puis par nombre décroissant de clics :
SELECT
segments.offer_id,
metrics.impressions,
metrics.clicks
FROM MerchantPerformanceView
WHERE segments.date BETWEEN ‘2020-08-01’ AND ‘2020-08-31’
ORDER BY
segments.offer_id,
metrics.impressions DESC,
metrics.clicks DESC
LIMIT
La clause LIMIT
permet de spécifier le nombre de résultats à afficher.
Elle est utile si vous ne souhaitez obtenir qu'un récapitulatif.
Par exemple, LIMIT
peut être utilisé pour limiter le nombre total de résultats pour la requête suivante :
SELECT
segments.program,
segments.offer_id,
metrics.impressions
FROM MerchantPerformanceView
WHERE segments.date BETWEEN ‘2020-08-01’ AND ‘2020-08-31’
ORDER BY metrics.impressions DESC
LIMIT 50