Schéma de reporting XDM

Lorsque vous envoyez des événements de suivi multimédia à l’aide de Adobe Experience Platform Edge Network, le serveur principal Media Analytics traite ces événements et écrit les événements d’expérience calculés dans les jeux de données Platform. Comprendre quels événements atteignent Platform et ce que le serveur principal calcule pour vous permet de valider votre implémentation et de créer des rapports précis dans Customer Journey Analytics ou Adobe Analytics.

Deux schémas XDM distincts sont utilisés dans différentes parties du pipeline de collecte et de création de rapports :

Schéma
Espace de noms
Direction
Rôle
Media Collection
xdm.mediaCollection
Client → Adobe
Ce que votre lecteur envoie pour chaque événement de suivi. Utilisé par variables.
Rapports multimédias
xdm.mediaReporting
Adobe → Platform
Ce que le serveur principal écrit dans les jeux de données après traitement. Utilisé par dimensions et mesures.

Les champs présents dans mediaReporting mais absents de la payload mediaCollection sont dérivés de la séquence complète d’événements d’une session. Ces champs ne sont jamais envoyés, ils sont générés par Adobe.

Événements qui écrivent dans les jeux de données Platform

Sur les 12 types d’événements pouvant faire l’objet d’un suivi, seuls cinq génèrent des écritures d’événement d’expérience individuelles dans les jeux de données :

Type d’événement
Inclus dans les jeux de données
Notes
Début de la session
Oui
Ecrit à l’initialisation de la session
Début de la publicité
Oui
Écrit lorsqu’une publicité individuelle commence
Publicité terminée
Oui
Écrit lorsqu’une publicité est lue jusqu’à la fin
Chapitre terminé
Oui
Écrit lorsqu’un chapitre est lu jusqu’à la fin
Fin de la session
Oui
Écrit à la fin de la session ; champ calculé le plus riche défini
Lecture
Non
Utilisé pour calculer les timePlayed
Démarrer la pause
Non
Utilisé pour calculer les pauseCount et les pauseTime
​ Ping ​
Non
Heartbeat ; utilisé pour détecter l’inactivité de session
​ Début de la mémoire tampon ​
Non
Utilisé pour calculer les mesures du tampon QoE
Changement de débit
Non
Utilisé pour calculer les mesures de débit QoE
Début état
Non
Utilisé pour calculer les mesures d’état du lecteur
Erreur
Non
Utilisé pour calculer les errorCount dans QoE

Champs calculés du serveur principal

Les champs suivants apparaissent dans les payloads mediaReporting, mais ne font jamais partie de la payload de collection. Le serveur principal les dérive de la séquence d’événements complète.

Niveau de session (s’affiche sur sessionComplete) :

Champ
Description
xdm.mediaReporting.sessionDetails.timePlayed
Durée totale en secondes du contenu principal lu, publicités exclues
xdm.mediaReporting.sessionDetails.totalTimePlayed
Nombre total de secondes écoulées, publicités comprises
xdm.mediaReporting.sessionDetails.uniqueTimePlayed
Secondes dédupliquées : les intervalles consultés plus d’une fois ne sont comptabilisés qu’une seule fois
xdm.mediaReporting.sessionDetails.averageMinuteAudience
timePlayed divisé par la longueur du contenu
xdm.mediaReporting.sessionDetails.estimatedStreams
Flux simultanés estimés
xdm.mediaReporting.sessionDetails.adCount
Nombre de publicités ayant démarré
xdm.mediaReporting.sessionDetails.chapterCount
Nombre de chapitres ayant démarré
xdm.mediaReporting.sessionDetails.pauseCount / xdm.mediaReporting.sessionDetails.pauseTime
Fréquence et durée totale de la pause
xdm.mediaReporting.sessionDetails.hasProgress10xdm.mediaReporting.sessionDetails.hasProgress95
Indicateurs de jalon de progression (10 %, 25 %, 50 %, 75 %, 95 %)
xdm.mediaReporting.sessionDetails.hasSegmentView
Si au moins une image de contenu a été vue
xdm.mediaReporting.sessionDetails.isCompleted / xdm.mediaReporting.sessionDetails.isPlayed
Indicateurs d’achèvement et de début
xdm.mediaReporting.sessionDetails.secondsSinceLastCall
Durée entre le dernier ping et la fermeture de session
xdm.mediaReporting.sessionDetails.segment
Crochet du segment de contenu (par exemple, [0-1])

