

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Suivi des publicités côté client
<a name="ad-reporting-client-side"></a>

À l'aide de l'API de suivi AWS Elemental MediaTailor côté client, vous pouvez intégrer des contrôles sur les joueurs pendant les pauses publicitaires dans les flux de travail de streaming. Dans le cadre du suivi côté client, le joueur ou le client transmet des événements de suivi, tels que le balisage publicitaire par impression et par quartile, au serveur de décision publicitaire (ADS) et à d'autres entités de vérification des publicités. Ces événements permettent de suivre à la fois le statut général des interruptions publicitaires et les avantages individuels des annonces pendant chaque pause. Pour plus d'informations sur les impressions et les quartiles (ADS) et les autres entités de vérification des publicités. Pour plus d'informations sur les impressions et le balisage publicitaire par quartile, consultez. [Balisage côté client](ad-reporting-client-side-beaconing.md) Pour plus d'informations sur ADS et les autres entités de vérification des publicités, consultez[Intégrations de suivi publicitaire côté client](ad-reporting-client-side-ad-tracking-integrations.md).

Pour plus d'informations sur la transmission des paramètres du joueur et des données de session à l'ADS pour le suivi côté client, consultez [MediaTailor variables du joueur pour les requêtes ADS](variables-player.md) et. [MediaTailor variables de session pour les requêtes ADS](variables-session.md)

Le suivi côté client permet des fonctionnalités telles que les suivantes : 
+ Compte à rebours Ad-break - Pour plus d'informations, voir. [Ajouter un compte à rebours](ad-reporting-client-side-ad-tracking-schema-player-controls.md#ad-reporting-client-side-ad-tracking-schema-player-controls-ad-countdown-timer)
+ Nombre de clics sur les annonces : pour plus d'informations, consultez. [Nombre de clics sur les annonces](ad-reporting-client-side-ad-tracking-schema-player-controls.md#ad-reporting-client-side-ad-tracking-schema-player-controls-ad-clickthrough)
+ Affichage de publicités associées - Pour plus d'informations, voir[Publicités complémentaires](ad-reporting-client-side-ad-tracking-schema-player-controls.md#ad-reporting-client-side-ad-tracking-schema-player-controls-companion-ads).
+ Publicités à ignorer : pour plus d'informations, consultez. [Publicités à ignorer](ad-reporting-client-side-ad-tracking-schema-player-controls.md#ad-reporting-client-side-ad-tracking-schema-player-controls-skippable-ads)
+ Affichage des icônes VAST pour garantir le respect de la confidentialité - Pour plus d'informations, voir[Icônes pour Google Why This Ad (WTA)](ad-reporting-client-side-ad-tracking-schema-player-controls.md#ad-reporting-client-side-ad-tracking-schema-player-controls-google-wta).
+ Contrôle du nettoyage des joueurs pendant les publicités - Pour plus d'informations, voir[Gommage](ad-reporting-client-side-ad-tracking-schema-player-controls.md#ad-reporting-client-side-ad-tracking-schema-player-controls-scrubbing).

À l'aide de l'API de suivi MediaTailor côté client, vous pouvez envoyer des métadonnées au périphérique de lecture qui active des fonctionnalités en plus du suivi côté client :

## Flux de production de rapports côté client
<a name="ad-reporting-client-side-workflow"></a>

Le schéma suivant montre l'ensemble du flux de production de rapports côté client, depuis l'initialisation de la session jusqu'à la diffusion de publicités et au beaconing :

