À propos des événements utilisateur multimédias

Cette page décrit les événements utilisateur pour les applications de recherche et de recommandation de contenus multimédias, y compris les types d'événements utilisateur, les exigences et des exemples pour les types d'événements utilisateur. Les événements utilisateur sont obligatoires pour les applications multimédias.

Pour obtenir des informations générales sur la recherche et les recommandations de contenus multimédias, consultez Présentation de la recherche et des recommandations de contenus multimédias.

Pour obtenir de l'aide concernant 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 façon groupée, consultez Importer des é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 recherchent votre site :

Nom de l'événement utilisateur Action utilisateur
view-category-page Consulte une page de catégorie, par exemple Accueil > TV > Dramas, Accueil > Films > Action.
view-item Affiche les détails d'un document.
view-home-page Permet d'afficher la page d'accueil.
search Permet de rechercher dans le data store.
media-play Clique sur un élément multimédia pour le lire.
media-complete Arrête la lecture d'un élément multimédia, ce qui signifie que l'utilisateur a terminé de le regarder.

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

Exigences concernant les événements pour la recherche et les recommandations de contenus multimédias

Pour déterminer les événements utilisateur que vous devez collecter, consultez le tableau suivant.

Les types d'événements utilisateur dont vous avez besoin dépendent du fait que votre application soit une application de recherche ou de recommandations, de l'objectif (taux de clics, taux de conversion ou durée de visionnage) et, pour les applications de recommandations uniquement, du type de modèle que vous avez choisi. Pour en savoir plus sur les types de modèles de recommandation et les objectifs d'optimisation, consultez À propos des types de recommandations d'applications multimédias.

Événement search view-home-page view-category-page view-item media-play media-complete
Cas d'utilisation de la recherche
Obligatoire Non
obligatoire
Non
obligatoire
Obligatoire Obligatoire Obligatoire
Types de modèles "Recommandé pour vous", par objectif
CTR Non
obligatoire
Obligatoire pour le contexte de la page d'accueil

Non obligatoire pour le contexte général
Non
obligatoire
view-item ou media-play est obligatoire. Fortement
recommandé

Obligatoire si la rétrogradation de l'historique est activée
CVR Non
obligatoire
Obligatoire pour le contexte de la page d'accueil

Non obligatoire pour le contexte général
Non
obligatoire
view-item ou media-play est obligatoire. Obligatoire
Durée de visionnage Non
obligatoire
Obligatoire pour le contexte de la page d'accueil

Non obligatoire pour le contexte général
Non
obligatoire
view-item ou media-play est obligatoire. Obligatoire
Type de modèle "Autres articles susceptibles de vous intéresser", par objectif
CTR Non
obligatoire
Non
obligatoire
Non
obligatoire
view-item ou media-play est obligatoire. Fortement
recommandé

Obligatoire si la rétrogradation de l'historique est activée
CVR Non
obligatoire
Non
obligatoire
Non
obligatoire
view-item ou media-play est obligatoire. Obligatoire
Durée de visionnage Non
obligatoire
Non
obligatoire
Non
obligatoire
view-item ou media-play est obligatoire. Obligatoire
Type de modèle "Plus comme ceci", par objectif
CTR Non
obligatoire
Non
obligatoire
Non
obligatoire
view-item ou media-play est obligatoire. Obligatoire si la rétrogradation de l'historique est activée
CVR Non
obligatoire
Non
obligatoire
Non
obligatoire
view-item ou media-play est obligatoire. Obligatoire
Durée de visionnage Non
obligatoire
Non
obligatoire
Non
obligatoire
view-item ou media-play est obligatoire. Obligatoire
Type de modèle le plus populaire, par objectif
CTR Non
obligatoire
Non
obligatoire
Non
obligatoire
Vous devez indiquer view-item ou media-play. Non
obligatoire
CVR Non
obligatoire
Non
obligatoire
Non
obligatoire
Non
obligatoire
Non
obligatoire
Obligatoire

Exigences concernant les événements utilisateur multimédias

Assurez-vous que vos événements utilisateur répondent aux exigences suivantes afin que vos applications multimédias puissent générer des résultats de qualité.

Type d'événement Exigence Impact
Tous les événements

N'incluez pas de données synthétiques ni d'événements en double.

Les événements synthétiques ou en double ont un impact négatif sur la qualité des résultats et peuvent vous empêcher de déployer votre application. Les événements en double peuvent entraîner des valeurs de métriques incorrectes.