Niveau de l’annonce (apparaît sur adComplete) :

Champ
Description
xdm.mediaReporting.advertisingDetails.timePlayed
Secondes de lecture du contenu publicitaire
xdm.mediaReporting.advertisingDetails.isCompleted
Indique si l’annonce a été lue jusqu’à la fin.

Au niveau du chapitre (apparaissant sur chapterComplete) :

Champ
Description
xdm.mediaReporting.chapterDetails.timePlayed
Secondes de lecture du contenu du chapitre
xdm.mediaReporting.chapterDetails.isCompleted
Indique si le chapitre a été lu jusqu’à la fin.
xdm.mediaReporting.chapterDetails.isStarted
Indique si le chapitre a démarré.

QoE (agrégé sur sessionComplete) :

Champ
Description
xdm.mediaReporting.qoeDataDetails.bitrateAverage
Débit moyen sur l’ensemble de la session
xdm.mediaReporting.qoeDataDetails.bitrateAverageBucket
Plage de débits moyens regroupés
xdm.mediaReporting.qoeDataDetails.bitrateChangeCount
Nombre de changements de débit
xdm.mediaReporting.qoeDataDetails.errorCount
Nombre d’erreurs
xdm.mediaReporting.qoeDataDetails.droppedFrames
Nombre total d’images perdues
xdm.mediaReporting.qoeDataDetails.playerSdkErrors
Tableau de codes d’erreur du lecteur
xdm.mediaReporting.qoeDataDetails.hasErrorImpactedStreams
Si une erreur s’est produite
xdm.mediaReporting.qoeDataDetails.hasDroppedFrameImpactedStreams
Si des images ont été perdues
xdm.mediaReporting.qoeDataDetails.hasBitrateChangeImpactedStreams
Si des changements de débit se sont produits

Contenu téléchargé

Pour les sessions suivies à l’aide du point d’entrée téléchargé, le serveur principal définit automatiquement le xdm.mediaReporting.sessionDetails.isDownloaded sur true sur l’événement de création de rapports sessionStart. Tous les autres événements de création de rapports pour les sessions téléchargées suivent le même schéma que les sessions actives. Utilisez ce champ dans CJA ou Adobe Analytics pour filtrer ou segmenter la lecture téléchargée.

Voir Point d’entrée téléchargé dans Référence de l’API Media Edge pour les détails d’implémentation de la collection.

Valider votre mise en œuvre

Après avoir envoyé des événements par le biais de l’API Media Edge, vérifiez que vos données ont bien atterri en utilisant l’une des méthodes suivantes :

Aperçu du jeu de données

  1. Dans CX Enterprise, accédez à Jeux de données et sélectionnez votre jeu de données de médias en flux continu.
  2. Sélectionnez Prévisualiser le jeu de données pour afficher les événements d’expérience les plus récemment ingérés.
  3. Vérifiez que eventType valeurs telles que media.sessionStart et media.sessionComplete s’affichent avec des champs de mediaReporting renseignés.

inspection du jeu de données

  1. Dans CJA, ouvrez la connexion associée à votre jeu de données de médias en flux continu.
  2. Sélectionnez Ajouter des jeux de données et examinez le schéma pour confirmer que les champs mediaReporting sont mappés aux dimensions et mesures attendues.

Règles de traitement Adobe Analytics (si vous utilisez la destination Analytics)

Pour les suites de rapports Adobe Analytics recevant des données via le connecteur source Analytics, vous pouvez utiliser des règles de traitement pour mapper des variables de données contextuelles mediaReporting à des props ou des eVars personnalisées. L’indicateur isDownloaded est disponible en tant que a.media.downloaded.

Exemples de payload XDM

Les exemples suivants montrent la structure XDM mediaReporting complète pour chaque événement de création de rapports tel qu’il est écrit dans les jeux de données Platform. La propriété _{tenantName} représente l’espace de noms du client de votre organisation pour tous les champs personnalisés.

