Cette page décrit les événements utilisateur pour les applications multimédias, y compris les types d'événements utilisateur, les exigences et les exemples de types d'événements utilisateur.
L'enregistrement des événements utilisateur est obligatoire pour les applications de recommandations multimédias. Les applications de recommandations multimédias utilisent des événements utilisateur en temps réel pour générer des recommandations. Les autres types d'applications ne nécessitent pas d'événements utilisateur.
Le tableau suivant indique les types d'applications pour lesquels vous devez importer des événements utilisateur:
Type d'application | Événements utilisateur requis ? |
---|---|
Recommandations de contenus multimédias | Oui |
Recherche multimédia | Non, mais vivement recommandé |
Recommandations génériques | Non |
Recherche générique | Non, mais vivement recommandé |
Pour obtenir de l'aide concernant l'enregistrement des événements utilisateur, consultez la page Enregistrer des événements utilisateur en temps réel.
Types d'événements utilisateur
Vous pouvez enregistrer les types d'événements utilisateur suivants lorsque les utilisateurs finaux parcourent votre site:
Nom de l'événement utilisateur | Action utilisateur |
---|---|
view-category-page | Affiche une page de catégorie, par exemple Accueil > TV > Drames ou Accueil > Films > Action. |
view-item | Affiche la page d'informations d'un document. |
view-home-page | Permet d'afficher la page d'accueil. |
search | Recherche dans le data store. |
media-play | Cliquez sur le bouton de lecture d'un élément multimédia. |
media-complete | Arrêt de la lecture d'un élément multimédia, ce qui signifie que la lecture est terminée. |
Pour en savoir plus sur l'objet UserEvent
, consultez la documentation de référence de l'API UserEvent
.
Exigences et bonnes pratiques concernant les événements utilisateur pour les applications multimédias
Les tableaux suivants affichent les exigences et les bonnes pratiques concernant les types d'événements utilisateur utilisés par les applications de recommandations multimédias. Vérifiez que vos événements utilisateur répondent à ces exigences afin que votre application puisse générer des résultats de qualité.
Consultez également À propos des types de recommandations pour les applications multimédias, qui répertorie les types d'événements utilisateur nécessaires en fonction du type de recommandation et de l'objectif d'optimisation que vous prévoyez d'utiliser.
Priorité des types d'événements pour les recommandations de contenus multimédias
Le tableau suivant décrit la priorité des types d'événements utilisateur pour les recommandations multimédias. Certains événements utilisateur sont requis pour utiliser les recommandations multimédias. D'autres sont recommandés pour améliorer vos résultats, mais pas obligatoires.
Priorité | Événements utilisateur |
---|---|
Obligatoire pour les expérimentations en direct initiales avec les recommandations de contenus multimédias | |
Important pour améliorer la qualité des résultats des recommandations multimédias au fil du temps |
Exigences concernant les recommandations de contenus multimédias
Assurez-vous que vos événements utilisateur répondent aux exigences suivantes afin que vos applications de recommandations 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 de duplication d'événements. |
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 de s'assurer que les applications de recommandations de contenus multimédias disposent de suffisamment de données pour générer des résultats de qualité. |
|
Les pseudo-ID utilisateur doivent être formatés exactement de la même manière pour l'importation ou l'enregistrement des événements, ainsi que dans les requêtes de recommandations multimédias. |
L'utilisation d'un format cohérent pour les pseudo-ID utilisateur aide les applications de recommandations multimédias à identifier correctement les tendances des visiteurs et à fournir des résultats de meilleure qualité en fonction du comportement des utilisateurs. |
|
Le champ |
Un événement qui inclut un document sans champ |
|
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 créer des historiques de séquences de comportement valides, les applications de recommandations multimédias doivent pouvoir afficher plusieurs événements avec le même pseudo-ID utilisateur.
Par exemple, |
|
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é. |
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é. |
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 multimédias.
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.
Remarques :
- Le champ
tagIds
n'est nécessaire que si vous effectuez un test A/B. - Le champ
attributionToken
est facultatif. Il permet de mesurer les performances. Les événementssearch
etview-item
générés à partir des clics sur les recommandations multimédias doivent comporter un jeton d'attribution afin de les associer aux recommandations qui les ont générés.
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 l'importation d'é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 l'importation d'é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 l'importation d'é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" } ] } ] } ]
search
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
.
Vous devez renseigner au moins l'un des champs searchQuery
ou pageCategory
:
Fournissez
searchQuery
pour les événements de recherche pour lesquels l'utilisateur a saisi une requête textuelle.Fournissez
pageCategory
lorsque l'utilisateur a accédé aux éléments qui l'intéressent en parcourant le site, c'est-à-dire en cliquant sur des catégories au lieu de saisir une requête textuelle.
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", }, pageInfo: { pageCategory: "category1 > category2", }, 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 l'importation d'é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": "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 l'importation d'é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": 1.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 l'importation d'é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 recommandations de vos utilisateurs lorsque vous utilisez les recommandations de contenus multimédias. 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. La mise en forme des attributs personnalisés doit être cohérente entre les événements importés et les événements fournis avec les requêtes de recommandation. Cela permet aux applications de recommandations 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, le cas échéant, 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 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 horodatages 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.
Étape suivante
- Découvrez comment enregistrer des événements utilisateur.