Incluez au moins 100 pseudo-identifiants utilisateur uniques pour chaque type d'événement ingéré.

Cela permet aux applications de recommandations de contenus multimédias de disposer de suffisamment de données pour générer des résultats de qualité.

Les pseudo-ID utilisateur doivent être mis en forme exactement de la même manière lors de l'importation ou de l'enregistrement des événements, et dans les demandes de recommandations média.

L'utilisation d'un format cohérent pour les pseudo-ID utilisateur aide les applications de recommandations de contenus multimédias à identifier correctement les habitudes des visiteurs et à fournir des résultats de meilleure qualité en fonction du comportement des utilisateurs.

Le champ DocumentInfo.name ou le champ DocumentInfo.id sont obligatoires pour tous les documents.

Un événement qui inclut un document sans champ DocumentInfo.name ni champ DocumentInfo.id ne peut pas être utilisé par les applications de recommandations de contenus multimédias.

Les documents inclus dans les événements doivent exister dans votre data store.

Le ratio d'événements non associés doit être le plus bas possible. Un ratio élevé peut avoir un impact négatif sur la qualité des résultats.

Certains événements utilisateur doivent avoir le même pseudo-ID utilisateur.

Pour construire des historiques de séquences de comportement valides, les applications de recommandations multimédias doivent pouvoir voir plusieurs événements avec le même pseudo-ID utilisateur.

Par exemple, visitor123 a consulté cinq éléments et cliqué sur le bouton de lecture de deux d'entre eux. Si ces événements fournissent le même pseudo-ID utilisateur au format cohérent, une application de recommandations de contenus multimédias peut prendre en compte cette séquence de comportement dans ses résultats.

view-item

Incluez un seul document par événement.

Vous ne pouvez pas utiliser cet événement s'il n'existe aucun document. Si plusieurs documents sont inclus, l'événement est incorrect et ne peut pas être utilisé.

search

Incluez le attributionToken. attributionToken est renvoyé par la méthode search avec les résultats de recherche ou de navigation.

attributionToken permet à Vertex AI Search d'attribuer précisément l'événement de recherche à une réponse de recherche spécifique.

media-play

Incluez un seul document par événement.

Si plusieurs documents sont inclus, l'événement est incorrect et ne peut pas être utilisé.

Tags d'événements utilisateur pour les tests A/B

Si vous effectuez des tests A/B, veillez à ajouter des ID de tag à tous les événements utilisateur que vous collectez, en ajoutant un tag pour chaque groupe de test.

Par exemple, ajoutez le tag "tagIds": ["original"] aux événements utilisateur de votre modèle actuel et le tag "tagIds": ["google"] aux événements utilisateur de Vertex AI Search pour les contenus multimédias.

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 recommandations média. Des exemples sont fournis pour JavaScript Pixel. 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 User Event, consultez la documentation de référence de l'API UserEvent.

view-category-page

Les lignes suivantes présentent le format d'événement utilisateur view-category-page.

Champs minimum requis pour l'objet view-category-page

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

Bien qu'une seule catégorie soit généralement associée à une page, le champ pageCategories accepte également une hiérarchie de catégories, que vous pouvez fournir sous forme de liste.

JavaScript Pixel

var user_event = {
  "eventType": "view-category-page",
  "userPseudoId": "user-pseudo-id",
  "eventTime": "2020-01-01T03:33:33.000001Z",
  "pageInfo": {
    "pageCategory": "category1 > category2"
  }
};

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 avec un format d'horodatage.

[
  {
    "name": "eventType",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "name": "userPseudoId",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "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": "pageCategory",
        "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"
          }
        ]
      }
    ]
  }
]

view-item

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

Champs minimum requis pour l'objet view-item

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

Dans la plupart des cas, documents contient les détails du document associé.

JavaScript Pixel

var user_event = {
  "eventType": "view-item",
  "userPseudoId": "user-pseudo-id",
  "eventTime": "2020-01-01T03:33:33.000001Z",
  "documents": [{
    "id": "document-id"
  }]
};

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 avec un format d'horodatage.

[
  {
    "name": "eventType",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "name": "userPseudoId",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "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"
          }
        ]
      }
    ]
  }
]

view-home-page

Les lignes suivantes présentent le format d'événement utilisateur view-home-page.

Champs minimum requis pour l'objet view-home-page

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

JavaScript Pixel

