Cette documentation de Recommendations AI fait référence à la console Recommendations. Nous vous recommandons de passer à la console Retail et d'utiliser la documentation pour le commerce de détail, qui fournit des informations sur Recommendations AI, la console et sur Retail Search.

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

Avant de commencer

Cette page décrit les étapes à suivre avant d'utiliser Recommendations AI.

Configurer votre projet

Vous devez créer un projet Google Cloud afin d'accéder à Recommendations AI. Pour configurer un projet, procédez comme suit :

  1. Accédez à la page Gérer les ressources de Cloud Console.

    ACCÉDER À LA PAGE "GÉRER LES RESSOURCES"

  2. Dans la liste déroulante située en haut de la page, sélectionnez l'organisation dans laquelle vous souhaitez créer un projet.

  3. Cliquez sur Créer un projet.

  4. Dans la fenêtre Nouveau projet qui s'affiche, saisissez un nom de projet, puis sélectionnez un compte de facturation si nécessaire.

  5. Si vous souhaitez ajouter le projet à un dossier, saisissez le nom du dossier dans la case Emplacement.

  6. Lorsque vous avez terminé de saisir les détails du projet, cliquez sur Créer.

Accepter les conditions d'utilisation des données Discovery Services

Si vous avez activé Recommendations AI sur un projet Google Cloud avant l'entrée en vigueur des conditions d'utilisation des données des services Discovery le 4 avril 2022, vous devez les accepter pour continuer à utiliser Recommendations AI avec ce projet.

Pour accepter les conditions d'utilisation des données des services Discovery pour un projet, procédez comme suit:

  1. Accédez au tableau de bord Recommendations AI:

    TABLEAU DE BORD DE L'IA POUR LES RECOMMANDATIONS

  2. Cliquez sur Accéder aux conditions dans la bannière située en haut de Cloud Console.

  3. Sur la page Conditions d'utilisation des données, consultez les conditions d'utilisation des données et cliquez sur Accepter si vous les acceptez.

Configurer l'authentification pour votre application

Vous devez configurer les deux méthodes d'authentification suivantes pour accéder à l'API Retail :