![\[MediaTailor diagramme de séquence de rapports côté client montrant l'interaction entre le lecteur vidéo, le serveur Ad Decision MediaTailor, l'origine du contenu et les services de vérification des publicités pendant tout le flux de travail, depuis l'initialisation de la session jusqu'à la diffusion des publicités et au beaconing.\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/images/tracking_flow.png)


Le flux de production de rapports côté client comprend les étapes suivantes :

1. **Initialisation de session** - Le lecteur vidéo envoie une requête POST au point de terminaison de MediaTailor session avec des métadonnées JSON`adsParams`, notamment des jetons d'origine et des fonctionnalités de session. MediaTailor répond avec `manifestUrl` et `trackingUrl` pour la session.

1. **Demande de manifeste et décision publicitaire** - Le joueur demande le manifeste personnalisé à MediaTailor. MediaTailor demande le manifeste du contenu original depuis l'origine, envoie une demande publicitaire au serveur de décision publicitaire (ADS) en utilisant les paramètres du joueur, reçoit une réponse VASTE avec des métadonnées publicitaires et fournit un manifeste personnalisé avec des marqueurs publicitaires au joueur.

1. **Récupération des données de suivi** - Le joueur interroge l'URL de suivi à intervalles réguliers (durée cible pour le HLS ou période de mise à jour minimale pour DASH). MediaTailor renvoie des métadonnées de suivi JSON contenant des informations, des publicités, des événements de suivi, des balises URLs et des données de vérification des publicités.

1. **Diffusion des publicités et balisage** : pendant les pauses publicitaires, le lecteur analyse les métadonnées de suivi, déclenche des balises d'impression lorsque les publicités commencent à s'afficher, déclenche des balises de quartile (start, firstQuartile, midpoint, thirdQuartile, complete) au moment opportun, charge et exécute la vérification des publicités si nécessaire, et envoie les événements à des services de vérification tiers. JavaScript viewability/verification 

1. **Sondage continu** : le joueur continue de sonder l'URL de suivi tout au long de la session afin de recevoir des métadonnées mises à jour pour les prochaines annonces et le contenu dynamique.

Ce flux de travail intègre des fonctionnalités avancées telles que le compte à rebours des publicités, la fonctionnalité de clics, les publicités associées, les publicités ignorables et l'affichage d'icônes VAST pour garantir le respect de la confidentialité.

**Topics**
+ [Flux de production de rapports côté client](#ad-reporting-client-side-workflow)
+ [Activation du suivi côté client](#ad-reporting-client-side-enabling)
+ [Paramètres du serveur publicitaire](#ad-reporting-client-side-ad-server-parameters)
+ [Paramètres de requête d'interaction avec Origin](#ad-reporting-client-side-origin-interaction-query-parameters)
+ [Fonctionnalités configurées par session](#ad-reporting-client-side-session-configured-features)
+ [Bonnes pratiques en matière de suivi côté client](#ad-reporting-client-side-best-practices)
+ [Schéma et propriétés de suivi des publicités côté client](ad-reporting-client-side-ad-tracking-schema.md)
+ [Chronologie des activités de suivi des publicités](ad-reporting-client-side-ad-tracking-schema-activity-timing.md)
+ [Commandes et fonctionnalités du lecteur pour le suivi des publicités côté client](ad-reporting-client-side-ad-tracking-schema-player-controls.md)
+ [Balisage côté client](ad-reporting-client-side-beaconing.md)
+ [Mode hybride avec balises publicitaires côté serveur](ad-reporting-hybrid-mode.md)
+ [Intégrations de suivi publicitaire côté client](ad-reporting-client-side-ad-tracking-integrations.md)
+ [Pagination via des balises publicitaires avec GetTracking](#gettracking)

## Activation du suivi côté client
<a name="ad-reporting-client-side-enabling"></a>

Vous activez le suivi côté client pour chaque session. Le joueur envoie un HTTP `POST` au point de terminaison du MediaTailor préfixe d'initialisation de session de la configuration. Le joueur peut éventuellement envoyer des métadonnées supplémentaires MediaTailor à utiliser lorsqu'il passe des appels publicitaires, appelle l'origine d'un manifeste et invoque ou désactive des MediaTailor fonctionnalités au niveau de la session.

L'exemple suivant montre la structure des métadonnées JSON :

```
{
  "adsParams": {                  # 'adsParams' is case sensitive
    "param1": "value1",           # key is not case sensitive
    "param2": "value2",           # Values can contain spaces. For example, 'value 2' is an allowed value. 
    },
  "origin_access_token":"abc123", # this is an example of a query parameter designated for the origin
  "overlayAvails":"on"            # 'overlayAvails' is case sensitive. This is an example of a feature that is enabled at the session level.
}
```

Utilisez la MediaTailor console ou l'API pour configurer l'URL du modèle de demande ADS afin de référencer ces paramètres. Dans l'exemple suivant, `player_params.param1` sont les paramètres du joueur pour`param1`, et `player_params.param2` sont les paramètres du joueur pour`param2`.

```
https://my.ads.com/path?param1=[player_params.param1]&param2=[player_params.param2]
```

## Paramètres du serveur publicitaire
<a name="ad-reporting-client-side-ad-server-parameters"></a>

Au niveau supérieur de la structure JSON se trouve un objet `adsParams` JSON. À l'intérieur de cet objet key/value se trouvent des paires qui MediaTailor peuvent lire et envoyer au serveur publicitaire pour toutes les demandes de session. MediaTailor prend en charge les serveurs publicitaires suivants :
+ Gestionnaire de publicités Google 
+ SpringServe 
+ FreeWheel 
+ Publica 

## Paramètres de requête d'interaction avec Origin
<a name="ad-reporting-client-side-origin-interaction-query-parameters"></a>

Les key/value paires réservées situées au niveau supérieur de la structure JSON, telles que, et `adsParams` `availSuppression``overlayAvails`, ne sont pas ajoutées à l'URL de la demande d'origine sous forme de paramètres de requête. Chaque demande de manifeste de session MediaTailor envoyée à l'origine contient ces paramètres de requête. L'origine ignore les paramètres de requête superflus. Par exemple, MediaTailor vous pouvez utiliser les key/value paires pour envoyer des jetons d'accès à l'origine.

## Fonctionnalités configurées par session
<a name="ad-reporting-client-side-session-configured-features"></a>

Utilisez la structure JSON d'initialisation de session pour activer, désactiver ou remplacer des MediaTailor fonctionnalités telles que, et. `overlayAvails` `availSuppression` `adSignaling` Toutes les configurations de fonctionnalités transmises lors de l'initialisation de la session remplacent le paramètre au niveau de la MediaTailor configuration.

**Note**  
Les métadonnées soumises MediaTailor lors de l'initialisation de la session sont immuables et il est impossible d'ajouter des métadonnées supplémentaires pendant toute la durée de la session. Utilisez les marqueurs SCTE-35 pour transporter les données qui changent au cours de la session. Pour de plus amples informations, veuillez consulter [MediaTailor variables de session pour les requêtes ADS](variables-session.md).

**Example : Réalisation du suivi des publicités côté client pour HLS**  

```
POST mediatailorURL/v1/session/hashed-account-id/origin-id/asset-id.m3u8

        {
            "adsParams": {
               "deviceType": "ipad"   # This value does not change during the session.
               "uid": "abdgfdyei-2283004-ueu"                     
           }
        }
```

**Example : Suivi des publicités côté client pour DASH**  

```
POST mediatailorURL/v1/session/hashed-account-id/origin-id/asset-id.mpd

        {
            "adsParams": {
               "deviceType": "androidmobile",
               "uid": "xjhhddli-9189901-uic" 
           }
        }
```

### Paramètre du mode de rapport
<a name="session-initialization-reporting-mode"></a>

Vous pouvez spécifier le mode de rapport lors de l'initialisation d'une session en incluant le `reportingMode` paramètre dans le corps de la demande. Ce paramètre détermine si le suivi MediaTailor des publicités est effectué côté client ou côté serveur pour la session.
+ `client`- Le joueur effectue le suivi des publicités et envoie des balises au serveur publicitaire. Il s'agit du mode par défaut si aucun n'`reportingMode`est spécifié.
+ `server`- MediaTailor effectue un suivi publicitaire côté serveur et envoie des balises directement au serveur publicitaire.

**Example Initialisation de session avec mode de reporting côté serveur**  

```
POST mediatailorURL/v1/session/hashed-account-id/origin-id/asset-id.m3u8

        {
            "adsParams": {
               "deviceType": "ipad",
               "uid": "abdgfdyei-2283004-ueu"                     
           },
           "reportingMode": "server"
        }
```

**Example Initialisation de session avec mode de reporting côté client (explicite)**  

```
POST mediatailorURL/v1/session/hashed-account-id/origin-id/asset-id.mpd

        {
            "adsParams": {
               "deviceType": "androidmobile",
               "uid": "xjhhddli-9189901-uic" 
           },
           "reportingMode": "client"
        }
```

**Note**  
Le `reportingMode` paramètre est défini lors de l'initialisation de la session et ne peut pas être modifié pendant la session. Si non `reportingMode` est spécifié, les rapports côté client sont utilisés MediaTailor par défaut pour maintenir la rétrocompatibilité.

Une réponse réussie est un HTTP `200` avec un corps de réponse. Le corps contient un objet JSON avec une clé `manifestUrl` et une `trackingUrl` clé. Les valeurs sont relatives et le lecteur peut URLs les utiliser à la fois à des fins de lecture et de suivi des événements publicitaires.

```
{
  "manifestUrl": "/v1/dashmaster/hashed-account-id/origin-id/asset-id.m3u8?aws.sessionId=session-id",
  "trackingUrl": "/v1/tracking/hashed-account-id/origin-id/session-id"
}
```

Pour plus d'informations sur le schéma de suivi côté client, consultez. [Schéma et propriétés de suivi des publicités côté client](ad-reporting-client-side-ad-tracking-schema.md)

## Bonnes pratiques en matière de suivi côté client
<a name="ad-reporting-client-side-best-practices"></a>

Cette section décrit les meilleures pratiques en matière de suivi côté client pour les flux de travail en MediaTailor direct et de VOD.

### Flux de travail en direct
<a name="ad-reporting-client-side-best-practices-live"></a>

Interrogez le terminal de suivi à un intervalle correspondant à chaque durée cible pour le HLS ou à la période de mise à jour minimale pour DASH, afin de toujours disposer des métadonnées de suivi publicitaire les plus récentes. Il est particulièrement important de faire correspondre cet intervalle dans les flux de travail où les créations peuvent comporter un composant interactif ou superposé. 

**Note**  
Certains joueurs soutiennent les auditeurs d'événements, ce qui pourrait être utilisé comme alternative aux sondages. Par exemple, la fonctionnalité de décoration de l'identifiant MediaTailor publicitaire doit être activée pour chaque session. Pour de plus amples informations, veuillez consulter [Décoration d'identification publicitaire](ad-id-decoration.md). L'utilisation de cette fonctionnalité place un identifiant de plage de dates (HLS) ou d'élément d'événement (DASH) sur chaque annonce disponible. Les joueurs peuvent utiliser ces balises de manifeste pour appeler le point de terminaison MediaTailor de suivi de la session.

### Flux de travail VOD
<a name="ad-reporting-client-side-best-practices-vod"></a>

Après une initialisation de session réussie et après avoir MediaTailor reçu le premier manifeste contenant du contenu multimédia, vous n'avez qu'à appeler le point de terminaison de suivi une seule fois.

![\[Flux d'appels pour les flux de travail VOD. Appelez le point de terminaison de suivi côté client après l'initialisation de la session et la MediaTailor réception du premier manifeste contenant du contenu multimédia.\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/images/vod-workflow-best-practice.png)


### Insertion de publicités guidée par le serveur
<a name="ad-reporting-client-side-best-practices-sgai"></a>

Les sessions d'insertion de publicités guidées par le serveur (SGAI) n'utilisent pas l'API. `GetTracking` Lorsque vous utilisez`aws.reportingMode=CLIENT`, MediaTailor fournit plutôt des informations de suivi dans la `TRACKING` section de chaque réponse à la liste d'actifs lorsque les joueurs demandent du contenu publicitaire. La réponse d'initialisation de session n'inclut pas un`trackingUrl`.

La réponse à la liste des actifs pour les sessions SGAI suivies côté client a la structure suivante :

```
{
  "ASSETS": [
    { "DURATION": 20.0, "URI": "https://cdn.example.com/ad1/master.m3u8" },
    { "DURATION": 10.0, "URI": "https://cdn.example.com/ad2/master.m3u8" }
  ],
  "TRACKING": {
    ...VAST tracking events and beacon URLs for each ad...
  }
}
```

Lors de la mise en œuvre du suivi côté client pour les méthodes SGAI :
+ Analysez la `TRACKING` section à partir des réponses de la liste d'actifs plutôt que d'appeler `GetTracking`
+ Utilisez le suivi URLs fourni dans la liste des ressources pour les rapports sur les événements publicitaires
+ Balises de suivi des incendies basées sur les événements réels de diffusion des publicités dans le lecteur
+ Gérez le suivi de chaque pause publicitaire de manière indépendante au fur et à mesure que les listes d'actifs sont extraites

**Important**  
La `TRACKING` section n'est incluse dans la liste des actifs que lorsqu'elle `aws.reportingMode=CLIENT` est définie. Lorsque des rapports côté serveur sont utilisés (valeur par défaut pour SGAI), la `TRACKING` section est MediaTailor omise et intègre les données de balise dans l'annonce à la place. URIs Pour en savoir plus, consultez [Suivi côté serveur avec insertion publicitaire guidée par le serveur (SGAI)](ad-reporting-server-side-sgai.md).

# Schéma et propriétés de suivi des publicités côté client
<a name="ad-reporting-client-side-ad-tracking-schema"></a>

Grâce à la fonction de suivi des publicités MediaTailor côté client, vous pouvez intégrer des données détaillées de suivi des publicités côté client dans votre environnement de jeu. Les sections suivantes couvrent le schéma global de suivi des publicités, ainsi que les propriétés et valeurs spécifiques qui le composent.

## Schema
<a name="ad-reporting-client-side-ad-tracking-schema-table"></a>

La structure JSON suivante montre le schéma de suivi des publicités MediaTailor côté client. Cette représentation illustre la structure d'imbrication du schéma pour vous aider à comprendre les relations entre les différentes parties.

Pour obtenir des informations détaillées sur chaque propriété, consultez[Propriétés](#ad-reporting-client-side-ad-tracking-schema-properties).

```
{
  "avails": [
    {
      "ads": [
        {
          "adID": "string",
          "adParameters": "string",
          "adSystem": "string",
          "adTitle": "string",
          "adVerifications": [
            {
              "executableResource": [
                {
                  "apiFramework": "string",
                  "type": "string",
                  "uri": "string",
                  "language": "string"
                }
              ],
              "javaScriptResource": [
                {
                  "apiFramework": "string",
                  "browserOptional": "string",
                  "uri": "string"
                }
              ],
              "trackingEvents": [
                {
                  "event": "string",
                  "uri": "string"
                }
              ],
              "vendor": "string",
              "verificationParameters": "string"
            }
          ],
          "companionAds": [
            {
              "adParameters": "string",
              "altText": "string",
              "attributes": {
                "adSlotId": "string",
                "apiFramework": "string",
                "assetHeight": "string",
                "assetWidth": "string",
                "expandedHeight": "string",
                "expandedWidth": "string",
                "height": "string",
                "id": "string",
                "pxratio": "string",
                "renderingMode": "string",
                "width": "string"
              },
              "companionClickThrough": "string",
              "companionClickTracking": "string",
              "htmlResource": "string",
              "iFrameResource": "string",
              "sequence": "string",
              "staticResource": "string",
              "trackingEvents": [
                {
                  "event": "string",
                  "uri": "string"
                }
              ]
            }
          ],
          "creativeId": "string",
          "creativeSequence": "string",
          "duration": "string",
          "durationInSeconds": number,
          "extensions": [
            {
              "type": "string",
              "content": "string"
            }
          ],
          "icons": [
            {
              "attributes": {
                "apiFramework": "string",
                "duration": "string",
                "height": "string",
                "offset": "string",
                "program": "string",
                "pxratio": "string",
                "width": "string",
                "xPosition": "string",
                "yPosition": "string"
              },
              "htmlResource": "string",
              "iconClicks": {
                "iconClickThrough": "string",
                "iconClickTracking": {
                  "id": "string"
                },
                "iconClickFallbackImages": [
                  {
                    "altText": "string",
                    "height": "string",
                    "width": "string",
                    "staticResource": {
                      "creativeType": "string",
                      "uri": "string"
                    }
                  }
                ]
              },
              "iconViewTracking": "string",
              "iFrameResource": "string",
              "staticResource": {
                "creativeType": "string",
                "uri": "string"
              }
            }
          ],
          "mediaFiles": {
            "adParameters": "string",
            "duration": "string",
            "durationInSeconds": number,
            "mediaFilesList": [
              {
                "apiFramework": "string",
                "delivery": "string",
                "height": "string",
                "maintainAspectRatio": "string",
                "mediaFileUri": "string",
                "mediaType": "string",
                "scalable": "string",
                "width": "string",
                "bitrate": "string"
              }
            ],
            "mezzanine": "string",
            "startTime": "string",
            "startTimeInSeconds": number,
            "trackingEvents": [
              {
                "beaconUrls": ["string"],
                "duration": "string",
                "durationInSeconds": number,
                "dateTime": "string",
                "eventId": "string",
                "eventType": "string",
                "startTime": "string",
                "startTimeInSeconds": number
              }
            ]
          },
          "startTime": "string",
          "startTimeInSeconds": number,
          "dateTime": "string",
          "adBreakTrackingEvents": [...],
          "vastAdId": "string"
        }
      ],
      "adType": "string",
      "availID": "string",
      "duration": "string",
      "durationInSeconds": number,
      "startTime": "string",
      "startTimeInSeconds": number,
      "dateTime": "string",
      "adMarkerDuration": "string",
      "adProgramDateTime": "string",
      "dashAvailabilityStartTime": "string",
      "hlsAnchorMediaSequenceNumber": "string"
    }
  ],
  "nonLinearAvails": [
    {
      "nonLinearAds": [...],
      "nonLinearAdsList": [...]
    }
  ],
  "nextToken": "string",
  "meta": {}
}
```

## Propriétés
<a name="ad-reporting-client-side-ad-tracking-schema-properties"></a>

Le tableau suivant répertorie les propriétés de l'API de suivi côté client, leurs définitions, leurs types de valeurs et des exemples.


****  

| Propriété | Définition | Type de la valeur | Exemple | 
| --- | --- | --- | --- | 
|   adID  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/ad-reporting-client-side-ad-tracking-schema.html) Trajectoire : `/avails/ads/adId` Cartographie VAST : aucune  | String | 10 | 
|   adBreakTrackingEvents  |  Un tableau qui contient les événements de suivi VMAP issus de la réponse VAST. Pour plus d'informations, consultez la section 2.3.3 de la spécification [VMAP 1.0.](https://www.iab.com/guidelines/vmap/) Trajectoire : `/avails/ads/adBreakTrackingEvents`  | Tableau |  []  | 
|   adMarkerDuration  |  Durée de validité observée à partir du marqueur publicitaire dans le manifeste.  | String |  30  | 
|   adParameters  |  Une chaîne de paramètres publicitaires, provenant du VAST VPAID, qui est MediaTailor transmise au joueur. Trajectoire : `/avails/ads/adParameters` Cartographie VAST : `VAST/Ad/InLine/Creatives/Creative/Linear/AdParameters`  | String |  | 
|   adProgramDateTime  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/ad-reporting-client-side-ad-tracking-schema.html)  | String |  | 
|   ads  |  Tableau contenant les objets publicitaires qui constituent l'offre. Les annonces sont répertoriées dans l'ordre dans lequel elles apparaissent dans le manifeste. Trajectoire : `/avails/ads`  | Tableau |  []  | 
|   adSystem  |  Nom du système qui diffuse l'annonce.  Assurez-vous de fournir une valeur. Si vous ne fournissez pas de valeur, des problèmes peuvent survenir.   | String |  myADS  | 
|   adTitle  |  Le titre de l'annonce.  | String |  ad1  | 
|   adVerifications  |  Contient les ressources et les métadonnées requises pour exécuter un code de mesure tiers afin de vérifier une lecture créative. Pour plus d'informations sur cette propriété, consultez la section 3.16 de la [spécification VAST 4.2](https://iabtechlab.com/standards/vast/). MediaTailor prend en charge en `adVerifications` tant que nœuds d'extension VAST 3. Trajectoire : `/avails/ads/adVerifications` Cartographie VAST : `VAST/Ad/InLine/AdVerifications`  | Tableau |  []  | 
|   altText  |  Texte alternatif pour l'image d'une annonce associée. Ce texte permet aux joueurs disposant d'un support audio descriptif pour malvoyants de relire une description de l'image. Trajectoire : `/avails/ads/companionAds/altText`  | String |  video sequence advertising sneakers  | 
|   apiFramework  |  Réglez sur `VPAID` pour indiquer au joueur qu'il s'agit d'une publicité VPAID. Peut apparaître à plusieurs endroits du schéma.  | String |  VPAID  | 
|   availID  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/ad-reporting-client-side-ad-tracking-schema.html) Trajectoire : `/avails/availID`  | String |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/ad-reporting-client-side-ad-tracking-schema.html)  | 
|   avails  |  Tableau contenant des objets publicitaires, ou *outils*, présentés dans la fenêtre de manifeste active. Les options sont répertoriées dans l'ordre dans lequel elles apparaissent dans le manifeste. Trajectoire : `/avails`  | Tableau |  []  | 
|   adType  |  Le type de publicité. Trajectoire : `/avails/adType` et `/avails/ads/adType`  | String |  | 
|   dateTime  |  Programmez la date et l'heure, au format ISO 8601 secondes, pour le début de la diffusion de l'annonce ou de l'annonce. Trajectoire : `/avails/dateTime` et `/avails/ads/dateTime`  | String |  | 
|   duration  |  Durée, au format ISO 8601 secondes. La réponse inclut les durées pour l'ensemble de la publicité et pour chaque annonce et balise, bien que les durées des balises soient toujours nulles. Trajectoire : `/avails/duration` et `/avails/ads/duration`  | String | 15.015 | 
|   durationInSeconds  |  Durée, en secondes. Trajectoire : `/avails/durationInSeconds` et `/avails/ads/durationInSeconds`  | Number |  | 
|   extensions  |  Extensions personnalisées de VAST utilisées par les serveurs publicitaires. Pour plus d'informations sur les extensions, consultez la section 3.18 de la [spécification VAST 4.2](https://iabtechlab.com/standards/vast/). Trajectoire : `/avails/ads/extensions` Cartographie VAST : `VAST/Ad/InLine/Extensions`  | Tableau | [] | 
|   icons  |  Éléments d'icône de l'annonce. Trajectoire : `/avails/ads/icons` Cartographie VAST : `VAST/Ad/InLine/Creatives/Creative/Linear/Icons`  | Tableau |  | 
|   mediaFiles  |  Vidéos et autres ressources dont le joueur a besoin pour profiter de la publicité. Trajectoire : `/avails/ads/mediaFiles`  | Objet |  | 
|   nonLinearAvails  |  Tableau d'objets non linéaires et disponibles. Trajectoire : `/nonLinearAvails`  | Tableau |  | 
|   executableResource  |  Ressources exécutables à des fins de vérification. Trajectoire : `/avails/ads/adVerifications/executableResource` Cartographie VAST : `VAST/Ad/InLine/AdVerifications/Verification/ExecutableResource`  | Tableau |  | 
|   javaScriptResource  |  JavaScript ressources pour la vérification. Trajectoire : `/avails/ads/adVerifications/javaScriptResource` Cartographie VAST : `VAST/Ad/InLine/AdVerifications/Verification/JavaScriptResource`  | Tableau |  | 
|   trackingEvents  |  Suivi des événements à des fins de vérification ou d'annonces complémentaires. Trajectoire : `/avails/ads/adVerifications/trackingEvents` ou `/avails/ads/companionAds/trackingEvents`  | Tableau |  | 
|   vendor  |  Fournisseur de vérification. Trajectoire : `/avails/ads/adVerifications/vendor` Cartographie VAST : `VAST/Ad/InLine/AdVerifications/Verification/@vendor`  | String |  | 
|   uri  |  URI pointant vers une ressource exécutable, une ressource vidéo ou un point de terminaison de suivi. Chemin : différents emplacements dans le schéma Cartographie VAST : divers éléments CDATA dans VAST  | String | https://tracking.example.com/impression | 
|   verificationParameters  |  Paramètres de vérification. Trajectoire : `/avails/ads/adVerifications/verificationParameters` Cartographie VAST : `VAST/Ad/InLine/AdVerifications/Verification/VerificationParameters`  | String |  | 
|   attributes  |  Attributs publicitaires complémentaires tels que les dimensions et le mode de rendu. Trajectoire : `/avails/ads/companionAds/attributes`  | Objet |  | 
|   companionClickThrough  |  URL de la page de l'annonceur que le lecteur multimédia ouvre lorsque le spectateur clique sur l'annonce associée. Trajectoire : `/avails/ads/companionAds/companionClickThrough` Cartographie VAST : `VAST/Ad/InLine/Creatives/Creative/CompanionAds/Companion/CompanionClickThrough`  | String | https://aws.amazon.com/ | 
|   companionClickTracking  |  URL de suivi de la `companionClickThrough` propriété. Trajectoire : `/avails/ads/companionAds/companionClickTracking` Cartographie VAST : `VAST/Ad/InLine/Creatives/Creative/CompanionAds/Companion/CompanionClickTracking`  | String | https://myads.com/beaconing/event=clicktracking | 
|   htmlResource  |  Le code HTML codé en CData qui est inséré directement dans la page HTML du fournisseur de streaming. Trajectoire : `/avails/ads/companionAds/htmlResource` Cartographie VAST : `VAST/Ad/InLine/Creatives/Creative/CompanionAds/Companion/HTMLResource`  | String | <\$1[CDATA[<\$1doctype html><html><head><meta name=\$1"viewport\$1" content=\$1"width=1, initial-scale=1.0, minimum-scale=1.0,...]]> | 
|   iFrameResource  |  URL d'un fichier de ressources HTML que le fournisseur de streaming charge dans un iframe. Trajectoire : `/avails/ads/companionAds/iFrameResource` Cartographie VAST : `VAST/Ad/InLine/Creatives/Creative/CompanionAds/Companion/iFrameResource`  | String |  | 
|   sequence  |  La valeur de séquence spécifiée pour la création dans la réponse VAST. Trajectoire : `/avails/ads/companionAds/sequence`  | String | 1 | 
|   startTime  |  Position temporelle, au format ISO 8601 secondes. Pour le HLS, cela se rapporte au début de la session de lecture. Pour DASH, cela est relatif à l'AST (heure de début de disponibilité) du manifeste. La réponse inclut les heures de début pour l'ensemble de la diffusion de publicités, et pour chaque publicité et balise beacon. Trajectoire : `/avails/startTime` et `/avails/ads/startTime`  | String | PT18.581355S | 
|   startTimeInSeconds  |  Position temporelle, au format des secondes. Pour le HLS, cela se rapporte au début de la session de lecture. Pour DASH, cela est relatif à l'AST (heure de début de disponibilité) du manifeste. La réponse inclut les heures de début pour l'ensemble de la diffusion de publicités, et pour chaque publicité et balise beacon. Trajectoire : `/avails/startTimeInSeconds` et `/avails/ads/startTimeInSeconds`  | Number | 18.581 | 
|   eventId  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/ad-reporting-client-side-ad-tracking-schema.html)  | String |  | 
|   event  |  Nom de l'événement de suivi. Trajectoire : `/avails/ads/adVerifications/trackingEvents/event` ou `/avails/ads/companionAds/trackingEvents/event`  | String | impression, start, firstQuartile, midpoint, thirdQuartile, complete | 
|   beaconUrls  |  URL à laquelle MediaTailor envoie la balise publicitaire. Trajectoire : `/avails/ads/mediaFiles/trackingEvents/beaconUrls`  | Tableau |  | 
|   bitrate  |  Débit de la ressource vidéo. Cette propriété n'est généralement pas incluse pour un actif exécutable.  | String | 2048 | 
|   companionAds  |  Une ou plusieurs spécifications de contenu publicitaire complémentaires, chacune d'entre elles spécifiant un fichier de ressources à utiliser. Des publicités complémentaires accompagnent la publicité et fournissent du contenu, comme un cadre autour de l'annonce ou une bannière, à afficher à côté de la vidéo. Trajectoire : `/avails/ads/companionAds`  | Tableau | [] | 
|   creativeId  |  La valeur d'`Id`attribut de la `Creative` balise associée à l'annonce.  | String | creative-1 | 
|   creativeSequence  |  L'ordre dans lequel une publicité doit être diffusée, en fonction de la `Ad@id` valeur de la réponse VAST.  | String | 1 | 
|   dashAvailabilityStartTime  |  Pour live/dynamic DASH, `MPD@availabilityStartTime` le manifeste d'origine.  | String | 2022-10-05T19:38:39.263Z | 
|   delivery  |  Indique si un `streaming` protocole `progressive` ou est utilisé.  | String | progressive | 
|   eventType  |  Type de balise. Trajectoire : `/avails/ads/mediaFiles/trackingEvents/eventType`  | String | impression | 
|   height  |  Hauteur, en pixels, de la ressource vidéo.  | String | 360 | 
|   hlsAnchorMediaSequenceNumber  |  Le numéro de séquence multimédia de la séquence first/oldest multimédia visible dans le manifeste d'origine HLS.  | String | 77 | 
|   maintainAspectRatio  |  Indique s'il faut conserver le rapport hauteur/largeur de la vidéo lors de la mise à l'échelle.  | Booléen | true | 
|   mediaFilesList  |  Spécifie la vidéo et les autres ressources dont le joueur a besoin pour bénéficier de la publicité. Trajectoire : `/avails/ads/mediaFiles/mediaFilesList`  | Tableau | [] | 
|   mediaFileUri  |  URI pointant vers une ressource exécutable ou une ressource vidéo.  | String | https://myad.com/ad/ad134/vpaid.js | 
|   mediaType  |  Type MIME de la ressource créative ou complémentaire.  | String | video/mp4 | 
|   meta  |  Métadonnées supplémentaires pour l'annonce.  | Objet |  | 
|   mezzanine  |  URL de la MP4 ressource mezzanine, spécifiée si l'annonce VPAID en inclut une. Trajectoire : `/avails/ads/mediaFiles/mezzanine`  | String | https://gcdn.2mdn.net/videoplayback/id/itag/ck2/file/file.mp4 | 
|   nextToken  |  La valeur du jeton qui pointe vers la page de résultats suivante, lorsqu'une telle valeur existe.  | String | UFQzOS44NzNTXzIwMjMtMDctMzFUMTY6NTA6MDYuMzUwNjI2ODQ1Wl8x | 
|   nonLinearAds  |  Publicités non linéaires qui apparaissent à côté du contenu vidéo.  | Tableau | [] | 
|   nonLinearAdsList  |  Liste des publicités non linéaires.  | Tableau | [] | 
|   scalable  |  Indique s'il faut redimensionner la vidéo à d'autres dimensions.  | Booléen | true | 
|   skipOffset  |  La valeur temporelle qui identifie le moment où le joueur met les commandes de saut à la disposition de l'utilisateur.  | String | 00:00:05 | 
|   staticResource  |  URL d'un fichier créatif statique utilisé pour le composant publicitaire. Trajectoire : `/avails/ads/companionAds/staticResource`  | String | https://very-interactive-ads.com/campaign1/file.json?c=1019113602 | 
|   vastAdId  |  La valeur d'`Id`attribut de la `Ad` balise.  | String | ad1 | 
|   width  |  Largeur, en pixels, de la ressource vidéo.  | String | 640 | 
|   xPosition  |  Position horizontale d'une icône dans le lecteur vidéo. Il peut s'agir d'une valeur de pixel spécifique ou d'une position telle que « gauche » ou « droite ». Trajectoire : `/avails/ads/icons/attributes/xPosition`  | String | left ou 10 | 
|   yPosition  |  Position verticale d'une icône dans le lecteur vidéo. Il peut s'agir d'une valeur de pixel spécifique ou d'une position telle que « haut » ou « bas ». Trajectoire : `/avails/ads/icons/attributes/yPosition`  | String | top ou 10 | 
|   iconClicks  |  Contient des informations relatives au clic et au suivi d'une icône. Trajectoire : `/avails/ads/icons/iconClicks`  | Objet |  | 
|   iconClickThrough  |  URL de la page de l'annonceur que le lecteur multimédia ouvre lorsque le spectateur clique sur l'icône. Trajectoire : `/avails/ads/icons/iconClicks/iconClickThrough`  | String | https://advertiser.com/landing-page | 
|   iconClickTracking  |  URL de suivi de la `iconClickThrough` propriété. Trajectoire : `/avails/ads/icons/iconClicks/iconClickTracking`  | Objet |  | 
|   iconClickFallbackImages  |  Un tableau d'images de remplacement à afficher si l'icône ne peut pas être affichée. Trajectoire : `/avails/ads/icons/iconClicks/iconClickFallbackImages`  | Tableau |  | 
|   iconViewTracking  |  URL permettant de suivre l'affichage d'une icône. Trajectoire : `/avails/ads/icons/iconViewTracking`  | String | https://tracking.example.com/icon-view | 
|   offset  |  Décalage horaire pendant lequel une icône doit apparaître pendant la diffusion d'une publicité. Trajectoire : `/avails/ads/icons/attributes/offset`  | String | 00:00:05 | 
|   program  |  Le programme ou l'initiative associé à l'icône, tel que « AdChoices ». Trajectoire : `/avails/ads/icons/attributes/program`  | String | AdChoices | 
|   pxratio  |  Le ratio de pixels de l'icône ou de la publicité associée, utilisé pour les écrans haute résolution. Trajectoire : `/avails/ads/icons/attributes/pxratio` ou `/avails/ads/companionAds/attributes/pxratio`  | String | 1 ou 2 | 
|   type  |  Type de ressource ou d'extension. Trajectoire : `/avails/ads/extensions/type` ou `/avails/ads/adVerifications/executableResource/type`  | String | text/javascript | 
|   content  |  Le contenu d'une extension. Trajectoire : `/avails/ads/extensions/content`  | String |  | 
|   language  |  Langage de programmation d'une ressource exécutable. Trajectoire : `/avails/ads/adVerifications/executableResource/language`  | String | javascript | 
|   browserOptional  |  Indique si le support du navigateur est requis pour la JavaScript ressource. Trajectoire : `/avails/ads/adVerifications/javaScriptResource/browserOptional`  | String | true ou false | 
|   id  |  Identifiant des différents éléments du schéma. Trajectoire : `/avails/ads/companionAds/attributes/id` ou `/avails/ads/icons/iconClicks/iconClickTracking/id`  | String | companion-1 | 
|   assetHeight  |  Hauteur du compagnon et de la ressource. Trajectoire : `/avails/ads/companionAds/attributes/assetHeight`  | String | 250 | 
|   assetWidth  |  Largeur de la ressource publicitaire associée. Trajectoire : `/avails/ads/companionAds/attributes/assetWidth`  | String | 300 | 
|   expandedHeight  |  Hauteur de l'annonce associée lorsqu'elle est agrandie. Trajectoire : `/avails/ads/companionAds/attributes/expandedHeight`  | String | 600 | 
|   expandedWidth  |  Largeur de l'annonce associée lorsqu'elle est agrandie. Trajectoire : `/avails/ads/companionAds/attributes/expandedWidth`  | String | 600 | 
|   renderingMode  |  Mode de rendu de l'annonce associée. Trajectoire : `/avails/ads/companionAds/attributes/renderingMode`  | String | default ou transparent | 
|   adSlotId  |  ID de l'espace publicitaire dans lequel l'annonce associée doit être affichée. Trajectoire : `/avails/ads/companionAds/attributes/adSlotId`  | String | banner-1 | 
|   creativeType  |  Type MIME de la ressource créative. Trajectoire : `/avails/ads/icons/staticResource/creativeType`  | String | image/png | 

# Chronologie des activités de suivi des publicités
<a name="ad-reporting-client-side-ad-tracking-schema-activity-timing"></a>

Avec les rapports côté client, le joueur doit émettre des événements de suivi (balises) avec un certain niveau de précision. À l'aide du schéma de suivi MediaTailor côté client, vous pouvez vous assurer que, pour chaque publication, annonce, compagnon, superposition et événement de suivi, les informations relatives à l'heure et à la durée sont présentes, et ce, sous différentes formes.

Utilisez les paires MediaTailor clé/valeur suivantes pour que le joueur puisse concilier avec précision les activités liées aux événements publicitaires, telles que le suivi des événements, avec la position de diffusion :
+ [startTime](ad-reporting-client-side-ad-tracking-schema.md#property-starttime) 
+  [startTimeInSeconds](ad-reporting-client-side-ad-tracking-schema.md#property-starttimeinseconds) 
+  [adProgramDateTime](ad-reporting-client-side-ad-tracking-schema.md#property-adprogramdatetime) 
+  [adID](ad-reporting-client-side-ad-tracking-schema.md#property-adid)/[eventId](ad-reporting-client-side-ad-tracking-schema.md#property-eventid) 

HLS et DASH implémentent la valeur de `startTime` et `startTimeInSeconds` différemment :
+ HLS - Les `startTime` valeurs sont relatives au début de la session de lecture. Le début de la session de lecture est défini comme étant le temps zéro. L'annonce `startTime` est la somme des valeurs cumulées de toutes les durées des `EXT-INF` segments jusqu'à leur publication. Le numéro de séquence multimédia du segment sur lequel se situe l'annonce ou l'événement de suivi correspond également au `adId` ou `eventId` dans la réponse de suivi côté client.
+ DASH :
  + Manifestes dynamiques/en temps réel - Les `startTime` valeurs sont relatives à celles `MPD@availabilityStartTime` du manifeste DASH. `MPD@avaibilityStartTime`Il s'agit d'un point d'ancrage temporel pour toutes les MediaTailor sessions consommant le flux.
  + Manifestes VOD/statiques - Les `startTime` valeurs sont relatives au début de la session de lecture. Le début de la session de lecture est défini comme étant le temps zéro. Chaque annonce contenue dans le fichier Avail est contenue dans son propre `Period` élément. L'`Period`élément possède un `@start` attribut dont la valeur est identique à celle de la `startTime` charge utile de suivi côté client. Cela correspond `PeriodId` également au `adId` ou `eventId` dans la réponse de suivi côté client.

**Example HLS :**  
Dans l'exemple suivant, la MediaTailor session a démarré et le manifeste suivant est le premier communiqué au client :  

```
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:4603263
#EXT-X-DISCONTINUITY-SEQUENCE:0
#EXT-X-PROGRAM-DATE-TIME:2023-05-03T21:24:23.295678Z
#EXTINF:4.010667,
https://123.cloudfront.net/out/v1/index_1_34.ts
#EXT-X-PROGRAM-DATE-TIME:2023-05-03T21:24:27.306345Z
#EXTINF:4.010667,
https://123.cloudfront.net/out/v1/index_1_35.ts
#EXT-X-PROGRAM-DATE-TIME:2023-05-03T21:24:31.317012Z
#EXTINF:4.010667,
https://123.cloudfront.net/out/v1/index_1_36.ts
#EXT-X-PROGRAM-DATE-TIME:2023-05-03T21:24:35.327679Z
#EXTINF:4.010667,
https://123.cloudfront.net/out/v1/index_1_37.ts
#EXT-X-PROGRAM-DATE-TIME:2023-05-03T21:24:39.338346Z
#EXTINF:2.538667,
https://123.cloudfront.net/out/v1/index_1_38.ts
#EXT-X-DISCONTINUITY
#EXT-X-KEY:METHOD=NONE
#EXT-X-PROGRAM-DATE-TIME:2023-05-03T21:24:41.453Z
#EXTINF:2.0,
https://123.cloudfront.net/tm/asset_1080_4_8_00001.ts
#EXT-X-PROGRAM-DATE-TIME:2023-05-03T21:24:43.453Z
#EXTINF:2.0,
https://123.cloudfront.net/tm/asset_1080_4_8_00002.ts
#EXT-X-PROGRAM-DATE-TIME:2023-05-03T21:24:45.453Z
#EXTINF:2.0,
https://123.cloudfront.net/tm/asset_1080_4_8_00003.ts
```
Dans la charge utile JSON de suivi côté client, les valeurs suivantes s'appliquent :  
+  `startTime`: `"PT18.581355S"` 
+  `startTimeInSeconds`: `18.581` 
+  `availProgramDateTime`: `"2023-05-03T21:24:41.453Z"` 
+  `adId`: `4603269` 

**Example DASH :**  
Dans l'exemple suivant, la MediaTailor session obtient un midroll dans le manifeste. Notez que la valeur d'`@start`attribut de la deuxième période, qui est la période publicitaire, a une valeur relative à la `MPD@availabilityStartTime` valeur. Cette valeur est celle qui est inscrite dans MediaTailor les `startTime` champs de réponse de suivi côté client, pour toutes les sessions.  

```
<?xml version="1.0" encoding="UTF-8"?>
<MPD availabilityStartTime="2022-10-05T19:38:39.263Z" minBufferTime="PT10S" minimumUpdatePeriod="PT2S" profiles="urn:mpeg:dash:profile:isoff-live:2011" publishTime="2023-05-03T22:06:48.411Z" suggestedPresentationDelay="PT10S" timeShiftBufferDepth="PT1M30S" type="dynamic" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:scte35="urn:scte:scte35:2013:xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd">
    <BaseURL>https://123.channel-assembly.mediatailor.us-west-2.amazonaws.com/v1/channel/my-channel/</BaseURL>
    <Location>https://123.cloudfront.net/v1/dash/94063eadf7d8c56e9e2edd84fdf897826a70d0df/MediaTailor-Live-HLS-DASH/channel/channel1/dash.mpd?aws.sessionId=794a15e0-2a7f-4941-a537-9d71627984e5</Location>
    <Period id="1683151479166_1" start="PT5042H25M59.903S" xmlns="urn:mpeg:dash:schema:mpd:2011">
        <BaseURL>https://123.cloudfront.net/out/v1/f1a946be8efa45b0931ea35c9055fb74/ddb73bf548a44551a0059c346226445a/eaa5485198bf497284559efb8172425e/</BaseURL>
        <AdaptationSet ...>
            ...
        </AdaptationSet>
    </Period>
    <Period id="1683151599194_1_1" start="PT5042H27M59.931S">
        <BaseURL>https://123.cloudfront.net/tm/94063eadf7d8c56e9e2edd84fdf897826a70d0df/fpc5omz5wzd2rdepgieibp23ybyqyrme/</BaseURL>
        <AdaptationSet ...>
            ...
        </AdaptationSet>
    </Period>
</MPD>
```
Dans la charge utile JSON de suivi côté client, les valeurs suivantes s'appliquent :  
+  `startTime`: `"PT5042H27M59.931S"` 
+  `startTimeInSeconds`: `18152879.931` 
+  `availProgramDateTime`: *null* 
+  `adId`: `1683151599194_1_1` 

# Commandes et fonctionnalités du lecteur pour le suivi des publicités côté client
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls"></a>

MediaTailor les métadonnées de suivi côté client prennent en charge diverses commandes et fonctionnalités des joueurs. La liste suivante décrit les commandes de lecteur les plus populaires.

**Topics**
+ [Gommage](#ad-reporting-client-side-ad-tracking-schema-player-controls-scrubbing)
+ [Ajouter un compte à rebours](#ad-reporting-client-side-ad-tracking-schema-player-controls-ad-countdown-timer)
+ [Publicités à ignorer](#ad-reporting-client-side-ad-tracking-schema-player-controls-skippable-ads)
+ [Nombre de clics sur les annonces](#ad-reporting-client-side-ad-tracking-schema-player-controls-ad-clickthrough)
+ [Publicités complémentaires](#ad-reporting-client-side-ad-tracking-schema-player-controls-companion-ads)
+ [Publicités interactives (SIMID)](#ad-reporting-client-side-ad-tracking-schema-player-controls-simid-ads)
+ [Publicités interactives (VPAID)](#ad-reporting-client-side-ad-tracking-schema-player-controls-vpaid-ads)
+ [Icônes pour Google Why This Ad (WTA)](#ad-reporting-client-side-ad-tracking-schema-player-controls-google-wta)

## Gommage
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-scrubbing"></a>

Pour améliorer l'expérience de lecture, le lecteur peut afficher les positions des annonces dans la chronologie de lecture. MediaTailor rend ces positions publicitaires disponibles sous forme de `startTimeInSeconds` valeurs dans la réponse de suivi côté client.

**Note**  
Certains fournisseurs de streaming empêchent de masquer une position publicitaire.

![\[Capture d'écran montrant les positions de MediaTailor marquage dans la chronologie vidéo où les publicités sont diffusées.\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/images/scrubbing.png)


La réponse JSON de la charge utile de suivi côté client suivante indique l'heure de début de disponibilité (interruption de publicité) dans l'objet JSON racine du tableau avails. Le joueur utilise ces données pour indiquer l'emplacement de la pause publicitaire sur la chronologie du joueur, à 28 secondes.

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "adMarkerDuration": null,
      "ads": [...],
      "availId": "7",
      "availProgramDateTime": null,
      "duration": "PT30S",
      "durationInSeconds": 30,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT28S",
      "startTimeInSeconds": 28
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": "UFQxMk0zNC44NjhTXzIwMjMtMDctMjFUMjA6MjM6MDcuNzc1NzE2MzAyWl8x",
  "nonLinearAvails": []
}
```

## Ajouter un compte à rebours
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-ad-countdown-timer"></a>

 MediaTailor Vous pouvez utiliser un compte à rebours publicitaire pour fidéliser votre public pendant les pauses publicitaires. Le public peut utiliser le chronomètre pour comprendre à quel moment la diffusion de la publicité prend fin et quand son émission reprend.

![\[Capture d'écran montrant l' MediaTailor affichage d'un compte à rebours publicitaire, qui indique au public le temps restant avant la reprise de son émission.\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/images/ad-countdown-timer.png)


Les éléments des métadonnées de suivi côté client qui jouent un rôle dans le compte à rebours des publicités sont`startTime`, `startTimeInSeconds``duration`, et. `durationInSeconds` Le joueur utilise ces métadonnées, ainsi que le temps écoulé pendant la session, qu'il suit séparément, pour déterminer quand afficher le chronomètre et la valeur à partir de laquelle le compte à rebours doit être affiché.

La réponse JSON suivante à la charge utile de suivi côté client indique les informations nécessaires pour afficher un compte à rebours publicitaire.

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "adMarkerDuration": null,
      "ads": [...],
      "availId": "7",
      "availProgramDateTime": null,
      "duration": "PT30S",
      "durationInSeconds": 30,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT28S",
      "startTimeInSeconds": 28
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": "UFQxMk0zNC44NjhTXzIwMjMtMDctMjFUMjA6MjM6MDcuNzc1NzE2MzAyWl8x",
  "nonLinearAvails": []
}
```

Lorsque la durée écoulée de la session atteint l'heure de début de la disponibilité, le joueur affiche un compte à rebours dont la valeur correspond à la durée de la disponibilité. La valeur du compte à rebours diminue au fur et à mesure que le temps écoulé dépasse l'heure de début du service.

**Example formule : compte à rebours pour HLS (live et VOD) et DASH (VOD)**  
+ `session_start_time`= la somme de toutes les valeurs de `EXT-INF` durée - la valeur de durée des trois séquences `EXT-INF` multimédia les plus récentes
+ valeur du temporisateur = `duration` - (`session_elapsed_time`-`startTime`)

![\[Schéma illustrant le calcul du compte à rebours publicitaire, en fonction de l'heure de début de la session et de l'heure de début de Avail, pour les manifestes HLS (live et VOD) et DASH (VOD).\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/images/ad-countdown-timer-hls-dash-vod.png)


**Example formule : Compte à rebours pour DASH (en direct)**  
+ `session_start_time`= (segment le plus récent `startTime` \$1`duration`)/`timescale`- `MPD@suggestedPresentationDelay`
+ valeur du temporisateur = `duration` - (`session_elapsed_time`-`startTime`)

![\[Schéma illustrant le calcul du compte à rebours publicitaire, en fonction de l'heure de début de la session et de l'heure de début de Avail, pour les manifestes DASH en direct.\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/images/ad-countdown-timer-dash-live.png)


## Publicités à ignorer
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-skippable-ads"></a>

Les *publicités à ignorer sont des* espaces publicitaires qui permettent au spectateur de sauter une partie de l'annonce pour reprendre le visionnage du programme. Dans VAST, l'`Linear@skipOffset`attribut identifie une annonce à ignorer. 

La réponse VAST suivante montre comment utiliser une annonce à ignorer :

```
<?xml version="1.0" encoding="UTF-8"?>
<VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0">
  <Ad>
    <InLine>
      ...
      <Creatives>
        <Creative id="1" sequence="1">
          <Linear skipoffset="00:00:05">
            <Duration>00:00:15</Duration>
            <MediaFiles>
              <MediaFile id="EMT" delivery="progressive" width="640" height="360" type="video/mp4" bitrate="143" scalable="true" maintainAspectRatio="true"><![CDATA[https://ads.com/file.mp4]]></MediaFile>
            </MediaFiles>
          </Linear>
        </Creative>
      </Creatives>
      ...
    </InLine>
  </Ad>
</VAST>
```

La réponse JSON suivante à la charge utile de suivi côté client montre les métadonnées publicitaires contenues dans le tableau. `ads` Le tableau contient la `skipOffset` valeur MediaTailor obtenue à partir de la réponse VAST.

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "adMarkerDuration": null,
      "ads": [
        {
          "adId": "1",
          "adParameters": "",
          "adProgramDateTime": "2023-07-31T16:11:40.693Z",
          "adSystem": "2.0",
          "adTitle": "AD-skiing-15",
          "adVerifications": [],
          "companionAds": [...],
          "creativeId": "1",
          "creativeSequence": "1",
          "duration": "PT15.015S",
          "durationInSeconds": 15.015,
          "extensions": [],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "skipOffset": "00:00:05",
          "startTime": "PT9.943S",
          "startTimeInSeconds": 9.943,
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://adserverbeaconing.com/v1/impression"
              ],
              "duration": "PT15.015S",
              "durationInSeconds": 15.015,
              "eventId": "2697726",
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": "PT9.943S",
              "startTimeInSeconds": 9.943
            }
          ],
          "vastAdId": ""
        }
      ],
      "availId": "2697726",
      "availProgramDateTime": "2023-07-31T16:11:40.693Z",
      "duration": "PT15.015S",
      "durationInSeconds": 15.015,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT9.943S",
      "startTimeInSeconds": 9.943
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": "",
  "nonLinearAvails": []
}
```

## Nombre de clics sur les annonces
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-ad-clickthrough"></a>

Les clics URIs permettent aux annonceurs de mesurer la capacité d'une annonce à capter l'attention des internautes. Lorsqu'un internaute clique sur l'image vidéo active d'une annonce en cours, un navigateur Web ouvre l'URI de la page d'accueil ou de la page de destination de la campagne de l'annonceur. Le développeur du lecteur détermine le comportement des clics, par exemple en superposant un bouton ou une étiquette sur la vidéo publicitaire, avec un message sur lequel cliquer pour en savoir plus. Les développeurs de joueurs interrompent souvent la vidéo de l'annonce une fois que les spectateurs ont cliqué sur l'image vidéo active.

![\[Capture d'écran d'un clic sur une annonce dans un lecteur vidéo. Les spectateurs cliquent sur l'image vidéo. Le lecteur met la vidéo en pause, puis ouvre un navigateur Web pour rediriger le spectateur vers la page d'accueil ou la page d'accueil de la campagne de l'annonceur.\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/images/ad-clickthrough.png)


MediaTailor peut analyser et rendre disponible tout événement de clic vidéo linéaire URLs renvoyé dans la réponse VAST. La réponse VAST suivante montre un exemple de clics sur une annonce.

```
<?xml version="1.0" encoding="UTF-8"?>
<VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0">
  <Ad>
    <InLine>
      ...
      <Creatives>
        <Creative id="1" sequence="1">
          <Linear>
            <Duration>00:00:15</Duration>
            <MediaFiles>
              <MediaFile id="EMT" delivery="progressive" width="1280" height="720" type="video/mp4" bitrate="143" scalable="true" maintainAspectRatio="true"><![CDATA[https://ads.com/file.mp4]]></MediaFile>
            </MediaFiles>
            <VideoClicks>
              <ClickThrough id="EMT"><![CDATA[https://aws.amazon.com]]></ClickThrough>
              <ClickTracking id="EMT"><![CDATA[https://myads.com/beaconing/event=clicktracking]]></ClickTracking>
            </VideoClicks>
          </Linear>
        </Creative>
      </Creatives>
      ...
    </InLine>
  </Ad>
</VAST>
```

La réponse JSON suivante à la charge utile de suivi côté client montre comment les clics et le suivi MediaTailor des clics sont affichés dans le tableau. URLs `trackingEvents` Le type d'`clickThrough`événement représente l'annonce à clics et le type d'`clickTracking`événement représente l'URL de suivi des clics.

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "adMarkerDuration": null,
      "ads": [
        {
          "adId": "1",
          "adParameters": "",
          "adProgramDateTime": "2023-07-31T16:53:40.577Z",
          "adSystem": "2.0",
          "adTitle": "1",
          "adVerifications": [],
          "companionAds": [],
          "creativeId": "00006",
          "creativeSequence": "1",
          "duration": "PT14.982S",
          "durationInSeconds": 14.982,
          "extensions": [],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "skipOffset": null,
          "startTime": "PT39.339S",
          "startTimeInSeconds": 39.339,
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://myads.com/beaconing/event=impression"
              ],
              "duration": "PT14.982S",
              "durationInSeconds": 14.982,
              "eventId": "2698188",
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": "PT39.339S",
              "startTimeInSeconds": 39.339
            },
            {
              "beaconUrls": [
                "https://aws.amazon.com"
              ],
              "duration": "PT14.982S",
              "durationInSeconds": 14.982,
              "eventId": "2698188",
              "eventProgramDateTime": null,
              "eventType": "clickThrough",
              "startTime": "PT39.339S",
              "startTimeInSeconds": 39.339
            },
            {
              "beaconUrls": [
                "https://myads.com/beaconing/event=clicktracking"
              ],
              "duration": "PT14.982S",
              "durationInSeconds": 14.982,
              "eventId": "2698795",
              "eventProgramDateTime": null,
              "eventType": "clickTracking",
              "startTime": "PT39.339S",
              "startTimeInSeconds": 39.339
            }
          ],
          "vastAdId": ""
        }
      ],
      "availId": "2698188",
      "availProgramDateTime": "2023-07-31T16:53:40.577Z",
      "duration": "PT14.982S",
      "durationInSeconds": 14.982,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT39.339S",
      "startTimeInSeconds": 39.339
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": "UFQzOS4zMzlTXzIwMjMtMDctMzFUMTY6NTQ6MDQuODA1Mzk2NTI5Wl8x",
  "nonLinearAvails": []
}
```

## Publicités complémentaires
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-companion-ads"></a>

Une *publicité complémentaire* apparaît à côté d'une création linéaire. Utilisez des publicités complémentaires pour augmenter l'efficacité d'un spot publicitaire en affichant des informations sur le produit, le logo et la marque. L'affichage publicitaire peut comporter des codes de réponse rapide (QR) et des zones cliquables pour favoriser l'engagement du public.

MediaTailor prend en charge les publicités associées dans la réponse VAST. Il peut transmettre les métadonnées provenant de `StaticResource``iFrameResource`, et de `HTMLResource` nœuds, respectivement.

La réponse VAST suivante montre un exemple de localisation et de format de l'annonce linéaire et de l'annonce associée.

```
<?xml version="1.0" encoding="UTF-8"?>
<VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0">
  <Ad>
    <InLine>
      ...
      <Creatives>
        <Creative id="1" sequence="1">
          <Linear>
            <Duration>00:00:10</Duration>
            <MediaFiles>
              <MediaFile id="EMT" delivery="progressive" width="640" height="360" type="video/mp4" bitrate="143" scalable="true" maintainAspectRatio="true"><![CDATA[https://ads.com/file.mp4]]></MediaFile>
            </MediaFiles>
          </Linear>
        </Creative>
        <Creative id="2" sequence="1">
          <CompanionAds>
            <Companion id="2" width="300" height="250">
              <StaticResource creativeType="image/png"><![CDATA[https://emt.com/companion/9973499273]]></StaticResource>
              <TrackingEvents>
                <Tracking event="creativeView"><![CDATA[https://beacon.com/1]]></Tracking>
              </TrackingEvents>
              <CompanionClickThrough><![CDATA[https://beacon.com/2]]></CompanionClickThrough>
            </Companion>
            <Companion id="3" width="728" height="90">
              <StaticResource creativeType="image/png"><![CDATA[https://emt.com/companion/1238901823]]></StaticResource>
              <TrackingEvents>
                <Tracking event="creativeView"><![CDATA[https://beacon.com/3]]></Tracking>
              </TrackingEvents>
              <CompanionClickThrough><![CDATA[https://beacon.com/4]]></CompanionClickThrough>
            </Companion>
          </CompanionAds>
        </Creative>
      </Creatives>
      ...
    </InLine>
  </Ad>
</VAST>
```

Les données apparaissent dans la réponse de suivi côté client de la `/avail/x/ads/y/companionAds` liste. Chaque création linéaire peut contenir jusqu'à 6 publicités complémentaires. Comme le montre l'exemple ci-dessous, les annonces associées apparaissent dans une liste

**Note**  
Il est recommandé aux développeurs d'applications de mettre en œuvre une logique permettant de supprimer ou de décharger explicitement l'annonce associée à la fin de la création.

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "adMarkerDuration": null,
      "ads": [
        {
          "adId": "0",
          "adParameters": "",
          "adProgramDateTime": null,
          "adSystem": "EMT",
          "adTitle": "sample",
          "adVerifications": [],
          "companionAds": [
            {
              "adParameters": null,
              "altText": null,
              "attributes": {
                "adSlotId": null,
                "apiFramework": null,
                "assetHeight": null,
                "assetWidth": null,
                "expandedHeight": null,
                "expandedWidth": null,
                "height": "250",
                "id": "2",
                "pxratio": null,
                "renderingMode": null,
                "width": "300"
              },
              "companionClickThrough": "https://beacon.com/2",  
              "companionClickTracking": null,
              "htmlResource": null,
              "iFrameResource": null,
              "sequence": "1",
              "staticResource": "https://emt.com/companion/9973499273",
              "trackingEvents": [
                {
                  "beaconUrls": [
                    "https://beacon.com/1"
                  ],
                  "eventType": "creativeView"
                }
              ]
            },
            {
              "adParameters": null,
              "altText": null,
              "attributes": {
                "adSlotId": null,
                "apiFramework": null,
                "assetHeight": null,
                "assetWidth": null,
                "expandedHeight": null,
                "expandedWidth": null,
                "height": "90",
                "id": "3",
                "pxratio": null,
                "renderingMode": null,
                "width": "728"
              },
              "companionClickThrough": "https://beacon.com/4",
              "companionClickTracking": null,
              "htmlResource": null,
              "iFrameResource": null,
              "sequence": "1",
              "staticResource": "https://emt.com/companion/1238901823",
              "trackingEvents": [
                {
                  "beaconUrls": [
                    "https://beacon.com/3"
                  ],
                  "eventType": "creativeView"
                }
              ]
            }
          ],
          "creativeId": "1",
          "creativeSequence": "1",
          "duration": "PT10S",
          "durationInSeconds": 10,
          "extensions": [],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "skipOffset": null,
          "startTime": "PT0S",
          "startTimeInSeconds": 0,
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://beacon.com/impression/1"
              ],
              "duration": "PT10S",
              "durationInSeconds": 10,
              "eventId": "0",
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": "PT0S",
              "startTimeInSeconds": 0
            }
          ],
          "vastAdId": ""
        }
      ],
      "availId": "0",
      "availProgramDateTime": null,
      "duration": "PT10S",
      "durationInSeconds": 10,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT0S",
      "startTimeInSeconds": 0
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": "UFQxMFNfMjAyMy0wNy0wNlQyMToxMDowOC42NzQ4NDA1NjJaXzE%3D",
  "nonLinearAvails": []
}
```

## Publicités interactives (SIMID)
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-simid-ads"></a>

*SecureInteractive La définition de l'interface multimédia* (SIMID) est une norme pour la publicité interactive qui a été introduite dans la norme VAST 4.x de l'Interactive Advertising Bureau (IAB). SIMID dissocie le chargement des éléments interactifs de la création linéaire principale du joueur, en faisant référence aux deux dans la réponse VAST. MediaTailor intègre la création principale pour maintenir l'expérience de lecture et place les métadonnées des composants interactifs dans la réponse de suivi côté client.

Dans l'exemple de réponse VAST 4 suivant, la charge utile SIMID se trouve à l'intérieur du `InteractiveCreativeFile` nœud.

```
<?xml version="1.0"?>
<VAST xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0">
  <Ad id="1234567">
    <InLine>
      <AdSystem>SampleAdSystem</AdSystem>
      <AdTitle>Linear SIMID Example</AdTitle>
      <Description>SIMID example</Description>
      <Error>https://www.beacons.com/error</Error>
      <Impression>https://www.beacons.com/impression</Impression>
      <Creatives>
        <Creative sequence="1">
          <Linear>
            <Duration>00:00:15</Duration>
            <TrackingEvents>
                ...
            </TrackingEvents>
            <VideoClicks>
              <ClickThrough id="123">https://aws.amazon.com</ClickThrough>
              <ClickTracking id="123">https://www.beacons.com/click</ClickTracking>
            </VideoClicks>
            <MediaFiles>
              <MediaFile delivery="progressive" type="video/mp4">
                                https://interactive-ads.com/interactive-media-ad-sample/media/file.mp4
                            </MediaFile>
              <InteractiveCreativeFile type="text/html" apiFramework="SIMID" variableDuration="true">
                                https://interactive-ads.com/interactive-media-ad-sample/sample_simid.html
                            </InteractiveCreativeFile>
            </MediaFiles>
          </Linear>
        </Creative>
      </Creatives>
    </InLine>
  </Ad>
</VAST>
```

Dans la réponse VAST 3 suivante, la charge utile SIMID se trouve à l'intérieur du `Extensions` nœud.

```
<?xml version="1.0"?>
<VAST xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0">
  <Ad id="1234567">
    <InLine>
      <AdSystem>SampleAdSystem</AdSystem>
      <AdTitle>Linear SIMID Example</AdTitle>
      <Description>SIMID example</Description>
      <Impression>https://www.beacons.com/impression</Impression>
      <Creatives>
        <Creative id="1" sequence="1">
          <Linear>
            <Duration>00:00:15</Duration>
            <TrackingEvents>
                ...
            </TrackingEvents>
            <VideoClicks>
              <ClickThrough id="123">https://aws.amazon.com</ClickThrough>
              <ClickTracking id="123">https://myads.com/beaconing/event=clicktracking</ClickTracking>
            </VideoClicks>
            <MediaFiles>
              <MediaFile delivery="progressive" type="video/mp4">
                                https://interactive-ads.com/interactive-media-ad-sample/media/file.mp4
                            </MediaFile>
            </MediaFiles>
          </Linear>
        </Creative>
      </Creatives>
      <Extensions>
        <Extension type="InteractiveCreativeFile">
          <InteractiveCreativeFile type="text/html" apiFramework="SIMID" variableDuration="true">
            https://interactive-ads.com/interactive-media-ad-sample/sample_simid.html
          </InteractiveCreativeFile>
        </Extension>
      </Extensions>
    </InLine>
  </Ad>
</VAST>
```

Dans la réponse de suivi côté client suivante, les données SIMID apparaissent dans la liste. `/avails/x/ads/y/extensions`

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "adMarkerDuration": null,
      "ads": [
        {
          "adId": "1",
          "adParameters": "",
          "adProgramDateTime": "2023-07-31T16:53:40.577Z",
          "adSystem": "2.0",
          "adTitle": "Linear SIMID Example",
          "adVerifications": [],
          "companionAds": [],
          "creativeId": "1",
          "creativeSequence": "1",
          "duration": "PT14.982S",
          "durationInSeconds": 14.982,
          "extensions": [
            {
              "content": "<InteractiveCreativeFile type=\"text/html\" apiFramework=\"SIMID\" variableDuration=\"true\">\nhttps://interactive-ads.com/interactive-media-ad-sample/sample_simid.html</InteractiveCreativeFile>",
              "type": "InteractiveCreativeFile"
            }
          ],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "skipOffset": null,
          "startTime": "PT39.339S",
          "startTimeInSeconds": 39.339,
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://myads.com/beaconing/event=impression"
              ],
              "duration": "PT14.982S",
              "durationInSeconds": 14.982,
              "eventId": "2698188",
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": "PT39.339S",
              "startTimeInSeconds": 39.339
            },
            {
              "beaconUrls": [
                "https://aws.amazon.com"
              ],
              "duration": "PT14.982S",
              "durationInSeconds": 14.982,
              "eventId": "2698188",
              "eventProgramDateTime": null,
              "eventType": "clickThrough",
              "startTime": "PT39.339S",
              "startTimeInSeconds": 39.339
            },
            {
              "beaconUrls": [
                "https://myads.com/beaconing/event=clicktracking"
              ],
              "duration": "PT14.982S",
              "durationInSeconds": 14.982,
              "eventId": "2698795",
              "eventProgramDateTime": null,
              "eventType": "clickTracking",
              "startTime": "PT39.339S",
              "startTimeInSeconds": 39.339
            }
          ],
          "vastAdId": ""
        }
      ],
      "availId": "2698188",
      "availProgramDateTime": "2023-07-31T16:53:40.577Z",
      "duration": "PT14.982S",
      "durationInSeconds": 14.982,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT39.339S",
      "startTimeInSeconds": 39.339
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": "UFQzOS4zMzlTXzIwMjMtMDctMzFUMTY6NTQ6MDQuODA1Mzk2NTI5Wl8x",
  "nonLinearAvails": []
}
```

## Publicités interactives (VPAID)
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-vpaid-ads"></a>

La *définition de l'interface publicitaire du lecteur vidéo* (VPAID) définit le protocole entre l'annonce et le lecteur vidéo qui permet l'interactivité publicitaire et d'autres fonctionnalités. Pour les diffusions en direct, MediaTailor prend en charge le format VPAID en assemblant des segments d'ardoise pendant toute la durée de diffusion et en plaçant les métadonnées des créations VPAID dans la réponse de suivi côté client que le lecteur vidéo consomme. Le lecteur télécharge les fichiers VPAID, joue la création linéaire et exécute les scripts du client. Le joueur *ne* doit jamais jouer les segments de l'ardoise.

**Note**  
VPAID est obsolète depuis VAST 4.1.

![\[Schéma de diffusion des publicités VPAID. MediaTailor assemble des segments d'ardoise pendant la durée de disponibilité dans la chronologie du contenu. Le joueur passe à l'actif VPAID pendant la durée de validité.\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/images/interactive-ads-vpaid.png)


L'exemple suivant montre le contenu VPAID dans la réponse VAST.

```
<?xml version="1.0"?>
<VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vast.xsd" version="3.0">
  <Ad id="1234567">
    <InLine>
      <AdSystem>GDFP</AdSystem>
      <AdTitle>VPAID</AdTitle>
      <Description>Vpaid Linear Video Ad</Description>
      <Error>http://www.example.com/error</Error>
      <Impression>http://www.example.com/impression</Impression>
      <Creatives>
        <Creative sequence="1">
          <Linear>
            <Duration>00:00:00</Duration>
            <TrackingEvents>
              <Tracking event="start">http://www.example.com/start</Tracking>
              <Tracking event="firstQuartile">http://www.example.com/firstQuartile</Tracking>
              <Tracking event="midpoint">http://www.example.com/midpoint</Tracking>
              <Tracking event="thirdQuartile">http://www.example.com/thirdQuartile</Tracking>
              <Tracking event="complete">http://www.example.com/complete</Tracking>
              <Tracking event="mute">http://www.example.com/mute</Tracking>
              <Tracking event="unmute">http://www.example.com/unmute</Tracking>
              <Tracking event="rewind">http://www.example.com/rewind</Tracking>
              <Tracking event="pause">http://www.example.com/pause</Tracking>
              <Tracking event="resume">http://www.example.com/resume</Tracking>
              <Tracking event="fullscreen">http://www.example.com/fullscreen</Tracking>
              <Tracking event="creativeView">http://www.example.com/creativeView</Tracking>
              <Tracking event="acceptInvitation">http://www.example.com/acceptInvitation</Tracking>
            </TrackingEvents>
            <AdParameters><![CDATA[ {"videos":[ {"url":"https://my-ads.com/interactive-media-ads/media/media_linear_VPAID.mp4","mimetype":"video/mp4"}]} ]]></AdParameters>
            <VideoClicks>
              <ClickThrough id="123">http://google.com</ClickThrough>
              <ClickTracking id="123">http://www.example.com/click</ClickTracking>
            </VideoClicks>
            <MediaFiles>
              <MediaFile delivery="progressive" apiFramework="VPAID" type="application/javascript" width="640" height="480"> https://googleads.github.io/googleads-ima-html5/vpaid/linear/VpaidVideoAd.js </MediaFile>
            </MediaFiles>
          </Linear>
        </Creative>
      </Creatives>
    </InLine>
  </Ad>
</VAST>
```

L'exemple suivant montre les informations de suivi.

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "adMarkerDuration": null,
      "ads": [
        {
          "adId": "1",
          "adParameters": "",
          "adProgramDateTime": "2023-07-31T16:53:40.577Z",
          "adSystem": "2.0",
          "adTitle": "1",
          "adVerifications": [],
          "companionAds": [],
          "creativeId": "00006",
          "creativeSequence": "1",
          "duration": "PT14.982S",
          "durationInSeconds": 14.982,
          "extensions": [],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "skipOffset": null,
          "startTime": "PT39.339S",
          "startTimeInSeconds": 39.339,
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://myads.com/beaconing/event=impression"
              ],
              "duration": "PT14.982S",
              "durationInSeconds": 14.982,
              "eventId": "2698188",
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": "PT39.339S",
              "startTimeInSeconds": 39.339
            },
            {
              "beaconUrls": [
                "https://aws.amazon.com"
              ],
              "duration": "PT14.982S",
              "durationInSeconds": 14.982,
              "eventId": "2698188",
              "eventProgramDateTime": null,
              "eventType": "clickThrough",
              "startTime": "PT39.339S",
              "startTimeInSeconds": 39.339
            },
            {
              "beaconUrls": [
                "https://myads.com/beaconing/event=clicktracking"
              ],
              "duration": "PT14.982S",
              "durationInSeconds": 14.982,
              "eventId": "2698795",
              "eventProgramDateTime": null,
              "eventType": "clickTracking",
              "startTime": "PT39.339S",
              "startTimeInSeconds": 39.339
            }
          ],
          "vastAdId": ""
        }
      ],
      "availId": "2698188",
      "availProgramDateTime": "2023-07-31T16:53:40.577Z",
      "duration": "PT14.982S",
      "durationInSeconds": 14.982,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT39.339S",
      "startTimeInSeconds": 39.339
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": "UFQzOS4zMzlTXzIwMjMtMDctMzFUMTY6NTQ6MDQuODA1Mzk2NTI5Wl8x",
  "nonLinearAvails": []
}{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "adMarkerDuration": null,
      "ads": [
        {
          "adId": "2922274",
          "adParameters": "",
          "adProgramDateTime": "2023-08-14T19:49:53.998Z",
          "adSystem": "Innovid Ads",
          "adTitle": "VPAID",
          "adVerifications": [],
          "companionAds": [],
          "creativeId": "",
          "creativeSequence": "",
          "duration": "PT16.016S",
          "durationInSeconds": 16.016,
          "extensions": [],
          "mediaFiles": {
            "mediaFilesList": [
              {
                "apiFramework": "VPAID",
                "bitrate": 0,
                "codec": null,
                "delivery": "progressive",
                "height": 9,
                "id": "",
                "maintainAspectRatio": false,
                "maxBitrate": 0,
                "mediaFileUri": "http://my-ads.com/mobileapps/js/vpaid/1h41kg?cb=178344c0-8e67-281a-58ca-962e4987cd60&deviceid=&ivc=",
                "mediaType": "application/javascript",
                "minBitrate": 0,
                "scalable": false,
                "width": 16
              }
            ],
            "mezzanine": "http://my-ads.com/mobileapps/js/vpaid/1h41kg?cb=178344c0-8e67-281a-58ca-962e4987cd60&deviceid=&ivc="
          },
          "skipOffset": null,
          "startTime": "PT8M42.289S",
          "startTimeInSeconds": 522.289,
          "trackingEvents": [
            {
              "beaconUrls": [
                "about:blank"
              ],
              "duration": "PT16.016S",
              "durationInSeconds": 16.016,
              "eventId": "2922274",
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": "PT8M42.289S",
              "startTimeInSeconds": 522.289
            }
          ],
          "vastAdId": "1h41kg"
        }
      ],
      "availId": "2922274",
      "availProgramDateTime": "2023-08-14T19:49:53.998Z",
      "duration": "PT16.016S",
      "durationInSeconds": 16.016,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT8M42.289S",
      "startTimeInSeconds": 522.289
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": "UFQ4TTQyLjI4OVNfMjAyMy0wOC0xNFQxOTo1MDo0MS4zOTc5MjAzODVaXzE%3D",
  "nonLinearAvails": []
}
```

## Icônes pour Google Why This Ad (WTA)
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-google-wta"></a>

*AdChoices*est une norme du secteur qui fournit aux spectateurs des informations sur les publicités qu'ils voient, notamment sur la manière dont ces publicités leur étaient destinées.

![\[Logo Why This Ad (WTA) de Google. La WTA informe les spectateurs des publicités qu'ils voient, notamment de la manière dont ces publicités leur étaient destinées.\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/images/google-wta.png)


L'API de suivi MediaTailor côté client prend en charge les métadonnées des icônes contenues dans le nœud d'extensions VAST de la réponse VAST. Pour plus d'informations sur le WTA dans la réponse VAST, consultez [cet exemple de réponse XML VAST](https://storage.googleapis.com/interactive-media-ads/ad-tags/ima_wta_sample_vast_3.xml).

**Note**  
MediaTailor ne supporte actuellement que la version 3 de VAST.

```
<VAST>
    <Ad>  
    <InLine>  
       ...
      <Extensions>
        <Extension type="IconClickFallbackImages">
          <IconClickFallbackImages program="GoogleWhyThisAd">
            <IconClickFallbackImage width="400" height="150">
              <AltText>Alt icon fallback</AltText>
              <StaticResource creativeType="image/png"><![CDATA[https://storage.googleapis.com/interactive-media-ads/images/wta_dialog.png]]></StaticResource>
            </IconClickFallbackImage>
          </IconClickFallbackImages>
          <IconClickFallbackImages program="AdChoices">
            <IconClickFallbackImage width="400" height="150">
              <AltText>Alt icon fallback</AltText>
              <StaticResource creativeType="image/png"><![CDATA[https://storage.googleapis.com/interactive-media-ads/images/wta_dialog.png?size=1x]]></StaticResource>
            </IconClickFallbackImage>
            <IconClickFallbackImage width="800" height="300">
              <AltText>Alt icon fallback</AltText>
              <StaticResource creativeType="image/png"><![CDATA[https://storage.googleapis.com/interactive-media-ads/images/wta_dialog.png?size=2x]]></StaticResource>
            </IconClickFallbackImage>
          </IconClickFallbackImages>
        </Extension>
      </Extensions>
    </InLine>
  </Ad>
</VAST>
```

L'exemple suivant montre la réponse de suivi côté client dans la `/avails/x/ads/y/extensions` liste.

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "adMarkerDuration": null,
      "ads": [
        {
          "adId": "0",
          "adParameters": "",
          "adProgramDateTime": null,
          "adSystem": "GDFP",
          "adTitle": "Google Why This Ad VAST 3 Sample",
          "adVerifications": [],
          "companionAds": [],
          "creativeId": "7891011",
          "creativeSequence": "1",
          "duration": "PT10S",
          "durationInSeconds": 10,
          "extensions": [
            {
              "content": "<IconClickFallbackImages program=\"GoogleWhyThisAd\">      
                          <IconClickFallbackImage height=\"150\" width=\"400\">      
                          <AltText>Alt icon fallback</AltText>      
                          <StaticResource creativeType=\"image/png\"><![CDATA[https://storage.googleapis.com/interactive-media-ads/images/wta_dialog.png]]>
                          </StaticResource>     
                          </IconClickFallbackImage>    
                          </IconClickFallbackImages>     
                          <IconClickFallbackImages program=\"AdChoices\">     
                          <IconClickFallbackImage height=\"150\" width=\"400\">     
                          <AltText>Alt icon fallback</AltText>       
                          <StaticResource creativeType=\"image/png\"><![CDATA[https://storage.googleapis.com/interactive-media-ads/images/wta_dialog.png?size=1x]]>
                          </StaticResource>      
                          </IconClickFallbackImage>      
                          <IconClickFallbackImage height=\"300\" width=\"800\">       
                          <AltText>Alt icon fallback</AltText>       
                          <StaticResource creativeType=\"image/png\"><![CDATA[https://storage.googleapis.com/interactive-media-ads/images/wta_dialog.png?size=2x]]>
                          </StaticResource>      
                          </IconClickFallbackImage>     
                          </IconClickFallbackImages>",
              "type": "IconClickFallbackImages"
            }
          ],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "skipOffset": "00:00:03",
          "startTime": "PT0S",
          "startTimeInSeconds": 0,
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://example.com/view"
              ],
              "duration": "PT10S",
              "durationInSeconds": 10,
              "eventId": "0",
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": "PT0S",
              "startTimeInSeconds": 0
            }
          ],
          "vastAdId": "123456"
        }
      ],
      "availId": "0",
      "availProgramDateTime": null,
      "duration": "PT10S",
      "durationInSeconds": 10,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT0S",
      "startTimeInSeconds": 0
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": "UFQxMFNfMjAyMy0wNy0wNlQyMDo0MToxNy45NDE4MDM0NDhaXzE%3D",
  "nonLinearAvails": []
}
```

# Balisage côté client
<a name="ad-reporting-client-side-beaconing"></a>

Avec l'`startTimeInSeconds`élément de suivi côté client, vous pouvez l'utiliser MediaTailor pour prendre en charge le chronométrage des balises.

La réponse JSON suivante indique les principaux types de balises : impressions, début, quartiles et achèvement.

**Note**  
Les directives de mesure des impressions vidéo de l'Interactive Advertising Bureau (IAB) stipulent qu'une impression nécessite que le contenu publicitaire soit chargé côté client et, au minimum, qu'il commence à être affiché dans le lecteur. Pour plus d'informations, consultez le [modèle de diffusion d'annonces vidéo numériques (VAST)](https://www.iab.com/guidelines/vast/) sur le site Web de l'IAB.

```
{
  "avails": [
    {
      "ads": [
        {
          "adId": "8104385",
          "duration": "PT15.100000078S",
          "durationInSeconds": 15.1,
          "startTime": "PT17.817798612S",
          "startTimeInSeconds": 17.817,
          "trackingEvents": [
          {
              "beaconUrls": [
                "http://exampleadserver.com/tracking?event=impression"
              ],
              "duration": "PT15.100000078S",
              "durationInSeconds": 15.1,
              "eventId": "8104385",
              "eventType": "impression",
              "startTime": "PT17.817798612S",
              "startTimeInSeconds": 17.817
            },
            {
              "beaconUrls": [
                "http://exampleadserver.com/tracking?event=start"
              ],
              "duration": "PT0S",
              "durationInSeconds": 0.0,
              "eventId": "8104385",
              "eventType": "start",
              "startTime": "PT17.817798612S",
              "startTimeInSeconds": 17.817
            },
            {
              "beaconUrls": [
                "http://exampleadserver.com/tracking?event=firstQuartile"
              ],
              "duration": "PT0S",
              "durationInSeconds": 0.0,
              "eventId": "8104386",
              "eventType": "firstQuartile",
              "startTime": "PT21.592798631S",
              "startTimeInSeconds": 21.592
            },
             {
              "beaconUrls": [
                "http://exampleadserver.com/tracking?event=midpoint"
              ],
              "duration": "PT0S",
              "durationInSeconds": 0.0,
              "eventId": "8104387",
              "eventType": "midpoint",
              "startTime": "PT25.367798651S",
              "startTimeInSeconds": 25.367
            },
            {
              "beaconUrls": [
                "http://exampleadserver.com/tracking?event=thirdQuartile"
              ],
              "duration": "PT0S",
              "durationInSeconds": 0.0,
              "eventId": "8104388",
              "eventType": "thirdQuartile",
              "startTime": "PT29.14279867S",
              "startTimeInSeconds": 29.142
            },
            {
              "beaconUrls": [
                "http://exampleadserver.com/tracking?event=complete"
              ],
              "duration": "PT0S",
              "durationInSeconds": 0.0,
              "eventId": "8104390",
              "eventType": "complete",
              "startTime": "PT32.91779869S",
              "startTimeInSeconds": 32.917
            }
          ]
        }
      ],
      "availId": "8104385",
      "duration": "PT15.100000078S",
      "durationInSeconds": 15.1,
      "startTime": "PT17.817798612S",
      "startTimeInSeconds": 17.817
    }
  ]
}
```

# Mode hybride avec balises publicitaires côté serveur
<a name="ad-reporting-hybrid-mode"></a>

MediaTailor prend en charge un mode hybride pour le suivi des sessions. Dans ce mode, le service émet des événements de suivi publicitaire liés à la diffusion, mais met à disposition l'intégralité de la charge utile de suivi côté client pour la session

Pour activer le suivi hybride à l'aide de préfixes de lecture, depuis le lecteur, initialisez une nouvelle session de MediaTailor lecture à l'aide d'une demande dans l'un des formats suivants, conformément à votre protocole :

**Example : format HLS**  

```
POST master.m3u8
    {
        "adsParams": {
           "deviceType": "ipad"
       },
       "reportingMode":"server"
    }
```

**Example : format DASH**  

```
POST manifest.mpd
    {
        "adsParams": {
           "deviceType": "ipad"
       },
       "reportingMode":"server"
    }
```

MediaTailor gère les événements de suivi suivants en mode hybride :
+ Impression
+ Démarrer
+ Premier quartile
+ Point médian
+ Troisième quartile
+ Complet
+ `breakStart`(vmap)
+ `breakEnd`(vmap)

# Intégrations de suivi publicitaire côté client
<a name="ad-reporting-client-side-ad-tracking-integrations"></a>

Cette section décrit les intégrations entre les différents MediaTailor serveurs de suivi publicitaire côté client.

**Topics**
+ [Ouvrez le SDK de mesure](#ad-reporting-client-side-ad-tracking-integrations-open-measurement-sdk)
+ [Lecteur gratuit Datazoom SDKs](#ad-reporting-client-side-ad-tracking-integrations-dz)
+ [Cadre publicitaire Roku (RAF)](#ad-reporting-client-side-ad-tracking-integrations-raf)
+ [TheoPlayer](#ad-reporting-client-side-ad-tracking-integrations-theoplayer)
+ [MediaTailor SDK](#ad-reporting-client-side-ad-tracking-integrations-mediatailor-sdk)

## Ouvrez le SDK de mesure
<a name="ad-reporting-client-side-ad-tracking-integrations-open-measurement-sdk"></a>

Le SDK Open Measurement (OM SDK) de l'Interactive Advertising Bureau (IAB) facilite les mesures de visibilité et de vérification par des tiers pour les publicités diffusées dans des environnements de vidéos Web et d'applications natives.

Pour les anciens documents VAST version 3, le code de vérification doit être chargé avec le nœud Extension, avec le type d'extension`AdVerifications`. La racine du nœud d'extension est un `AdVerifications` nœud dont le schéma est identique à celui de l'élément VAST 4.1.

Afin de faciliter l'adoption du SDK OM, MediaTailor elle s'est associée à Datazoom pour fournir des lecteurs gratuits configurés et vérifiés pour SDKs Open Measurement. Pour de plus amples informations, veuillez consulter [Lecteur gratuit Datazoom SDKs](#ad-reporting-client-side-ad-tracking-integrations-dz).

**Note**  
MediaTailor ne supporte actuellement que la version 3 de VAST.

**Example : Nœud de vérification dans VAST 3, avant la version 4.1**  

```
...
<Extensions>
    <Extension type="AdVerifications">
        <AdVerifications>
            <Verification vendor="company.com-omid">
                <JavaScriptResource apiFramework="omid" browserOptional="true">
                    <![CDATA[https://verification.com/omid_verification.js]]>
                </JavaScriptResource>
                <TrackingEvents>
                    <Tracking event="verificationNotExecuted">
                        <![CDATA[https://verification.com/trackingurl]]>
                    </Tracking>
                </TrackingEvents>
                <VerificationParameters>
                    <![CDATA[verification params key/value pairs]]>
                </VerificationParameters>
            </Verification>
        </AdVerifications>
    </Extension>
</Extensions>
```

MediaTailor extrait les `AdVerifications` données du `<Extensions>` nœud et les place dans le `adVerifications` tableau dans la réponse de suivi côté client.

**Example : tableau de publicités dans la réponse de suivi côté client**  

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "adMarkerDuration": null,
      "ads": [
        {
          "adId": "3062770",
          "adParameters": "",
          "adProgramDateTime": "2023-08-23T16:25:40.914Z",
          "adSystem": "2.0",
          "adTitle": "AD-polarbear-15",
          "adVerifications": [
            {
              "executableResource": [],
              "javaScriptResource": [
                {
                  "apiFramework": "omid",
                  "browserOptional": "true",
                  "uri": "https://verification.com/omid_verification.js"
                }
              ],
              "trackingEvents": [
                {
                  "event": "verificationNotExecuted",
                  "uri": "https://verification.com/trackingurl"
                }
              ],
              "vendor": "company.com-omid",
              "verificationParameters": "verification params key value pairs"
            }
          ],
          "companionAds": [],
          "creativeId": "00006",
          "creativeSequence": "1",
          "duration": "PT14.982S",
          "durationInSeconds": 14.982,
          "extensions": [
            {
              "content": "<AdVerifications>\n\t\t\t\t\t\t<Verification vendor=\"company.com-omid\">\n\t\t\t\t\t\t\t<JavaScriptResource apiFramework=\"omid\" browserOptional=\"true\"><![CDATA[https://verification.com/omid_verification.js;]]></JavaScriptResource>\n\t\t\t\t\t\t\t<TrackingEvents>\n\t\t\t\t\t\t\t\t<Tracking event=\"verificationNotExecuted\"><![CDATA[;https://verification.com/trackingurl;]]></Tracking>\n\t\t\t\t\t\t\t</TrackingEvents>\n\t\t\t\t\t\t\t<VerificationParameters><![CDATA[verification params key/value pairs;]]></VerificationParameters>\n\t\t\t\t\t\t</Verification>\n\t\t\t\t\t</AdVerifications>",
              "type": "AdVerifications"
            }
          ],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "skipOffset": null,
          "startTime": "PT10.11S",
          "startTimeInSeconds": 10.11,
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://n8ljfs0h09.execute-api.us-west-2.amazonaws.com/v1/impression"
              ],
              "duration": "PT14.982S",
              "durationInSeconds": 14.982,
              "eventId": "3062770",
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": "PT10.11S",
              "startTimeInSeconds": 10.11
            }
          ],
          "vastAdId": ""
        }
      ],
      "availId": "3062770",
      "availProgramDateTime": "2023-08-23T16:25:40.914Z",
      "duration": "PT14.982S",
      "durationInSeconds": 14.982,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT10.11S",
      "startTimeInSeconds": 10.11
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": "UFQxMC4xMVNfMjAyMy0wOC0yM1QxNjoyNjoyNC4yNDYxMDIxOTBaXzE%3D",
  "nonLinearAvails": []
}
```

**Note**  
Communiquez avec le laboratoire technique de l'IAB pour vous assurer que les applications sont certifiées chaque année afin de garantir leur conformité.

Pour plus d'informations sur le SDK OM, consultez [Open Measurement SDK](https://iabtechlab.com/standards/open-measurement-sdk/) sur le site Web de l'IAB Tech Lab.

## Lecteur gratuit Datazoom SDKs
<a name="ad-reporting-client-side-ad-tracking-integrations-dz"></a>

Pour faciliter l'adoption du lecteur SDKs, MediaTailor s'est associé à Datazoom pour fournir un lecteur SDKs gratuit configuré et testé avec et avec l'IAB [AWS Elemental MediaTailor Intégration côté client avec Google Ad Manager](gam-integration-pal.md) Tech. [Ouvrez le SDK de mesure](#ad-reporting-client-side-ad-tracking-integrations-open-measurement-sdk)

Le SDK du lecteur Datazoom prend en charge les fonctionnalités suivantes :
+ Listes de lecture en direct et VOD
+ Spécifications DASH et HLS
+ Assistance aux fournisseurs de lecteurs pour Bitmovin, exoplayer, lecteur multimédia Android, Apple, Brightcove AVPlayer, Chromecast Receiver, Dash.js, hls.js, Shaka Player, THEO Player, JWPlayer Video.js, Roku, etc.
+ Certification Open Measurement de l'IAB Tech Lab, disponible sur certains appareils
+ Gestion des événements par clic
+ Répartiteurs d'événements publicitaires, tels que les comptes à rebours, la superposition de publicités et les événements non linéaires, le début et la fin des interruptions publicitaires
+ Balisage publicitaire côté client
+ SDK de la bibliothèque d'accès programmatique (PAL) de Google, en tant que paramètre de configuration optionnel

Datazoom propose également un service d'analyse et de télémétrie payant pris en charge par le joueur. SDKs Les clients peuvent opter pour la télémétrie du SDK des joueurs et la contrôler depuis la console de gestion Datazoom. [Pour accéder au lecteur Datazoom SDKs et en savoir plus sur le service de télémétrie et d'analyse à valeur ajoutée, utilisez les informations de contact sur le site Datazoom.](https://www.datazoom.io/partner-aws) 

## Cadre publicitaire Roku (RAF)
<a name="ad-reporting-client-side-ad-tracking-integrations-raf"></a>

Le Roku Ad Framework (RAF) assure une expérience publicitaire cohérente sur l'ensemble de la plateforme Roku. Toutes les chaînes, y compris les publicités vidéo, doivent répondre aux exigences de certification de Roku pour la RAF. Notamment, l'application doit toujours utiliser le déclenchement d'événements côté client via RAF. MediaTailor, en tant que fournisseur d'insertion de publicités côté serveur (SSAI), prend en charge le déclenchement d'événements côté client. Les adaptateurs RAFX SSAI fournissent des interfaces à la fois aux serveurs de manifeste SSAI, ou Stitchers, et à RAF. Ces interfaces incluent :
+ Analyse de la `masterURL` réponse, extraction et extraction `playURL` `AdURL` des métadonnées publicitaires.
+ Transformation des métadonnées publicitaires MediaTailor SSAI en métadonnées publicitaires utilisables par RAF et configuration de RAF pour la lecture.
+ Observation des événements du flux et des métadonnées chronométrées.
+ Faire correspondre les événements du stream, les métadonnées publicitaires et les pixels des événements de lancement à temps.
+ Interrogez ou interrogez le `AdURL` fichier, comme l'exige le serveur de manifeste MediaTailor SSAI, puis analysez et reconfigurez le RAF.

Pour plus d'informations sur les adaptateurs SSAI pour RAF, consultez [Implémentation de l'insertion publicitaire côté serveur à l'aide d'adaptateurs Roku sur le site Web de Roku](https://developer.roku.com/docs/developer-program/advertising/ssai-adapters.md).

## TheoPlayer
<a name="ad-reporting-client-side-ad-tracking-integrations-theoplayer"></a>

TheoPlayer l'intégration avec MediaTailor effectue les opérations suivantes :
+ Fournit des fonctionnalités permettant le suivi des événements MediaTailor côté client pour HLS et DASH, à la fois pour les flux de production VOD et en direct.
+ Prend en charge l'envoi de balises de suivi uniquement pour les publicités linéaires.
+ Désactive la recherche pendant une annonce. Cependant, aucune logique n'est en place pour diffuser une annonce lorsque l'utilisateur cherche au-delà de la pause publicitaire.

Pour plus d'informations sur le SSAI in TheoPlayer et pour consulter le Web, Android, iOS et tvOS SDKs pour MediaTailor, consultez [MediaTailor](https://docs.theoplayer.com/how-to-guides/01-ads/12-mediatailor.md)le TheoPlayer site Web.

## MediaTailor SDK
<a name="ad-reporting-client-side-ad-tracking-integrations-mediatailor-sdk"></a>

AWS Elemental gère un kit de développement logiciel (SDK) JavaScript basé sur un kit de développement logiciel. AWS Elemental fournit le SDK tel quel, sans aucune garantie implicite. Utilisez le SDK comme démonstration de référence pour rationaliser votre intégration à l'utilisation. MediaTailor Le SDK montre comment interagir avec l'API de suivi MediaTailor côté client. Le SDK met en œuvre le suivi des publicités côté client et les rapports pour HTML5 les joueurs basés. Le SDK initialise une session de reporting MediaTailor côté client, puis demande régulièrement des informations de suivi publicitaire. Pendant la diffusion, le SDK émet des événements de suivi des publicités lorsque de nouveaux événements publicitaires sont détectés.

Le MediaTailor SDK prend en charge les fonctionnalités suivantes :
+ Listes de lecture en direct et VOD
+ Spécifications DASH et HLS
+ Gestion des événements par clic
+ Répartiteurs d'événements publicitaires
+ Crochets événementiels personnalisés
+ Balisage publicitaire côté client. Pour plus d'informations sur l'envoi de balises publicitaires, consultez[Balisage côté client](ad-reporting-client-side-beaconing.md).

**Note**  
Soumettez un ticket de AWS support pour recevoir un exemple de JavaScript SDK pour MediaTailor. Vous recevrez un lien de téléchargement pour le package et ses fichiers.

## Pagination via des balises publicitaires avec GetTracking
<a name="gettracking"></a>

Utilisez le `GetTracking` point de terminaison pour réduire le nombre de publicités renvoyées à un joueur. Par exemple, si une fenêtre de manifeste est large et s'étend sur une longue période, le nombre de balises publicitaires renvoyées peut avoir un impact sur les performances des joueurs. 

`GetTracking`renvoie une `NextToken` valeur que vous pouvez utiliser pour réduire le nombre de balises renvoyées en parcourant la liste des balises renvoyées. Vous pouvez parcourir les `NextToken` valeurs pour trouver la valeur souhaitée dans le `StartTimeInSeconds` champ d'une balise publicitaire. 
+ Lors du premier appel à`GetTracking`, toutes les publicités possibles figurant dans la fenêtre du manifeste sont renvoyées, y compris la valeur `NextToken` et de chacune. 
+ Si une `GetTracking` demande *n'inclut pas* de`NextToken`, toutes les annonces de la fenêtre du manifeste sont renvoyées.
+ Si une `GetTracking` demande contient un `NextToken` mais qu'il n'y a aucune nouvelle balise à renvoyer, MediaTailor renvoie la même valeur que celle `NextToken` que vous avez envoyée lors de la demande initiale.
+ Lorsqu'il n'y a plus de beacons correspondant à une annonce, `GetTracking` elle est supprimée de sa réponse.
+ Les jetons `GetTracking` expirent au bout de 24 heures. Si une `NextToken` valeur date de plus de 24 heures, l'appel suivant `GetTracking` renvoie une valeur nulle. `NextToken`

### Séquence d'appel généralisée GetTracking du joueur
<a name="gettracking.generalsequence"></a>

De la part du joueur client, une `GetTracking` demande est un POST dont le corps contient les publicités `NextToken` et les balises associées au jeton.

```
https://YouMediaTailorUrl/v1/tracking
{

     "NextToken": "value"
     .
     .
     .
}
```

La séquence générale d'utilisation `GetTracking` avec `NextToken` est la suivante :

1. Passez le premier appel à`GetTracking`.

   Toutes les publicités et les balises, ainsi que les premières `NextToken` pour les appels suivants, sont renvoyées. 

1. Si la valeur de `NextToken` est nulle, MediaTailor renvoie toutes les balises publicitaires.

1. Si le `NextToken` est expiré, MediaTailor renvoie un message d'erreur du code de retour HTTP 400.

   Passez un nouvel appel à `GetTracking` pour récupérer des `NextToken` s valides.

1. Scannez l'intégralité `StartTimeInSeconds` de la réponse pour trouver une balise publicitaire se situant dans la plage souhaitée.

1. Passez un nouvel appel à `GetTracking` avec la valeur `NextToken` associée à la valeur souhaitée`StartTimeInSeconds`. 

1. Si nécessaire, parcourez à nouveau les publicités renvoyées jusqu'à ce que vous trouviez exactement celles auxquelles vous souhaitez jouer.

#### Exemple étendu
<a name="gettracking.extendedexample"></a>

Cet exemple montre comment utiliser `GetTracking` les balises `NextToken` pour limiter le nombre de balises publicitaires renvoyées à un joueur.

MediaTailor reçoit une `GetTracking` demande. La réponse contient une annonce avec l'ID 9935407 et deux balises avec des `StartTimeInSeconds` valeurs 52,286 et 48,332 secondes. 

MediaTailor envoie la réponse JSON `NextToken` comme suit :

```
  {
  "NextToken": JF57ITe48t1441mv7TmLKuZLroxDzfIslp6BiSNL1IJmzPVMDN0lqrBYycgMbKEb
  "avails": [
    {
      "ads": [
        {
          "adId": "9935407",
          "adVerifications": [],
          "companionAds": [],
          "creativeId": "",
          "creativeSequence": "",
          "duration": "PT15S",
          "durationInSeconds": 15,
          "extensions": [],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "startTime": "PT30S",
          "StartTimeInSeconds": 45,
          "trackingEvents": [
            {
              "beaconUrls": [
                "http://adserver.com/tracking?event=Impression "
              ],
              "duration": "PT0S",
              "durationInSeconds": 0,
              "eventId": "9935414",
              "eventType": "secondQuartile",
              "startTime": "PT52.286S",
              "StartTimeInSeconds": 52.286
            },
            {
              "beaconUrls": [
                "http://adserver.com/tracking?event=firstQuartile"
              ],
              "duration": "PT0S",
              "durationInSeconds": 0,
              "eventId": "9935412",
              "eventType": "firstQuartile",
              "startTime": "PT48.332S",
              "StartTimeInSeconds": 48.332
            }
          ],
          "vastAdId": ""
        }
      ],
      "startTime": "PT46.47S",
      "StartTimeInSeconds": 46.47
    }
  ]
}
```

À la `GetTracking` demande suivante, MediaTailor répond avec la `NextToken` valeur : JF57 ITe48t1441mv7 Tm LKu ZLrox DzfIslp 6Bi SNL1 IJmz PVMDN0lqr BYycg MbKEb.

MediaTailor répond avec des publicités et des balises correspondant à `StartTimeInSeconds` celles définies lors `NextToken` de l'appel précédent.

Supposons que la réponse inclut maintenant une autre annonce portant l'ID 9235407 en plus de l'annonce précédente portant l'ID 9935407. Les balises portant l'identifiant publicitaire 9235407 ont les numéros 132.41 et 70.339`StartTimeInSeconds`.

MediaTailor parcourt toutes les balises de la session pour sélectionner celles dont la durée est `StartTimeInSeconds` supérieure à 52,286 secondes, à savoir la balise 3 et la balise 4 de l'annonce portant l'ID 9235407 :

```
{
  "NextToken": ZkfknvbfsdgfbsDFRdffg12EdffecFRvhjyjfhdfhnjtsg5SDGN
  "avails": [
    {
      "ads": [
        {
          "adId": "9235407",
          "adVerifications": [],
          "companionAds": [],
          "creativeId": "",
          "creativeSequence": "",
          "duration": "PT15.816S",
          "durationInSeconds": 19.716,
          "extensions": [],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "startTime": "PT2M0S",
          "StartTimeInSeconds": 120.0,
          "trackingEvents": [
            {
              "beaconUrls": [
                "http://adserver.com/tracking?event=complete"
              ],
              "duration": "PT0S",
              "durationInSeconds": 0,
              "eventId": "8935414",
              "eventType": "firstQuartile",
              "startTime": "PT1M10.330S",
              "StartTimeInSeconds": 70.339
            },
            {
              "beaconUrls": [
                "http://adserver.com/tracking?event=thirdQuartile"
              ],
              "duration": "PT0S",
              "durationInSeconds": 0,
              "eventId": "8935412",
              "eventType": "secondQuartile",
              "startTime": "PT2M12.41S",
              "StartTimeInSeconds": 132.41
            }
          ],
          "vastAdId": ""
        },   
      ],
      "startTime": "PT36.47S",
      "StartTimeInSeconds": 36.47
    }
  ]
}
```