Structure d'une requête

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