Créer un compte de service

  1. Accédez à la page Identifiants de Cloud Console.

  2. Sélectionnez le projet pour lequel vous créez des identifiants (il est peut-être déjà sélectionné).

  3. Cliquez sur Créer des identifiants, puis sélectionnez Clé de compte de service.

  4. Renseignez les champs suivants :

    Champ Valeur
    Compte de service Nouveau compte de service
    Service account name (Nom du compte de service) enter a name for your service account
    Rôle Comptes de service > Créateur de jetons du compte de service
    Recommendations AI > Éditeur Recommendations AI
    Type de clé JSON
  5. Cliquez sur Créer pour créer le compte de service.

    Le fichier JSON contenant la clé publique/privée du nouveau compte de service est automatiquement téléchargé sur votre ordinateur. Ce fichier JSON constitue la seule copie de la clé associée à votre compte de service. Assurez-vous de le conserver en lieu sûr. Le fichier de clé JSON doit être stocké dans un emplacement accessible depuis votre application (voir your-service-account-json-key-file dans la section S'authentifier à l'aide d'un compte de service (OAuth 2.0)).

Ajouter le compte de service à votre environnement local

Si vous souhaitez appeler l'API Retail pour le commerce à l'aide de l'outil de ligne de commande cURL, vous devez rendre votre compte de service disponible dans votre environnement local. cURL utilise la commande gcloud auth application-default print-access-token afin d'obtenir un jeton d'accès pour votre compte de service à l'aide du SDK Cloud de Google Cloud. Pour télécharger et installer le SDK, consultez la page SDK Cloud. Si vous utilisez Cloud Shell, le SDK est déjà installé.

La variable d'environnement GOOGLE_APPLICATION_CREDENTIALS ne sera pas conservée si vous fermez votre fenêtre de commande. Pour vous assurer que la variable est définie sur le chemin d'accès au fichier de votre compte de service à chaque ouverture d'une nouvelle fenêtre de commande, définissez la valeur dans un script shell d'initialisation.

  export GOOGLE_APPLICATION_CREDENTIALS=path-to-service-account-json-key-file

Créer une clé API

  1. Accédez à la page Identifiants de Cloud Console.

  2. Dans la liste déroulante des projets en haut de la page Google Cloud Console, sélectionnez votre projet (il est peut-être déjà sélectionné).

  3. Cliquez sur Créer des identifiants, puis sélectionnez Clé API. N'ajoutez aucune restriction de référent. Il est connu que certains paramètres de confidentialité de l'utilisateur ne transmettent pas l'URL de provenance.

    • Prenez note de la clé API générée, que vous utiliserez lors des appels à l'API de journalisation des événements utilisateur.
  4. Pour renforcer la sécurité, ajoutez une restriction HTTP à votre clé API afin de restreindre l'accès au service Retail à l'adresse https://retail.googleapis.com/*.

Examples

S'authentifier avec un compte de service (OAuth 2.0)

Voici un exemple Java d'authentification OAuth 2.0 utilisant un compte de service. Vous trouverez des instructions plus détaillées dans la documentation de l'authentification. Google dispose de bibliothèques clientes dans 7 langages que vous pouvez utiliser pour mettre en œuvre l'authentification OAuth2 dans votre application. Si vous préférez mettre en œuvre directement HTTP/REST, suivez les instructions d'authentification REST.

Dans l'exemple, remplacez your-service-account-json-key-file par le chemin d'accès au fichier de clé JSON de votre compte de service.

// Simple Java example of using Google Cloud OAuth client library.
//
// Please see here for the list of libraries in different languages:
// https://developers.google.com/identity/protocols/OAuth2#libraries
//
// The following example depends on the google api client library.
//
// Maven:
//    <dependency>
//      <groupId>com.google.api-client</groupId>
//      <artifactId>google-api-client</artifactId>
//      <version>1.22.0</version>
//    </dependency>
import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.GenericUrl;
import com.google.api.client.http.HttpRequest;
import com.google.api.client.http.HttpRequestFactory;
import com.google.api.client.http.HttpResponse;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.http.json.JsonHttpContent;
import com.google.api.client.json.GenericJson;
import com.google.api.client.json.jackson2.JacksonFactory;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class RetailApiSample {
  public static final String CREATE_PRODUCT_URL =
     "https://retail.googleapis.com/v2/projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products";

  public static GoogleCredential authorize() throws Exception {
    return GoogleCredential.fromStream(new FileInputStream("your-service-account-json-key-file"))
        .createScoped(Collections.singleton("https://www.googleapis.com/auth/cloud-platform"))
        .setExpirationTimeMilliseconds(new Long(3600 * 1000));;
  }

  // Build an example product.
  public static GenericJson getProduct() {
    GenericJson categories = new GenericJson()
        .set("categories", Arrays.asList("Electronics > Computers", "Laptops"));
    GenericJson priceInfo = new GenericJson
        .set("currency_code", "USD")
        .set("price", 800.00)
        .set("original_price", 1000.00);

    return new GenericJson()
        .set("name", "projects/PROJECT_NUMBER/locations/global/catalogs/default_catalog/branches/0/products/[ProductName]")
        .set("title", "Sample Laptop")
        .set("description", "Indisputably the most fantastic laptop ever created.")
        .set("categories", categories)
        .set("price_info", priceInfo)
        .set("availability", "IN_STOCK")
        .set("available_quantity", 1219);
  }

  public static void main(String[] args) {
    try {
      GoogleCredential credential = RetailApiSample.authorize();

      HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
      HttpRequestFactory requestFactory = httpTransport.createRequestFactory();
      HttpRequest request = requestFactory.buildPostRequest(new GenericUrl(CREATE_PRODUCT_URL),
          new JsonHttpContent(new JacksonFactory(), RetailApiSample.getProduct()));
      credential.initialize(request);
      HttpResponse response = request.execute();
      System.out.println("Response content: " + response.parseAsString());
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}