Cette documentation ne concerne que Recommendations AI. Pour essayer Retail Search et la console Play Store unifiée pendant la phase de disponibilité limitée, contactez le service commercial Cloud. Si vous ne prévoyez pas d'utiliser Retail Search, restez dans la console "Recommandations" jusqu'à nouvel ordre.

Si vous utilisez la version v1beta de Recommendations AI, migrez vers la version Retail API.

Obtenir des recommandations

Cette page explique comment demander des recommandations pour un utilisateur et un événement utilisateur spécifiques.

Une fois que vous avez importé vos produits et enregistré des événements utilisateur, vous pouvez demander des recommandations de produits pour des utilisateurs spécifiques en fonction des événements enregistrés pour cet utilisateur et de son activité actuelle.

Avant de commencer

Avant de pouvoir accéder à l'API Retail, vous devez créer un projet Google Cloud et configurer l'authentification en suivant les instructions indiquées sur la page Avant de commencer.

En outre, avant de pouvoir envoyer des requêtes de prédiction à Recommandations IA, vous devez disposer d'une recommandation entraînée et réglée (modèle) et d'un ou plusieurs emplacements actifs.

Aperçu de la recommandation

Avant de mettre à jour le code de votre site Web pour demander des recommandations, vous pouvez utiliser l'aperçu de prédiction pour vérifier que votre modèle fonctionne comme prévu.

Pour prévisualiser les recommandations renvoyées par votre modèle, procédez comme suit :

  1. Accédez à la page des modèles Recommendations AI dans Google Cloud Console.
    Accéder à la page "Modèles Recommandations AI"

  2. Cliquez sur le nom du modèle pour ouvrir la page des informations détaillées.

  3. Cliquez sur l'emplacement que vous souhaitez prévisualiser.

  4. (Facultatif) Saisissez un ID utilisateur pour prévisualiser les résultats correspondant à cet utilisateur.

  5. Cliquez sur Aperçu de prédiction pour afficher les résultats de prédiction.

Aperçu de la prédiction avec des exemples d'images renvoyés

Obtenir une recommandation

Pour en savoir plus sur les coûts liés aux prédictions, consultez la section Tarifs.

curl

Pour obtenir une recommandation, envoyez une requête POST à la méthode REST predict et fournissez le corps de requête approprié :

  • Le compte de service que vous utilisez doit disposer du rôle "Lecteur Retail" ou d'un rôle avec des privilèges supérieurs.

  • Remplacez PLACEMENT_ID par l'emplacement où vous utiliserez les prédictions. [En savoir plus][Emplacements].

  • Si vous avez importé des événements utilisateur Google Analytics 360 en utilisant BigQuery, définissez visitorId sur l'ID client Google Analytics. Consultez la documentation Google Analytics pour savoir comment obtenir l'ID client.

  • Si vous exécutez un test A/B, définissez experimentIds sur l'ID correspondant au groupe de test. En savoir plus

  • Renseignez un objet événement utilisateur pour l'action utilisateur qui a déclenché la requête de recommandation.

    Notez que cet événement utilisateur n'est pas enregistré. Il sert uniquement à fournir un contexte pour cette requête. Nous vous conseillons d'enregistrer l'événement utilisateur de la même manière que vous enregistrez les autres événements utilisateur sur l'API Retail.

  • Si vous le souhaitez, ajoutez un filtre pour limiter les résultats potentiels à certains produits. En savoir plus

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data  '{
          "filter": "FILTER_STRING",
          "validateOnly": false,
          "userEvent": {
              "eventType": "detail-page-view",
              "visitorId": "VISITOR_ID",
              "userInfo": {
                  "userId": "USER_ID",
                  "ipAddress": "IP_ADDRESS",
                  "userAgent": "USER_AGENT"
              },
              "experimentIds": "EXPERIMENT_GROUP",
              "productDetails": [{
                  "product": {
                    "id": "PRODUCT_ID"
                 }
              }]
          }' \
https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/placements/PLACEMENT_ID:predict