var user_event = {
  "eventType": "view-home-page",
  "userPseudoId": "user-pseudo-id",
  "eventTime": "2020-01-01T03:33:33.000001Z",
};

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 avec un format d'horodatage.

[
  {
    "name": "eventType",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "name": "userPseudoId",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "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": "quantity",
        "type": "INT64",
        "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.

Champs minimum requis pour l'objet search

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

Indiquez 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.

documents doit inclure la liste des ID de document présentés à l'utilisateur final sur la page des résultats de recherche.

JavaScript Pixel

var user_event = {
  eventType: "search",
  userPseudoId: "user-pseudo-id",
  eventTime: "2020-01-01T03:33:33.000001Z",
  searchInfo: {
    searchQuery: "search-query",
  }, 
  attributionToken: "attribution-token",
  documents: [
    {
      id: "document-id1",
    },
    {
      id: "document-id2",
    },
  ]
};

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 avec un format d'horodatage.

[
  {
    "name": "eventType",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "name": "userPseudoId",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "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"
      }
    ]
  }
]

media-play

Les lignes suivantes présentent le format d'événement utilisateur media-play.

Champs minimum requis pour l'objet media-play

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

JavaScript Pixel

var user_event = {
  "eventType": "media-play",
  "userPseudoId": "user-pseudo-id",
  "eventTime": "2020-01-01T03:33:33.000001Z",
  "documents": [
    {
      "id": "document-id1"
    }
  ]
};

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 avec un format d'horodatage.

[
  {
    "name": "eventType",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "name": "userPseudoId",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "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"
          }
        ]
      }
    ]
  }
]

media-complete

Les lignes suivantes présentent le format d'événement utilisateur media-complete.

Champs minimum requis pour l'objet media-complete

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

JavaScript Pixel

var user_event = {
  "eventType": "media-complete",
  "userPseudoId": "user-pseudo-id",
  "eventTime": "2020-01-01T03:33:33.000001Z",
  "documents": [
    {
      "id": "document-id1"
    }
  ],
  "mediaInfo": {
    "mediaProgressDuration": "65s",
    "mediaProgressPercentage": 0.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 avec un format d'horodatage.

[
  {
    "name": "eventType",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "name": "userPseudoId",
    "type": "STRING",
    "mode": "REQUIRED"
  },
  {
    "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"
          }
        ]
      }
    ]
  },
  {
    "name": "mediaInfo",
    "type": "RECORD",
    "mode": "NULLABLE",
    "fields": [
      {
        "name": "mediaProgressDuration",
        "type": "STRING",
        "mode": "NULLABLE"
      },
      {
        "name": "mediaProgressPercentage",
        "type": "NUMERIC",
        "mode": "NULLABLE"
      }
    ]
  }
]

Attributs personnalisés

Vous pouvez intégrer des attributs et des fonctionnalités personnalisés supplémentaires pour les événements utilisateur. Vous pouvez ainsi améliorer les résultats de vos utilisateurs. Pour ajouter des attributs personnalisés, utilisez attributes lorsque vous enregistrez un événement utilisateur.

Si vous fournissez des attributs personnalisés pour les événements utilisateur ingérés, il est important de les inclure également dans les événements utilisateur que vous associez aux requêtes de recommandation et de recherche. La mise en forme des attributs personnalisés doit être cohérente entre les événements importés et ceux fournis avec les requêtes. Cela permet aux applications multimédias d'utiliser ces attributs personnalisés pour améliorer la qualité.

Vous pouvez fournir des valeurs de texte personnalisées à l'aide du champ text ou des valeurs numériques personnalisées à l'aide du champ numbers.

Par exemple, voici la section attributes d'une requête d'enregistrement d'un événement utilisateur :

  attributes: {
    user_age: {text: ["teen", "young adult"]},
    user_location: {text: ["CA"]},
    user_zip: {numbers: [90210]}
  }

À propos des informations utilisateur

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

Les informations sur les utilisateurs (UserInfo) 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 tous les appareils, chaque fois que ce dernier se connecte à votre site. Lorsque vous enregistrez le userId d'un utilisateur, les applications de recherche et de recommandation de contenus multimédias peuvent générer des résultats plus personnalisés pour un utilisateur sur plusieurs appareils, tels qu'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 permettent de s'assurer 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 spécifier l'horodatage dans le champ eventTime au format indiqué par RFC 3339.

Étapes suivantes