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.

Gérer les événements utilisateur

Cette page décrit comment afficher et supprimer des événements utilisateur. Pour en savoir plus sur l'enregistrement des événements utilisateur en temps réel, consultez la page Enregistrer des événements utilisateur en temps réel. Pour importer des données d'événement utilisateur passées, consultez la section Importer un historique d'événements utilisateur.

Afficher les informations agrégées concernant les événements utilisateur

Vous pouvez afficher le nombre d'événements utilisateur enregistrés pour votre projet dans l'onglet "Événement" de la page Recommendations AI. Les métriques apparaîtront environ 24 heures après la première importation d'événements dans Recommendations AI.

Statistiques sur les événements utilisateur Recommendations AI

Réintégrer des événements utilisateur

Vous pouvez réintégrer des événements utilisateur en envoyant une requête POST au point de terminaison userEvents:rejoin.

L'opération de réassociation associe les événements spécifiés à la dernière version du catalogue de produits.

Un événement utilisateur est considéré comme non joint si le produit auquel il est associé n'est pas présent dans le catalogue au moment de l'ingestion de l'événement utilisateur. Les événements non associés ne fournissent pas d'informations détaillées sur les produits, et ne sont pas aussi utiles pour entraîner des modèles ou diffuser des résultats.

En plus de traiter les événements non associés, l'opération de réassociation peut être utilisée pour corriger des événements qui ont été associés au mauvais catalogue de produits.

Vous devez disposer du rôle IAM Administrateur AI Retail pour appeler cette méthode.

curl

Définissez userEventRejoinScope en fonction des types d'événements que vous réassociez :

  • USER_EVENT_REJOIN_SCOPE_UNSPECIFIED : valeur par défaut. Déclenche une réassociation pour tous les événements (même ceux bénéficiant déjà d'une association).
  • JOINED_EVENTS : déclenche une réassociation uniquement pour les événements bénéficiant déjà d'une association.
  • UNJOINED_EVENTS : déclenche une réassociation uniquement pour les événements ne bénéficiant pas déjà d'une association.

L'exemple suivant déclenche une réassociation uniquement pour les événements ne bénéficiant pas déjà d'une association :

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{
     'userEventRejoinScope': 'UNJOINED_EVENTS'
     }" \
    "https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/userEvents:rejoin"

Vous devriez recevoir un objet de réponse ressemblant à ceci :

{
  "name": "projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/OPERATION_ID"
}

Vous pouvez vérifier l'état de la réassociation. Remplacez OPERATION_ID par l'ID de l'ID d'opération renvoyé par la méthode de réassociation :

curl -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
"https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/OPERATION_ID"

Une fois l'opération terminée, l'état renvoyé est done :

{
  "name": "projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/OPERATION_ID",
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.retail.v2.RejoinUserEventsResponse",
    "rejoinedUserEventsCount": "1"
  }
}

Java

public static String rejoinUserEvents(UserEventRejoinScope scope)
    throws IOException, InterruptedException, ExecutionException {
  UserEventServiceClient userEventsClient = getUserEventServiceClient();

  RejoinUserEventsRequest request = RejoinUserEventsRequest.newBuilder()
      .setParent(DEFAULT_CATALOG_NAME)
      .setUserEventRejoinScope(scope)
      .build();

  String operationName = userEventsClient
      .rejoinUserEventsAsync(request).getName();

  userEventsClient.shutdownNow();
  userEventsClient.awaitTermination(2, TimeUnit.SECONDS);

  return operationName;
}

Supprimer des événements utilisateur

En règle générale, vous devez conserver les événements utilisateur après leur enregistrement. Il n'est pas recommandé de purger les événements.

L'opération de purge des événements peut prendre plusieurs jours. Si vous prévoyez de réinitialiser entièrement les événements utilisateur, envisagez plutôt de créer un nouveau projet.

Si certains de vos événements utilisateur n'ont pas été enregistrés correctement et que vous devez les supprimer, vous pouvez utiliser la méthode userEvents.purge.

Spécifiez les événements que vous souhaitez supprimer à l'aide d'une chaîne de filtre. Cela permet de supprimer de manière sélective les événements utilisateur en filtrant sur les champs eventTime, eventType, visitorID et userID.

La suppression ne pouvant pas être annulée, testez votre chaîne de filtre en effectuant une simulation avant de supprimer les événements utilisateur. Le champ force est défini sur false par défaut. Ce paramètre permet de renvoyer le nombre d'événements à supprimer sans les supprimer. Lorsque vous êtes prêt à supprimer les événements utilisateur, définissez le champ force sur true.

curl

Cet exemple permet de filtrer une période spécifique, qui doit être spécifiée au format date/heure Zulu. Le champ force est défini sur false.

curl -X POST \
  -H "Authorization: Bearer "$(gcloud auth application-default print-access-token)"" \
  -H "Content-Type: application/json; charset=utf-8" \
  --data '{
    "filter":"eventTime > \"2019-12-23T18:25:43.511Z\" eventTime < \"2019-12-23T18:30:43.511Z\"",
    "force":"false"
  }' \
  "https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/userEvents:purge"

Vous devez recevoir un objet de réponse qui ressemble à ceci, où purge-user-events-54321 est l'ID de l'opération :

{
  "name": "projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/purge-user-events-54321"
}

Cet exemple demande l'état de l'opération :

curl -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
"https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/[OPERATION_ID]"

Exemple d'état d'opération :

{
  "name": "projects/PROJECT_ID/locations/global/catalogs/default_catalog/operations/[OPERATION_ID]",
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.retail.v2main.PurgeUserEventsResponse",
    "purgedEventsCount": "1"
  }
}

La définition du champ force sur true force la suppression.

curl -X POST \
  -H "Authorization: Bearer "$(gcloud auth application-default print-access-token)"" \
  -H "Content-Type: application/json; charset=utf-8" \
  --data '{
    "filter":"eventTime > \"2019-12-23T18:25:43.511Z\" eventTime < \"2019-12-23T18:30:43.511Z\"",
    "force":"true"
  }' \
"https://retail.googleapis.com/v2/projects/PROJECT_ID/locations/global/catalogs/default_catalog/userEvents:purge"

Utiliser le filtre d'événement utilisateur

Vous pouvez filtrer les événements utilisateur à supprimer.

Le filtre est une chaîne qui contient une ou plusieurs des restrictions suivantes :

  • eventTime

    Fournit un horodatage pour restreindre les événements à supprimer. Ce filtre peut être spécifié une ou deux fois, accompagné d'un symbole supérieur à (>) ou inférieur à (<). La période spécifiée doit être un bloc unique contigu.

  • eventType

    Restreint les événements à supprimer à un seul type d'événement.

  • visitorID

    Restreint les événements à supprimer à un seul ID de visiteur.

  • userID

    Restreint les événements à supprimer à un seul ID d'utilisateur.

Seuls les événements utilisateur qui satisfont toutes les restrictions sont supprimés.

Pour supprimer tous les événements utilisateur de type add-to-cart qui ont été enregistrés le 1er février 2019 ou après cette date, vous devez fournir la chaîne de filtre suivante :

eventTime > "2019-02-01T00:00:00Z" eventType = add-to-cart