À propos des événements utilisateur

Cette page décrit les événements utilisateur pour les applications Gemini Enterprise, y compris les types d'événements utilisateur, les exigences et des exemples de types d'événements utilisateur.

Si vous utilisez les API Gemini Enterprise dans vos propres applications, vous devez configurer la recherche dans votre application pour obtenir les événements utilisateur, puis ajouter les données d'événements utilisateur à votre application Gemini Enterprise.

Si vous créez votre application via la consoleGoogle Cloud , vous n'avez pas besoin d'importer manuellement les événements utilisateur (et vous n'avez pas besoin de lire cette page).

Pour obtenir de l'aide sur l'enregistrement des événements utilisateur, consultez Enregistrer des événements utilisateur en temps réel. Pour importer des événements utilisateur passés de manière groupée, consultez Importer les événements utilisateur historiques.

Types d'événements utilisateur

Vous pouvez enregistrer les types d'événements utilisateur suivants lorsque les utilisateurs finaux parcourent ou effectuent des recherches sur votre site :

Nom de l'événement utilisateur Action utilisateur
view-item Affiche les détails d'un document.
search Recherche des données dans l'application Gemini Enterprise.

Pour en savoir plus sur l'objet d'événement utilisateur, consultez la [documentation de référence de l'API UserEvent][user-event].

Exemples et schémas de types d'événements utilisateur

Cette section fournit les formats de données pour chaque type d'événement compatible avec les applications Gemini Enterprise. Des exemples de pixels JavaScript sont fournis. Pour BigQuery, le schéma de table complet est fourni pour chaque type.

Pour tous les types d'événements utilisateur, le champ userId est facultatif.

Pour en savoir plus sur l'objet d'événement utilisateur, consultez la [documentation de référence de l'API UserEvent][user-event].

view-item

Les lignes suivantes présentent le format de données d'événement utilisateur view-item.

Exigences d'optimisation de la recherche pour les événements view-item

Pour permettre à la recherche d'optimiser automatiquement l'expérience de recherche en fonction des tendances globales des utilisateurs, importez les données suivantes.

Les événements doivent être importés au moins une fois par jour, avec un délai maximal de 24 heures.

Métrique "Événements" Volume/fréquence des événements Description
Volume d'événements view-item 250 000 éléments de vue

Au moins 250 000 éléments de vue sont requis pour optimiser l'expérience de recherche en fonction des événements ingérés.

Objet view-item minimal requis

Les exemples suivants affichent uniquement les champs obligatoires du format d'événement utilisateur view-item.

L'objet documents contient l'ID du document (id) et son nom de ressource (name).

  • Lorsque vous ingérez ou enregistrez des événements utilisateur au niveau d'un datastore, vous pouvez fournir l'ID du document (id) ou le nom de la ressource (name).
  • Lorsque vous ingérez ou enregistrez des événements au niveau d'un emplacement, vous devez fournir le nom de ressource du document (name), car il indique le chemin d'accès complet d'un document et fait référence au data store dans lequel il se trouve. Vous pouvez fournir l'ID du document en tant qu'information supplémentaire facultative.

JavaScript Pixel

var user_event = {
  "eventType": "view-item",
  "userPseudoId": "USER_PSEUDO_ID",
  "engine": "APP_ID",
  "eventTime": "2020-01-01T03:33:33.000001Z",
  "documents": [{
    "name": "DOCUMENT_NAME"
  }]
};

BigQuery

Il s'agit du schéma JSON complet pour ce type d'événement utilisateur. Spécifiez ce schéma lorsque vous créez des tables pour ce type d'événement utilisateur dans BigQuery.

Les modes des champs obligatoires sont définis sur REQUIRED ou REPEATED. Les modes des champs facultatifs sont définis sur NULLABLE.

Notez que eventTime est requis pour importer des événements avec BigQuery. eventTime est une chaîne au format Timestamp.

[
  {
    "name": "eventType",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "name": "userPseudoId",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "name": "engine",
    "type": "STRING",
    "mode": "NULLABLE"
  },
  {
    "name": "eventTime",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "name": "userInfo",
    "type": "RECORD",
    "mode": "NULLABLE",
    "fields": [
      {
        "name": "userId",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "userAgent",
        "type": "STRING",
        "mode": "NULLABLE"
      }
    ]
  },
  {
    "name": "pageInfo",
    "type": "RECORD",
    "mode": "NULLABLE",
    "fields": [
      {
        "name": "pageviewId",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "uri",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "referrerUri",
        "type": "STRING",
        "mode": "NULLABLE"
      }
    ]
  },
  {
    "name": "attributionToken",
    "type": "STRING",
    "mode": "NULLABLE"
  },
  {
    "name": "documents",
    "type": "RECORD",
    "mode": "REPEATED",
    "fields": [
      {
        "name": "id",
        "type": "STRING",
        "mode": "NULLABLE"
      }
    ]
  },
  {
    "name": "tagIds",
    "type": "STRING",
    "mode": "REPEATED"
  },
  {
    "name": "attributes",
    "type": "RECORD",
    "mode": "NULLABLE",
    "fields": [
      {
        "name": "example_text_attribute",
        "type": "RECORD",
        "mode": "NULLABLE",
        "fields": [
          {
            "name": "text",
            "type": "STRING",
            "mode": "REPEATED"
          }
        ]
      },
      {
        "name": "example_number_attribute",
        "type": "RECORD",
        "mode": "NULLABLE",
        "fields": [
          {
            "name": "numbers",
            "type": "NUMERIC",
            "mode": "REPEATED"
          }
        ]
      }
    ]
  }
]

Les lignes suivantes présentent le format d'événement utilisateur search.

Exigences d'optimisation de la recherche pour les événements de recherche

Pour permettre à la recherche d'optimiser automatiquement l'expérience de recherche en fonction des tendances globales des utilisateurs, importez les données suivantes.

Les événements doivent être importés au moins une fois par jour, avec un délai maximal de 24 heures.

Métrique "Événements" Volume/fréquence des événements Description
Volume d'événements search 100 000 recherches

Au moins 100 000 recherches sont requises pour optimiser l'expérience de recherche en fonction des événements ingérés.

Champs minimum requis pour l'objet search

Les exemples suivants affichent uniquement les champs obligatoires du format d'événement utilisateur search.

Fournissez searchQuery pour les événements de recherche où l'utilisateur a saisi une requête textuelle.

attributionToken est renvoyé avec les résultats de la requête de recherche.

L'objet documents contient l'ID du document (id) et son nom de ressource (name).

  • Lorsque vous ingérez ou enregistrez des événements utilisateur au niveau d'un datastore, vous pouvez fournir l'ID du document (id) ou le nom de la ressource (name).
  • Lorsque vous ingérez ou enregistrez des événements au niveau d'un emplacement, vous devez fournir le nom de ressource du document (name), car il indique le chemin d'accès complet d'un document et fait référence au data store dans lequel il se trouve. Vous pouvez fournir l'ID du document en tant qu'information supplémentaire facultative.

JavaScript Pixel

var user_event = {
  "eventType": "search",
  "userPseudoId": "USER_PSEUDO_ID",
  "engine": "APP_ID",
  "eventTime": "2020-01-01T03:33:33.000001Z",
  "searchInfo": {
    "searchQuery": "SEARCH_QUERY",
  }, 
  "attributionToken": "ATTRIBUTION_TOKEN",
  "documents": [
    {
      "name": "DOCUMENT_NAME_1",
    },
    {
      "name": "DOCUMENT_NAME_2",
    },
  ]
};

BigQuery

Il s'agit du schéma JSON complet pour ce type d'événement utilisateur. Spécifiez ce schéma lorsque vous créez des tables pour ce type d'événement utilisateur dans BigQuery.

Les modes des champs obligatoires sont définis sur REQUIRED ou REPEATED. Les modes des champs facultatifs sont définis sur NULLABLE.

Notez que eventTime est requis pour importer des événements avec BigQuery. eventTime est une chaîne au format Timestamp.

[
  {
    "name": "eventType",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "name": "userPseudoId",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "name": "engine",
    "type": "STRING",
    "mode": "NULLABLE"
  },
  {
    "name": "eventTime",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "name": "searchInfo",
    "type": "RECORD",
    "mode": "NULLABLE",
    "fields": [
      {
        "name": "searchQuery",
        "type": "STRING",
        "mode": "NULLABLE"
      }
    ]
  },
  {
    "name": "pageInfo",
    "type": "RECORD",
    "mode": "NULLABLE",
    "fields": [
      {
        "name": "pageCategory",
        "type": "STRING",
        "mode": "NULLABLE"
      }
    ]
  },
  {
    "name": "attributionToken",
    "type": "STRING",
    "mode": "NULLABLE"
  },
  {
    "name": "documents",
    "type": "RECORD",
    "mode": "REPEATED",
    "fields": [
      {
        "name": "id",
        "type": "STRING",
        "mode": "NULLABLE"
      }
    ]
  }
]

À propos des informations utilisateur

userPseudoId représente l'identifiant d'utilisateur unique et est requis lorsque vous enregistrez un événement utilisateur.

Les informations utilisateur ([UserInfo][user-info]) incluses lorsque vous enregistrez un événement utilisateur contiennent la valeur userPseudoId et, si elle est disponible, la valeur userId. userId est facultatif et peut être utilisé comme identifiant unique et persistant pour un utilisateur sur plusieurs appareils chaque fois qu'il se connecte à votre site. Lorsque vous enregistrez l'userId d'un utilisateur, les applications Gemini Enterprise peuvent générer des résultats plus personnalisés pour un utilisateur sur plusieurs appareils, par exemple un appareil mobile et un navigateur Web.

À propos de l'horodatage

Lorsque vous enregistrez un événement utilisateur, veillez à inclure un horodatage précis de l'événement. Des codes temporels précis garantissent que vos événements sont stockés dans le bon ordre. Les codes temporels sont enregistrés automatiquement pour les événements collectés à l'aide du pixel JavaScript. Lorsque vous importez des événements, vous devez fournir le code temporel dans le champ [eventTime][event-time] au format spécifié par la norme RFC 3339.

[rec-type-reqs]: /gemini/enterprise/docs/about-media-recommendations-types [record-events]: /gemini/enterprise/docs/record-user-events [event-time]: /gemini/enterprise/docs/reference/rest/v1/projects.locations.dataStores.userEvents#UserEvent.FIELDS.event_time [user-event]: /gemini/enterprise/docs/reference/rest/v1/projects.locations.dataStores.userEvents [user-info]: /gemini/enterprise/docs/reference/rest/v1/projects.locations.dataStores.userEvents#userinfo