Un résultat semblable aux lignes suivantes doit s'afficher :

{
  "results": [{"id": "sample-id-1"}, {"id": "sample-id-2"}],
  "attribution_token": "sample-atr-token"
}

Vous devez associer la valeur attribution_token à ou aux URL que vous diffusez en tant que résultat de prédiction, puis la renvoyer avec les événements utilisateur correspondant à ces URL. En savoir plus.

Reclassement du prix

Le reclassement du prix permet de classer par prix les produits ayant une probabilité de recommandation similaire, la priorité étant donnée aux articles ayant le prix le plus élevé. La pertinence étant toujours utilisée pour trier les articles, l'activation du reclassement du prix est différente d'un simple tri des articles par prix décroissant.

Le reclassement du prix peut être défini au niveau de la configuration de diffusion ou de la requête de prédiction.

Si vous appliquez un paramètre de reclassement du prix lorsque vous créez un modèle dans Cloud Console, ce paramètre s'applique à toutes les recommandations diffusées par cette configuration, sans que vous ayez à intervenir.

Si vous devez contrôler le reclassement du prix pour une recommandation spécifique, vous pouvez le faire via l'API Retail en utilisant le champ PredictRequest.params. Cette opération remplace tout paramètre de reclassement au niveau du modèle qui s'appliquerait autrement à cette recommandation.

Diversité des recommandations

La diversification détermine si les résultats renvoyés par une requête de prédiction donnée proviennent de différentes catégories de votre catalogue de produits.

La diversification peut être définie au niveau de la configuration de diffusion ou de la requête de prédiction.

Si vous appliquez un paramètre de diversification lorsque vous créez un modèle dans Cloud Console, ce paramètre s'applique par défaut à toutes les recommandations diffusées par ce modèle, sans que vous ayez à intervenir.

Si vous devez contrôler la diversification pour une recommandation spécifique, vous pouvez le faire via l'API Retail en utilisant le champ PredictRequest.params. Cette opération remplace tout paramètre de diversification au niveau du modèle qui s'appliquerait autrement à cette recommandation. Consultez la section consacrée à PredictRequest.params dans la documentation de l'API afin de connaître les valeurs acceptées.

Utiliser les filtres de recommandation

Vous pouvez filtrer les recommandations renvoyées par Recommendations AI en utilisant le champ filter de la méthode predict.

Le champ filter accepte deux formes de spécification de filtre :

  • Expressions de tag

    Si vous avez ajouté des valeurs tag à vos produits lors de leur importation, vous pouvez spécifier que seuls les produits correspondant aux tags fournis doivent être renvoyés en tant que recommandations. En savoir plus

    Les expressions de tag peuvent contenir les opérateurs booléens OR ou NOT, qui doivent être séparés des valeurs de tag par un ou plusieurs espaces. Les valeurs de tag peuvent également être immédiatement précédées d'un tiret (-), ce qui équivaut à l'opérateur NOT. Les expressions de tag qui utilisent les opérateurs booléens doivent être placées entre parenthèses.

  • filterOutOfStockItems

    L'indicateur filterOutOfStockItems filtre tous les produits dont le champ stockState a la valeur OUT_OF_STOCK.

Vous pouvez combiner ces deux types de filtres. Seuls les éléments qui répondent à toutes les expressions de filtre spécifiées sont renvoyés.

Voici quelques exemples de chaînes de filtre :

"filter": "tag=\"spring-sale\""
"filter": "filterOutOfStockItems"
"filter": "tag=\"spring-sale\" tag=\"exclusive\" filterOutOfStockItems"

L'exemple suivant renvoie uniquement les articles en stock qui ont le tag "spring-sale" ou "exclusive" (ou les deux), mais pas le tag "items-to-exclude".

"filter": "tag=(\"spring-sale" OR \"exclusive\") tag=(-\"items-to-exclude\") filterOutOfStockItems"