media.sessionStart
code language-json
{
  "xdm": {
    "_{tenantName}": {
      "customField1": "c1",
      "customField2": "c2"
    },
    "mediaReporting": {
      "sessionDetails": {
        "adLoad": "adLoadType",
        "appVersion": "sdk-1.0",
        "artist": "test-artist",
        "channel": "broadcastChannel",
        "rating": "4.8/5",
        "show": "test-name Series",
        "genreList": ["Comedy"],
        "episode": "4933",
        "originator": "Tokala Clementine",
        "isViewed": true,
        "network": "test-network",
        "firstAirDate": "firstAirDate",
        "streamType": "video",
        "authorized": "true",
        "streamFormat": "streamFormat",
        "genre": "Comedy",
        "station": "test-station",
        "hasResume": false,
        "season": "1521",
        "showType": "sitcom",
        "ID": "cd7b[...]6f",
        "contentType": "VOD",
        "friendlyName": "test-friendly-name",
        "playerName": "HTML5 player",
        "album": "test-album",
        "author": "test-author",
        "length": 100,
        "dayPart": "dayPart",
        "label": "test-label",
        "mvpd": "test-mvpd",
        "feed": "sourceFeed",
        "assetID": "/uri-reference",
        "name": "test-name",
        "publisher": "test-media-publisher",
        "firstDigitalDate": "releaseDate"
      }
    },
    "implementationDetails": {
      "environment": "server",
      "name": "https://ns.adobe.com/experience/edge",
      "version": "0.0.0"
    },
    "identityMap": {
      "ECID": [
        {
          "id": "5191[...]21",
          "authenticatedState": "ambiguous",
          "primary": true
        }
      ]
    },
    "eventType": "media.sessionStart",
    "_id": "0[...]0",
    "timestamp": "YYYY-11-20T12:43:35Z"
  }
}
media.adStart
code language-json
{
  "xdm": {
    "_{tenantName}": {
      "customField1": "c1",
      "customField2": "c2"
    },
    "environment": {
      "browserDetails": {},
      "ipV4": "130.248.81.10"
    },
    "mediaReporting": {
      "advertisingDetails": {
        "advertiser": "Adobe Marketing",
        "podPosition": 1,
        "placementID": "placementID",
        "example": "https://example.com",
        "playerName": "HTML5 player",
        "campaignID": "Adobe Analytics",
        "name": "/uri-reference/001",
        "length": 10,
        "siteID": "siteID",
        "isStarted": true,
        "creativeID": "creativeID",
        "friendlyName": "Ad 1"
      },
      "sessionDetails": {
        "adLoad": "adLoadType",
        "appVersion": "sdk-1.0",
        "artist": "test-artist",
        "pev3": "videoAd",
        "channel": "broadcastChannel",
        "rating": "4.8/5",
        "show": "test-name Series",
        "genreList": ["Comedy"],
        "episode": "4933",
        "originator": "Tokala Clementine",
        "network": "test-network",
        "firstAirDate": "firstAirDate",
        "streamType": "video",
        "pccr": true,
        "authorized": "true",
        "streamFormat": "streamFormat",
        "genre": "Comedy",
        "station": "test-station",
        "season": "1521",
        "showType": "sitcom",
        "ID": "cd7b[...]6f",
        "contentType": "VOD",
        "friendlyName": "test-friendly-name",
        "playerName": "HTML5 player",
        "album": "test-album",
        "author": "test-author",
        "length": 100,
        "dayPart": "dayPart",
        "label": "test-label",
        "mvpd": "test-mvpd",
        "feed": "sourceFeed",
        "assetID": "/uri-reference",
        "name": "test-name",
        "publisher": "test-media-publisher",
        "firstDigitalDate": "releaseDate"
      },
      "advertisingPodDetails": {
        "offset": 0,
        "ID": "3d594614f445f6b00014e9b77730b833_1",
        "friendlyName": "Mid-ad"
      }
    },
    "implementationDetails": {
      "environment": "server",
      "name": "https://ns.adobe.com/experience/edge",
      "version": "0.0.0"
    },
    "identityMap": {
      "ECID": [
        {
          "id": "5191[...]21",
          "authenticatedState": "ambiguous",
          "primary": true
        }
      ]
    },
    "eventType": "media.adStart",
    "_id": "d[...]0",
    "timestamp": "YYYY-11-20T12:43:56Z"
  }
}
media.adComplete
code language-json
{
  "xdm": {
    "_{tenantName}": {
      "customField1": "c1",
      "customField2": "c2"
    },
    "mediaReporting": {
      "advertisingDetails": {
        "advertiser": "Adobe Marketing",
        "podPosition": 1,
        "placementID": "placementID",
        "example": "https://example.com",
        "playerName": "HTML5 player",
        "campaignID": "Adobe Analytics",
        "length": 10,
        "creativeID": "creativeID",
        "timePlayed": 7,
        "name": "/uri-reference/001",
        "siteID": "siteID",
        "friendlyName": "Ad 1",
        "isCompleted": true
      },
      "sessionDetails": {
        "adLoad": "adLoadType",
        "appVersion": "sdk-1.0",
        "artist": "test-artist",
        "pev3": "videoAd",
        "channel": "broadcastChannel",
        "rating": "4.8/5",
        "show": "test-name Series",
        "genreList": ["Comedy"],
        "episode": "4933",
        "originator": "Tokala Clementine",
        "network": "test-network",
        "firstAirDate": "firstAirDate",
        "streamType": "video",
        "pccr": true,
        "authorized": "true",
        "streamFormat": "streamFormat",
        "genre": "Comedy",
        "station": "test-station",
        "season": "1521",
        "showType": "sitcom",
        "ID": "cd7b[...]6f",
        "contentType": "VOD",
        "friendlyName": "test-friendly-name",
        "playerName": "HTML5 player",
        "album": "test-album",
        "author": "test-author",
        "length": 100,
        "dayPart": "dayPart",
        "label": "test-label",
        "mvpd": "test-mvpd",
        "feed": "sourceFeed",
        "assetID": "/uri-reference",
        "name": "test-name",
        "publisher": "test-media-publisher",
        "firstDigitalDate": "releaseDate"
      },
      "advertisingPodDetails": {
        "offset": 0,
        "ID": "3d594614f445f6b00014e9b77730b833_1",
        "friendlyName": "Mid-ad"
      }
    },
    "implementationDetails": {
      "environment": "server",
      "name": "https://ns.adobe.com/experience/edge",
      "version": "0.0.0"
    },
    "identityMap": {
      "ECID": [
        {
          "id": "5191[...]21",
          "authenticatedState": "ambiguous",
          "primary": true
        }
      ]
    },
    "eventType": "media.adComplete",
    "_id": "f[...]0",
    "timestamp": "YYYY-11-20T12:44:03Z"
  }
}
media.chapterComplete
code language-json
{
  "xdm": {
    "_{tenantName}": {
      "customField1": "c1",
      "customField2": "c2",
      "customTest": "myCustomValue1"
    },
    "environment": {
      "browserDetails": {},
      "ipV4": "130.248.81.10"
    },
    "mediaReporting": {
      "sessionDetails": {
        "adLoad": "adLoadType",
        "appVersion": "sdk-1.0",
        "artist": "test-artist",
        "pev3": "video",
        "channel": "broadcastChannel",
        "rating": "4.8/5",
        "show": "test-name Series",
        "genreList": ["Comedy"],
        "episode": "4933",
        "originator": "Tokala Clementine",
        "network": "test-network",
        "firstAirDate": "firstAirDate",
        "streamType": "video",
        "pccr": true,
        "authorized": "true",
        "streamFormat": "streamFormat",
        "genre": "Comedy",
        "station": "test-station",
        "season": "1521",
        "showType": "sitcom",
        "ID": "cd7b[...]6f",
        "contentType": "VOD",
        "friendlyName": "test-friendly-name",
        "playerName": "HTML5 player",
        "album": "test-album",
        "author": "test-author",
        "length": 100,
        "dayPart": "dayPart",
        "label": "test-label",
        "mvpd": "test-mvpd",
        "feed": "sourceFeed",
        "assetID": "/uri-reference",
        "name": "test-name",
        "publisher": "test-media-publisher",
        "firstDigitalDate": "releaseDate"
      },
      "chapterDetails": {
        "timePlayed": 10,
        "offset": 0,
        "length": 10,
        "index": 1,
        "ID": "3d594614f445f6b00014e9b77730b833_1",
        "isStarted": true,
        "friendlyName": "Chapter 1",
        "isCompleted": true
      }
    },
    "implementationDetails": {
      "environment": "server",
      "name": "https://ns.adobe.com/experience/edge",
      "version": "0.0.0"
    },
    "identityMap": {
      "ECID": [
        {
          "id": "5191[...]21",
          "authenticatedState": "ambiguous",
          "primary": true
        }
      ]
    },
    "eventType": "media.chapterComplete",
    "_id": "a[...]0",
    "timestamp": "YYYY-11-20T12:44:24Z"
  }
}
media.sessionComplete
code language-json
{
  "xdm": {
    "_{tenantName}": {
      "customField1": "c1",
      "customField2": "c2"
    },
    "environment": {
      "browserDetails": {},
      "ipV4": "130.248.81.10"
    },
    "mediaReporting": {
      "qoeDataDetails": {
        "playerSdkErrors": ["test-buffer-start"],
        "bitrateAverageBucket": "0-99",
        "bitrateChangeCount": 1,
        "droppedFrames": 30,
        "hasErrorImpactedStreams": true,
        "hasBitrateChangeImpactedStreams": true,
        "hasDroppedFrameImpactedStreams": true,
        "bitrateAverage": 35,
        "timeToStart": 1,
        "errorCount": 1
      },
      "sessionDetails": {
        "adLoad": "adLoadType",
        "appVersion": "sdk-1.0",
        "hasProgress10": true,
        "pev3": "video",
        "channel": "broadcastChannel",
        "rating": "4.8/5",
        "episode": "4933",
        "pauseTime": 3,
        "streamType": "video",
        "pccr": true,
        "authorized": "true",
        "segment": "[0-1]",
        "season": "1521",
        "showType": "sitcom",
        "pauseCount": 1,
        "ID": "cd7b[...]6f",
        "contentType": "VOD",
        "uniqueTimePlayed": 47,
        "totalTimePlayed": 55,
        "author": "test-author",
        "hasProgress25": true,
        "feed": "sourceFeed",
        "timePlayed": 48,
        "name": "test-name",
        "publisher": "test-media-publisher",
        "hasPauseImpactedStreams": true,
        "averageMinuteAudience": 0.48,
        "artist": "test-artist",
        "show": "test-name Series",
        "genreList": ["Comedy"],
        "originator": "Tokala Clementine",
        "network": "test-network",
        "firstAirDate": "firstAirDate",
        "hasSegmentView": true,
        "streamFormat": "streamFormat",
        "genre": "Comedy",
        "station": "test-station",
        "friendlyName": "test-friendly-name",
        "isCompleted": true,
        "playerName": "HTML5 player",
        "album": "test-album",
        "chapterCount": 1,
        "length": 100,
        "adCount": 1,
        "dayPart": "dayPart",
        "label": "test-label",
        "mvpd": "test-mvpd",
        "secondsSinceLastCall": 51,
        "assetID": "/uri-reference",
        "isPlayed": true,
        "estimatedStreams": 1,
        "firstDigitalDate": "releaseDate"
      },
      "states": [
        {
          "isSet": true,
          "name": "mute",
          "count": 1,
          "time": 3
        },
        {
          "isSet": true,
          "name": "pictureInPicture",
          "count": 1,
          "time": 3
        }
      ]
    },
    "implementationDetails": {
      "environment": "server",
      "name": "https://ns.adobe.com/experience/edge",
      "version": "0.0.0"
    },
    "identityMap": {
      "ECID": [
        {
          "id": "5191[...]21",
          "authenticatedState": "ambiguous",
          "primary": true
        }
      ]
    },
    "eventType": "media.sessionComplete",
    "_id": "a[...]0",
    "timestamp": "YYYY-11-20T12:44:40Z"
  }
}
media.sessionStart (contenu téléchargé)

Les sessions suivies à l’aide du point d’entrée téléchargé suivent le même schéma de création de rapports avec une différence clé : xdm.mediaReporting.sessionDetails.isDownloaded est défini sur true sur l’événement de création de rapports sessionStart. Tous les autres types d’événements sont identiques aux exemples de contenu en direct ci-dessus.

code language-json
{
  "xdm": {
    "mediaReporting": {
      "customMetadata": [
        {
          "name": "customData",
          "value": "example"
        }
      ],
      "playhead": 0,
      "sessionDetails": {
        "ID": "d8a25708a6b0be83975e32e2f422105ed62f51ff67e6d82d898657534ab9244f",
        "channel": "channel",
        "contentType": "VOD",
        "length": 100,
        "name": "123456789",
        "playerName": "playerName",
        "isDownloaded": true
      }
    },
    "eventType": "media.sessionStart",
    "timestamp": "YYYY-09-26T15:52:24Z",
    "identityMap": {
      "ECID": [
        {
          "id": "51910389753901685456014889838591030721"
        }
      ]
    },
    "implementationDetails": {
      "version": "0.0.1",
      "environment": "browser",
      "name": "https://ns.adobe.com/experience/edge"
    }
  }
}
recommendation-more-help
media-analytics-help