

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.

# Utilisation AWS Elemental MediaTailor pour insérer des publicités
<a name="configurations"></a>

Une configuration est un objet avec lequel vous interagissez dans AWS Elemental MediaTailor. La configuration contient les informations de mappage pour le serveur d'origine et le serveur de décision publicitaire (ADS). Vous pouvez également définir une diffusion par défaut MediaTailor à utiliser lorsqu'une annonce n'est pas disponible ou qu'elle ne couvre pas toute la surface disponible.

Si vous utilisez un réseau de diffusion de contenu (CDN) avec MediaTailor, vous devez définir les règles de comportement dans le CDN avant d'ajouter des informations sur le CDN à la configuration. Pour plus d'informations sur la configuration de votre CDN, consultez [Utilisation d'un CDN pour optimiser la personnalisation des MediaTailor publicités et la diffusion de contenu](integrating-cdn.md).

**Topics**
+ [Codecs audio et vidéo pris en charge](#supportedcodecs)
+ [Comprendre le comportement d'insertion des AWS Elemental MediaTailor publicités](ad-behavior.md)
+ [MediaTailor présentation et mise en œuvre de l'insertion d'annonces guidées par le serveur](server-guided.md)
+ [MediaTailor exigences relatives à l'intégration des serveurs publicitaires](vast.md)
+ [MediaTailor gestion de la configuration de lecture](working-with-configurations.md)
+ [Intégration d'une source de contenu pour l'insertion d' MediaTailor annonces](integrating-origin.md)
+ [Intégration AWS Elemental MediaTailor à Google Ad Manager](gam-integration.md)
+ [Personnalisation du comportement des interruptions de publicité grâce à la suppression des interruptions de publicité](ad-rules.md)
+ [MediaTailor pare-chocs et insertion](bumpers.md)
+ [MediaTailor pré-enroulement et insertion](ad-behavior-preroll.md)
+ [MediaTailor ardoise et insertion](slate-management.md)
+ [Publicités de prélecture](prefetching-ads.md)
+ [Utilisation de publicités préconditionnées avec AWS Elemental MediaTailor](precondition-ads.md)
+ [MediaTailor variables publicitaires dynamiques pour les demandes ADS](variables.md)
+ [MediaTailor paramètres de requête manifeste](manifest-query-parameters.md)
+ [Signalement des données de suivi et](ad-reporting.md)
+ [Superposer des publicités](overlay-ads.md)
+ [Décoration d'identification publicitaire](ad-id-decoration.md)

## Codecs audio et vidéo pris en charge
<a name="supportedcodecs"></a>

MediaTailor prend en charge les codecs suivants.
+ Codecs audio :mp4a, et ac-3 ec-3
+ Codecs vidéo : h.264 (AVC), h.265 (), (HEVC) av01 AV1

# Comprendre le comportement d'insertion des AWS Elemental MediaTailor publicités
<a name="ad-behavior"></a>

AWS Elemental MediaTailor intègre les publicités à du contenu en direct ou à du contenu vidéo à la demande (VOD) en remplaçant ou en insérant des publicités dans le manifeste d'origine. L'insertion ou le remplacement des publicités dépend de la manière dont les pauses publicitaires sont configurées dans le manifeste d'origine et du fait que le contenu est en VOD ou en direct. Une pause publicitaire est la période pendant laquelle des publicités sont diffusées pendant la programmation, tandis que les disponibilités publicitaires sont les unités de temps publicitaires spécifiques d'une pause publicitaire qui peuvent être remplies de publicités.
+ Avec le *remplacement des publicités*, les MediaTailor segments de contenu sont remplacés par des publicités. 
+ Avec *l'insertion d'annonces*, MediaTailor insère du contenu publicitaire là où les segments n'existent pas.

Pour plus d'informations sur la manière MediaTailor d'intégrer les publicités au contenu en direct et à la VOD, sélectionnez le sujet approprié.

**Topics**
+ [Comportement d'assemblage publicitaire pour la VOD](#ad-behavior-vod)
+ [Comportement d'assemblage des publicités en direct](#ad-behavior-live)

## Comportement d'assemblage publicitaire pour la VOD
<a name="ad-behavior-vod"></a>

MediaTailor insère ou remplace les publicités dans le contenu VOD en fonction de la façon dont les marqueurs publicitaires sont configurés dans le manifeste d'origine et si le serveur de décision publicitaire (ADS) envoie des réponses VMAP.

Pour un comportement des publicités par configuration des marqueurs, consultez les sections suivantes.

### Si des marqueurs publicitaires sont présents
<a name="markers-present"></a>

AWS Elemental MediaTailor insère des publicités où des marqueurs publicitaires SCTE-35 sont présents dans le manifeste d'origine. Les marqueurs publicitaires dont `EXT-X-CUE-OUT` la valeur est la `0` durée indiquent l'insertion d'une annonce. 

#### Directives relatives aux marqueurs publicitaires HLS
<a name="markers-present-hls"></a>

 Suivez ces directives pour la signalisation SCTE après le lancement et le module publicitaire : 

##### Publicités pré-diffusées
<a name="post-roll-ad-markers"></a>

Pour les post-déploiements, les marqueurs `CUE-OUT/IN` doivent précéder le dernier segment de contenu. En effet, la spécification HLS nécessite que les décorateurs de balise soient explicitement déclarés avant un segment. 

Par exemple, supposons la déclaration suivante. 

```
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXTINF:4.000,
Videocontent.ts
#EXT-X-ENDLIST
```

AWS Elemental MediaTailor insère un post-roll comme suit.

```
#EXTINF:4.000,
Videocontent.ts
#EXT-X-DISCONTINUITY
#EXTINF:3.0,
Adsegment1.ts
#EXTINF:3.0,
Adsegment2.ts
#EXTINF:1.0,
Adsegment3.ts
#EXT-X-ENDLIST
```

**Example 2 : Ajouter des modules**  
 `CUE-OUT/IN`les balises doivent être explicitement attachées à un segment. Vous ne pouvez pas utiliser plusieurs balises `CUE-OUT/IN` à la suite pour imiter un comportement de pod publicitaire.  
Par exemple, la déclaration suivante est une utilisation valide de `CUE-OUT/IN` pour présenter un module publicitaire.  

```
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXTINF:4.000,
Somecontent1.ts
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXTINF:4.000,
Somecontent2.ts
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXTINF:4.000,
Videocontent.ts
```
La déclaration précédente génère une sortie similaire à la suivante.   

```
Ad 1
Somecontent.ts
Ad 2
Somecontent2.ts
Videocontent.ts
Post-Roll Ad 3
```
La déclaration suivante n'est pas valide.  

```
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXT-X-CUE-OUT: 0
#EXT-X-CUE-IN
#EXTINF:4.000,
Videocontent.ts
```

### Si aucun marqueur publicitaire n'est présent
<a name="no-markers"></a>

Les marqueurs publicitaires sont le moyen recommandé pour signaler les interruptions de publicité dans un manifeste. Cependant, les marqueurs publicitaires ne sont pas obligatoires. Si le manifeste ne contient pas de marqueurs publicitaires pour DASH ou HLS, il passe MediaTailor un seul appel à l'ADS et crée des pauses publicitaires en fonction de la réponse :
+ Si l'ADS envoie une réponse VAST, il MediaTailor insère toutes les annonces issues de la réponse dans un break publicitaire au début du manifeste. Il s'agit d'un pré-déploiement.
+ Si l'ADS envoie une réponse VMAP, il MediaTailor utilise les décalages de temps de pause publicitaire pour créer des pauses et les insérer dans le manifeste aux heures spécifiées (avant, à mi-diffusion ou après la diffusion). MediaTailor utilise toutes les annonces de chaque pause publicitaire dans la réponse VMAP pour chaque pause publicitaire du manifeste. 
**Note**  
Lorsqu'un segment chevauche un point d'insertion avec VMAP pour du contenu VOD, MediaTailor arrondit au point d'insertion le plus proche. 
**Astuce**  
Si vous souhaitez créer des coupures publicitaires en milieu de déploiement (mid-roll), mais que votre ADS ne prend pas en charge VMAP, vous devez vous assurer que des marqueurs de publicité sont présents dans le manifeste. MediaTailor insère les publicités au niveau des marqueurs, comme décrit dans les sections suivantes.

**Note**  
Pour les méthodes d'insertion de publicités guidées par le serveur, MediaTailor insère les publicités prédiffusées en haut du manifeste et le joueur les diffuse avant les autres types d'annonces.

## Comportement d'assemblage des publicités en direct
<a name="ad-behavior-live"></a>

Dans les diffusions en direct, effectue AWS Elemental MediaTailor toujours le remplacement des publicités, en préservant le plus possible le temps total entre les marqueurs publicitaires. Lorsque les marqueurs publicitaires incluent l'`DURATION`attribut, MediaTailor utilise la valeur pour déterminer la durée de la pause publicitaire. Chaque `CUE-OUT` indicateur doit avoir une durée ou un `CUE-IN` indicateur correspondant dans les flux de travail en direct. 

MediaTailor remplace les publicités pour le contenu en direct HLS et DASH. Pour plus d'informations sur le mode de MediaTailor calcul de l'emplacement et de la durée des pauses publicitaires, reportez-vous aux sections [Marqueurs publicitaires compatibles avec le HLS](hls-ad-markers.md) et[Marqueurs publicitaires DASH](dash-ad-markers.md). 

### Sélection et remplacement des annonces
<a name="ad-behavior-live-ad-selection"></a>

AWS Elemental MediaTailor inclut les publicités provenant de la réponse VAST du serveur de décision publicitaire (ADS) comme suit : 
+ Si une durée est spécifiée, MediaTailor sélectionne un ensemble d'annonces correspondant à cette durée et les inclut. 
+ Si aucune durée n'est spécifiée, MediaTailor diffuse autant de publicités que possible jusqu'à ce qu'un marqueur publicitaire indique un retour au contenu principal.

AWS Elemental MediaTailor respecte les directives suivantes lors du remplacement des publicités en direct : 
+ MediaTailor essaie de diffuser des publicités complètes, sans découpage ni troncature.
+ Chaque MediaTailor fois qu'un marqueur publicitaire indique la fin de la pause publicitaire, il revient au contenu sous-jacent. Cela peut signifier la troncation d'une publicité en cours de lecture. 
+ À la fin de la durée, MediaTailor revient au contenu sous-jacent.
+ S'il n' MediaTailor y a plus de publicités à diffuser pendant la durée d'une pause publicitaire, le système diffuse la liste, si une telle option est configurée, ou reprend la lecture du flux de contenu sous-jacent. Cela se produit généralement lorsqu'il n'y a pas assez de publicités transcodées pour remplir la durée de la coupure publicitaire. 

  
**Astuce**  
Vous pouvez définir la limite de temps publicitaire non rempli autorisé dans une coupure avec le paramètre de configuration de seuil de personnalisation. Pour plus d'informations, consultez la [PlaybackConfiguration référence](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_PutPlaybackConfiguration.html#mediatailor-PutPlaybackConfiguration-request-PersonalizationThresholdSeconds).

### Prélancement en direct pour l'insertion de publicités guidée par le serveur
<a name="ad-behavior-live-preroll-sgai"></a>

Le prélancement en direct fonctionne différemment pour les méthodes d'insertion d'annonces guidées par le serveur par rapport à l'insertion d'annonces côté serveur :

Insertion de publicités côté serveur (mode cousu)  
Les publicités Preroll remplacent une partie du contenu en direct au début de la session de chaque spectateur. Chaque spectateur voit le pré-lancement à des moments différents en fonction du moment où il rejoint le stream.

Méthodes d'insertion de publicités guidées par le serveur  
MediaTailor place une balise de plage de dates préroll en haut de tous les manifestes multimédias contenant des attributs. `CUE="PRE,ONCE"` Cela oblige les joueurs à demander et à diffuser des annonces d'avant-lancement une seule fois au début de la diffusion, même s'ils partagent le même manifeste non personnalisé.

**Exigences de configuration :**
+ **Serveur de décision publicitaire Live Preroll :** configurez un point de terminaison VAST pour les publicités en avant-première (cela peut être différent des publicités en cours de diffusion)
+ **Durée maximale autorisée de l'avant-lancement en direct :** définissez la durée maximale des annonces préliminaires (facultatif, si ce paramètre est omis, toutes les publicités renvoyées seront utilisées)

**Mise en œuvre technique :**
+ Utilisations des balises de plage de dates Preroll (époque Unix`START-DATE="1970-01-01T00:00:00.000Z"`)
+ Les demandes de liste d'actifs pour le prélancement utilisent le serveur de décision publicitaire pré-lancement configuré au lieu de l'ADS normal
+ Les joueurs identifient les demandes de prélancement grâce `availId="aws-mediatailor-preroll-1"` aux données de la liste des actifs

**Important**  
Pour les diffusions en direct, les annonces d'avant-lancement couvrent le contenu au lieu de le retarder. Les versions futures peuvent prendre en charge le mode de temporisation du contenu grâce à des options de configuration supplémentaires.

**Note**  
Le comportement des pré-lancements varie entre le contenu en direct et le contenu VOD pour l'insertion de publicités guidée par le serveur. Le contenu en direct nécessite une configuration de prélancement explicite, tandis que le contenu VOD inclut le prélancement par défaut en utilisant le serveur de décision publicitaire standard.

### Exemples
<a name="ad-behavior-live-examples"></a>
+ Si la durée de la pause publicitaire est fixée à 70 secondes et que la réponse ADS contient deux publicités de 40 secondes, AWS Elemental MediaTailor diffuse l'une des publicités de 40 secondes. Dans le temps qui reste, il passe à la liste configurée ou au contenu sous-jacent. Au cours de ce processus, si MediaTailor rencontre un indicateur entrant, il passe aussitôt au contenu sous-jacent. 
+ Si la durée de la pause publicitaire est fixée à 30 secondes et que la publicité la plus courte fournie par la réponse ADS est de 40 secondes, aucune MediaTailor publicité n'est diffusée. Si une liste de publicités est configurée, elle MediaTailor est diffusée pendant 30 secondes ou jusqu'à ce qu'un indicateur apparaisse. Dans le cas contraire MediaTailor , le contenu sous-jacent est diffusé.

# MediaTailor présentation et mise en œuvre de l'insertion d'annonces guidées par le serveur
<a name="server-guided"></a>

AWS Elemental MediaTailor L'insertion d'annonces guidée par le serveur (SGAI) constitue une alternative à l'insertion d'annonces côté serveur en référençant les publicités sous forme de playlists distinctes plutôt que de les assembler directement dans des playlists multimédias. Cette approche améliore les performances grâce à des manifestes pouvant être mis en cache et permet une meilleure évolutivité.

Pour plus d'informations sur l'utilisation de l'insertion publicitaire guidée par le serveur avec MediaTailor, choisissez la rubrique applicable dans la liste suivante.

## Activer dans la configuration de lecture
<a name="enable-in-config"></a>

Pour permettre aux joueurs d'utiliser l'insertion publicitaire guidée par le serveur, vous devez définir `Insertion Mode` cette option `PLAYER_SELECT` dans la configuration de MediaTailor lecture. Cela permet aux joueurs de sélectionner l'insertion de publicités cousues ou guidées au moment de l'initialisation de la session.

## Création d'une session guidée par le serveur
<a name="create-guided-session"></a>

Lorsque vous créez des sessions de lecture, choisissez le mode guidé. La manière de procéder dépend du fait que vos joueurs utilisent des sessions implicites ou explicites.

### Sessions guidées par le serveur créées implicitement
<a name="create-implicit-guided-session"></a>

Ajouter `aws.insertionMode=GUIDED` à la demande de playlist multivariante HLS. Exemple :

```
playback-endpoint/v1/master/hashed-account-id/origin-id/index.m3u8?aws.insertionMode=GUIDED
```

Où :
+ `playback-endpoint` est le point de terminaison de lecture unique généré par AWS Elemental MediaTailor lorsque la configuration a été créée. 

  Exemple

  ```
  https://777788889999.mediatailor.us-east-1.amazonaws.com
  ```
+ `hashed-account-id`est votre Compte AWS identifiant. 

  Exemple

  ```
  777788889999
  ```
+ `origin-id` est le nom que vous avez attribué lors de la création de la configuration. 

  Exemple

  ```
  myOrigin
  ```
+ `index.m3u8`ou est le nom du manifeste issu du flux de test plus son extension de fichier. Définissez ceci afin que vous obteniez un manifeste entièrement identifié lorsque vous l'ajoutez à la source du contenu vidéo que vous avez configuré dans [Étape 4 : créer une configuration](getting-started-ad-insertion.md#getting-started-add-mapping). 

En utilisant les valeurs des exemples précédents, les valeurs complètes URLs sont les suivantes.
+ Exemple :

  ```
  https://777788889999.mediatailor.us-east-1.amazonaws.com/v1/master/777788889999/myOrigin/index.m3u8?aws.insertionMode=GUIDED
  ```

### Sessions guidées par le serveur créées de manière explicite
<a name="create-explicit-guided-session"></a>

Ajoutez `insertionMode=GUIDED` aux métadonnées JSON que le joueur envoie le HTTP au point de terminaison `POST` du préfixe d'initialisation de session de la MediaTailor configuration.

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

```
{
  # other keys, e.g. "adsParams"
  "insertionMode": "GUIDED"       # this can be either GUIDED or STITCHED
}
```

Avec ces métadonnées d'initialisation, la session de lecture utilisera l'insertion de publicités guidée par le serveur.

# Suivi des publicités avec SGAI
<a name="sgai-ad-tracking"></a>

SGAI prend en charge le suivi des publicités côté serveur et côté client. Vous définissez le mode de rapport lors de l'initialisation de la session. Le mode ne peut pas changer pendant la session.

Suivi côté serveur (par défaut)  
MediaTailor déclenche automatiquement des balises VAST lorsque le joueur demande des segments publicitaires. Les annonces figurant URIs dans la liste des actifs contiennent des métadonnées de balises cryptées (`awsBeaconData``awsBeaconDomain`,,`awsConfigurationName`). Le joueur doit accepter la substitution de `#EXT-X-DEFINE:QUERYPARAM` variables HLS. La réponse relative à la liste des actifs ne contient aucune `TRACKING` section.  
Pour plus de détails sur le fonctionnement du balisage SGAI côté serveur, consultez. [Suivi côté serveur avec insertion publicitaire guidée par le serveur (SGAI)](ad-reporting-server-side-sgai.md)

Suivi côté client  
Ajoutez `aws.reportingMode=CLIENT` à votre demande d'initialisation de session. La réponse à la liste des actifs inclut une `TRACKING` section avec une balise URLs que le joueur déclenche pendant la diffusion de la publicité. Le point de terminaison de `GetTracking` l'API *n'est pas* utilisé pour les sessions SGAI. Au lieu de cela, chaque réponse à la liste des actifs inclut directement les données de suivi. Les données de suivi utilisent le même schéma JSON que la réponse de suivi SSAI (Server-side ad insertion).  
Pour en savoir plus, consultez [Insertion de publicités guidée par le serveur](ad-reporting-client-side.md#ad-reporting-client-side-best-practices-sgai).

# Prélecture guidée avec battements de cœur manifestes
<a name="sgai-guided-prefetch"></a>

Pour les diffusions SGAI en direct, vous pouvez activer la prélecture des publicités basée sur le manifeste en ajoutant `aws.guidedPrefetchMode=MANIFEST` à votre demande d'initialisation de session :

```
https://777788889999.mediatailor.us-east-1.amazonaws.com/v1/master/777788889999/myOrigin/index.m3u8?aws.insertionMode=GUIDED&aws.guidedPrefetchMode=MANIFEST
```

Lorsque cette option MediaTailor est activée, ajoute un identifiant de session (`?aws.sessionId=<id>`) en tant que paramètre de requête à chaque URL du manifeste multimédia interstitiel (`/v1/i-media`) de la liste de lecture multivariante. Chaque fois que le lecteur actualise un manifeste i-media, la demande reçoit l'identifiant de session, qui est MediaTailor utilisé pour mettre en file d'attente les demandes de prélecture pour les prochaines pauses publicitaires. MediaTailor 
+ Le `aws.guidedPrefetchMode` paramètre accepte deux valeurs : `MANIFEST` (activé) et `OFF` (désactivé, par défaut).
+ Le mode de prélecture guidé n'est valide que pour les sessions SGAI. Son utilisation avec des sessions cousues renvoie une erreur.
+ DASH ne prend pas encore en charge le mode de prélecture guidée.
+ La prélecture guidée est indépendante du mode de rapport : les balises se déclenchent au moment de la lecture, et non au moment de la prélecture.
+ **Ne mettez pas en cache les manifestes i-media dans votre CDN lorsque vous utilisez le préchargement guidé.** Le mécanisme de prélecture dépend de la réception directe des demandes d'actualisation du manifeste du joueur. MediaTailor Si votre CDN met en cache les `/v1/i-media` réponses, MediaTailor ne reçoit pas les demandes de pulsation et ne peut pas déclencher le préchargement.

# MediaTailor matrice de compatibilité des fonctionnalités d'insertion publicitaire guidée par le serveur
<a name="sgai-feature-compatibility"></a>

AWS Elemental MediaTailor propose deux méthodes d'insertion d'annonces avec différentes fonctionnalités compatibles. L'insertion d'annonces guidée par le serveur fonctionne différemment de l'insertion d'annonces côté serveur, ce qui affecte la compatibilité avec certaines fonctionnalités. MediaTailor Utilisez ce tableau pour comprendre quelles fonctionnalités fonctionnent avec chaque méthode d'insertion d'annonces.


**Compatibilité des fonctionnalités par méthode d'insertion d'annonces**  

| Fonctionnalité | Insertion de publicités côté serveur (SSAI) | Insertion de publicités guidée par le serveur (SGAI) | 
| --- | --- | --- | 
| Prélecture des annonces | ✓ Soutenu | Pas encore pris en charge | 
| Suppression des publicités | ✓ Soutenu | Non applicable | 
| Comportement des publicités avant la diffusion | Contrôlé par MediaTailor la configuration | Contrôlé par MediaTailor la configuration | 
| Suivi des publicités côté client | Utilise GetTracking l'API | TRACKINGSection Utilise dans la liste des actifs (GetTrackingl'API n'est pas utilisée) | 
| Suivi des publicités côté serveur | ✓ Supporté : les balises se déclenchent en fonction des /v1/segment demandes utilisant l'identifiant de session | ✓ Compatible (HLS uniquement) : utilise le balisage sans session avec des données de balise cryptées intégrées dans le via publicitaire. URIs \$1EXT-X-DEFINE:QUERYPARAM Nécessite HLS v11 ou version ultérieure. DASH n'est pas encore pris en charge. | 
| Décoration Ad-ID | ✓ Soutenu | ✗ Non compatible | 

## Détails de compatibilité
<a name="compatibility-details"></a>

### Prélecture des annonces
<a name="prefetch-compatibility"></a>

La prélecture des annonces n'est actuellement pas prise en charge.

### Suppression des publicités
<a name="prefetch-compatibility"></a>

La suppression des publicités n'est pas prise en charge par les méthodes d'insertion de publicités guidées par le serveur, car les joueurs ne récupèrent que les publicités auxquelles ils veulent diffuser. 

### Comportement des publicités avant la diffusion
<a name="preroll-compatibility"></a>

La synchronisation des annonces avant la diffusion fonctionne différemment selon les méthodes d'insertion :
+ **Insertion de publicités côté serveur :** MediaTailor contrôle la diffusion des publicités en prédiffusion en fonction des paramètres de configuration
+ **Insertion d'annonces guidée par le serveur :** MediaTailor insère des publicités prédiffusées en haut du manifeste. Votre lecteur diffuse d'abord ces publicités, puis lance votre contenu

### Suivi des publicités
<a name="tracking-compatibility"></a>

Le **suivi côté client** utilise différents mécanismes en fonction de la méthode d'insertion des annonces :
+ **Insertion de publicités côté serveur (SSAI) :** utilise le point de terminaison de l'API `GetTracking`
+ **Insertion d'annonces guidée par le serveur (SGAI) :** MediaTailor fournit des informations de suivi dans la `TRACKING` section de chaque réponse à la liste d'actifs. Le point de terminaison de l'`GetTracking`API n'est pas utilisé. La réponse d'initialisation de session n'inclut pas un`trackingUrl`.

Le **suivi côté serveur** diffère également selon les méthodes :
+ **Insertion de publicités côté serveur (SSAI) :** MediaTailor déclenche des balises lorsque le joueur extrait des segments publicitaires assemblés à l'aide de l'identifiant de session. `/v1/segment/`
+ **Insertion d'annonces guidée par le serveur (SGAI) :** MediaTailor utilise le balisage sans session. MediaTailor intègre des données de balise cryptées (`awsBeaconData`,`awsBeaconDomain`,`awsConfigurationName`) dans le manifeste publicitaire URIs qu'il renvoie dans la liste des actifs. Le manifeste publicitaire utilise des `#EXT-X-DEFINE:QUERYPARAM` balises afin que le joueur remplace ces valeurs par segment URLs. Lorsque le joueur demande chaque segment publicitaire, MediaTailor déchiffre les données, déclenche la balise appropriée et redirige vers le segment de contenu. Lorsque le reporting côté serveur est actif, `TRACKING` cette section est MediaTailor omise dans la réponse de la liste des actifs. Pour en savoir plus, consultez [Suivi côté serveur avec insertion publicitaire guidée par le serveur (SGAI)](ad-reporting-server-side-sgai.md).

### Décoration Ad-ID
<a name="ad-id-compatibility"></a>

La décoration de l'identifiant publicitaire n'est pas compatible avec l'insertion d'annonces guidée par le serveur, car les champs qui remplissent X-AD-CREATIVE-SIGNALING les en-têtes ne sont connus que lorsque la liste des ressources est extraite, et non lorsque le manifeste est écrit.

# MediaTailor configuration d'insertion publicitaire guidée par le serveur pour les diffusions en direct
<a name="sgai-live-configuration"></a>

AWS Elemental MediaTailor l'insertion de publicités guidée par le serveur pour le contenu en direct offre des avantages significatifs en termes de performances grâce à des manifestes pouvant être mis en cache. La configuration du SGAI pour le contenu en direct utilise les mêmes paramètres de base que la VOD, avec des considérations spécifiques relatives aux caractéristiques de diffusion en direct et au traitement en temps réel.

## Exigences pour le SGAI en direct
<a name="sgai-live-requirements"></a>

Avant d'activer le SGAI pour le contenu en direct, assurez-vous que vous disposez des éléments suivants :
+ Votre diffusion en direct inclut des marqueurs DATERANGE correctement formatés
+ Les durées des pauses publicitaires sont cohérentes et prévisibles
+ Votre CDN est configuré pour mettre en cache les manifestes SGAI de manière appropriée
+ Les joueurs prennent en charge les workflows d'insertion de publicités guidés par le serveur
+ Votre serveur de décision publicitaire peut traiter les demandes de contenu en direct en temps réel

### Exigences relatives aux joueurs
<a name="sgai-live-player-integration"></a>

Les joueurs doivent être configurés pour gérer correctement les manifestes en direct du SGAI :
+ Support pour les flux de travail d'insertion de publicités guidés par le serveur
+ Capacité à traiter les instructions d'insertion de publicités à partir des manifestes
+ Gestion appropriée de la synchronisation et de la synchronisation des diffusions en direct
+ Pour le contenu HLS : Support pour HLS version 8 et EXT-X-DATERANGE avec attribut CLASS. Version 11 pour le balisage côté serveur.
+ Pour le contenu HLS : prise en charge de la substitution de EXT-X-DEFINE variables

## Configuration de la lecture en direct
<a name="sgai-live-playback-config"></a>

Pour activer le SGAI pour le contenu en direct, créez une configuration de lecture comportant les paramètres suivants :

**Example Configuration de la lecture en direct SGAI**  

```
{
  "Name": "LiveSGAIConfig",
  "VideoContentSourceUrl": "https://your-live-origin.com/live/stream.m3u8",
  "AdDecisionServerUrl": "https://your-ads.com/ads",
  "PersonalizationThresholdSeconds": 1,
  "InsertionMode": "PLAYER_SELECT"
}
```

Voici les principales considérations à prendre en compte pour la configuration SGAI en direct :

`VideoContentSourceUrl`  
Doit pointer vers un flux HLS en direct avec des marqueurs SCTE-35 DATERANGE correctement formatés. Le flux doit conserver des durées de segment et des variantes de débit cohérentes.

## Demandes de manifeste SGAI en direct
<a name="sgai-live-manifest-requests"></a>

Les manifestes dynamiques SGAI utilisent le même modèle d'URL que l'insertion publicitaire traditionnelle :

```
https://your-config.mediatailor.region.amazonaws.com/v1/master/config-name/manifest.m3u8?aws.insertionMode=GUIDED
```

## Prélecture basée sur un manifeste pour SGAI en direct
<a name="sgai-live-guided-prefetch"></a>

Pour les flux de travail SGAI en direct, vous pouvez activer le battement de cœur par prélecture basé sur des manifestes afin de réduire le temps de latence des annonces publicitaires. Ajoutez `aws.guidedPrefetchMode=MANIFEST` à la demande de manifeste :

```
https://your-config.mediatailor.region.amazonaws.com/v1/master/config-name/manifest.m3u8?aws.insertionMode=GUIDED&aws.guidedPrefetchMode=MANIFEST
```

Lorsque cette option MediaTailor est activée, ajoute un identifiant de session (`?aws.sessionId=<id>`) en tant que paramètre de requête à chaque URL du manifeste multimédia interstitiel (`/v1/i-media`) de la liste de lecture multivariante. Chaque fois que le lecteur actualise un manifeste i-media, la demande reçoit l'identifiant de session MediaTailor, qui MediaTailor sert à identifier la session et à mettre en file d'attente les demandes de prélecture pour les prochaines pauses publicitaires.

**Important**  
**Ne mettez pas en cache les manifestes i-media dans votre CDN lorsque vous utilisez le préchargement guidé.** Le mécanisme du battement de cœur avant la lecture dépend de l'atteinte directe des demandes d'actualisation du manifeste du joueur. MediaTailor Si votre CDN met en cache et diffuse les `/v1/i-media` réponses, MediaTailor il ne reçoit pas les demandes de pulsation et ne peut pas déclencher le préchargement. Configurez votre CDN pour transmettre les `/v1/i-media/*` demandes au MediaTailor moment où il `aws.guidedPrefetchMode=MANIFEST` est utilisé.

La prélecture guidée est indépendante du mode de création de rapports. Que vous utilisiez le suivi côté serveur (par défaut) ou côté client (`aws.reportingMode=CLIENT`), les balises se déclenchent au moment de la diffusion, et non lorsque les publicités sont prélues. Pour obtenir des informations générales sur le fonctionnement de la prélecture des annonces MediaTailor, consultez. [Publicités de prélecture](prefetching-ads.md)

## Test de la configuration en direct de SGAI
<a name="sgai-live-testing"></a>

Vérifiez votre configuration SGAI Live à l'aide des étapes de validation suivantes :

1. **Génération de manifestes de test**

   Demandez l'URL du manifeste SGAI Live et vérifiez qu'il renvoie du contenu pouvant être mis en cache avec des instructions d'insertion d'annonces appropriées.

1. **Vérifier la mise en cache du CDN**

   Vérifiez que votre CDN met en cache les manifestes SGAI conformément aux valeurs TTL configurées.

1. **Tester l'insertion de publicités**

   Vérifiez que les joueurs peuvent insérer des publicités avec succès en suivant les instructions fournies dans les manifestes SGAI.

1. **Surveiller les performances**

   Utilisez CloudWatch des métriques pour vérifier la réduction de la charge d'origine et l'amélioration des taux de réussite du cache.

# MediaTailor configuration d'insertion publicitaire guidée par le serveur pour le contenu VOD
<a name="sgai-vod-configuration"></a>

AWS Elemental MediaTailor l'insertion de publicités guidée par le serveur pour le contenu VOD offre des avantages significatifs en termes de performances grâce à des manifestes hautement cachables et à une réduction du traitement par le serveur. La configuration du SGAI pour le contenu VOD tire parti de la nature statique des video-on-demand ressources afin d'optimiser l'efficacité de la mise en cache et de minimiser les demandes d'origine, ce qui en fait la solution idéale pour les grandes bibliothèques de contenu présentant des modèles d'affichage répétés.

## Exigences relatives à la VOD SGAI
<a name="sgai-vod-requirements"></a>

Avant d'activer le SGAI pour le contenu VOD, assurez-vous que vous disposez des éléments suivants :
+ Votre contenu VOD inclut des marqueurs publicitaires correctement formatés (SCTE-35 ou métadonnées chronométrées)
+ Le contenu est stocké dans une source fiable avec une disponibilité constante
+ Votre CDN est configuré pour mettre en cache les manifestes SGAI avec les valeurs TTL appropriées
+ Les joueurs prennent en charge les flux de travail d'insertion publicitaire guidés par le serveur
+ Votre serveur de décision publicitaire peut gérer les métadonnées et le ciblage spécifiques à la VOD

### Exigences relatives aux joueurs
<a name="sgai-vod-player-requirements"></a>

Les joueurs doivent être configurés pour gérer les manifestes VOD SGAI et l'insertion de publicités :
+ Support pour les flux de travail d'insertion de publicités guidés par le serveur
+ Capacité à traiter les conseils d'insertion de publicités à partir de manifestes de VOD
+ Support pour l'insertion de publicités côté client pendant la lecture de VOD
+ Gestion appropriée des opérations de recherche pendant les pauses publicitaires
+ Support pour la durée du contenu et le suivi de position

## Configuration de lecture VOD
<a name="sgai-vod-playback-config"></a>

Pour activer le SGAI pour le contenu VOD, créez une configuration de lecture comportant les paramètres suivants :

**Example Configuration de lecture SGAI VOD**  

```
{
  "Name": "VODSGAIConfig",
  "VideoContentSourceUrl": "https://your-vod-origin.com/content/",
  "AdDecisionServerUrl": "https://your-ads.com/ads",
  "PersonalizationThresholdSeconds": 5,
  "InsertionMode": "PLAYER_SELECT"
}
```

Voici les principales considérations relatives à la configuration de la VOD SGAI :

`VideoContentSourceUrl`  
Doit pointer vers votre bibliothèque de contenu VOD avec des modèles d'URL cohérents. Assurez-vous que l'origine peut gérer le volume de demandes attendu et assure une diffusion de contenu fiable.

`ConfigurationAliases`  
Incluez des paramètres spécifiques à la VOD, tels que la durée du contenu, le genre ou les informations sur les séries, qui peuvent être utilisés pour le ciblage publicitaire sans affecter la capacité de mise en cache des manifestes.

`ManifestProcessingRules`  
Activez le transfert des marqueurs publicitaires pour conserver les informations de synchronisation du contenu d'origine, ce qui est particulièrement important pour le contenu VOD dont les positions de pause publicitaire sont prédéfinies.

## Demandes de manifeste SGAI VOD
<a name="sgai-vod-manifest-requests"></a>

Les manifestes VOD SGAI utilisent le même modèle d'URL que celui d'insertion d'annonces VOD traditionnelles. 

```
https://your-config.mediatailor.region.amazonaws.com/v1/master/config-name/content-path/manifest.m3u8?aws.insertionMode=GUIDED
```

## Ciblage publicitaire spécifique à la VOD
<a name="sgai-vod-ad-targeting"></a>

Le contenu VOD offre des opportunités de ciblage publicitaire uniques :

### Ciblage des métadonnées du contenu
<a name="sgai-vod-content-metadata"></a>

Tirez parti des métadonnées du contenu VOD pour améliorer le ciblage publicitaire :
+ **Genre et catégorie :** Cibler les publicités en fonction du type de contenu (série dramatique, comédie, documentaire)
+ **Évaluation du contenu :** assurez-vous que le contenu publicitaire est adapté à l'âge (classifications G, PG, R)
+ **Séries et saisons :** ciblez les publicités pour la continuité des séries ou le contenu connexe
+ **Date de sortie :** objectif basé sur l'âge du contenu (nouvelles versions par rapport au contenu du catalogue)
+ **Durée du contenu :** ajustez le chargement des annonces en fonction de la longueur totale du contenu

### Affichage du ciblage contextuel
<a name="sgai-vod-viewing-context"></a>

Les modèles de visionnage de la VOD permettent un ciblage publicitaire contextuel :
+ **Moment de la journée :** ciblez les publicités en fonction du moment où le contenu est regardé
+ **Binge watching :** ajustez la fréquence des publicités pour les utilisateurs qui regardent plusieurs épisodes
+ **Taux d'achèvement :** cible basée sur les modèles d'achèvement du contenu historiques de l'utilisateur
+ **Type d'appareil :** optimisez les formats publicitaires pour les appareils de visionnage (téléviseur, mobile, tablette)

## Test de la configuration VOD SGAI
<a name="sgai-vod-testing"></a>

Vérifiez votre configuration SGAI VOD à l'aide des étapes de validation suivantes :

1. **Génération de manifestes de test**

   Demandez un manifeste SGAI VOD URLs pour différents types de contenu et vérifiez qu'ils renvoient du contenu pouvant être mis en cache avec des conseils d'insertion d'annonces appropriés.

1. **Vérifier la mise en cache du CDN**

   Vérifiez que votre CDN met en cache les manifestes SGAI conformément aux valeurs TTL configurées et qu'il atteint des taux de réussite élevés.

1. **Tester l'insertion de publicités**

   Vérifiez que les joueurs peuvent insérer des publicités avec succès en suivant les instructions fournies dans les manifestes SGAI pour différents contenus VOD.

1. **Opérations de recherche de tests**

   Vérifiez que la recherche dans le contenu VOD fonctionne correctement pendant les pauses publicitaires et que la position de lecture reste correcte.

1. **Surveiller les performances**

   Utilisez CloudWatch des indicateurs pour vérifier la réduction de la charge d'origine, l'amélioration des taux de réussite du cache et les taux d'insertion de publicités réussis.

### Principaux scénarios de test
<a name="sgai-vod-testing-scenarios"></a>

Testez ces scénarios de VOD spécifiques :
+ **Contenu populaire :** vérifiez les taux de réussite élevés du cache pour les ressources VOD fréquemment consultées
+ **Contenu de longue durée :** testez l'insertion de publicités dans des films ou des épisodes longs comportant plusieurs interruptions publicitaires
+ **Contenu des séries :** vérifiez la cohérence du ciblage publicitaire entre les épisodes d'une série
+ **Différents genres :** testez le ciblage publicitaire en fonction des métadonnées du contenu et du genre

## Bonnes pratiques d'optimisation de la VOD SGAI
<a name="sgai-vod-optimization"></a>

Optimisez votre implémentation SGAI VOD pour des performances maximales :

### Optimisation du cache
<a name="sgai-vod-cache-optimization"></a>
+ **Maximisez les valeurs TTL :** utilisez des durées de cache plus longues pour les manifestes VOD, car le contenu ne change pas
+ **Minimiser les clés de cache :** réduire les variations des clés de cache pour améliorer les taux de réussite
+ **Préchauffez le contenu populaire : mettez en** cache le contenu VOD tendance ou en vedette
+ **Surveillez les performances du cache :** suivez les taux de réussite du cache et optimisez-le en fonction des modèles d'utilisation

### Optimisation de la diffusion de contenu
<a name="sgai-vod-content-optimization"></a>
+ **Modèles d'URL cohérents :** utilisez des structures d'URL prévisibles pour une meilleure mise en cache
+ **Standardisation des métadonnées :** garantir la cohérence des métadonnées du contenu pour un ciblage publicitaire fiable
+ **Positionnement des pauses publicitaires :** optimisez le placement des pauses publicitaires pour des transitions de contenu naturelles
+ **Variantes de qualité :** assurez-vous que le SGAI fonctionne avec toutes les variantes de débit de votre contenu VOD

# MediaTailor exigences relatives à l'intégration des serveurs publicitaires
<a name="vast"></a>

Pour intégrer votre serveur publicitaire AWS Elemental MediaTailor, celui-ci doit envoyer du code XML conforme aux spécifications de l'IAB pour les versions prises en charge de VAST et VMAP. Vous pouvez utiliser un validateur VAST public pour vous assurer que les balises sont correctement formées.

AWS Elemental MediaTailor prend en charge les réponses VAST et VMAP des serveurs de décision publicitaire. AWS Elemental MediaTailor prend également en charge la transmission par proxy des métadonnées VPAID via notre API de reporting côté client pour l'insertion d'annonces côté client. Pour plus d'informations sur la création de rapports côté client, consultez [Suivi des publicités côté client](ad-reporting-client-side.md).

MediaTailor prend en charge les versions suivantes de VAST, VMAP et VPAID :
+ Jusqu'à [VAST 4.3](https://iabtechlab.com/standards/vast/) 

  MediaTailor accepte les versions de réponse jusqu'à VAST 4.3, mais certaines fonctionnalités avancées de VAST 4.0 et versions ultérieures ne sont pas prises en charge.
+ [VMAP 1.0](https://www.iab.com/guidelines/digital-video-multiple-ad-playlist-vmap-1-0-1/)
+ [VPAID 2.0](https://www.iab.com/guidelines/digital-video-player-ad-interface-definition-vpaid-2-0/)

## Des exigences VASTES
<a name="vast-integration"></a>

La réponse VAST de votre serveur de publicités doit contenir les éléments `TrackingEvents` conformes à IAB et les types d'événements standard, comme `impression`. Si vous incluez des événements de suivi non standard, si vous AWS Elemental MediaTailor rejetez la réponse VAST et ne diffusez pas d'annonce en faveur de cette fin.

VAST 3.0 a introduit la prise en charge des pods publicitaires, qui consiste en la livraison d'un ensemble de publicités linéaires séquentielles. Si une annonce spécifique dans un module publicitaire n'est pas disponible, AWS Elemental MediaTailor enregistre une erreur dans le journal des interactions de l'ADS. CloudWatch Ensuite, il tente d'insérer la prochaine ad dans le pod. De cette façon, MediaTailor parcourt les publicités du module jusqu'à ce qu'il en trouve une qu'il peut utiliser.

### Ciblage
<a name="targeting"></a>

Pour cibler des joueurs spécifiques pour vos publicités, vous pouvez créer des modèles pour vos tags publicitaires et URLs. Pour de plus amples informations, veuillez consulter [MediaTailor variables publicitaires dynamiques pour les demandes ADS](variables.md).

AWS Elemental MediaTailor utilise par proxy le lecteur `user-agent` et `x-forwarded-for` les en-têtes lorsqu'il envoie la requête VAST au serveur publicitaire et lorsqu'il passe les appels de suivi côté serveur. Assurez-vous que votre serveur de publicités puisse gérer ces en-têtes. Sinon, vous pouvez utiliser `[session.user_agent]` ou `[session.client_ip]` et transmettre ces valeurs dans les chaînes de requête sur la balise et l'URL de la publicité. Pour de plus amples informations, veuillez consulter [MediaTailor variables de session pour les requêtes ADS](variables-session.md).

### Appels publicitaires
<a name="ad-calls"></a>

AWS Elemental MediaTailor appelle l'URL de vos annonces VAST telle que définie dans votre configuration. Il remplace tous les paramètres spécifiques au joueur ou à la session lors de l'appel publicitaire. MediaTailor suit jusqu'à sept niveaux de wrappers VAST et de redirections dans la réponse VAST. Dans les scénarios de diffusion en direct, MediaTailor passe des appels publicitaires simultanément au début de la diffusion de la publicité pour les joueurs connectés. En pratique, pour des raisons d'instabilité, ces appels peuvent être répartis sur quelques secondes. Assurez-vous que votre serveur publicitaire peut gérer le nombre de connexions simultanées requises par ce type d'appel. MediaTailor prend en charge la prélecture des réponses VAST pour les flux de travail en direct. Pour de plus amples informations, veuillez consulter [Publicités de prélecture](prefetching-ads.md).

### Manipulation créative
<a name="creative-handling"></a>

Lorsqu'il AWS Elemental MediaTailor reçoit la réponse ADS VAST, il identifie pour chaque création le débit le plus élevé `MediaFile` pour le transcodage et l'utilise comme source. Il envoie ce fichier au on-the-fly transcodeur pour le transformer en rendus adaptés aux débits et résolutions des playlists multivariantes du lecteur. Pour de meilleurs résultats, assurez-vous que votre fichier multimédia au débit le plus élevé est un MP4 actif de haute qualité avec des préréglages de manifeste valides. Lorsque les préréglages du manifestes ne sont pas valides, les tâches de transcodage échouent et aucun résultat n'apparaît. Les exemples de préréglages non valides incluent les formats de fichiers d'entrée non pris en charge, tels que, et certaines spécifications de rendu ProRes, telles que la résolution 855 x 481. 

Pour obtenir la liste des formats pris en charge pour les entrées de fichiers multimédia, consultez la **MP4**ligne [Formats d'entrée pris](https://docs.aws.amazon.com/mediaconvert/latest/ug/reference-codecs-containers-input.html) en charge dans le *guide de AWS Elemental MediaConvert l'utilisateur*.

**Indexation créative**  
AWS Elemental MediaTailor indexe de manière unique chaque création en fonction de la valeur de l'`id`attribut fourni dans l'`<Creative>`élément. Si l'identifiant d'une création n'est pas spécifié, MediaTailor utilise l'URL du fichier multimédia pour l'index.

L'exemple de déclaration suivant affiche l'ID de la création.

```
<Creatives>
        <Creative id="57859154776" sequence="1">
```

Si vous définissez votre propre création IDs, utilisez un nouvel identifiant unique pour chaque création. Ne réutilisez pas vos créations IDs. AWS Elemental MediaTailor stocke le contenu créatif pour une utilisation répétée et trouve chacun grâce à son identifiant indexé. Lorsqu'une nouvelle création intervient, le service vérifie d'abord son ID par rapport à l'index. Si l'ID est présent, MediaTailor utilise le contenu stocké plutôt que de retraiter le contenu entrant. Si vous réutilisez un Creative ID, MediaTailor utilisez l'ancienne annonce enregistrée et ne diffusez pas votre nouvelle annonce. 

**Extensions VAST fournies par des partenaires de diffusion d'annonces**  
Pour éviter les collisions avec la création IDs, vous pouvez utiliser les extensions fournies par les partenaires de diffusion de publicités pour la réponse VAST. MediaTailor prend en charge les extensions de SpringServe, Publica et. FreeWheel Lorsque vous activez les remplacements d'extension VAST, MediaTailor remplace l'ID de création par défaut par la valeur de l'extension.

Pour activer cette fonctionnalité, [soumettez un ticket AWS Support](https://console.aws.amazon.com/support/home#/) pour demander l'activation de la création basée sur l'extension IDs VAST. Incluez les informations suivantes dans le ticket de Support :
+ AWS Région
+ AWS ID de compte
+ MediaTailor noms de configuration de lecture

Pour vérifier que les créations basées sur l'extension VAST IDs sont activées sur votre compte, nous vous recommandons également de demander l'activation de la `RAW_ADS_RESPONSE` journalisation sur une configuration de mise en scène ou de test de lecture. Grâce à la journalisation, vous pouvez consulter la réponse VAST originale reçue par l'ADS et confirmer que les bonnes créations IDs ont été utilisées. 

## Exigences relatives au VPAID
<a name="vpaid"></a>

VPAID permet aux éditeurs de servir des vidéos publicitaires hautement interactives et de fournir des métriques de visibilité sur leurs flux monétisés. Pour plus d'informations sur VPAID, consultez la spécification [VPAID](https://www.iab.com/guidelines/digital-video-player-ad-interface-definition-vpaid-2-0/).

AWS Elemental MediaTailor prend en charge un mélange de publicités MP4 linéaires server-side-stitched VAST et de créations interactives client-side-inserted VPAID dans le même espace publicitaire. Il préserve l'ordre dans lequel ils apparaissent dans la réponse VAST. MediaTailor suit les redirections VPAID via un maximum de sept niveaux de wrappers. La réponse du reporting côté client inclut les métadonnées VPAID non wrappées.

Pour utiliser VPAID, suivez ces instructions :
+ Configurez MP4 une liste pour vos créations VPAID. AWS Elemental MediaTailor remplit les espaces publicitaires VPAID avec votre liste configurée et fournit des métadonnées publicitaires VPAID que le joueur client peut utiliser pour diffuser les publicités interactives. Si vous n'avez pas de liste configurée, lorsqu'une publicité VPAID s'affiche, MediaTailor fournit les métadonnées publicitaires par le biais de rapports côté client comme à l'ordinaire. Il enregistre également une erreur CloudWatch concernant l'ardoise manquante. Pour plus d’informations, consultez [MediaTailor ardoise et insertion](slate-management.md) et [Création d'une configuration MediaTailor de lecture](configurations-create.md). 
+ Utilisez les rapports côté client. AWS Elemental MediaTailor prend en charge VPAID via notre API de reporting côté client. Pour de plus amples informations, veuillez consulter [Suivi des publicités côté client](ad-reporting-client-side.md). 

  En théorie, il est possible d'utiliser le reporting côté serveur par défaut avec VPAID. Cependant, si vous utilisez le reporting côté serveur, vous perdez toutes les informations sur la présence de la publicité VPAID et sur les métadonnées associées, car elles sont uniquement disponibles via l'API côté client. 
+ Dans les scénarios en direct, assurez-vous que la durée de validité de votre annonce, indiquée par`EXT-X-CUE-OUT: Duration`, est suffisamment longue pour tenir compte de l'interactivité des utilisateurs sur VPAID. Par exemple, si le code XML VAST spécifie une publicité VPAID d'une durée de 30 secondes, pensez à configurer la durée de votre publicité pour qu'elle dure plus de 30 secondes. Ce délai supplémentaire donne aux utilisateurs plus de chances d'interagir avec l'annonce. Si vous n'ajoutez pas de temps, vous risquez de perdre les métadonnées VPAID car la durée restante de diffusion de la publicité n'est pas suffisante pour accueillir la publicité VPAID.



# MediaTailor gestion de la configuration de lecture
<a name="working-with-configurations"></a>

Cette section décrit les principales tâches de gestion des configurations AWS Elemental MediaTailor de lecture. Vous pouvez apprendre à créer une nouvelle configuration pour configurer des flux de contenu et fournir un accès aux appareils de lecture, afficher les détails d'une configuration existante, modifier une configuration pour mettre à jour des paramètres tels que les serveurs d'origine et les serveurs de décision publicitaire, et supprimer une configuration qui n'est plus nécessaire.

**Topics**
+ [Création d'une configuration MediaTailor de lecture](configurations-create.md)
+ [Affichage des détails MediaTailor de configuration](configurations-view.md)
+ [Modification des paramètres MediaTailor de configuration](configurations-edit.md)
+ [Supprimer des MediaTailor configurations](configurations-delete.md)

# Création d'une configuration MediaTailor de lecture
<a name="configurations-create"></a>

Cette rubrique explique comment créer une configuration pour commencer à recevoir des flux de contenu AWS Elemental MediaTailor. Il montre également comment fournir un point d'accès aux périphériques de lecture en aval pour demander du contenu.

Vous pouvez utiliser la AWS Elemental MediaTailor console, le AWS Command Line Interface (AWS CLI) > ou l' MediaTailor API pour créer une configuration. Pour plus d'informations sur la création d'une configuration via l' MediaTailor API AWS CLI or, consultez la [https://docs.aws.amazon.com/mediatailor/latest/apireference/what-is.html](https://docs.aws.amazon.com/mediatailor/latest/apireference/what-is.html).

Lorsque vous créez une configuration, ne saisissez pas d'informations d'identification sensibles dans des champs de forme libre tels que le champ **Nom de la configuration**. Les informations d'identification peuvent inclure des éléments tels que les numéros de compte client. En outre, n'utilisez pas d'informations d'identification lorsque vous travaillez dans la MediaTailor console, l'API REST AWS CLI, le ou AWS SDKs. Toutes les données que vous saisissez MediaTailor peuvent être récupérées pour être incluses dans les journaux de diagnostic ou dans Amazon CloudWatch Events.

**Pour ajouter une configuration (console)**

1. Ouvrez la MediaTailor console à l'adresse [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1. Sur la page **Configurations**, choisissez **Create configuration (Créer une configuration)**. 

1. Renseignez les champs concernant la configuration, comme décrit dans les rubriques suivantes :
   +  [Réglages requis](#configurations-create-main) 
   +  [Paramètres de configuration facultatifs](#configurations-create-addl) 

1. Choisissez **Créer une configuration**. 

   AWS Elemental MediaTailor affiche la nouvelle configuration dans le tableau de la page **Configurations**.

1. (Recommandé) Configurez un CDN AWS Elemental MediaTailor pour les demandes de manifeste et de reporting. Vous pouvez utiliser la lecture de configuration URLs pour la configuration du CDN. Pour plus d'informations sur la configuration d'un réseau de diffusion de contenu (CDN) pour les demandes de manifeste et de reporting, consultez [Utilisation d'un CDN pour optimiser la personnalisation des MediaTailor publicités et la diffusion de contenu](integrating-cdn.md).

## Réglages requis
<a name="configurations-create-main"></a>

Lorsque vous créez une configuration, vous devez inclure les paramètres obligatoires suivants.

**Nom**  
Saisissez un nom unique qui décrit la configuration. Le nom est l'identifiant principal de la configuration. La longueur maximale autorisée est de 512 caractères.

**Source de contenu**  
 Saisissez le préfixe d'URL pour le manifeste de ce flux, sans l'ID d'asset. La longueur maximale est de 512 caractères.  
Par exemple, le préfixe d'URL `http://origin-server.com/a/` est valide pour une URL de playlist multivariante HLS `http://origin-server.com/a/main.m3u8` et pour une URL DASH MPD de. `http://origin-server.com/a/dash.mpd` Vous pouvez également saisir un préfixe plus court tel que `http://origin-server.com`, mais le `/a/` doit être inclus dans l'ID de ressource de la demande de contenu du lecteur.   
Si l'origine de votre contenu utilise HTTPS, son certificat doit provenir d'une autorité de certification reconnue. Il ne peut pas s'agir d'un certificat auto-signé. Si vous utilisez un certificat auto-signé, si vous AWS Elemental MediaTailor ne parvenez pas à vous connecter à l'origine du contenu et si vous ne pouvez pas envoyer de manifestes en réponse aux demandes des joueurs.

**Serveur de décision publicitaire**  
 Saisissez l'URL de votre serveur ADS. Il s'agit de l'URL avec les variables comme décrit dans [Étape 3 : Configuration de l'URL de demande ADS et des paramètres de requête](getting-started-ad-insertion.md#getting-started-configure-request) ou l'URL VAST statique que vous utilisez à des fins de test. La longueur maximale est de 25 000 caractères.  
Si votre ADS utilise HTTPS, son certificat doit provenir d'une autorité de certification reconnue. Il ne peut pas s'agir d'un certificat auto-signé. Il en va de même pour la publicité mezzanine URLs renvoyée par l'ADS. Si vous utilisez un certificat auto-signé, vous ne AWS Elemental MediaTailor pouvez pas récupérer et insérer des publicités dans les manifestes à partir de l'origine du contenu.

## Paramètres de configuration facultatifs
<a name="configurations-create-addl"></a>

Vous pouvez éventuellement configurer des **alias de configuration, des** **détails de personnalisation** et des **paramètres avancés** dans la MediaTailor console, l' MediaTailor API ou le AWS Command Line Interface ()AWS CLI.

### Alias de configuration
<a name="configurations-configuration-aliases"></a>

Les alias de configuration facultatifs suivants peuvent être configurés dans la MediaTailor console ou à l'aide de l' MediaTailorAPI.

**Variable de paramètre du joueur**  
Pour une configuration dynamique du domaine lors de l'initialisation de la session, ajoutez une ou plusieurs variables de paramètres de joueur.  
Pour plus d'informations sur l'utilisation des variables de paramètres du joueur pour configurer dynamiquement des domaines, consultez[MediaTailor variables de domaine pour plusieurs sources de contenu](variables-domains.md).

### Configuration du journal
<a name="configurations-log-configurations"></a>

Les paramètres de configuration du journal sont les suivants.

**Pourcentage activé**  
Définit le pourcentage de journaux de session de configuration de lecture qui sont MediaTailor écrits dans CloudWatch Logs. Par exemple, si votre configuration de lecture comporte 1 000 sessions et que vous définissez le pourcentage d'activation sur **60**, MediaTailor écrit 600 journaux de session dans CloudWatch Logs.  
 Lorsque vous activez cette option, un rôle lié à un service est MediaTailor automatiquement créé qui permet d'écrire et MediaTailor de gérer les journaux de session dans votre compte CloudWatch Logs. Pour de plus amples informations, veuillez consulter [Utilisation de rôles liés à un service pour MediaTailor](using-service-linked-roles.md). 

**Stratégies de journalisation**  
Indique la méthode utilisée pour collecter les journaux MediaTailor émis. Pour envoyer les journaux directement à CloudWatch Logs, choisissez`LEGACY_CLOUDWATCH`. Pour envoyer les CloudWatch journaux à Logs, qui les envoie ensuite à la destination de votre choix, choisissez`VENDED_LOGS`. Les destinations prises en charge sont un groupe de CloudWatch journaux Logs, un compartiment Amazon S3 et un flux Amazon Data Firehose.  
Une configuration supplémentaire est requise pour les journaux vendus. Pour la configuration, voir[Utilisation des journaux vendus](vended-logs.md).

**Événements d'inscription au journal des interactions ADS**  
Indique qui MediaTailor émettra `RAW_ADS_RESPONSE` des journaux pour les sessions initialisées avec cette configuration.   
L'événement du `RAW_ADS_RESPONSE` journal contient l'intégralité de la réponse VAST ou VMAP de l'ADS. En tant que tels, les journaux peuvent être volumineux et peuvent augmenter vos coûts de journalisation.

**Le journal des interactions ADS exclut les événements**  
Indique que les événements sélectionnés MediaTailor ne seront pas émis dans les journaux décrivant les interactions avec l'ADS.  
Pour une description des événements du journal ADS, voir[journaux ADS](ads-log-format.md).

**Événements d'exclusion du journal des interactions avec le service Manifest**  
Indique que les événements sélectionnés MediaTailor ne seront pas émis dans les journaux décrivant les interactions avec le service de manifeste.  
Pour une description des événements du journal du service manifeste, consultez[Journaux du manifeste](log-types.md).

### Conditionnement des publicités
<a name="configurations-ad-conditioning"></a>

Les informations suivantes indiquent les mesures à MediaTailor prendre pour conditionner les publicités avant de les intégrer dans un flux de contenu. 

**Conditionnement de fichiers multimédia en streaming**  
Détermine la logique MediaTailor à utiliser pour choisir les publicités à assembler.   
+ Lorsque **le conditionnement des fichiers multimédia en streaming** est défini sur **Transcode**, MediaTailor transcode les fichiers multimédia lors de leur `progressive` livraison et les assemble dans le manifeste. S'il n'y a pas assez de publicités `progressive` contenant des fichiers multimédia pour les diffuser, MediaTailor transcodez et utilisez ces fichiers pour les `streaming` diffuser.
+ Lorsque **le conditionnement des fichiers multimédia en streaming** est défini sur **Aucun**, MediaTailor les publicités contenant des fichiers multimédia de `streaming` diffusion sont insérées dans le manifeste sans les transcoder. S'il n'y a pas assez de publicités `streaming` contenant des fichiers multimédia pour les diffuser, MediaTailor transcodez et utilisez ces fichiers pour les `progressive` diffuser. 

### Détails de personnalisation
<a name="configurations-personalization-details"></a>

Vous trouverez ci-dessous les détails de personnalisation que vous pouvez configurer dans la MediaTailor console ou à l'aide de l' MediaTailor API.

**Slate ad (Liste de publicités)**  
Entrez l'URL d'une MP4 ressource de haute qualité MediaTailor utilisée pour combler le temps imparti aux annonces. La configuration de Slate est facultative pour la plupart des flux de travail, mais obligatoire pour les publicités VPAID. Pour des informations complètes sur le comportement de l'ardoise, les exigences de configuration et le moment où l'ardoise est affichée, consultez[MediaTailor ardoise et insertion](slate-management.md).

**Démarrez le pare-chocs**  
URL de l'emplacement de la ressource Start Bumper. Les bumpers sont de courts clips vidéo ou audio diffusés au début ou à la fin d'une pause publicitaire. Ils peuvent être stockés sur le S3 d'Amazon ou sur un autre service de stockage. Pour en savoir plus sur les pare-chocs, voir[MediaTailor pare-chocs et insertion](bumpers.md).

**Pare-chocs d'extrémité**  
URL de l'emplacement de la ressource End Bumper. Les bumpers sont de courts clips vidéo ou audio diffusés au début ou à la fin d'une pause publicitaire. Ils peuvent être stockés sur le S3 d'Amazon ou sur un autre service de stockage. Pour en savoir plus sur les pare-chocs, voir[MediaTailor pare-chocs et insertion](bumpers.md).

**Seuil de personnalisation**  
S'applique uniquement lorsqu'il est utilisé conjointement avec Slate Ad. Définit la durée maximale pendant laquelle une annonce n'est pas remplie (en secondes) pendant une pause publicitaire avant d' MediaTailor abandonner la personnalisation et d'afficher le contenu sous-jacent. Cette fonctionnalité s'applique au remplacement de publicités dans les flux en direct et en VOD, plutôt qu'à l'insertion de publicités, car elle repose sur un flux de contenu sous-jacent. Pour des scénarios de comportement détaillés et des informations complètes, voir[Comment fonctionne le seuil de personnalisation](slate-management.md#personalization-threshold-scenarios).

**Serveur ADS de preroll en direct**  
Pour insérer des publicités au début d'un flux en direct avant que le contenu principal soit lancé, saisissez l'URL du preroll à partir du serveur ADS. Il s'agit de l'URL avec les variables comme décrit dans [Étape 3 : Configuration de l'URL de demande ADS et des paramètres de requête](getting-started-ad-insertion.md#getting-started-configure-request) ou l'URL VAST statique que vous utilisez à des fins de test. La longueur maximale est de 25 000 caractères.  
Si votre ADS utilise HTTPS, son certificat doit provenir d'une autorité de certification reconnue. Il ne peut pas s'agir d'un certificat auto-signé. Il en va de même pour la publicité mezzanine URLs renvoyée par l'ADS. Si vous utilisez un certificat auto-signé, vous ne AWS Elemental MediaTailor pouvez pas récupérer et insérer des publicités dans les manifestes à partir de l'origine du contenu.
Pour plus d'informations sur le fonctionnement du pré-déploiement (preroll), consultez [MediaTailor pré-enroulement et insertion](ad-behavior-preroll.md).

**Durée maximale autorisée pour la diffusion de preroll**  
Lorsque vous insérez des publicités au début d'un flux en direct, entrez la durée maximale autorisée pour la diffusion de publicités preroll. MediaTailor ne dépassera pas cette durée lors de l'insertion de publicités. Si la réponse de l'ADS contient plus de publicités que ce qui convient à cette durée, elle MediaTailor remplit le fichier avec autant de publicités que possible, sans dépasser la durée. Pour plus de détails sur la façon dont MediaTailor les remplissages sont disponibles, consultez[Comportement d'assemblage des publicités en direct](ad-behavior.md#ad-behavior-live).

**Utiliser le mode de suppression**  
Définit le mode de suppression de la diffusion, également connu sous le nom de suppression des publicités. Par défaut, la suppression des publicités est désactivée et MediaTailor remplit tout le monde avec des publicités ou une ardoise. Lorsque le mode est défini sur`BEHIND_LIVE_EDGE`, la suppression des publicités est active et MediaTailor ne couvre pas les pauses publicitaires pendant ou après la durée de suppression indiquée dans la fenêtre de rétrospective du manifeste. Lorsque le mode est défini sur`AFTER_LIVE_EDGE`, la suppression des publicités est active. MediaTailorne remplit pas les pauses publicitaires pendant ou après la période de suppression des avantages, qui correspond à la limite en temps réel plus la valeur de suppression des avantages plus le temps de mise en mémoire tampon.

**Utiliser la valeur de suppression**  
La valeur de suppression d'utilisation est une durée de décalage des bords en temps réel en`HH:MM:SS`. MediaTailor ne remplira pas les pauses publicitaires pendant ou après cette fois dans la fenêtre de rétrospective du manifeste.

**Mode d'insertion**  
Le mode d'insertion permet de déterminer si les joueurs peuvent utiliser l'insertion de publicités cousues ou guidées. La valeur par défaut oblige toutes les sessions des joueurs à utiliser l'insertion de publicités cousues (côté serveur). `STITCHED_ONLY` Le réglage InsertionMode sur `PLAYER_SELECT` permet aux joueurs de sélectionner l'insertion de publicités cousues ou guidées au moment de l'initialisation de la session. La valeur par défaut pour les joueurs qui ne spécifient pas de mode d'insertion est Stitched.

### Réglages avancés
<a name="configurations-advanced-settings"></a>

Les paramètres facultatifs suivants sont avancés. Vous pouvez les configurer dans la MediaTailor console, avec le AWS Command Line Interface (AWS CLI) ou à l'aide de l' MediaTailor API.

**CDN content segment prefix (Préfixe du segment de contenu CDN)**  
Permet AWS Elemental MediaTailor de créer des manifestes avec URLs votre chemin CDN pour les segments de contenu. Avant d'effectuer cette étape, configurez une règle dans votre réseau de diffusion de contenu (CDN) pour extraire les segments à partir de votre serveur d'origine. Pour **Préfixe du segment du contenu CDN**, saisissez le chemin du préfixe CDN.  
Pour plus d'informations sur l'intégration MediaTailor à un CDN, consultez[Utilisation d'un CDN pour optimiser la personnalisation des MediaTailor publicités et la diffusion de contenu](integrating-cdn.md).

**CDN ad segment prefix (Préfixe du segment publicitaire CDN)**  
Permet AWS Elemental MediaTailor de créer des manifestes avec URLs votre propre chemin CDN pour les segments publicitaires. Par défaut, MediaTailor diffuse des segments publicitaires provenant d'une CloudFront distribution interne d'Amazon avec les paramètres de cache par défaut. Avant de pouvoir compléter le champ **CDN ad segment prefix (Préfixe du segment publicitaire du CDN)**, vous devez configurer une règle de votre CDN pour extraire les segments publicitaires de l'origine suivante, comme dans l'exemple suivant.  

```
https://segments.mediatailor.<region>.amazonaws.com
```
Dans **CDN ad segment prefix (Préfixe du segment publicitaire CDN)**, entrez le nom de votre préfixe CDN dans la configuration.  
Pour plus d'informations sur l'intégration MediaTailor à un CDN, consultez[Utilisation d'un CDN pour optimiser la personnalisation des MediaTailor publicités et la diffusion de contenu](integrating-cdn.md).

**DASH origin manifest type (Type du manifeste d'origine DASH)**  
Si votre serveur d'origine produit des manifestes DASH à période unique, ouvrez la liste déroulante et choisissez **SINGLE\$1PERIOD (PÉRIODE UNIQUE)**. Par défaut, MediaTailor gère les manifestes DASH comme des manifestes à plusieurs périodes. Pour de plus amples informations, veuillez consulter [Intégration d'une source MPEG-DASH](manifest-dash.md).

**DASH mpd location (Emplacement mdp DASH)**  
(Facultatif selon les besoins pour DASH) Emplacement de la description de la présentation multimédia (mpd). Choisissez **DISABLED** pour la situation suivante :  
+ Vous configurez les règles de routage du CDN pour accéder aux MediaTailor manifestes.
+ Vous utilisez les rapports côté client, ou votre joueur prend en charge les redirections HTTP persistantes.
Pour en savoir plus sur la fonction **Location**, consultez [Fonction de localisation DASH](dash-location-feature.md).

**Nom du profil de transcodage**  
Nom qui associe cette configuration à un profil de transcodage personnalisé. Ce nom remplace les valeurs de transcodage dynamique par défaut de. MediaTailor Remplissez ce champ uniquement si vous avez déjà configuré des profils personnalisés à l'aide d'AWS Support.

**Transfert de marqueurs publicitaires**  
Pour le HLS, active ou désactive le transfert des marqueurs publicitaires. Lorsque le transfert des marqueurs publicitaires est activé `EXT-X-CUE-IN``EXT-X-CUE-OUT`, MediaTailor passe et les marqueurs `EXT-X-SPLICEPOINT-SCTE35` publicitaires passent du manifeste d'origine au manifeste MediaTailor personnalisé. Aucune logique n'est appliquée aux valeurs des marqueurs publicitaires ; elles sont transmises du manifeste d'origine au manifeste personnalisé telles quelles. Par exemple, si `EXT-X-CUE-OUT` la valeur figure `60` dans le manifeste d'origine, mais qu'aucune annonce n'est publiée, la valeur ne MediaTailor sera pas remplacée par celle `0` figurant dans le manifeste personnalisé.

# Affichage des détails MediaTailor de configuration
<a name="configurations-view"></a>

Outre les valeurs fournies lors de la création de la configuration, AWS Elemental MediaTailor affiche le nom de la configuration, les points de terminaison de lecture et les accès URLs correspondants. Pour consulter une configuration, procédez comme suit.



 **Pour afficher une configuration** 

1. Ouvrez la MediaTailor console à l'adresse [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1. Sur la page **Configurations**, choisissez le **Nom de configuration** de la configuration à afficher.

# Modification des paramètres MediaTailor de configuration
<a name="configurations-edit"></a>

Vous pouvez modifier une configuration pour mettre à jour le mappage du serveur d'origine et du serveur de décision publicitaire (ADS), ou modifier le mode d' AWS Elemental MediaTailor interaction avec un réseau de distribution de contenu (CDN).



 **Pour modifier une configuration ** 

1. Ouvrez la MediaTailor console à l'adresse [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1. Sur la page **Configurations**, choisissez le nom de la configuration que vous souhaitez modifier.

1. Sur la page Détails de configuration, choisissez **Edit (Modifier)**, puis revoyez les paramètres de configuration en fonction des besoins. Vous ne pouvez pas modifier le nom de la configuration. Pour plus d'informations sur les attributs de configuration, consultez [Création d'une configuration MediaTailor de lecture](configurations-create.md).

1. Choisissez **Enregistrer**. 

# Supprimer des MediaTailor configurations
<a name="configurations-delete"></a>

Vous pouvez supprimer une configuration pour qu'elle ne puisse pas être lue avec AWS Elemental MediaTailor.



 **Pour supprimer une configuration** 

1. Ouvrez la MediaTailor console à l'adresse [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1. Sur la page **Configurations**, procédez comme suit :
   + Choisissez le nom de la configuration que vous souhaitez supprimer. 
   + Dans la colonne **Configuration name (Nom de configuration)**, choisissez l'option située en regard du nom, puis choisissez **Delete (Supprimer)**. 

1. Dans la zone de confirmation **Delete (Supprimer)**, entrez **Delete**, puis choisissez **Delete (Supprimer)**. 

# Intégration d'une source de contenu pour l'insertion d' MediaTailor annonces
<a name="integrating-origin"></a>

Cette rubrique traite de l'intégration de différents types de sources de contenu vidéo avec MediaTailor. MediaTailorprend en charge les protocoles de streaming HLS et DASH pour le contenu en direct et à la demande. Le service peut insérer ou remplacer des publicités pendant des pauses publicitaires spécifiques, et impose des exigences spécifiques en matière de structure et de formatage des manifestes vidéo d'entrée afin de permettre ces fonctionnalités. Les rubriques suivantes fournissent des informations détaillées sur les exigences relatives aux sources d'entrée et les étapes à suivre pour intégrer le contenu HLS et DASH afin MediaTailor de permettre des expériences publicitaires personnalisées.

**Topics**
+ [Exigences relatives à la source d'entrée pour l'insertion d' MediaTailor annonces](stream-reqmts.md)
+ [Intégration d'une source HLS](manifest-hls.md)
+ [Intégration d'une source MPEG-DASH](manifest-dash.md)
+ [Sécurisation des interactions AWS Elemental MediaTailor d'origine avec SigV4](origin-sigv4.md)

# Exigences relatives à la source d'entrée pour l'insertion d' MediaTailor annonces
<a name="stream-reqmts"></a>

Une source d'entrée doit répondre aux exigences suivantes pour fonctionner avec MediaTailor :
+ Utilisez Apple HLS (HTTP Live Streaming) ou MPEG DASH (Dynamic Adaptive Streaming over HTTP)
+ Utiliser le streaming en direct ou la vidéo à la demande (VOD)
+ Être accessible sur l'Internet public et avoir une adresse IP publique
+ Utilisez les ports HTTP standard (port 80) ou HTTPS (port 443). MediaTailor ne prend pas en charge les ports personnalisés pour les communications avec le serveur d'origine.
+ Contient des marqueurs publicitaires dans l'un des formats décrits dans le [didacticiel de prise en main de l'insertion d' MediaTailor annonces](getting-started-ad-insertion.md#getting-started-prep-stream) 

# Intégration d'une source HLS
<a name="manifest-hls"></a>

AWS Elemental MediaTailor prend en charge `.m3u8` les manifestes HLS avec une `EXT-X-VERSION` valeur `3` égale ou supérieure pour le streaming en direct et la vidéo à la demande (VOD). Lorsqu'il MediaTailor rencontre une interruption publicitaire, il tente d'insérer ou de remplacer une annonce, en fonction du type de contenu. S'il n'y a pas assez de publicités pour couvrir la durée, le flux de contenu sous-jacent ou la liste configurée MediaTailor s'affiche pendant le reste de la pause publicitaire. Pour plus d'informations sur le comportement des publicités HLS en fonction du type de contenu, consultez[Comprendre le comportement d'insertion des AWS Elemental MediaTailor publicités](ad-behavior.md).

Les sections suivantes fournissent plus d'informations sur le traitement des MediaTailor manifestes HLS.

**Topics**
+ [Marqueurs publicitaires compatibles avec le HLS](hls-ad-markers.md)
+ [Activation du transfert des marqueurs publicitaires](ad-marker-passthrough.md)
+ [Gestion des balises du manifeste HLS](manifest-hls-tags.md)
+ [Exemples de manifestes HLS](manifest-hls-example.md)

# Marqueurs publicitaires compatibles avec le HLS
<a name="hls-ad-markers"></a>

AWS Elemental MediaTailor identifie les limites de disponibilité publicitaire dans un manifeste HLS en analysant le manifeste d'entrée pour détecter les marqueurs publicitaires pris en charge. Les sections suivantes décrivent les marqueurs utilisés par MediaTailor .

## EXT-X-ASSET
<a name="hls-ad-markers-asset"></a>

La balise `EXT-X-ASSET` contient des métadonnées utilisées par le serveur ADS (ad decision server) afin de personnaliser le contenu pour le spectateur. Les paramètres `EXT-X-ASSET` sont des paires clé-valeur séparées par des virgules.

Pour utiliser cette balise, vous devez remplir les conditions suivantes :
+ Vous devez encoder en URL les `EXT-X-ASSET` *valeurs dans le manifeste* d'origine. L'exemple suivant présente la balise `EXT-X-ASSET` avec des clés et des valeurs encodées sous forme d’URL.

  ```
              #EXT-X-ASSET:GENRE=CV,CAID=12345678,EPISODE="Episode%20Name%20Date",SEASON="Season%20Name%20and%20Number",SERIES="Series%2520Name"
  ```
+ Vous devez inclure la `[asset.]` variable dynamique et les *clés* dans votre configuration MediaTailor ADS. L'exemple suivant montre une configuration MediaTailor ADS utilisant la `[asset.]` variable dynamique et les clés.

  ```
              https://myads.com/stub?c=[asset.GENRE]&g=[asset.CAID]&e=[asset.EPISODE]&s=[asset.SEASON]&k=[asset.SERIES]
  ```

**Exemple de demande VAST**  
L'exemple suivant présente une demande VAST `GET` à un serveur ADS.

```
            https://myads.com/stub?c=CV&g=12345678&e=Episode%20Name%20Date&s=Season%20Name%20and%20Number&k=Series%2520Name
```

## EXT-X-CUE-OUT et EXT-X-CUE-IN
<a name="hls-ad-markers-cue"></a>

Ce type de marqueur de publicité est le plus courant. Les exemples suivants illustrent des options pour ces marqueurs de file d'attente.

```
#EXT-X-CUE-OUT:DURATION=120
    ...
    #EXT-X-CUE-IN
```

```
#EXT-X-CUE-OUT:30.000
    ...
    #EXT-X-CUE-IN
```

```
#EXT-X-CUE-OUT
    ...
    #EXT-X-CUE-IN
```

## EXT-X-DATERANGE
<a name="hls-ad-markers-range"></a>

Avec les balises de marqueur publicitaire `EXT-X-DATERANGE`, vous utilisez les attributs `SCTE35-OUT` pour spécifier la durée de la diffusion de publicités. 

**Note**  
AWS Elemental MediaTailor ignore les `START-DATE` attributs fournis pour les marqueurs `EXT-X-DATERANGE` publicitaires. 

Vous pouvez spécifier la diffusion de publicités de l'une des manières suivantes :
+ Balise `EXT-X-DATERANGE` avec spécifications `SCTE35-OUT` et `DURATION`. 

  Exemple

  ```
  #EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2019-01T00:15:00Z\",DURATION=60.000,SCTE35-OUT=0xF
  ```
+ Les balises `EXT-X-DATERANGE` associées, la première avec une spécification `SCTE35-OUT` et la seconde avec une spécification `SCTE35-IN`. 

  Exemple

  ```
  #EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2019-01T00:15:00Z\",SCTE35-OUT=0xF
      ...
      #EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2019-01T00:15:00Z\",SCTE35-IN=0xF
  ```
+ Une combinaison des options précédentes. Vous spécifiez une balise `EXT-X-DATERANGE` avec les spécifications `SCTE35-OUT` et `DURATION` suivies d'une balise `EXT-X-DATERANGE` avec une spécification `SCTE35-IN`. Dans ce cas, MediaTailor utilise le paramètre d'entrée le plus ancien des deux spécifications.

  Exemple

  ```
  #EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2019-01T00:15:00Z\",DURATION=60.000,SCTE35-OUT=0xF
      ...
      #EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2019-01T00:15:00Z\",SCTE35-IN=0xF
  ```

## EXT-X SPLICEPOINT- SCTE35
<a name="hls-ad-markers-splice"></a>

Vous ajoutez à la première balise de marqueur de publicité `EXT-X-SPLICEPOINT-SCTE35` une charge utile SCTE-35 binaire encodée en base64. Le binaire décodé doit fournir un `splice_info_section` SCTE-35 contenant le marqueur sortant de file d'attente `0x34`, pour le début de l'opportunité de placement de fournisseur, et le marqueur entrant en file d'attente `0x35`, pour la fin de l'opportunité de placement de fournisseur. 

L'exemple suivant illustre la spécification de point de jointure avec des charges utiles binaires encodées en base64 qui spécifient des marqueurs sortants de file d'attente et entrants en file d'attente. 

```
    #EXT-X-SPLICEPOINT-SCTE35:/DA9AAAAAAAAAP/wBQb+uYbZqwAnAiVDVUVJAAAKqX//AAEjW4AMEU1EU05CMDAxMTMyMjE5M19ONAAAmXz5JA==
    ...
    #EXT-X-SPLICEPOINT-SCTE35:/DA4AAAAAAAAAP/wBQb+tTeaawAiAiBDVUVJAAAKqH+/DBFNRFNOQjAwMTEzMjIxOTJfTjUAAIiGK1s=
```

# Activation du transfert des marqueurs publicitaires
<a name="ad-marker-passthrough"></a>

Par défaut, pour le HLS, les manifestes MediaTailor personnalisés n'incluent pas les marqueurs publicitaires SCTE-35 présents dans les manifestes d'origine. Lorsque le transfert des marqueurs publicitaires est activé, il MediaTailor passe par les marqueurs publicitaires suivants depuis les manifestes d'origine vers des manifestes personnalisés :
+ EXT-X-CUE-IN
+ EXT-X-CUE-OUT
+ EXT-X SPLICEPOINT- SCTE35

 Le transfert des marqueurs publicitaires est un paramètre facultatif. Utilisez le relais de marqueurs publicitaires si vous souhaitez que les marqueurs publicitaires SCTE soient inclus dans le manifeste MediaTailor personnalisé. Les cas d'utilisation courants sont les suivants : 
+ Remplacement du contenu - Procédez au remplacement du contenu ou à la restriction du contenu.
+ Suivi des publicités : déclenchez les informations de suivi des publicités en fonction de la présence ou de l'absence d'un ou de plusieurs marqueurs publicitaires.
+ Paramètres du joueur : activez la fonctionnalité de nettoyage ou de compte à rebours dans l'interface utilisateur du joueur, en fonction de la présence ou de l'absence de marqueurs publicitaires.

**Note**  
MediaTailor ne modifie pas les valeurs de ces marqueurs. Par exemple, si `EXT-X-CUE-OUT` la valeur figure `60` dans le manifeste d'origine, mais qu'aucune annonce n'est publiée, la valeur ne MediaTailor sera pas remplacée par celle `0` figurant dans le manifeste personnalisé. 

## Activer le transfert des marqueurs publicitaires
<a name="enable-ad-marker-passthrough"></a>

Vous pouvez activer le transfert des marqueurs publicitaires à l'aide du AWS Management Console ou du AWS Command Line Interface (AWS CLI).

**Pour activer le transfert des marqueurs publicitaires à l'aide de la console**

1. Ouvrez la MediaTailor console à l'adresse [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1.  Sélectionnez **Nouvelle configuration** ou **Modifier la configuration**.

1. Dans la section **Paramètres avancés**, sélectionnez **Activer** dans le menu déroulant.

**Pour activer le transfert des marqueurs publicitaires à l'aide du AWS Command Line Interface ()AWS CLI**  
Utilisez la commande [put-playback-configuration](https://docs.aws.amazon.com/cli/latest/reference/mediatailor/put-playback-configuration.html).

# Gestion des balises du manifeste HLS
<a name="manifest-hls-tags"></a>

Cette section décrit comment AWS Elemental MediaTailor gérer les balises dans le manifeste de sortie personnalisé.

## EXT-X-CUE balises
<a name="manifest-hls-tags-cue"></a>

MediaTailor remplace `EXT-X-CUE-OUT``EXT-X-CUE-OUT-CONT`, et les `EXT-X-CUE-IN` balises du manifeste d'entrée par des `EXT-X-DISCONTINUITY` balises du manifeste de sortie. Les balises `DISCONTINUITY` marquent les limites suivantes :
+ Où le contenu principal passe à une publicité
+ Où une publicité passe à un autre publicité
+ Où une publicité repasse au contenu principal

## Balises EXT-X-DATERANGE
<a name="manifest-hls-tags-daterange"></a>

MediaTailor passe par les `EXT-X-DATERANGE` balises du manifeste d'entrée au manifeste de sortie. MediaTailor insère également des `EXT-X-DISCONTINUITY` balises qui correspondent aux `DATERANGE` balises. Les balises `DISCONTINUITY` marquent les limites suivantes :
+ Où le contenu principal passe à une publicité
+ Où une publicité passe à un autre publicité
+ Où une publicité repasse au contenu principal

## Balises EXT-X-KEY
<a name="manifest-hls-tags-key"></a>

MediaTailor passe par les `EXT-X-KEY` balises du manifeste d'entrée. Ces balises indiquent que le contenu principal est chiffré. Étant donné que les publicités ne sont pas chiffrées, MediaTailor insère `EXT-X-KEY:METHOD=NONE` au début d'une diffusion de publicités. Lorsque la lecture revient au contenu principal, MediaTailor réactive le chiffrement en insérant la `EXT-X-KEY` balise avec la `METHOD` valeur définie comme type de cryptage.

## Tags non reconnus
<a name="manifest-hls-tags-unknown"></a>

MediaTailor passe par toutes les balises inconnues et personnalisées du manifeste d'entrée au manifeste de sortie.

# Exemples de manifestes HLS
<a name="manifest-hls-example"></a>

Les sections suivantes fournissent des exemples de manifestes d'origine et de manifestes personnalisés HLS. La compréhension de ces exemples peut vous aider à configurer et à résoudre les problèmes liés à vos MediaTailor flux de travail.

Pour plus d'informations sur la façon dont les paramètres de requête sont appliqués aux manifestes et aux segments HLS, consultez[MediaTailor Initialisation de session HLS implicite](manifest-query-parameters-hls-implicit-session-initialization.md).

## Comprendre les types de playlist HLS
<a name="hls-playlist-overview"></a>

Le HTTP Live Streaming (HLS) utilise deux principaux types de playlists :

Liste de lecture multivariante  
Une liste de lecture multivariante est le fichier d'index de premier niveau qui répertorie tous les rendus disponibles du contenu. Il contient des références à des listes de lecture multimédia, mais ne contient aucun segment multimédia en lui-même. Cette playlist permet aux joueurs de sélectionner le rendu le plus approprié en fonction des conditions du réseau, des capacités de l'appareil ou des préférences de l'utilisateur.  
Ce type de playlist est également connu sous plusieurs autres noms dans divers contextes, notamment la playlist principale, le manifeste principal, la liste de lecture principale, la liste de lecture principale, le fichier d'index ou le master M3U8.  
Dans MediaTailor les flux de travail, la playlist multivariante est le point d'entrée pour les demandes de lecture et c'est là que commence la personnalisation des publicités.

Liste de lecture multimédia  
Une liste de lecture multimédia contient les informations relatives au segment multimédia correspondant à un rendu spécifique (niveau de qualité) du contenu. Il inclut les informations de chronométrage URLs, les segments et les autres métadonnées nécessaires à la lecture d'un rendu unique.  
Ce type de playlist est également connu sous le nom de playlist multimédia, child manifest, chunklist, media M3U8 ou playlist de rendu.  
Dans MediaTailor les flux de travail, les playlists multimédias sont personnalisées pour inclure à la fois des segments de contenu et des segments publicitaires dans le bon ordre.

Pour plus d'informations sur les types de playlist HLS, consultez[Types de listes de lecture HLS](hls-playlist-types.md).

## Exemples de manifestes d'origine HLS
<a name="manifest-hls-ex-origin"></a>

L'exemple suivant montre une liste de lecture multivariante HLS AWS Elemental MediaTailor reçue par HLS depuis l'origine du contenu.

```
#EXTM3U
    #EXT-X-VERSION:3
    #EXT-X-INDEPENDENT-SEGMENTS
    #EXT-X-STREAM-INF:BANDWIDTH=2665726,AVERAGE-BANDWIDTH=2526299,RESOLUTION=960x540,FRAME-RATE=29.970,CODECS="avc1.640029,mp4a.40.2",SUBTITLES="subtitles"
    index_1.m3u8
    #EXT-X-STREAM-INF:BANDWIDTH=3956044,AVERAGE-BANDWIDTH=3736264,RESOLUTION=1280x720,FRAME-RATE=29.970,CODECS="avc1.640029,mp4a.40.2",SUBTITLES="subtitles"
    index_2.m3u8
    #EXT-X-STREAM-INF:BANDWIDTH=995315,AVERAGE-BANDWIDTH=951107,RESOLUTION=640x360,FRAME-RATE=29.970,CODECS="avc1.4D401E,mp4a.40.2",SUBTITLES="subtitles"
    index_3.m3u8
    #EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subtitles",NAME="caption_1",DEFAULT=YES,AUTOSELECT=YES,FORCED=NO,LANGUAGE="eng",URI="index_4_0.m3u8"
```

Dans cet exemple de playlist multivariante :
+ Les `#EXT-X-STREAM-INF` balises définissent différents rendus avec des résolutions et des débits binaires variables
+ Chaque rendu fait référence à une playlist multimédia (telle que`index_1.m3u8`)
+ La `#EXT-X-MEDIA` balise définit une piste de sous-titre

L'exemple suivant montre une liste de lecture multimédia HLS AWS Elemental MediaTailor reçue par HLS depuis l'origine du contenu. Cet exemple utilise les balises `EXT-X-CUE-OUT` et `EXT-X-CUE-IN` pour décrire les opportunités de diffusion de publicités.

```
#EXTM3U
    #EXT-X-VERSION:3
    #EXT-X-TARGETDURATION:7
    #EXT-X-MEDIA-SEQUENCE:8779957
    #EXTINF:6.006,
    index_1_8779957.ts?m=1566416212
    #EXTINF:6.006,
    index_1_8779958.ts?m=1566416212
    #EXTINF:5.372,
    index_1_8779959.ts?m=1566416212
    #EXT-OATCLS-SCTE35:/DAlAAAAAsvhAP/wFAXwAAAGf+/+AdLfiP4AG3dAAAEBAQAAXytxmQ==
    #EXT-X-CUE-OUT:20.020
    #EXTINF:0.634,
    index_1_8779960.ts?m=1566416212
    #EXT-X-CUE-OUT-CONT:ElapsedTime=0.634,Duration=21,SCTE35=/DAlAAAAAsvhAP/wFAXwAAAGf+/+AdLfiP4AG3dAAAEBAQAAXytxmQ==
    #EXTINF:6.006,
    index_1_8779961.ts?m=1566416212
    #EXT-X-CUE-OUT-CONT:ElapsedTime=6.640,Duration=21,SCTE35=/DAlAAAAAsvhAP/wFAXwAAAGf+/+AdLfiP4AG3dAAAEBAQAAXytxmQ==
    #EXTINF:6.006,
    index_1_8779962.ts?m=1566416212
    #EXT-X-CUE-OUT-CONT:ElapsedTime=12.646,Duration=21,SCTE35=/DAlAAAAAsvhAP/wFAXwAAAGf+/+AdLfiP4AG3dAAAEBAQAAXytxmQ==
    #EXTINF:6.006,
    index_1_8779963.ts?m=1566416212
    #EXT-X-CUE-OUT-CONT:ElapsedTime=18.652,Duration=21,SCTE35=/DAlAAAAAsvhAP/wFAXwAAAGf+/+AdLfiP4AG3dAAAEBAQAAXytxmQ==
    #EXTINF:1.368,
    index_1_8779964.ts?m=1566416212
    #EXT-X-CUE-IN
    #EXTINF:4.638,
    index_1_8779965.ts?m=1566416212
    #EXTINF:6.006,
    index_1_8779966.ts?m=1566416212
    #EXTINF:6.006,
    index_1_8779967.ts?m=1566416212
    #EXTINF:6.006,
    index_1_8779968.ts?m=1566416212
```

Dans cet exemple de playlist multimédia :
+ Les `#EXTINF` balises indiquent la durée de chaque segment
+ Le `#EXT-X-CUE-OUT` tag marque le début d'une pause publicitaire
+ Les `#EXT-X-CUE-OUT-CONT` balises fournissent des informations sur la pause publicitaire en cours
+ Le `#EXT-X-CUE-IN` tag marque la fin du break publicitaire

## Exemples de manifestes personnalisés HLS
<a name="manifest-hls-ex-personalized"></a>

L'exemple suivant montre une liste de lecture multivariante HLS personnalisée. AWS Elemental MediaTailor 

```
#EXTM3U
    #EXT-X-VERSION:3
    #EXT-X-MEDIA:LANGUAGE="eng",AUTOSELECT=YES,FORCED=NO,TYPE=SUBTITLES,URI="../../../manifest/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/3.m3u8",GROUP-ID="subtitles",DEFAULT=YES,NAME="caption_1"
    #EXT-X-INDEPENDENT-SEGMENTS
    #EXT-X-STREAM-INF:CODECS="avc1.640029,mp4a.40.2",AVERAGE-BANDWIDTH=2526299,RESOLUTION=960x540,SUBTITLES="subtitles",FRAME-RATE=29.97,BANDWIDTH=2665726
    ../../../manifest/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/0.m3u8
    #EXT-X-STREAM-INF:CODECS="avc1.640029,mp4a.40.2",AVERAGE-BANDWIDTH=3736264,RESOLUTION=1280x720,SUBTITLES="subtitles",FRAME-RATE=29.97,BANDWIDTH=3956044
    ../../../manifest/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/1.m3u8
    #EXT-X-STREAM-INF:CODECS="avc1.4D401E,mp4a.40.2",AVERAGE-BANDWIDTH=951107,RESOLUTION=640x360,SUBTITLES="subtitles",FRAME-RATE=29.97,BANDWIDTH=995315
    ../../../manifest/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/2.m3u8
```

Remarquez comment MediaTailor a modifié la liste de lecture multimédia URLs pour inclure des informations spécifiques à la session qui permettent l'insertion d'annonces personnalisées.

L'exemple suivant montre une playlist multimédia AWS Elemental MediaTailor personnalisée.

```
#EXTM3U
    #EXT-X-VERSION:6
    #EXT-X-TARGETDURATION:7
    #EXT-X-MEDIA-SEQUENCE:8779957
    #EXT-X-DISCONTINUITY-SEQUENCE:0
    #EXTINF:6.006,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779957.ts?m=1566416212
    #EXTINF:6.006,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779958.ts?m=1566416212
    #EXTINF:5.372,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779959.ts?m=1566416212
    #EXT-X-DISCONTINUITY
    #EXTINF:3.066667,
    ../../../../segment/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/0/8779960
    #EXTINF:3.0,
    ../../../../segment/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/0/8779961
    #EXTINF:3.0,
    ../../../../segment/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/0/8779962
    #EXTINF:3.0,
    ../../../../segment/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/0/8779963
    #EXTINF:2.966667,
    ../../../../segment/43f3e412052f2808dd84ea1da90e92e914edddee/external-canary-hls/ee1696a8-4f7f-4c4c-99de-9821131847e8/0/8779964
    #EXT-X-DISCONTINUITY
    #EXTINF:6.006,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779963.ts?m=1566416212
    #EXTINF:1.368,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779964.ts?m=1566416212
    #EXTINF:4.638,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779965.ts?m=1566416212
    #EXTINF:6.006,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779966.ts?m=1566416212
    #EXTINF:6.006,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779967.ts?m=1566416212
    #EXTINF:6.006,
    https://777788889999.mediapackage.us-west-2.amazonaws.com/out/v1/e309ffd02ba8498d864dcaacff7a5ad9/index_1_8779968.ts?m=1566416212
```

Dans cet exemple de playlist multimédia personnalisée :
+ MediaTailor a inséré des segments publicitaires entre les segments de contenu
+ Les `#EXT-X-DISCONTINUITY` balises marquent les transitions entre le contenu et les publicités
+ Les segments de contenu sont diffusés depuis le serveur d'origine (MediaPackage dans cet exemple)
+ Les segments publicitaires sont diffusés à partir de MediaTailor l'espace de stockage des segments publicitaires

## Principales différences entre les manifestes personnalisés
<a name="manifest-hls-key-differences"></a>

Lors de la MediaTailor personnalisation des manifestes HLS, plusieurs modifications importantes sont apportées :

Modifications de listes de lecture multivariantes  
+ Les variantes de playlist URLs sont réécrites pour pointer vers MediaTailor -managed URLs qui incluent des informations de session
+ L'ordre des balises peut être réorganisé pour une lecture optimale

Variantes de modifications de playlist  
+ Les marqueurs publicitaires (`EXT-X-CUE-OUT`,`EXT-X-CUE-IN`) sont remplacés par de véritables segments publicitaires
+ Des marqueurs de discontinuité (`EXT-X-DISCONTINUITY`) sont ajoutés aux limites content/ad 
+  URLs Les segments de contenu sont réécrits pour pointer vers l'origine ou le CDN
+  URLs Les segments publicitaires sont ajoutés au stockage des segments publicitaires MediaTailor du point vers

La compréhension de ces modifications peut vous aider à résoudre les problèmes liés à vos MediaTailor flux de travail et à garantir une configuration correcte de votre CDN et de votre lecteur.

## Rubriques en relation
<a name="manifest-hls-related-topics"></a>

Pour plus d'informations sur les manifestes HLS MediaTailor, consultez les rubriques suivantes :
+ [Types de listes de lecture HLS](hls-playlist-types.md)- Explication détaillée des types de playlist HLS
+ [Utilisation d'un CDN pour optimiser la personnalisation des MediaTailor publicités et la diffusion de contenu](integrating-cdn.md)- Informations sur l'utilisation d'un CDN avec MediaTailor
+ [Comment fonctionne MediaTailor l'insertion d'annonces](what-is-flow.md)- Vue d'ensemble du fonctionnement de l'insertion d' MediaTailor annonces

# Intégration d'une source MPEG-DASH
<a name="manifest-dash"></a>

AWS Elemental MediaTailor prend en charge les manifestes `.mpd` en direct et vidéo à la demande (VOD) conformes aux directives du profil dynamique DASH. MediaTailor accepte les entrées de manifeste conformes au DASH sur plusieurs périodes et fournit des sorties de manifeste conformes au DASH sur plusieurs périodes. 

Les manifestes d'entrée doivent comporter les éléments suivants :
+ Des flux d'événement SCTE-35 avec des paramètres d'informations de jointure pour `splice insert `ou` time signal`. Les paramètres peuvent être fournis en XML clair ou en binaire encodé en base64. 
+ `Segment templates` avec `segment timelines`. 

Pour les manifestes publiés, MediaTailor exige que les mises à jour du serveur d'origine laissent les éléments suivants inchangés : 
+ Heures de début de période, spécifiées dans l'attribut `start`. 
+ Valeurs de `presentationTimeOffset` dans les modèles de segment des représentations de la période. 

Il est recommandé d'attribuer à l'annonce les mêmes avantages `AdaptationSet` et `Representation` paramètres que les périodes de diffusion du contenu. AWS Elemental MediaTailor utilise ces paramètres pour transcoder les publicités en fonction du flux de contenu, afin de passer facilement de l'un à l'autre.

Les sections suivantes fournissent plus d'informations sur le traitement des MediaTailor publicités dans les manifestes DASH.

**Topics**
+ [Marqueurs publicitaires DASH](dash-ad-markers.md)
+ [Durée de validité des annonces DASH](dash-ad-avail-duration.md)
+ [Numérotation des segments du manifeste DASH](dash-manifest-segment-numbering.md)
+ [Exemples de MPD DASH](manifest-dash-example.md)
+ [Fonction de localisation DASH](dash-location-feature.md)

# Marqueurs publicitaires DASH
<a name="dash-ad-markers"></a>

MediaTailor 

AWS Elemental MediaTailor utilise les marqueurs de découpe SCTE-35 pour identifier les avantages publicitaires dans le manifeste DASH selon la logique suivante : 
+ **DASH à plusieurs périodes** : MediaTailor insère des publicités pour le premier `Event` de chaque période `Period` contenant des marqueurs `SpliceInsert` ou des `TimeSignal` marqueurs. MediaTailorignore les `Event` marqueurs supplémentaires dans le. `Period`
+ **DASH à période unique** : MediaTailor insère des publicités `Event` dans chacune d'elles `Period` contenant des marqueurs `SpliceInsert` ou des marqueurs de `TimeSignal` découpe.

Par défaut, AWS Elemental MediaTailor gère les manifestes DASH sous forme de manifestes multipériodes. Vous pouvez modifier votre configuration afin de gérer des manifestes DASH à période unique à partir de votre serveur d'origine. Pour plus d'informations, consultez [Création d'une configuration MediaTailor de lecture](configurations-create.md).

Les sections suivantes fournissent des informations supplémentaires sur la gestion des marqueurs publicitaires DASH et fournissent des manifestes décorés dès l'origine.

## Exigences XML du manifeste d'origine DASH
<a name="dash-ad-markers-examples"></a>

Les marqueurs publicitaires présents dans les manifestes DASH dès l'origine doivent être correctement formatés afin MediaTailor d'identifier les pauses publicitaires. Les rubriques suivantes décrivent ces exigences de mise en forme en XML clair.

### `SpliceInsert`en XML clair
<a name="dash-splice-xml"></a>

`SpliceInsert`les marqueurs publicitaires au format XML clair doivent contenir les éléments suivants :
+ `EventStream`doit avoir l'attribut suivant : `schemeIdUri=urn:scte:scte35:2013:xml`
+ `Event`doit tenir `scte35:SpliceInfoSection` 
+ `scte35:SpliceInfoSection`doit tenir `scte35:SpliceInsert` 
+ `scte35:SpliceInsert`doit avoir l'attribut suivant : `outOfNetworkIndicator="true"`

**Example `SpliceInsert`en XML**  
Dans l'exemple suivant, les marqueurs SCTE requis sont en gras.   

```
<Period start="PT444806.040S" id="123586" duration="PT15.000S">
  <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
    <Event duration="1350000">
      <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="180832" tier="4095">
        <scte35:SpliceInsert spliceEventId="4026531855" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
            <scte35:Program><scte35:SpliceTime ptsTime="5672624400"/></scte35:Program>
            <scte35:BreakDuration autoReturn="true" duration="1350000"/>
        </scte35:SpliceInsert>
      </scte35:SpliceInfoSection>
    </Event>
  .
  .
  .
</Period>
```

### `TimeSignal`en XML clair
<a name="dash-signal-xml"></a>

`TimeSignal`les marqueurs publicitaires au format XML clair doivent contenir les éléments suivants :
+ `EventStream`doit avoir l'attribut suivant : `schemeIdUri=urn:scte:scte35:2013:xml`
+ `Event`doit tenir `scte35:SpliceInfoSection`
+ `scte35:SpliceInfoSection`doit tenir `scte35:TimeSignal`
+ `scte35:SpliceInfoSection`doit également contenir `scte35:SegmentationDescriptor`
+ `scte35:SegmentationDescriptor`doit avoir l'attribut suivant, dont la valeur est valide [Chiffres de découpe](#dash-signal-xml-values) : `segmentationTypeId="xx"`
+ `scte35:SegmentationDescriptor`doit tenir `scte35:SegmentationUpid` 
<a name="dash-signal-xml-values"></a>
**Chiffres de découpe**  
Les numéros de découpe suivants sont pris en charge pour le. `segmentationTypeId`


| Message de segmentation | Valeur segmentationTypeId | Valeur hexadécimale | 
| --- | --- | --- | 
| Fin de la publicité pour les distributeurs | 51 | 0x51 | 
| Début de la publicité pour les distributeurs | 50 | 0x32 | 
| Fin de l'opportunité de placement chez le distributeur | 55 | 0x37 | 
| Début de l'opportunité de placement chez les distributeurs | 54 | 0x36 | 
| Fin de pause | 35 | 0x23 | 
| Fin de la publicité du fournisseur | 49 | 0x31 | 
| Début de la publicité du fournisseur | 48 | 0 x 30 | 
| Fin de l'opportunité de placement par superposition de fournisseurs | 57 | 0x39 | 
| Début de l'opportunité de placement par superposition de fournisseurs | 56 | 0x38 | 
| Fin de l'opportunité de placement de prestataires | 53 | 0x35 | 
| Début de l'opportunité de placement de prestataires | 52 | 0x34 | 
| Pause de départ | 34 | 0x22 | 

**Example `TimeSignal`en XML**  
Dans l'exemple suivant, les marqueurs SCTE requis sont en gras.   

```
<Period start="PT346530.250S" id="178443" duration="PT61.561S">
  <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
    <Event duration="5310000">
      <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="183003" tier="4095">
        <scte35:TimeSignal>
          <scte35:SpliceTime ptsTime="3442857000"/>
         </scte35:TimeSignal>
        <scte35:SegmentationDescriptor segmentationEventId="1414668" segmentationEventCancelIndicator="false" segmentationDuration="8100000" segmentationTypeId="52" segmentNum="0" segmentsExpected="0">
            <scte35:DeliveryRestrictions webDeliveryAllowedFlag="false" noRegionalBlackoutFlag="false" archiveAllowedFlag="false" deviceRestrictions="3"/>
            <scte35:SegmentationUpid segmentationUpidType="12" segmentationUpidLength="2">0100</scte35:SegmentationUpid>
          </scte35:SegmentationDescriptor>
        </scte35:SpliceInfoSection>
    </Event>
  .
  .
  .
</Period>
```

## Exigences binaires codées en base64 pour le manifeste d'origine DASH
<a name="dash-base64"></a>

Les marqueurs publicitaires présents dans les manifestes DASH dès l'origine doivent être correctement formatés afin MediaTailor d'identifier les pauses publicitaires. Les rubriques suivantes décrivent ces exigences de formatage en binaire codé en base64.

Les marqueurs `SpliceInsert` publicitaires `TimeSignal` contenus dans les manifestes codés en base64 doivent tous deux contenir les éléments suivants :
+ `EventStream`doit avoir l'attribut suivant : `urn:scte:scte35:2014:xml+bin`
+ `Event`doit tenir `scte35:Signal`
+ `scte35:Signal`doit contenir un `scte35:Binary` fichier binaire codé en base64. 

Le binaire décodé doit `splice_info_section` fournir les mêmes informations que celles requises pour les marqueurs publicitaires XML clairs.
+ Le type de commande doit être `splice_insert()` soit `time_signal()`
+ Les paramètres supplémentaires doivent être conformes à ceux décrits dans [`TimeSignal`en XML clair](#dash-signal-xml) et[`SpliceInsert`en XML clair](#dash-splice-xml).

 Le binaire décodé doit fournir un `splice_info_section` avec le même ensemble d'informations que le XML clair fournirait dans un élément `scte35:SpliceInfoSection`. La commande doit être de type `splice_insert()` ou `time_signal()` et les paramètres supplémentaires doivent être conformes à ceux décrits précédemment pour une livraison en XML clair. 

L'exemple suivant illustre cette option, avec les marqueurs requis en gras.

```
<Period start="PT444806.040S" id="123586" duration="PT15.000S">
    <EventStream schemeIdUri="urn:scte:scte35:2014:xml+bin" timescale="1">
      <Event presentationTime="1541436240" duration="24" id="29">
        <scte35:Signal xmlns="http://www.scte.org/schemas/35/2016">
          <scte35:Binary>/DAhAAAAAAAAAP/wEAUAAAHAf+9/fgAg9YDAAAAAAAA25aoh</scte35:Binary>
        </scte35:Signal>
      </Event>
      <Event presentationTime="1541436360" duration="24" id="30">
        <scte35:Signal xmlns="http://www.scte.org/schemas/35/2016">
          <scte35:Binary>QW5vdGhlciB0ZXN0IHN0cmluZyBmb3IgZW5jb2RpbmcgdG8gQmFzZTY0IGVuY29kZWQgYmluYXJ5Lg==</scte35:Binary>
        </scte35:Signal>
      </Event>
  .
  .
  .
</Period>
```

Voici le binaire décodé pour le premier événement répertorié dans l'exemple précédent. Le paramètre pour `splice_command_type` est 5, ce qui indique `splice_insert`. 

```
{
        "table_id": 252,
        "section_syntax_indicator": false,
        "private_indicator": false,
        "section_length": 33,
        "protocol_version": 0,
        "encrypted_packet": false,
        "encryption_algorithm": 0,
        "pts_adjustment": 0,
        "cw_index": 0,
        "tier": "0xFFF",
        "splice_command_length": 16,
        "splice_command_type": 5,
        "splice_command": {
          "splice_event_id": 448,
          "splice_event_cancel_indicator": false,
          "out_of_network_indicator": true,
          "program_splice_flag": true,
          "duration_flag": true,
          "splice_immediate_flag": false,
          "utc_splice_time": {
            "time_specified_flag": false,
            "pts_time": null
          },
          "component_count": 0,
          "components": null,
          "break_duration": {
            "auto_return": false,
            "duration": {
              "pts_time": 2160000,
              "wall_clock_seconds": 24.0,
              "wall_clock_time": "00:00:24:00000"
            }
          },
          "unique_program_id": 49152,
          "avail_num": 0,
          "avails_expected": 0
        },
        "splice_descriptor_loop_length": 0,
        "splice_descriptors": null,
        "Scte35Exception": {
          "parse_status": "SCTE-35 cue parsing completed with 0 errors.",
          "error_messages": [],
          "table_id": 252,
          "splice_command_type": 5
        }
      }
```

# Durée de validité des annonces DASH
<a name="dash-ad-avail-duration"></a>

Pendant la diffusion, lorsqu' AWS Elemental MediaTailor une annonce est disponible, elle remplace une partie ou la totalité de cette disponibilité par des publicités. MediaTailor commence le remplacement des annonces dès le début de leur mise à disposition et inclut les annonces comme suit : 
+ Si la disponibilité de la publicité indique une durée, elle MediaTailor inclut autant d'annonces que possible à l'intérieur de la limite de durée, sans remplacer le contenu qui suit. 
+ Si aucune durée n'est indiquée, MediaTailor inclut les publicités jusqu'à la fin de leur période de disponibilité. Pour des manifestes à plusieurs périodes, il s'agit de la fin de la période. Pour les manifestes à période unique, c'est la fin de l'événement. MediaTailor ne diffuse pas de publicités après la fin de leur durée de disponibilité et, lorsqu'elle atteint la fin, tronque l'annonce en cours au lieu de remplacer le contenu qui suit. 

**À quoi AWS Elemental MediaTailor ressemble la durée de disponibilité des publicités**  
AWS Elemental MediaTailor recherche un paramètre de durée dans l'ordre suivant : 

1. `Event` `duration`

1. Pour l'insertion de jointure, le paramètre `scte35:BreakDuration` `duration`

1. Pour le signal temporel, le paramètre `scte35:SegmentationDescriptor` `segmentationDuration`

S'il AWS Elemental MediaTailor ne trouve aucun de ces paramètres, il gère l'inclusion des annonces sans durée. 

L'exemple suivant illustre un `Event` qui a une `duration`.

```
  <Period start="PT444806.040S" id="123586" duration="PT15.000S">
          <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
            <Event duration="1350000">
              <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="180832" tier="4095">
                <scte35:SpliceInsert spliceEventId="4026531855" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
                  <scte35:Program><scte35:SpliceTime ptsTime="5672624400"/></scte35:Program>
                  <scte35:BreakDuration autoReturn="true" duration="1350000"/>
                </scte35:SpliceInsert>
              </scte35:SpliceInfoSection>
            </Event>
              ...
```

L'exemple suivant illustre une diffusion de publicités sans durée spécifiée. L' `Event` n'a pas de `duration` et l'élément `scte35:SpliceInsert` ne contient pas d'élément enfant `scte35:BreakDuration`.

```
  <Period start="PT444836.720S" id="123597" duration="PT12.280S">
          <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
            <Event>
              <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="180832" tier="4095">
                <scte35:SpliceInsert spliceEventId="4026531856" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
                  <scte35:Program><scte35:SpliceTime ptsTime="5675385600"/></scte35:Program>
                </scte35:SpliceInsert>
              </scte35:SpliceInfoSection>
            </Event>
            ...
```

# Numérotation des segments du manifeste DASH
<a name="dash-manifest-segment-numbering"></a>

MediaTailor prend en charge les segments multimédias définis à `<SegmentTemplate>` l'aide de l'`media`attribut `<SegmentTimeline>` et. Vous pouvez spécifier la liste des segments multimédias dans l'attribut `media` à l'aide de l'identifiant `$Number$` ou `$Time$`.

 L'exemple suivant illustre un `SegmentTemplate` avec un paramètre d'attribut `media` qui utilise l'identifiant `$Number$`.

```
        <SegmentTemplate initialization="index_subtitles_4_0_init.mp4?m=1532451703" media="index_subtitles_4_0_$Number$.mp4?m=1532451703" presentationTimeOffset="1062336677920" startNumber="2349899" timescale="90000">
                <SegmentTimeline>
                  <S d="540540" r="2" t="1062338840080"/>
                  <S d="69069" t="1062340461700"/>
                </SegmentTimeline>
              </SegmentTemplate>
```

 L'exemple suivant illustre un `SegmentTemplate` avec un paramètre d'attribut `media` qui utilise l'identifiant `$Time$`.

```
        <SegmentTemplate initialization="asset_720p_8000K_9_init.mp4" media="asset_720p_8000K_9_$Time$.mp4" startNumber="1" timescale="90000">
                <SegmentTimeline>
                  <S d="180000" r="2" t="0"/>
                  <S d="147000" t="540000"/>
                </SegmentTimeline>
              </SegmentTemplate>
```

# Exemples de MPD DASH
<a name="manifest-dash-example"></a>

Les sections suivantes fournissent des exemples d'origine MPDs et de personnalisation de DASH MPDs. La compréhension de ces exemples peut vous aider à configurer et à résoudre les problèmes liés à vos MediaTailor flux de travail.

Pour plus d'informations sur la façon dont les paramètres de requête sont appliqués aux manifestes et aux segments DASH, consultez[MediaTailor Initialisation implicite de session DASH](manifest-query-parameters-dash-implicit-session-initialization.md).

## Comprendre la structure du DASH MPD
<a name="dash-mpd-overview"></a>

Le streaming adaptatif dynamique via HTTP (DASH) utilise un manifeste MPD (Media Presentation Description) pour diffuser du contenu en streaming. Le MPD est un document XML qui décrit la structure et la disponibilité du contenu multimédia.

MPD (description de la présentation aux médias)  
Le MPD est le principal fichier manifeste du streaming DASH qui décrit la structure et la disponibilité du contenu multimédia. Il contient des informations sur les périodes, les ensembles d'adaptation, les représentations et les segments qui constituent le contenu diffusé en continu.  
Ce type de manifeste est également connu sous plusieurs autres noms dans divers contextes, notamment le manifeste DASH, le DASH MPD, le manifeste principal (par rapport au HLS) ou le manifeste de présentation.  
Dans MediaTailor les flux de travail, le MPD est le point d'entrée pour les demandes de diffusion et c'est là que commence la personnalisation des publicités.

Period  
Une période est une section temporelle d'une présentation DASH. Chaque période contient un ou plusieurs ensembles d'adaptation et représente une période médiatique. Dans les flux de travail d'insertion d'annonces, des périodes distinctes sont généralement utilisées pour faire la distinction entre le contenu et les publicités.  
Dans MediaTailor les flux de travail, les périodes sont utilisées pour séparer le contenu principal du contenu publicitaire, chaque annonce étant généralement représentée par sa propre période.

AdaptationSet  
An AdaptationSet regroupe un ensemble de versions codées interchangeables d'un ou de plusieurs composants de contenu multimédia. Par exemple, l'un AdaptationSet peut contenir plusieurs niveaux de qualité vidéo, tandis qu'un autre peut contenir plusieurs options de langue audio.  
Dans les MediaTailor flux de travail, AdaptationSets ils sont préservés lors de l'insertion des publicités afin de garantir la cohérence des types de médias entre le contenu et les publicités.

Représentation  
Une représentation est une version codée spécifique du contenu multimédia dans un AdaptationSet. Chaque représentation diffère généralement en termes de débit, de résolution ou d'autres paramètres de codage, ce qui permet aux clients de sélectionner la version la plus appropriée en fonction des conditions du réseau et des capacités de l'appareil.  
Dans MediaTailor les flux de travail, les représentations dans les périodes publicitaires sont mises en correspondance aussi étroitement que possible avec les représentations dans les périodes de contenu afin de garantir une expérience de visionnage fluide.

Pour des informations plus détaillées sur les types de manifestes DASH, consultez[Types de manifestes DASH](dash-manifest-types.md).

Pour plus d'informations sur la structure et la configuration du manifeste DASH dans AWS Elemental MediaPackage, consultez la section du guide de MediaPackage l'utilisateur sur la présentation de DASH.

## Exemples de MPD DASH en direct
<a name="dash-manifest-live-examples"></a>

Cette section fournit des exemples de DASH en direct MPDs. Chaque exemple répertorie un MPD tel qu'il a été reçu du serveur d'origine et MediaTailor a ensuite personnalisé le MPD avec des publicités.

### Exemple d'insert d'épissure DASH MPD
<a name="dash-manifest-splice-insert-example"></a>

**Exemple de MPD DASH Origin pour un insert Splice**  
L'exemple suivant, tiré d'un MPD, montre une publicité publiée dans un manifeste reçu par DASH depuis l'origine du contenu. Cet exemple utilise le `SpliceInsert` marqueur pour indiquer la disponibilité d'une annonce.

```
<Period start="PT173402.036S" id="46041">
  <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
    <Event duration="9450000">
      <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="183265" tier="4095">
        <scte35:SpliceInsert spliceEventId="99" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
          <scte35:Program><scte35:SpliceTime ptsTime="7835775000"/></scte35:Program>
          <scte35:BreakDuration autoReturn="true" duration="9450000"/>
        </scte35:SpliceInsert>
        <scte35:SegmentationDescriptor segmentationEventId="99" segmentationEventCancelIndicator="false" segmentationDuration="9450000">
          <scte35:DeliveryRestrictions webDeliveryAllowedFlag="true" noRegionalBlackoutFlag="true" archiveAllowedFlag="true" deviceRestrictions="3"/>
          <scte35:SegmentationUpid segmentationUpidType="8" segmentationUpidLength="0"/>
          <scte35:SegmentationTypeID segmentationType="52"/>
          <scte35:SegmentNum segmentNum="1"/>
          <scte35:SegmentsExpected segmentsExpected="1"/>
        </scte35:SegmentationDescriptor>
      </scte35:SpliceInfoSection>
    </Event>
  </EventStream>
  <AdaptationSet mimeType="video/mp4" segmentAlignment="true" subsegmentAlignment="true" startWithSAP="1" subsegmentStartsWithSAP="1" bitstreamSwitching="true">
    <Representation id="1" width="960" height="540" frameRate="30000/1001" bandwidth="1000000" codecs="avc1.4D401F">
      <SegmentTemplate timescale="30000" media="index_video_1_0_$Number$.mp4?m=1528475245" initialization="index_video_1_0_init.mp4?m=1528475245" startNumber="178444" presentationTimeOffset="10395907501">
        <SegmentTimeline>
          <S t="10395907501" d="60060" r="29"/>
          <S t="10397709301" d="45045"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
  <AdaptationSet mimeType="audio/mp4" segmentAlignment="0" lang="eng">
    <Representation id="2" bandwidth="96964" audioSamplingRate="48000" codecs="mp4a.40.2">
      <SegmentTemplate timescale="48000" media="index_audio_2_0_$Number$.mp4?m=1528475245" initialization="index_audio_2_0_init.mp4?m=1528475245" startNumber="178444" presentationTimeOffset="16633452001">
        <SegmentTimeline>
          <S t="16633452289" d="96256" r="3"/>
          <S t="16633837313" d="95232"/>
          <S t="16633932545" d="96256" r="4"/>
          <S t="16634413825" d="95232"/>
          <S t="16634509057" d="96256" r="5"/>
          <S t="16635086593" d="95232"/>
          <S t="16635181825" d="96256" r="4"/>
          <S t="16635663105" d="95232"/>
          <S t="16635758337" d="96256" r="5"/>
          <S t="16636335873" d="71680"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
</Period>
```

Dans cet exemple de MPD d'origine :
+ L'`<EventStream>`élément contient des marqueurs SCTE-35 qui indiquent la disponibilité des publicités
+ L'`<scte35:SpliceInsert>`élément fournit des détails sur la disponibilité de la publicité
+ L'`<scte35:BreakDuration>`élément indique la durée de la pause publicitaire
+ Les `<AdaptationSet>` éléments définissent les flux vidéo et audio disponibles

**Exemple de MPD personnalisé DASH pour insert Splice**  
AWS Elemental MediaTailor personnalise les produits publicitaires avec des spécifications publicitaires. Les personnalisations reflètent les données de l'utilisateur qui sont reçues du lecteur et les campagnes de publicité actuellement en cours. 

L'exemple suivant montre une annonce disponible après l'avoir AWS Elemental MediaTailor personnalisée. 

```
<Period id="178443_1" start="PT96H15M30.25S">
  <BaseURL>http://111122223333.cloudfront.net/nbc_fallback_2/</BaseURL>
  <AdaptationSet bitstreamSwitching="false" frameRate="30/1" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
    <SegmentTemplate startNumber="1" timescale="90000"/>
    <Representation bandwidth="10000000" codecs="avc1.640028" height="1080" id="1" width="1920">
      <SegmentTemplate initialization="nbc_fallback_ad_2_1080p_10init.mp4" media="nbc_fallback_ad_2_1080p_10_$Number%09d$.mp4" startNumber="1" timescale="90000">
        <SegmentTimeline>
          <S d="180000" r="13" t="0"/>
          <S d="176940" t="2520000"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
    <Representation bandwidth="4000000" codecs="avc1.64001f" height="720" id="2" width="1280">
      <SegmentTemplate initialization="nbc_fallback_ad_2_720p_9init.mp4" media="nbc_fallback_ad_2_720p_9_$Number%09d$.mp4" startNumber="1" timescale="90000">
        <SegmentTimeline>
          <S d="180000" r="13" t="0"/>
          <S d="176940" t="2520000"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
  <AdaptationSet mimeType="audio/mp4" segmentAlignment="0" lang="eng">
    <Representation id="8" bandwidth="128000" audioSamplingRate="48000" codecs="mp4a.40.2">
      <SegmentTemplate initialization="nbc_fallback_ad_2_audio_2init.mp4" media="nbc_fallback_ad_2_audio_2_$Number%09d$.mp4" startNumber="1" timescale="90000">
        <SegmentTimeline>
          <S d="180000" r="13" t="0"/>
          <S d="176940" t="2520000"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
</Period>
```

Dans cet exemple de MPD personnalisé :
+ MediaTailor a créé une nouvelle période pour le contenu de l'annonce
+ L'`<BaseURL>`élément pointe vers l'emplacement du contenu publicitaire
+ Les `<AdaptationSet>` éléments conservent une structure similaire à celle du contenu
+ Les `<Representation>` éléments fournissent différents niveaux de qualité pour le contenu publicitaire

### Exemple de signal horaire DASH MPD
<a name="dash-manifest-time-signal-example"></a>

**Exemple de MPD d'origine DASH pour le signal horaire**  
L'exemple suivant, tiré d'un MPD, montre une publicité publiée dans un manifeste reçu par DASH depuis l'origine du contenu. Cet exemple utilise le `TimeSignal` marqueur pour indiquer la disponibilité d'une annonce.

```
<Period start="PT173402.036S" id="46041">
  <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
    <Event duration="9450000">
      <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="183265" tier="4095">
        <scte35:TimeSignal>
          <scte35:SpliceTime ptsTime="7835775000"/>
        </scte35:TimeSignal>
        <scte35:SegmentationDescriptor segmentationEventId="99" segmentationEventCancelIndicator="false" segmentationDuration="9450000">
          <scte35:DeliveryRestrictions webDeliveryAllowedFlag="true" noRegionalBlackoutFlag="true" archiveAllowedFlag="true" deviceRestrictions="3"/>
          <scte35:SegmentationUpid segmentationUpidType="8" segmentationUpidLength="0"/>
          <scte35:SegmentationTypeID segmentationType="52"/>
          <scte35:SegmentNum segmentNum="1"/>
          <scte35:SegmentsExpected segmentsExpected="1"/>
        </scte35:SegmentationDescriptor>
      </scte35:SpliceInfoSection>
    </Event>
  </EventStream>
  <AdaptationSet mimeType="video/mp4" segmentAlignment="true" subsegmentAlignment="true" startWithSAP="1" subsegmentStartsWithSAP="1" bitstreamSwitching="true">
    <Representation id="1" width="960" height="540" frameRate="30000/1001" bandwidth="1000000" codecs="avc1.4D401F">
      <SegmentTemplate timescale="30000" media="index_video_1_0_$Number$.mp4?m=1528475245" initialization="index_video_1_0_init.mp4?m=1528475245" startNumber="178444" presentationTimeOffset="10395907501">
        <SegmentTimeline>
          <S t="10395907501" d="60060" r="29"/>
          <S t="10397709301" d="45045"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
</Period>
```

Dans cet exemple de MPD d'origine :
+ L'`<scte35:TimeSignal>`élément est utilisé à la place de `<scte35:SpliceInsert>`
+ `<scte35:SegmentationDescriptor>`fournit des informations supplémentaires sur la disponibilité de la publicité

**Exemple de MPD personnalisé DASH pour le signal horaire**  
AWS Elemental MediaTailor personnalise les produits publicitaires avec des spécifications publicitaires. Les personnalisations reflètent les données de l'utilisateur qui sont reçues du lecteur et les campagnes de publicité actuellement en cours. 

L'exemple suivant montre une annonce disponible après l'avoir AWS Elemental MediaTailor personnalisée. 

```
<Period id="178443_1" start="PT96H15M30.25S">
  <BaseURL>http://111122223333.cloudfront.net/nbc_fallback_2/</BaseURL>
  <AdaptationSet bitstreamSwitching="false" frameRate="30/1" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
    <SegmentTemplate startNumber="1" timescale="90000"/>
    <Representation bandwidth="10000000" codecs="avc1.640028" height="1080" id="1" width="1920">
      <SegmentTemplate initialization="nbc_fallback_ad_2_1080p_10init.mp4" media="nbc_fallback_ad_2_1080p_10_$Number%09d$.mp4" startNumber="1" timescale="90000">
        <SegmentTimeline>
          <S d="180000" r="13" t="0"/>
          <S d="176940" t="2520000"/>
        </SegmentTimeline>
      </SegmentTemplate>
    </Representation>
  </AdaptationSet>
</Period>
```

Le MPD personnalisé pour le signal horaire est similaire à celui pour l'insert Splice, avec la MediaTailor création d'une nouvelle période pour le contenu publicitaire.

## Exemples de MPD VOD DASH
<a name="dash-manifest-vod-examples"></a>

Cette section fournit des exemples de vidéo à la demande (VOD) DASH MPDs. Chaque exemple répertorie un MPD tel qu'il a été reçu du serveur d'origine et MediaTailor a ensuite personnalisé le MPD avec des publicités.

Les VOD DASH MPDs suivent la même structure que les vidéos en direct MPDs, mais elles ont généralement un `type="static"` attribut dans l'élément MPD et peuvent contenir plusieurs périodes pour différents segments de contenu.

Pour des exemples de VOD DASH MPDs, consultez la MediaTailor documentation sur[Marqueurs publicitaires DASH](dash-ad-markers.md).

## Principales différences en matière de personnalisation MPDs
<a name="dash-manifest-key-differences"></a>

Lors de la MediaTailor personnalisation de DASH MPDs, il apporte plusieurs modifications importantes :

Gestion des périodes  
+ De nouvelles périodes sont créées pour le contenu publicitaire
+ Les heures de début des périodes sont ajustées pour maintenir la continuité de la chronologie
+ EventStream les éléments dotés de marqueurs SCTE-35 sont traités et retirés

AdaptationSet et gestion des représentations  
+ AdaptationSets dans l'annonce, des périodes sont créées pour correspondre au contenu AdaptationSets
+ Des représentations sont créées pour différents niveaux de qualité du contenu publicitaire
+ SegmentTemplate les éléments sont mis à jour pour pointer vers le contenu de l'annonce

La compréhension de ces modifications peut vous aider à résoudre les problèmes liés à vos MediaTailor flux de travail et à garantir une configuration correcte de votre CDN et de votre lecteur.

## Rubriques en relation
<a name="dash-manifest-related-topics"></a>

Pour plus d'informations sur DASH MPDs MediaTailor, consultez les rubriques suivantes :
+ [Types de manifestes DASH](dash-manifest-types.md)- Explication détaillée des types de manifestes DASH
+ [Utilisation d'un CDN pour optimiser la personnalisation des MediaTailor publicités et la diffusion de contenu](integrating-cdn.md)- Informations sur l'utilisation d'un CDN avec MediaTailor
+ [Comment fonctionne MediaTailor l'insertion d'annonces](what-is-flow.md)- Vue d'ensemble du fonctionnement de l'insertion d' MediaTailor annonces
+ Pour des informations complètes sur la structure et la MediaPackage configuration du manifeste DASH, consultez la section du guide de MediaPackage l'utilisateur sur la présentation de DASH.

# Fonction de localisation DASH
<a name="dash-location-feature"></a>

Cette section fournit des informations sur la fonctionnalité d'emplacement pour DASH, qui est activée par défaut dans AWS Elemental MediaTailor. Lisez cette section si vous créez des règles de routage du réseau de diffusion de contenu (CDN) pour accéder aux MediaTailor manifestes. Lisez aussi cette section si vous utilisez le reporting côté serveur avec des lecteurs qui ne prennent pas en charge les redirections HTTP permanentes.

**Qu'est-ce que la fonctionnalité d'emplacement ?**  
La fonctionnalité d'emplacement permet aux lecteurs qui ne prennent pas en charge les redirections HTTP permanentes de fournir un comportement permanent dans leurs demandes de mise à jour du manifeste. 

AWS Elemental MediaTailor utilise une initialisation sans session et nécessite un comportement de redirection HTTP persistant de la part de ses joueurs. Avec les rapports côté serveur, lorsque le joueur demande une mise à jour du manifeste MediaTailor, le service émet une redirection temporaire 302, afin de diriger le joueur vers un point de terminaison pour le manifeste personnalisé. MediaTailor inclut un identifiant de session dans la réponse, en tant que paramètre de requête. L'intention est pour le lecteur de suivre l'URL pendant l'intégralité de la session, mais les lecteurs ne prenant pas en charge les redirections HTTP permanentes abandonnent la redirection et reviennent à l'URL d'origine. Lorsqu'un joueur revient à l'URL d'origine, chaque nouvelle demande MediaTailor crée une nouvelle session au lieu de s'en tenir à la session d'origine. Cela peut entraîner une corruption du manifeste. 

La spécification DASH fournit une solution à ce problème grâce à la fonction de localisation, qui est activée par défaut dans les AWS Elemental MediaTailor configurations. Lorsque cette fonctionnalité est activée, MediaTailor place l'URL absolue dans la `<Location>` balise du manifeste. Les lecteurs qui ne prennent pas en charge les redirections HTTP permanentes peuvent utiliser l'URL fournie dans `<Location>` pour demander les mises à jour au manifeste. 

**Est-ce que j'ai besoin de désactiver la fonctionnalité d'emplacement de ma configuration ?**  
La fonctionnalité d'emplacement remplace les règles de routage CDN que vous configurez pour accéder aux manifestes de AWS Elemental MediaTailor . Par conséquent, vous pouvez avoir besoin de la désactiver. La fonctionnalité d'emplacement n'a pas d'incidence sur la mise en cache CDN du contenu ou des segments de publicité. 

Recherchez votre situation dans la liste suivante pour déterminer si vous avez besoin de désactiver la fonctionnalité d'emplacement dans votre configuration et comment la traiter :
+ Si vous n'avez pas de règles d'acheminement de CDN pour accéder aux manifestes de AWS Elemental MediaTailor , laissez le paramètre d'emplacement activé. 
+ Sinon, utilisez les règles suivantes :
  + Si vous n'utilisez pas le reporting côté serveur ou que vos lecteurs prennent tous en charge les redirections HTTP permanentes, désactivez la fonctionnalité d'emplacement. Pour plus d'informations sur la façon de procéder sur la console, consultez [Création d'une configuration MediaTailor de lecture](configurations-create.md).
  + Dans le cas contraire, contactez [AWS Support](https://aws.amazon.com/premiumsupport/).

**Dois-je utiliser la fonctionnalité d'emplacement ?**  
Vous devez utiliser la fonction de localisation pour les joueurs qui ne supportent pas les redirections HTTP persistantes. Utilisez l'URL fournie dans la balise `<Location>` pour toutes les demandes de mise à jour de votre manifeste. 

**Exemple**  
Exemple URLs et exemple de `<Location>` balise.
+   
**Example Exemple d'URL de demande initiale**  

  ```
  https://777788889999.mediatailor.us-east-1.amazonaws.com/v1/dash/5ca4c1892b1f213a1247fad47b3e34c454a7d490/testLocationTag/index.mpd
  ```
+   
**Example Exemple de réponse 302 redirigée**  

  ```
  /v1/dash/5ca4c1892b1f213a1247fad47b3e34c454a7d490/testLocationTag/index.mpd?aws.sessionId=0e5d9b45-ae97-49eb-901b-893d043e0aa6
  ```
+   
**Example Exemple de balise d'emplacement dans un manifeste**  

  ```
  <Location>https://777788889999.mediatailor.us-east-1.amazonaws.com/v1/dash/5ca4c1892b1f213a1247fad47b3e34c454a7d490/testLocationTag/index.mpd?aws.sessionId=0e5d9b45-ae97-49eb-901b-893d043e0aa6</Location>
  ```

# Sécurisation des interactions AWS Elemental MediaTailor d'origine avec SigV4
<a name="origin-sigv4"></a>

Signature Version 4 (SigV4) est un protocole de signature utilisé pour authentifier les MediaTailor demandes aux origines prises en charge via HTTPS. MediaTailor prend uniquement en charge la communication HTTPS et n'autorise pas les connexions HTTP. Avec la signature Sigv4, MediaTailor inclut un en-tête d'autorisation signé dans la demande d'origine HTTPS adressée à MediaTailor Channel Assembly, à Amazon S3 et à AWS Elemental MediaPackage la version 2. 

Vous pouvez utiliser SigV4 à l'origine pour vous assurer que les demandes de manifeste ne sont satisfaites que si elles proviennent d'un en-tête d'autorisation signé MediaTailor et contiennent un en-tête d'autorisation signé. Ainsi, les configurations de MediaTailor lecture non autorisées ne peuvent pas accéder à votre contenu d'origine. Si l'en-tête d'autorisation signé est valide, votre origine répond à la demande. Si elle n'est pas valide, la demande échoue.

Les sections suivantes décrivent les exigences relatives à l'utilisation de la signature MediaTailor Sigv4 pour les origines prises en charge.

## MediaTailor Exigences relatives à l'assemblage des canaux
<a name="origin-sigv4-ca"></a>

Si vous utilisez SigV4 pour protéger l'origine de votre MediaTailor Channel Assembly, les conditions suivantes doivent être remplies MediaTailor pour accéder au manifeste :
+ L'URL de base d'origine de votre MediaTailor configuration doit être un canal d'assemblage de canaux au format suivant : `channel-assembly.mediatailor.region.amazonaws.com`
+ Votre origine doit être configurée pour utiliser le protocole HTTPS. MediaTailor prend uniquement en charge la communication HTTPS et n'autorise pas les connexions HTTP. Si le protocole HTTPS n'est pas activé à l'origine, MediaTailor je ne signerai pas la demande.
+ Votre chaîne doit disposer d'une politique d'accès à l'origine incluant les éléments suivants :
  + Accès principal pour MediaTailor accéder à votre chaîne. Accordez l'accès à **mediatailor.amazonaws.com**.
  + Autorisations IAM **mediatailor : GetManifest ** pour lire toutes les playlists multivariantes référencées par la configuration. MediaTailor 

  Pour plus d'informations sur la définition d'une politique sur la chaîne, consultez[Création d'une chaîne à l'aide de la MediaTailor console](channel-assembly-creating-channels.md).

**Example politique d'accès à l'origine pour Channel Assembly, limitée au compte de MediaTailor configuration**  

```
{
    "Effect": "Allow",
    "Principal": {"Service": "mediatailor.amazonaws.com"},
    "Action": "mediatailor:GetManifest",
    "Resource": "arn:aws:mediatailor:us-west-2:777788889999:channel/ca-origin-channel",
    "Condition": {
        "StringEquals": {"AWS:SourceAccount": "777788889999"}
    }
}
```

**Example politique d'accès à l'origine pour l'assemblage des canaux, adaptée à la configuration de MediaTailor lecture**  

```
{
    "Effect": "Allow",
    "Principal": {"Service": "mediatailor.amazonaws.com"},
    "Action": "mediatailor:GetManifest",
    "Resource": "arn:aws:mediatailor:us-west-2:777788889999:channel/ca-origin-channel",
    "Condition": {
        "StringEquals": {"AWS:SourceArn": "arn:aws:mediatailor:us-west-2:777788889999:playbackConfiguration/test"}
    }
}
```

## Exigences relatives à Amazon S3
<a name="origin-sigv4-s3"></a>

Si vous utilisez Sigv4 pour protéger votre origine Amazon S3, les conditions suivantes doivent être remplies MediaTailor pour accéder au manifeste :
+ L'URL de base d'origine MediaTailor de votre configuration doit être un compartiment S3 au format suivant : `s3.region.amazonaws.com`
+ Votre origine doit être configurée pour utiliser le protocole HTTPS. MediaTailor prend uniquement en charge la communication HTTPS et n'autorise pas les connexions HTTP. Si le protocole HTTPS n'est pas activé à l'origine, MediaTailor je ne signerai pas la demande.
+ Votre chaîne doit disposer d'une politique d'accès à l'origine incluant les éléments suivants :
  + Accès principal pour MediaTailor accéder à votre bucket. Accordez l'accès à **mediatailor.amazonaws.com**. 

    Pour plus d'informations sur la configuration de l'accès dans IAM, consultez la section [Gestion des accès](https://docs.aws.amazon.com/) dans le *guide de l'utilisateur d'AWS Identity and Access Management*. 
  + Autorisations IAM **s3 : GetObject ** pour lire tous les manifestes de haut niveau référencés par la MediaTailor configuration.

 Pour obtenir des informations générales sur SigV4 pour Amazon S3, consultez la rubrique [Authentication Requests (AWS Signature Version 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html) dans le guide de référence des *API Amazon S3*. 

**Example politique d'accès à l'origine pour Amazon S3, limitée au compte MediaTailor**  

```
{
    "Effect": "Allow",
    "Principal": {"Service": "mediatailor.amazonaws.com"},
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::mybucket/*",
    "Condition": {
        "StringEquals": {"AWS:SourceAccount": "111122223333"}
    }
}
```

**Example politique d'accès à l'origine pour Amazon S3, limitée à la configuration de MediaTailor lecture**  

```
{
    "Effect": "Allow",
    "Principal": {"Service": "mediatailor.amazonaws.com"},
    "Action": "s3:GetObject",
    "Resource": "arn:aws:s3:::mybucket/*",
    "Condition": {
        "StringEquals": {"AWS:SourceArn": "arn:aws:mediatailor:us-west-2:111122223333:playbackConfiguration/test”}
    }
}
```

## MediaPackage exigences
<a name="origin-sigv4-mp"></a>

Si vous utilisez SigV4 pour protéger votre origine MediaPackage v2, les conditions suivantes doivent être remplies MediaTailor pour accéder au manifeste :
+ L'URL de base d'origine de votre MediaTailor configuration doit être un point de terminaison MediaPackage v2 au format suivant : `mediapackagev2.region.amazonaws.com`
+ Votre origine doit être configurée pour utiliser le protocole HTTPS. MediaTailor prend uniquement en charge la communication HTTPS et n'autorise pas les connexions HTTP. Si le protocole HTTPS n'est pas activé à l'origine, MediaTailor je ne signerai pas la demande.
+ Votre chaîne doit disposer d'une politique d'accès à l'origine incluant les éléments suivants :
  + Accès principal pour MediaTailor accéder à votre terminal. Accordez l'accès à **mediatailor.amazonaws.com**. 
  + Autorisations IAM **mediapackagev2 : GetObject ** pour lire toutes les playlists multivariantes référencées par la configuration. MediaTailor 

 Pour obtenir des informations générales sur SigV4 pour MediaPackage v2, consultez la rubrique [Authentification des demandes (AWS Signature Version 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html) dans le guide de référence de l'*API MediaPackage v2*.

**Example politique d'accès à l'origine MediaPackage pour la version 2, limitée au compte MediaTailor**  

```
{
    "Effect": "Allow",
    "Principal": {"Service": "mediatailor.amazonaws.com"},
    "Action": "mediapackagev2:GetObject",
    "Resource": "arn:aws:mediapackagev2:us-west-2:444455556666:channelGroup/emp-origin-channel-group/channel/emp-origin-channel/originEndpoint/emp-origin-endpoint",
    "Condition": {
        "StringEquals": {"AWS:SourceAccount": "444455556666"}
    }
}
```

**Example politique d'accès à l'origine pour MediaPackage la version 2, limitée à la configuration de MediaTailor lecture**  

```
{
    "Effect": "Allow",
    "Principal": {"Service": "mediatailor.amazonaws.com"},
    "Action": "mediapackagev2:GetObject",
    "Resource": "arn:aws:mediapackagev2:us-west-2:444455556666:channelGroup/emp-origin-channel-group/channel/emp-origin-channel/originEndpoint/emp-origin-endpoint",
    "Condition": {
        "StringEquals": {"AWS:SourceArn": "arn:aws:mediatailor:us-west-2:444455556666:playbackConfiguration/test”"}
    }
}
```

# Intégration AWS Elemental MediaTailor à Google Ad Manager
<a name="gam-integration"></a>

 MediaTailor Intégrez [Google Ad Manager](https://admanager.google.com/home/) (Ad Manager) pour un accès programmatique à une place de marché en ligne axée sur les enchères où les impressions publicitaires peuvent être achetées et vendues en temps réel. Vous devez avoir configuré un compte avec Ad Manager, puis vous pouvez intégrer Ad Manager de la manière suivante :
+ Une intégration côté serveur à l'aide d'un certificat SSL. 
+ Intégration du lecteur côté client à l'aide du SDK PAL (Programmatic Access Libraries). Cette intégration est requise si vous souhaitez utiliser le type de transaction d'enchère ouverte.

La prise en charge par Ad Manager des types de transactions programmatiques varie en fonction du type d'intégration que vous utilisez. Pour obtenir la liste des options disponibles, consultez la section [Types de transactions](https://support.google.com/admanager/answer/2805834?hl=en) ou contactez l'équipe chargée de votre compte Google. 

Les sections suivantes décrivent ces intégrations en détail.

**Topics**
+ [Intégration côté serveur](gam-integration-ssl.md)
+ [Intégration côté client](gam-integration-pal.md)

# AWS Elemental MediaTailor Intégration côté serveur avec Google Ad Manager
<a name="gam-integration-ssl"></a>

Les demandes publicitaires adressées côté serveur à Google Ad Manager (Ad Manager) doivent inclure le certificat SSL émis par le gestionnaire d'annonces MediaTailor pour autoriser les transactions programmatiques. 

**Pour envoyer des demandes publicitaires côté serveur à Ad Manager**

1. [Soumettez un ticket AWS Support](https://console.aws.amazon.com/support/home#/) pour demander l'activation des certificats SSL. Incluez les informations suivantes dans le ticket de Support :
   + AWS Région
   + AWS ID de compte
   + MediaTailor nom de configuration de lecture

   Si vous n'activez pas les certificats SSL, Ad Manager répond aux demandes MediaTailor publicitaires avec des codes d'erreur HTTP 401 dans le type d'événement du journal des interactions `ERROR_ADS_INVALID_RESPONSE` ADS.

1. Une fois les certificats SSL activés, mettez à jour l'URL et les paramètres de votre ADS et prélancez ADS dans la configuration de lecture. Pour mettre à jour ou créer une configuration de lecture, voir[MediaTailor gestion de la configuration de lecture](working-with-configurations.md).

   Pour obtenir des conseils officiels sur les paramètres d'URL de demande d'annonce VAST pour Ad Manager, consultez le guide de [mise en œuvre côté serveur](https://support.google.com/admanager/answer/10668760) d'Ad Manager. La mise à jour inclut les modifications suivantes :
   + Modifiez l'URL de base de `pubads.g.doubleclick.net` à`serverside.doubleclick.net`.
   + Ajoutez le paramètre `ssss=mediatailor`. Cela indique qu'il s' MediaTailor agit de la source d'assemblage côté serveur.
   + Supprimez le `IP` paramètre. MediaTailor transmet automatiquement l'adresse IP de l'utilisateur final à l'aide de l'`X-Forwarded-For`en-tête.
   + Supprimez le `ss_req=1` paramètre.

   Pour obtenir des conseils complets et actualisés sur les URL VAST, consultez le [guide d'implémentation côté serveur](https://support.google.com/admanager/answer/10668760) ou contactez l'équipe chargée de votre compte Google. 

# AWS Elemental MediaTailor Intégration côté client avec Google Ad Manager
<a name="gam-integration-pal"></a>

Une intégration MediaTailor côté client est requise pour utiliser les bibliothèques d'accès programmatique (PAL) de Google Ad Manager. SDKs Cette intégration est requise si vous souhaitez utiliser le type de transaction d'enchère ouverte d'Ad Manager. 

Le PAL SDKs fournit des informations sur le contenu, l'appareil et les données utilisateur d'une session de lecture. Grâce au SDK PAL, vous pouvez fournir ces informations à Google Ad Manager, qui pourra ensuite mieux déterminer les publicités ciblées à diffuser. SDKssont disponibles pour Android HTML5, iOS et Cast. Pour plus d'informations sur l'utilisation du PAL SDKs, consultez le [SDK PAL de Google Ad Manager](https://developers.google.com/ad-manager/pal). 

**Pour créer une intégration côté client avec Ad Manager**

1. Utilisez le SDK PAL pour générer un nonce. 

   Le nonce est une chaîne cryptée générée par PAL pour les demandes de flux. Chaque demande doit comporter un nonce unique. Pour plus d'informations sur la configuration d'un nonce, choisissez votre SDK dans le SDK [PAL de Google Ad Manager](https://developers.google.com/ad-manager/pal).

1. Utilisez le `givn` paramètre de votre demande ADS pour transmettre la valeur nonce. Pour ce faire, mettez à jour votre URL ADS pour inclure`&givn=[player_params.givn]`. Pour obtenir des instructions, veuillez consulter [Activation du suivi côté client](ad-reporting-client-side.md#ad-reporting-client-side-enabling).

**Lecteur Datazoom SDKs**  
MediaTailor s'est associé à Datazoom pour fournir un lecteur gratuit afin SDKs de faciliter les intégrations avec SDKs celles proposées dans l'Ad Manager PAL. Pour plus d'informations sur le Datazoom et le MediaTailor partenariat, consultez. [Lecteur gratuit Datazoom SDKs](ad-reporting-client-side-ad-tracking-integrations.md#ad-reporting-client-side-ad-tracking-integrations-dz)

Pour accéder au lecteur Datazoom SDKs, utilisez les informations de contact sur le site [Datazoom](https://www.datazoom.io/partner-aws) with. AWS

# Personnalisation du comportement des interruptions de publicité grâce à la suppression des interruptions de publicité
<a name="ad-rules"></a>

Lorsque vous créez une configuration dans AWS Elemental MediaTailor, vous pouvez spécifier des paramètres de configuration facultatifs qui régissent le comportement des pauses publicitaires, notamment la possibilité de configurer la suppression des pauses publicitaires. Cela vous permet d'adapter les expériences publicitaires à votre contenu vidéo en fonction de vos besoins spécifiques.

**Restrictions de compatibilité**  
Vous ne pouvez pas utiliser la suppression des interruptions de publicité dans les cas suivants :
+  VOD et live-to-VOD flux de travail. Seuls les flux de travail en direct sont pris en charge.
+ Méthodes d'insertion de publicités guidées par le serveur (SGAI). Les méthodes guidées par le serveur gèrent la prise de décision publicitaire différemment et ne nécessitent pas de configuration de suppression.

**Topics**
+ [Configuration de la suppression des interruptions publicitaires](#ad-suppression)

## Configuration de la suppression des interruptions publicitaires
<a name="ad-suppression"></a>

Vous pouvez configurer MediaTailor pour ignorer la personnalisation des pauses publicitaires pour le contenu en direct. C'est ce que l'on appelle *la suppression des interruptions publicitaires* ou la *suppression des avantages*. Cette rubrique explique comment procéder et explique également comment fonctionne la configuration de la suppression des interruptions de publicité.

La suppression des interruptions publicitaires peut être utilisée dans les cas d'utilisation suivants :
+ **Grande fenêtre de recherche de manifeste** : si un utilisateur démarre la lecture à la limite d'un manifeste mais que la fenêtre de consultation est grande, vous ne pouvez insérer des publicités qu'une fois que l'utilisateur a commencé la lecture. Vous pouvez également insérer des publicités dans une partie de la fenêtre du manifeste. Vous pouvez configurer la suppression des publicités de manière MediaTailor à personnaliser les interruptions publicitaires pendant ou pendant une période spécifiée après le Live Edge.
+ **Démarrage de la lecture pendant une coupure publicitaire** : si l'utilisateur commence à regarder un flux vidéo en direct pendant une coupure publicitaire, cet utilisateur risque de changer de chaîne et de ne pas regarder la publicité. Grâce à la suppression des publicités, vous pouvez ignorer la personnalisation des interruptions publicitaires si celles-ci ont commencé avant que le spectateur n'ait rejoint le stream.

### Configuration de la suppression des publicités
<a name="working-with-ad-suppression"></a>

Pour utiliser la suppression des publicités, vous devez configurer un **mode de suppression des avantages**, une **valeur de suppression des avantages** et une **politique de remplissage de la suppression des avantages** de la manière suivante : 
+ Dans la MediaTailor console
+ En utilisant le AWS Command Line Interface (AWS CLI)
+ À l'aide de l' MediaTailor API ou en tant que paramètres dans la demande de session de lecture de votre client

Pour plus d'informations sur la configuration avec des paramètres, consultez[Configuration des paramètres de la suppression des publicités — demande de session de lecture](#configuring-ad-suppression-parameters-playback-session-request).

#### Paramètres de configuration de suppression des publicités
<a name="ad-suppression-configuration-parameters"></a>

Vous pouvez choisir d'activer ou de désactiver la suppression des publicités. Si vous activez la suppression des publicités, vous indiquez si cette suppression a lieu après le bord de diffusion en direct ou avant le bord de diffusion en direct d'une diffusion en direct. Dans les deux cas, vous spécifiez également une heure, par rapport au Live Edge, pendant laquelle les publicités MediaTailor ne sont pas personnalisées. Lorsque vous activez la suppression de disponibilité, vous pouvez définir une politique de suppression de disponibilité qui s'applique aux remplissages partiels MediaTailor des interruptions de publicité lorsqu'une session démarre en milieu de pause.

Les paramètres de configuration de la suppression de publicités sont les suivants :
+ **Mode de suppression des annonces** : définit le mode de suppression des publicités. Par défaut, la suppression des publicités est désactivée. **Valeurs acceptées** : `OFF``BEHIND_LIVE_EDGE`, ou`AFTER_LIVE_EDGE`.
  + `OFF`: il n'y a pas de suppression des publicités et permet de MediaTailor personnaliser tous les breaks publicitaires.
  + `BEHIND_LIVE_EDGE`: MediaTailor ne personnalise pas les pauses publicitaires qui commencent avant le Live Edge, sans la **valeur de suppression d'Avail**. Cela affecte l'ensemble de la pause publicitaire, et pas seulement les utilisations individuelles des annonces.
  + `AFTER_LIVE_EDGE`: MediaTailor ne personnalise pas les pauses publicitaires situées dans le Live Edge, plus la **valeur de suppression d'Avail**. Cela peut être configuré pour affecter l'intégralité des pauses publicitaires ou pour permettre le remplissage partiel des disponibilités publicitaires.
+ **Valeur de suppression des annonces** : durée par rapport à la limite d'un flux en direct. **Valeur acceptée** : durée en `HH:MM:SS`.
+ **Politique de remplissage de la suppression d'Avail** : définit la politique qui MediaTailor s'applique au mode de **suppression d'Avail**. **Valeurs acceptées** : `PARTIAL_AVAIL`, `FULL_AVAIL_ONLY`.
  + `BEHIND_LIVE_EDGE`le mode utilise toujours la politique de `FULL_AVAIL_ONLY` suppression. 
  + `AFTER_LIVE_EDGE`le mode peut être utilisé pour invoquer le remplissage des pauses `PARTIAL_AVAIL` publicitaires lorsqu'une session commence en milieu de pause.

#### Exemples de paramètres de suppression des publicités
<a name="ad-suppression-settings-examples"></a>

La manière dont les [paramètres de configuration de suppression des publicités interagissent les](#ad-suppression-configuration-parameters) uns avec les autres vous permet de définir différentes manières de gérer la suppression des publicités et d'utiliser le remplissage avant, pendant ou après la fin de la diffusion en direct de la diffusion en direct. Cette section fournit des exemples illustrant certaines de ces interactions. Utilisez ces exemples pour vous aider à configurer les paramètres de configuration adaptés à votre situation particulière.

Voici des exemples de paramètres de suppression des publicités :

**Example 1 : pas de suppression de publicités**  
Lorsque le **mode de suppression Avail est activé**`OFF`, il n'y a pas de suppression des publicités et permet de MediaTailor personnaliser tous les breaks publicitaires.  
Dans la figure suivante, différents blocs sont disposés horizontalement le long d'une chronologie qui progresse de gauche à droite. Chaque bloc représente une partie du temps pendant laquelle le contenu de la diffusion en direct ou d'une pause publicitaire personnalisée est diffusé. Une ligne en pointillés représente le bord en direct actuel de la diffusion en direct. Deux pauses publicitaires ont lieu avant le Live Edge, et un autre break publicitaire est en cours pendant le Live Edge. Comme le montre la figure, lorsque le mode de suppression des avantages est activé`OFF`, il MediaTailor personnalise toutes les interruptions de publicité qui se produisent avant la limite en direct sur la chronologie. MediaTailor personnalise également la pause publicitaire en cours sur le Live Edge.  

![\[MediaTailor personnalisation des interruptions publicitaires avec le mode de suppression des avantages défini sur. OFF\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/images/no_ad_suppression.png)


**Example 2 : suppression des `BEHIND_LIVE_EDGE` publicités avec une valeur synchronisée avec Live Edge**  
Lorsque le **mode de suppression des avantages** est défini sur `BEHIND_LIVE_EDGE` et que la **valeur de suppression des avantages** est définie sur`00:00:00`, la valeur de suppression des avantages est synchronisée avec le Live Edge. MediaTailor ne personnalise pas les pauses publicitaires qui commencent pendant ou avant le Live Edge.  
Dans la figure suivante, différents blocs sont disposés horizontalement le long d'une chronologie qui progresse de gauche à droite. Chaque bloc représente une partie du temps pendant laquelle le contenu de la diffusion en direct, d'une pause publicitaire personnalisée ou d'une pause publicitaire non personnalisée est diffusé. Une ligne en pointillés représente le bord en direct actuel de la diffusion en direct. Une autre ligne en pointillés, représentant la valeur de suppression d'utilisation définie sur`00:00:00`, chevauche la ligne pointillée du bord actif. Deux interruptions de publicité ont lieu avant le Live Edge, et un autre break de publicité se produit après le Live Edge. Comme le montre la figure, lorsque le mode de suppression des avantages est défini sur et que la valeur de suppression des avantages est définie de `00:00:00` manière à ce qu'il soit synchronisé avec le Live Edge, aucune pause publicitaire MediaTailor ne se produit avant le Live Edge sur la chronologie. `BEHIND_LIVE_EDGE` MediaTailor personnalise la pause publicitaire qui se produit *après* le Live Edge.  

![\[MediaTailor personnalisation des interruptions publicitaires avec le mode de suppression des avantages défini sur BEHIND_LIVE_EDGE et la valeur de suppression des avantages définie sur. 00:00:00\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/images/ad_supp_value_sync_live_edge.png)


**Example 3 : suppression des `BEHIND_LIVE_EDGE` publicités avec valeur ajoutée à Live Edge**  
Lorsque le **mode de suppression des avantages** est défini sur`BEHIND_LIVE_EDGE`, MediaTailor il ne personnalise aucune pause publicitaire à cette date ou avant cette date. Dans cet exemple, MediaTailor personnalise les pauses publicitaires qui commencent jusqu'à 45 minutes après le Live Edge. MediaTailor *ne personnalise pas* les pauses publicitaires qui commencent à plus de 45 minutes après le Live Edge.  
Dans la figure suivante, différents blocs sont disposés horizontalement le long d'une chronologie qui progresse de gauche à droite. Chaque bloc représente une partie du temps pendant laquelle le contenu de la diffusion en direct, d'une pause publicitaire personnalisée ou d'une pause publicitaire non personnalisée est diffusé. Une ligne en pointillés représente le bord en direct actuel de la diffusion en direct. Une autre ligne en pointillés, représentant la valeur de suppression d'utilisation définie sur`00:45:00`, apparaît 45 minutes plus tôt dans la chronologie par rapport à la ligne pointillée du Live Edge. La période de 45 minutes entre les lignes pointillées représente la période de suppression des avantages. Une pause publicitaire est en cours au début de la période de suppression des avantages. Deux autres interruptions publicitaires se produisent pendant la période de suppression des avantages. Comme le montre la figure, lorsque le mode de suppression des avantages est défini sur et que la valeur de suppression des avantages est définie sur « `00:45:00` Derrière le Live Edge », les interruptions de publicité survenant pendant la période de suppression des fonctionnalités sont MediaTailor personnalisées. `BEHIND_LIVE_EDGE` MediaTailor *ne personnalise pas* la pause publicitaire en cours au début de la période de suppression des avantages.  

![\[MediaTailor personnalisation des interruptions publicitaires avec le mode de suppression des avantages défini sur BEHIND_LIVE_EDGE et la valeur de suppression des avantages définie sur. 00:45:00\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/images/ad_supp_value_offset_live_edge.png)


**Example 4 : suppression des `AFTER_LIVE_EDGE` publicités sans interruption pendant la période de suppression des avantages**  
Lorsque le **mode de suppression des avantages** est défini sur `AFTER_LIVE_EDGE` et que la **valeur de suppression des avantages** est supérieure à zéro, aucune pause publicitaire MediaTailor n'est personnalisée tant que le temps écoulé de la session n'a pas atteint cette valeur.  
Dans la figure suivante, différents blocs sont disposés horizontalement le long d'une chronologie qui progresse de gauche à droite. Chaque bloc représente une partie du temps pendant laquelle le contenu de la diffusion en direct ou d'une pause publicitaire personnalisée est diffusé. Une ligne en pointillés représente le bord en direct actuel de la diffusion en direct. Une autre ligne en pointillés, représentant la valeur de suppression d'utilisation définie sur`00:30:00`, apparaît 30 minutes plus tard dans la chronologie par rapport à la ligne pointillée correspondant à la limite active. Une troisième ligne en pointillés, représentant l'initialisation de la session, apparaît plus tôt dans la chronologie par rapport à la ligne pointillée correspondant au Live Edge. La période de 30 minutes entre l'heure de pointe et l'heure représente la avail-suppression-value période de suppression des avantages. Une interruption publicitaire se produit après la période de suppression des avantages. Comme le montre la figure, lorsque le mode de suppression des avantages est défini sur`AFTER_LIVE_EDGE`, la valeur de suppression des avantages est définie sur `00:30:00` après le Live Edge, et l'initialisation de la session a lieu avant le Live Edge, MediaTailor personnalise les interruptions de publicité survenant *après* la période de suppression des avantages.  

![\[MediaTailor personnalisation des interruptions publicitaires avec le mode de suppression des avantages défini surAFTER_LIVE_EDGE, la valeur de suppression des avantages définie sur et l'initialisation de 00:30:00 la session ayant lieu avant le Live Edge.\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/images/ad_supp_after_no_ad_break.png)


**Example 5 : suppression des `AFTER_LIVE_EDGE` publicités avec politique de `PARTIAL_AVAIL` remplissage et interruption des publicités en cours à la fin de la période de suppression des publicités**  
Lorsque le **mode de suppression des avantages** est défini sur `AFTER_LIVE_EDGE` et que la **valeur de suppression des avantages** est supérieure à zéro, aucune pause publicitaire MediaTailor n'est personnalisée tant que le temps écoulé de la session n'a pas atteint cette valeur.  
Dans la figure suivante, différents blocs sont disposés horizontalement le long d'une chronologie qui progresse de gauche à droite. Chaque bloc représente une partie du temps pendant laquelle le contenu de la diffusion en direct, d'une pause publicitaire personnalisée ou d'une pause publicitaire non personnalisée est diffusé. Une ligne en pointillés représente le bord en direct actuel de la diffusion en direct. Une autre ligne en pointillés, représentant la valeur de suppression d'utilisation définie sur`00:30:00`, apparaît 30 minutes plus tard dans la chronologie par rapport à la ligne pointillée correspondant à la limite active. Une troisième ligne en pointillés, représentant l'initialisation de la session, apparaît plus tôt dans la chronologie par rapport à la ligne pointillée correspondant au Live Edge. La période de 30 minutes entre l'heure de pointe et l'heure représente la avail-suppression-value période de suppression des avantages. Une pause publicitaire est en cours à la fin de la période de suppression des avantages. Comme le montre la figure, lorsque le mode de suppression des avantages est défini sur`AFTER_LIVE_EDGE`, la valeur de suppression des avantages est définie sur `00:30:00` après le Live Edge, la politique de remplissage de la suppression des avantages est définie sur`PARTIAL_AVAIL`, et l'initialisation de la session a lieu avant le Live Edge, MediaTailor personnalise les interruptions publicitaires survenant *après* la période de suppression des avantages. Pour la pause publicitaire en cours à la fin de la période de suppression des avantages, MediaTailor personnalise la partie de cette interruption publicitaire qui se produit *après* la période de suppression des avantages, mais ne personnalise pas la partie de cette interruption publicitaire qui se produit *pendant* la période de suppression des avantages.  

![\[MediaTailor personnalisation des interruptions publicitaires avec le mode de suppression des avantages défini surAFTER_LIVE_EDGE, la valeur de suppression des avantages définie sur00:30:00, la politique de remplissage définie surPARTIAL_AVAIL, l'initialisation de la session ayant lieu avant le Live Edge et une pause publicitaire en cours à la fin de la période de suppression des avantages.\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/images/ad_supp_after_ending_ad_break.png)


**Example 6 : suppression des `AFTER_LIVE_EDGE` publicités avec politique de `PARTIAL_AVAIL` remplissage et interruption des publicités en cours entre la date d'initialisation de la session et la fin de la période de suppression des publicités**  
Lorsque le **mode de suppression des avantages** est défini sur `AFTER_LIVE_EDGE` et que la **valeur de suppression des avantages** est supérieure à zéro, aucune pause publicitaire MediaTailor n'est personnalisée tant que le temps écoulé de la session n'a pas atteint cette valeur.  
Dans la figure suivante, différents blocs sont disposés horizontalement le long d'une chronologie qui progresse de gauche à droite. Chaque bloc représente une partie du temps pendant laquelle le contenu de la diffusion en direct, d'une pause publicitaire personnalisée ou d'une pause publicitaire non personnalisée est diffusé. Une ligne en pointillés représente le bord en direct actuel de la diffusion en direct. Une autre ligne en pointillés, représentant la valeur de suppression d'utilisation définie sur`00:30:00`, apparaît 30 minutes plus tard dans la chronologie par rapport à la ligne pointillée correspondant à la limite active. Une troisième ligne en pointillés, représentant l'initialisation de la session, apparaît plus tôt dans la chronologie par rapport à la ligne pointillée correspondant au Live Edge. La période de 30 minutes entre l'heure de pointe et l'heure représente la avail-suppression-value période de suppression des avantages. Une pause publicitaire est en cours entre une période antérieure à l'initialisation de la session et une période postérieure à la période de suppression des avantages. Comme le montre la figure, lorsque le mode de suppression des avantages est défini sur`AFTER_LIVE_EDGE`, la valeur de suppression des avantages est définie sur `00:30:00` après le Live Edge, la politique de remplissage de la suppression des avantages est définie sur`PARTIAL_AVAIL`, et l'initialisation de la session a lieu avant le Live Edge, MediaTailor personnalise les interruptions publicitaires survenant *après* la période de suppression des avantages. Pour la pause publicitaire en cours avant, pendant et après la période de suppression des avantages, MediaTailor personnalise la partie de cette interruption publicitaire qui se produit *après* la période de suppression des avantages, mais ne personnalise pas la partie de cette interruption publicitaire qui se produit *avant* ou *pendant* la période de suppression des avantages.  

![\[MediaTailor personnalisation des interruptions publicitaires avec le mode de suppression des avantages défini sur AFTER_LIVE_EDGE ; la valeur de suppression des avantages définie sur 00:30:00 ; la politique de remplissage de la suppression des avantages définie sur PARTIAL_AVAIL ; l'initialisation de la session ayant lieu avant le Live Edge ; et une pause publicitaire en cours avant, pendant et après la période de suppression des avantages.\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/images/ad_supp_after_ad_break_throughout.png)


**Example 7 : suppression des `AFTER_LIVE_EDGE` publicités avec interruption de publicité en cours au début de la période de suppression des avantages**  
Lorsque le **mode de suppression des avantages** est défini sur `AFTER_LIVE_EDGE` et que la **valeur de suppression des avantages** est supérieure à zéro, aucune pause publicitaire MediaTailor n'est personnalisée tant que le temps écoulé de la session n'a pas atteint cette valeur.  
Dans la figure suivante, différents blocs sont disposés horizontalement le long d'une chronologie qui progresse de gauche à droite. Chaque bloc représente une partie du temps pendant laquelle le contenu de la diffusion en direct ou d'une pause publicitaire non personnalisée est diffusé. Une ligne en pointillés représente le bord en direct actuel de la diffusion en direct. Une autre ligne en pointillés, représentant la valeur de suppression d'utilisation définie sur`00:30:00`, apparaît 30 minutes plus tard dans la chronologie par rapport à la ligne pointillée correspondant à la limite active. Une troisième ligne en pointillés, représentant l'initialisation de la session, apparaît plus tôt dans la chronologie par rapport à la ligne pointillée correspondant au Live Edge. La période de 30 minutes entre l'heure de pointe et l'heure représente la avail-suppression-value période de suppression des avantages. Une pause publicitaire est en cours entre une période antérieure à l'initialisation de la session et une période comprise entre la période de suppression des fonctionnalités. Comme le montre la figure, lorsque le mode de suppression des avantages est défini sur`AFTER_LIVE_EDGE`, la valeur de suppression des avantages est définie sur `00:30:00` après le live edge, et l'initialisation de la session a lieu avant l'heure du live-edge, mais après le début de la pause publicitaire, MediaTailor cela ne personnalise pas cette pause publicitaire.  

![\[MediaTailor personnalisation des interruptions de publicité avec le mode de suppression des avantages défini sur AFTER_LIVE_EDGE ; la valeur de suppression des avantages définie sur 00:30:00 ; l'initialisation de la session ayant lieu avant le Live Edge ; et une interruption de publicité en cours avant mais se terminant pendant la période de suppression des avantages.\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/images/ad_supp_after_beginning_ad_break.png)


#### Configuration des paramètres de la suppression des publicités — demande de session de lecture
<a name="configuring-ad-suppression-parameters-playback-session-request"></a>

Vous pouvez configurer les paramètres de suppression des publicités via les paramètres figurant dans votre demande *initiale* de session de lecture côté serveur ou côté client auprès de. MediaTailor Si vous avez déjà configuré les paramètres de suppression des publicités via la MediaTailor console ou AWS Elemental MediaTailor l'API, ces paramètres remplacent ces paramètres.

Le mode et la valeur de suppression des annonces sont requis pour que la suppression fonctionne. Ces paramètres ne peuvent pas être configurés à partir de sources différentes. Par exemple, vous ne pouvez pas configurer un paramètre avec la MediaTailor console et un autre avec un paramètre de requête.

MediaTailor prend en charge les paramètres de suppression des publicités suivants.


| Nom | Description | Valeurs acceptées | 
| --- | --- | --- | 
| availSuppressionMode |  Définit le mode de suppression des publicités. Par défaut, la suppression des publicités est`OFF`. Lorsqu'il est défini sur`BEHIND_LIVE_EDGE`, MediaTailor il ne remplit pas les interstices publicitaires pendant ou en `aws.availSuppressionValue` retard. Lorsqu'il est défini sur`AFTER_LIVE_EDGE`, MediaTailor il ne remplit pas les interstices publicitaires pendant ou après la période de suppression des avantages. La période de suppression des avantages s'étend du moment de la mise en ligne à l'heure initiale, plus le `aws.availSuppressionValue` temps de mise en mémoire tampon supplémentaire.  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/ad-rules.html)  | 
| availSuppressionValue | Durée par rapport à la limite d'un flux en direct. | Un code temporel codé en URL UTF-8 dans. HH:MM:SS Par exemple, 1 heure et 30 minutes est 01%3A30%3A00. | 
| availSuppressionFillPolicy | Définit la politique à appliquer au mode de suppression des avantages. BEHIND\$1LIVE\$1EDGEutilise toujours la politique de suppression complète de la disponibilité. AFTER\$1LIVE\$1EDGEpeut être utilisé pour invoquer des remplissages partiels lorsqu'une session commence en milieu de pause publicitaire. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/ad-rules.html)  | 

##### Configuration côté serveur
<a name="server-side-query"></a>

Le paramètre de requête de base est `aws.availSuppression`, suivi de paires nom-valeur de paramètre facultatives. Pour créer la requête, ajoutez `aws.availSuppression=` à la fin de la session de lecture la demande de MediaTailor, suivie des noms et valeurs des paramètres. Pour plus d'informations sur la création d'une demande de session de lecture côté serveur, consultez [MediaTailor suivi des publicités et rapports côté serveur](ad-reporting-server-side.md).

**Exemple** : HLS

```
GET <mediatailorURL>/v1/master/<hashed-account-id>/<origin-id>/index.m3u8?aws.availSuppressionMode=BEHIND_LIVE_EDGE&aws.availSuppressionValue=00%3A00%3A21
```

La syntaxe de la requête côté serveur est répertoriée dans le tableau suivant.


| Composant de la chaîne de requête | Description | 
| --- | --- | 
| ? | Caractère restreint qui marque le début d'une requête. | 
| aws. | Requête de base, suivie de paramètres constitués de paires nom-valeur. Pour obtenir la liste de tous les paramètres disponibles, consultez [Configuration des paramètres de la suppression des publicités — demande de session de lecture](#configuring-ad-suppression-parameters-playback-session-request).  | 
| = | Associe le nom du paramètre à une valeur. Par exemple, aws.availSuppressionMode=BEHIND\$1LIVE\$1EDGE. | 
| & | Concatène les paramètres de la requête. Par exemple, aws.availSuppressionMode=BEHIND\$1LIVE\$1EDGE&aws.availSuppressionValue=00:30:00&aws.availSuppressionFillPolicy=FULL\$1AVAIL\$1ONLY>. | 

##### Configuration côté client
<a name="client-side-configuration"></a>

Incluez `availSuppression` des paramètres dans la requête POST de votre client à MediaTailor. Pour plus d'informations sur la création d'une demande de session de lecture côté client, consultez [Suivi des publicités côté client](ad-reporting-client-side.md).

**Exemple** : HLS

```
POST parent.m3u8
    {
       "availSuppression": {
          "mode": "BEHIND_LIVE_EDGE",
          "value": "00:00:21",
          "fillPolicy": "FULL_AVAIL_ONLY"
       }
    }
```

# MediaTailor pare-chocs et insertion
<a name="bumpers"></a>

Les bumpers sont de courts clips vidéo ou audio que vous ne pouvez pas ignorer et qui sont diffusés au début ou avant la fin d'une pause publicitaire. AWS Elemental MediaTailor

 Les conditions suivantes s'appliquent aux pare-chocs : 
+ Les pare-chocs doivent durer 10 secondes ou moins.
+ Les pare-chocs peuvent être insérés au début d'un break publicitaire, juste avant la fin d'un break publicitaire, ou les deux.
+ Les bumpers sont diffusés pendant chaque pause publicitaire d'une session de diffusion, sauf si le pré-roll est configuré. Si le pré-lancement est configuré, les pare-chocs ne joueront pas pendant la pause préalable au lancement. Au lieu de cela, ils joueront à chaque pause suivante après le pré-roll.
+ Pour le HLS, vous devez inclure l'`duration`attribut dans chaque balise SCTE-35`EXT-X-CUE-OUT`.
+ Les bumpers sont transcodés pour correspondre au contenu source.
+ Les pare-chocs ne vous sont pas facturés.

## Configuration des pare-chocs
<a name="configuring-bumpers"></a>

Pour utiliser des pare-chocs, configurez le pare-chocs URLs avec la MediaTailor console, l' MediaTailor API ou le AWS Command Line Interface ()AWS CLI. Vous pouvez configurer un pare-chocs de départ, un pare-chocs de fin ou les deux. Les pare-chocs sont stockés sur un serveur, tel qu'Amazon Simple Storage Service (Amazon S3). Le pare-chocs URLs indique l'emplacement du ou des actifs du pare-chocs entreposés.

Exemple de pare-chocs URLs de début et de fin :

URL du pare-chocs de démarrage : `https://s3.amazonaws.com/startbumperad`

URL du pare-chocs de fin : `https://s3.amazonaws.com/endbumperad`

### Exemple
<a name="example"></a>

Voici un exemple de comportement publicitaire exceptionnel.

**Example Exemple 1 : pare-chocs de début et d'arrivée**  
Dans cet exemple, les pare-chocs de début et de fin sont activés. Le serveur de décision publicitaire dispose de 50 secondes de publicités personnalisées pour combler une pause publicitaire de 70 secondes. Le pare-chocs de 10 secondes s'affiche au début du break publicitaire, 50 secondes de diffusion des publicités, puis le pare-chocs de fin de 10 secondes.

![\[Cette illustration montre un break publicitaire rempli d'un pare-chocs de début et de fin et de publicités.\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/images/bumpers.png)


# MediaTailor pré-enroulement et insertion
<a name="ad-behavior-preroll"></a>

**Note**  
Les publicités pré-roll configurables ne sont disponibles que pour les flux de travail en direct. Pour en savoir plus sur le fonctionnement de l'insertion publicitaire (y compris le pré-roll) pour la VOD, consultez[Comportement d'assemblage publicitaire pour la VOD](ad-behavior.md#ad-behavior-vod).

AWS Elemental MediaTailor peut insérer des publicités au début d'une session de lecture, avant le début du contenu principal. Il s'agit de publicités *preroll*.

Pour insérer des publicités preroll, renseignez les champs **Live pre-roll ad decision server (Serveur ADS de publicités preroll en direct)** et **Live pre-roll maximum allowed duration (Durée maximale autorisée pour le preroll en direct)** dans les paramètres **Additional (Supplémentaires)** de votre configuration, comme décrit à la section [Paramètres de configuration facultatifs](configurations-create.md#configurations-create-addl). 

1. Lorsqu'il MediaTailor reçoit une demande de diffusion, il envoie une demande à l'ADS pour des publicités pré-roll sur la base des champs suivants de la configuration de MediaTailor diffusion :
   + Le **serveur de décision publicitaire pré-roll en direct** est l'URL du serveur de décision publicitaire (ADS) à laquelle MediaTailor envoie la demande d'annonces pré-roll. 
   + **La durée maximale autorisée avant la diffusion en direct** est la durée maximale totale des publicités prédiffusées. MediaTailor effectue l'action suivante en fonction de la durée maximale autorisée :
     + Si la durée totale des annonces dans la réponse ADS est *inférieure* à la valeur que vous avez indiquée dans la **durée maximale autorisée du pré-lancement en direct**, MediaTailor insère toutes les annonces. Lorsque la dernière annonce est terminée, elle revient MediaTailor immédiatement au contenu sous-jacent.
     + Si la durée totale des annonces dans la réponse ADS est *supérieure* à la valeur que vous avez indiquée dans la **durée maximale autorisée pour la pré-diffusion en direct** MediaTailor , sélectionnez un ensemble d'annonces correspondant à la durée sans dépasser la durée. MediaTailor insère ces publicités sans les couper ni les tronquer. MediaTailor revient au contenu sous-jacent lorsque la dernière annonce sélectionnée est terminée.

1. Lorsqu'il MediaTailor reçoit la réponse pré-roll de l'ADS, il manipule le manifeste pour ajouter des liens vers les annonces pré-roll. MediaTailor calcule l'heure de début de la pause publicitaire préalable à la diffusion de la publicité comme suit :
   + Pour DASH, la formule est `(publishTime - availabilityStartTime) - max(suggestedPresentationDelay, minBufferTime)`.
   + Pour HLS, la formule est `max(2*EXT-X-TARGETDURATION, EXT-X-START:TIMEOFFSET)`.

1. MediaTailor détermine les mesures à prendre pour les pauses publicitaires qui ne sont pas des pré-lancements. Si le pré-roll chevauche un autre break publicitaire, MediaTailor cela ne personnalise pas la partie superposée du break publicitaire. 

# MediaTailor ardoise et insertion
<a name="slate-management"></a>

**Note**  
Slate n'est disponible que pour le live et les live-to-VOD flux de travail.

Avec AWS Elemental MediaTailor, vous pouvez désigner une *ardoise* pour les pauses publicitaires. Une ardoise est une MP4 ressource par défaut qui est insérée dans un flux, telle qu'une image fixe ou une vidéo en boucle, qui est diffusée à la place du contenu en direct.

AWS Elemental MediaTailor affiche Slate pendant les pauses publicitaires dans les situations spécifiques suivantes :
+ Pour combler le temps restant dans une pause qui n'a pas été remplacé par des publicités personnalisées
+ Si le serveur ADS (Ad Decision Server) répond par une réponse VAST ou VMAP vide
+ Pour les conditions d'erreur, telles que le délai d'expiration de l'ADS ou une erreur HTTP 500 provenant de l'ADS
+ Si une annonce ne peut pas être insérée par MediaTailor (par exemple si le transcodage n'est pas terminé)

Si vous ne configurez pas de liste, MediaTailor utilisez par défaut le flux de contenu sous-jacent lorsque l'une des conditions ci-dessus est remplie.

## Configuration de l'ardoise
<a name="configuring-the-slate"></a>

Vous désignez l'ardoise dans le volet **de configuration supplémentaire** de la [ MediaTailor console](https://console.aws.amazon.com/console/home?nc2=h_ct&src=header-signin). MediaTailor télécharge la liste à partir de l'URL que vous spécifiez et la transcode dans les mêmes formats que votre contenu. Vous pouvez contrôler la durée maximale pendant laquelle une liste sera affichée grâce à la configuration optionnelle du **seuil de personnalisation** dans la MediaTailor console. Pour de plus amples informations, veuillez consulter [Comment fonctionne le seuil de personnalisation](#personalization-threshold-scenarios).

L'ardoise doit être un MP4 actif de haute qualité contenant à la fois du son et de la vidéo. La configuration de la liste est facultative pour les configurations non VPAID, mais obligatoire pour les flux de travail VPAID.

**Note**  
Si le serveur qui héberge votre liste utilise HTTPS, son certificat doit provenir d'une autorité de certification reconnue. Il ne peut pas s'agir d'un certificat auto-signé. Si vous utilisez un certificat auto-signé, vous ne AWS Elemental MediaTailor pouvez pas récupérer et assembler l'ardoise dans les manifestes à partir de l'origine du contenu.

## Comment fonctionne le seuil de personnalisation
<a name="personalization-threshold-scenarios"></a>

Le seuil de personnalisation définit la durée maximale pendant laquelle une annonce n'est pas utilisée (en secondes) pendant une pause publicitaire. Cette fonctionnalité s'applique spécifiquement au remplacement des publicités dans les flux en direct et VOD, plutôt qu'à l'insertion d'annonces, car elle repose sur un flux de contenu sous-jacent.

Le comportement varie en fonction de trois scénarios :

1. **Lorsque la personnalisation est désactivée :**

   1. L'ardoise sera insérée pendant toute la durée du temps non rempli

   1. Les pare-chocs de début et de fin seront insérés une fois configurés (pour plus d'informations, voir) [MediaTailor pare-chocs et insertion](bumpers.md)

   1. Les publicités seront insérées normalement

1. **Lorsque la personnalisation est activée et que le seuil est inférieur à la durée de la pause :**

   1. Si le temps non occupé dépasse le seuil de personnalisation :

      1. MediaTailor abandonne la personnalisation du break publicitaire

      1. Le contenu sous-jacent est affiché

      1. Aucune publicité, aucune ardoise ou aucun pare-chocs n'est inséré

   1. Si le temps libre est inférieur au seuil de personnalisation :

      1. Les annonces et l'ardoise sont insérées

      1. Les pare-chocs sont insérés s'ils sont configurés

1. **Lorsque la personnalisation est activée et que le seuil est supérieur à la durée de la pause :**

   1. Des publicités seront insérées

   1. L'ardoise sera insérée pendant le temps restant dans le break publicitaire

   1. Des pare-chocs seront insérés s'ils sont configurés

Le tableau suivant fournit des comportements détaillés pour des scénarios spécifiques dans le cadre des protocoles HLS et DASH :


**Matrice de comportement détaillée**  

| Scénario | Personnalisation désactivée | Personnalisation activée pendant une durée inférieure à la durée de la pause | Personnalisation activée au-delà de la durée de la pause | 
| --- | --- | --- | --- | 
| VAST ou VMAP vide | Ardoise insérée | Aucune ardoise insérée | Ardoise insérée | 
| Délai d'expiration de l'ADS | Ardoise insérée | Aucune ardoise insérée | Ardoise insérée | 
| L'annonce n'est pas disponible (Vast 404) | Ardoise insérée | Aucune ardoise insérée | Ardoise insérée | 
| La durée des annonces est plus longue que la pause publicitaire | Annonces insérées | Aucune annonce insérée | Annonces insérées | 
| Indiquez le temps qui n'est pas entièrement utilisé par une annonce de remplacement | Ardoise insérée | Si le seuil de personnalisation est supérieur au temps non rempli : Non ads/slates inséré, sinon : annonces et ardoises insérées | Ardoise insérée | 
| Preroll avec VAST vide | Ardoise insérée, aucun prérouleau inséré | Aucune ardoise insérée, aucun prérouleau inséré | Ardoise insérée, aucun prérouleau inséré | 
| Prélancement avec délai d'attente ADS | Ardoise insérée, aucun prérouleau inséré | Aucune ardoise insérée, aucun prérouleau inséré | Ardoise insérée, aucun prérouleau inséré | 
| Propulser lorsque l'annonce n'est pas disponible (Vast 404) | Ardoise insérée, aucun prérouleau inséré | Aucune ardoise insérée, aucun prérouleau inséré | Ardoise insérée, aucun prérouleau inséré | 
| Pare-chocs avec VAST vide | Ardoise insérée, pare-chocs inséré | Aucune ardoise insérée, aucun pare-chocs inséré | Ardoise insérée, pare-chocs inséré | 
| Pare-chocs avec temporisation ADS | Ardoise insérée, pare-chocs inséré | Aucune ardoise insérée, aucun pare-chocs inséré | Ardoise insérée, pare-chocs inséré | 
| Des pare-chocs lorsque la publicité n'est pas disponible (Vast 404) | Ardoise insérée, pare-chocs inséré | Aucune ardoise insérée, aucun pare-chocs inséré | Ardoise insérée, pare-chocs inséré | 
| Des pare-chocs pour combler le temps qui n'est pas entièrement utilisé par le remplacement des publicités | Ardoise insérée, pare-chocs inséré et inséré | Si le seuil de personnalisation est supérieur au temps non rempli : Non inséré bumpers/ads/slates inserted, else: No bumpers/ads/slates | Ardoise insérée, pare-chocs inséré et inséré | 

**Considérations importantes**  
N'oubliez pas les points suivants lorsque vous travaillez avec Slate et le seuil de personnalisation.
+ Ce comportement est cohérent entre les protocoles HLS et DASH
+ La fonctionnalité de seuil de personnalisation ne s'applique que lorsque Slate est configurée
+ Lorsque Slate est configurée et que le seuil de personnalisation n'est pas configuré, Slate sera diffusée soit pendant toute la durée de disponibilité d'origine, soit pendant le temps restant après avoir renseigné les publicités
+ Pour les annonces VPAID, MediaTailor insère une ardoise pendant toute la durée de l'annonce VPAID afin de réserver de l'espace pour les publicités que le lecteur vidéo insérera

## Configuration de Slate et VPAID
<a name="vpaid-requirements"></a>

**Important**  
La configuration de Slate est obligatoire lors de l'utilisation de publicités VPAID. MediaTailor insère une ardoise pour contenir de l'espace pour les publicités VPAID que le lecteur vidéo insérera. La durée de la liste peut être légèrement plus longue que la durée de la publicité VPAID pour tenir compte de l'interactivité des utilisateurs.

Le lecteur vidéo gère ensuite la publicité VPAID en fonction des métadonnées de reporting côté client qui sont renvoyées, comme MediaTailor décrit dans. [Exigences relatives au VPAID](vast.md#vpaid) Pour plus d'informations sur la création de rapports côté client, consultez [Suivi des publicités côté client](ad-reporting-client-side.md).

# Publicités de prélecture
<a name="prefetching-ads"></a>

Utilisez la prélecture des AWS Elemental MediaTailor annonces pour les diffusions en direct afin de réduire la charge maximale sur les serveurs de décision publicitaire (ADS) et de réduire le temps de latence de diffusion des manifestes au début de chaque pause publicitaire. Lorsque vous définissez un calendrier de prélecture, suivez le MediaTailor calendrier pour récupérer les publicités de l'ADS et les préparer à l'insertion avant qu'elles ne soient nécessaires pour une pause publicitaire. Pendant les diffusions en direct, le préchargement peut contribuer à atténuer la baisse du taux de remplissage des publicités et les opportunités de monétisation manquées en raison des délais d'attente des demandes publicitaires et du transcodage ou d'autres retards sur le réseau. 

**Note**  
La prélecture des annonces ne fonctionne pas avec les méthodes d'insertion de publicités guidées par le serveur (SGAI), notamment les méthodes traditionnelles guidées par le serveur et les interstitiels HLS. Les méthodes SGAI ne nécessitent pas de prélecture, car les joueurs ne récupèrent que les publicités auxquelles ils vont jouer, et les manifestes peuvent être diffusés CDNs sans MediaTailor voir les demandes de session individuelles.

Pour configurer le préchargement des publicités, vous devez créer un ou plusieurs programmes de *prélecture dans votre configuration de diffusion*. Un calendrier de prélecture indique MediaTailor comment et quand récupérer et préparer les publicités pour une prochaine pause publicitaire. 
+ Si un événement présente des disponibilités publicitaires selon un calendrier prévisible, utilisez un *seul calendrier de prélecture.* Chaque calendrier de prélecture définit un ensemble unique d'annonces MediaTailor à placer dans un seul et même catalogue publicitaire. Pour prévisualiser des annonces pour plusieurs mises à disposition lorsque vous utilisez des programmes de prélecture uniques, vous devez créer plusieurs programmes de prélecture (jusqu'à 24 heures avant la publication de l'annonce) qui correspondent à chaque disponibilité publicitaire. 
+ Si un événement présente des disponibilités publicitaires qui ne sont pas prévues selon un calendrier prévisible, utilisez un calendrier de *prélecture récurrent*. Un planning de prélecture récurrent crée automatiquement un calendrier et prévisualise les annonces avant chaque pause publicitaire d'un événement. Le programme de prélecture récurrent permet de récupérer les annonces pour chaque annonce publiée dans un délai défini (jusqu'à 24 heures avant la fin de l'événement). Vous n'avez pas besoin de créer un calendrier pour chaque publication publicitaire, mais vous perdez une partie du contrôle du temps qu'offre le préchargement unique.

Les rubriques suivantes fournissent des informations supplémentaires sur le préchargement des annonces.

**Topics**
+ [Comment fonctionne le préchargement](understanding-prefetching.md)
+ [Création de plannings de prélecture](creating-prefetch-schedules.md)
+ [Gestion du trafic basée sur le TPS](tps-traffic-shaping.md)
+ [Supprimer des plannings de prélecture](deleting-prefetch-schedules.md)

# Comment fonctionne le préchargement
<a name="understanding-prefetching"></a>

Lorsque votre client envoie une demande de manifeste à MediaTailor, le service évalue tous les programmes de prélecture associés à la configuration de lecture. S'il MediaTailor ne trouve aucun calendrier de prélecture correspondant, le service revient à l'insertion normale des annonces et ne précharge pas les annonces.

S'il MediaTailor trouve un calendrier de prélecture correspondant, le service évalue le calendrier en fonction de deux éléments : l'extraction et la consommation. La configuration de chaque composant varie entre des programmes de prélecture uniques et des programmes de prélecture récurrents, comme décrit dans les sections suivantes.

## Flux de planification de prélecture unique
<a name="understanding-prefetching-single"></a>

**Récupération**  
Cela définit la *fenêtre de récupération*, qui est la plage de temps pendant laquelle les publicités sont MediaTailor prélues depuis l'ADS. Assurez-vous de planifier cette fenêtre avant la pause publicitaire. Vous trouverez ci-dessous un aperçu de la manière dont un MediaTailor seul planning de prélecture est traité.  
Pour savoir comment créer un calendrier de prélecture unique dans la console, consultez. [Création de plannings de prélecture](creating-prefetch-schedules.md) Pour les instructions relatives à l'API, reportez-vous [PrefetchSchedules](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_PrefetchSchedule.html)à la *référence des AWS Elemental MediaTailor API*.  
Au cours de la période de *récupération spécifiée,* MediaTailor envoie des demandes à l'ADS pour récupérer et préparer les publicités en vue de leur insertion ultérieure dans les sessions de diffusion.  
+ MediaTailor utilise éventuellement le formatage du trafic pour limiter le nombre de demandes adressées à l'ADS à la fois. Vous pouvez choisir entre deux approches :

  *Mise en forme du trafic par fenêtre temporelle* : MediaTailor répartit les demandes sur le nombre de secondes spécifié au lieu d'envoyer des demandes pour toutes les sessions en une seule fois. Cette répartition du trafic dispersé permet d'éviter que l'ADS ne soit submergé, ce qui entraîne des temps morts et de faibles taux de remplissage des publicités.

  *Mise en forme du trafic basée sur* le TPS : MediaTailor limite les demandes en fonction des transactions par seconde (TPS) et des utilisateurs simultanés. Cette approche fournit une configuration plus intuitive basée sur les limites de capacité de votre ADS. Pour de plus amples informations, veuillez consulter [Gestion du trafic basée sur le TPS](tps-traffic-shaping.md).
+ Si vous configurez des *variables dynamiques*, MediaTailor incluez ces variables dans les demandes adressées à l'ADS. MediaTailor utilise ces variables pour faire correspondre les disponibilités publicitaires afin de prévisualiser les plannings pendant la fenêtre de consommation. Consultez la section *Consommation* suivante pour plus d'informations.

**Example**  
Un événement en direct dure de 7 h 45 à 10 h, avec une pause publicitaire à 8 h 15. Vous configurez MediaTailor pour récupérer les publicités entre 7 h 45 et 8 h, avec une fenêtre de régulation du trafic de 60 secondes. Avec 500 000 utilisateurs simultanés, MediaTailor distribue les demandes ADS pour atteindre un taux moyen d'environ 8 333 transactions par seconde pendant 60 secondes (500 000 utilisateurs/60 secondes = 8 333 demandes par seconde), au lieu d'envoyer toutes les demandes simultanément.   
La configuration de récupération inclut la clé `scte.event` et la valeur `1234` de la variable dynamique. MediaTailor inclut cette variable dans les demandes adressées à l'ADS, qui peuvent ensuite être utilisées pour cibler des annonceurs spécifiques en fonction de l'ID d'événement 1234. 

**Consommation**  
Lorsqu'il MediaTailor rencontre des marqueurs de coupure de publicité SCTE-35 pendant la fenêtre de consommation, les publicités prélues sont placées dans un break publicitaire.  
+ Si vous n'avez pas défini de critères de correspondance, MediaTailor insère des annonces dès le premier intervalle de la fenêtre de consommation.
+ *Si vous avez défini une *clé de variable dynamique* pour utiliser les *critères* de *correspondance*, MediaTailor évalue ces critères par rapport aux variables dynamiques que vous avez définies dans la fenêtre de récupération.* Un break publicitaire ne peut être inséré dans une annonce prélue que si les critères de disponibilité sont remplis. MediaTailor insère des annonces dans la première pause qui répond aux critères.

  Pour obtenir la liste des critères de disponibilité pris en charge, consultez la colonne *Disponible pour la prélecture des annonces dans le* tableau ci-dessous. [MediaTailor variables de session pour les requêtes ADS](variables-session.md)

**Example a continué**  
Vous définissez l'heure de début de la consommation à 8 h 15 et l'heure de fin à 8 h 17. Vous incluez `scte.event_id` la clé dans les critères de correspondance disponibles.   
Pour chaque pause publicitaire entre 8 MediaTailor h 15 et 8 h 17, il évalue l'identifiant de l'SCTEévénement pour chaque pause publicitaire. À chaque session de diffusion, MediaTailor insère les publicités prélues dans le premier break publicitaire dont l'identifiant d'événement est 1234 (tel que défini dans les variables dynamiques de récupération). Pour les pauses publicitaires qui ne contiennent pas le bon identifiant d'événement, MediaTailor effectue une insertion publicitaire standard. 

## Flux de planification de prélecture récurrent
<a name="understanding-prefetching-recurring"></a>

**Récupération**  
Cela définit la *fenêtre de récupération récurrente*, c'est-à-dire la plage de temps pendant laquelle les publicités sont MediaTailor prélues et insérées pour un événement en direct (jusqu'à 24 heures). Vous trouverez ci-dessous un aperçu de la manière dont MediaTailor les plannings de prélecture récurrents sont traités.  
Pour savoir comment créer un calendrier de prélecture récurrent dans la console, consultez. [Création de plannings de prélecture](creating-prefetch-schedules.md) Pour les instructions relatives à l'API, reportez-vous [PrefetchSchedules](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_PrefetchSchedule.html)à la *référence des AWS Elemental MediaTailor API*.  
Pendant la période de prélecture récurrente spécifiée, MediaTailor récupère et insère des publicités pour un événement en direct d'une durée maximale de 24 heures. Après chaque pause publicitaire dans la fenêtre, récupère MediaTailor automatiquement les annonces pour la pause publicitaire suivante.   
+ Si vous définissez le *délai après la fin de la* période d' MediaTailor utilisation, attendez le temps spécifié avant de récupérer le prochain ensemble d'annonces pour le prochain break publicitaire.
+ MediaTailor utilise éventuellement le formatage du trafic pour limiter le nombre de demandes adressées à l'ADS à la fois. Vous pouvez choisir entre deux approches :

  *Mise en forme du trafic par fenêtre temporelle* : MediaTailor répartit les demandes sur le nombre de secondes spécifié au lieu d'envoyer des demandes pour toutes les sessions en une seule fois. Cette répartition du trafic dispersé permet d'éviter que l'ADS ne soit submergé, ce qui entraîne des temps morts et de faibles taux de remplissage des publicités.

  *Mise en forme du trafic basée sur* le TPS : MediaTailor limite les demandes en fonction des transactions par seconde (TPS) et des utilisateurs simultanés. Cette approche fournit une configuration plus intuitive basée sur les limites de capacité de votre ADS. Pour de plus amples informations, veuillez consulter [Gestion du trafic basée sur le TPS](tps-traffic-shaping.md).
+ Si vous configurez des *variables dynamiques*, MediaTailor incluez ces variables dans les demandes adressées à l'ADS. MediaTailor utilise ces variables pour faire correspondre les disponibilités publicitaires afin de prévisualiser les plannings pendant la fenêtre de consommation. Consultez la section *Consommation* suivante pour plus d'informations.

**Example**  
Un événement en direct dure de 19 h à 20 h 45, avec quatre pauses publicitaires pendant cette période. Les pauses publicitaires ne se déroulent pas selon un calendrier prévisible. Vous configurez le prefetch récurrent de 19 h 00 à 20 h 45, avec un délai de 10 minutes et une fenêtre de régulation du trafic de 60 secondes. Après chaque utilisation, MediaTailor récupère les publicités pour la prochaine pause publicitaire. Dix minutes après la fin de l'utilisation, MediaTailor commence à envoyer des demandes de récupération à l'ADS. Avec une fenêtre de régulation du trafic de 60 secondes et 500 000 utilisateurs simultanés, MediaTailor distribue les requêtes ADS pour atteindre un taux moyen d'environ 8 333 transactions par seconde pendant 60 secondes (500 000 utilisateurs/60 secondes = 8 333 demandes par seconde), au lieu d'envoyer toutes les demandes simultanément.   
La configuration de récupération inclut la clé `scte.event` et la valeur `1234` de la variable dynamique. MediaTailor inclut cette variable dans les demandes adressées à l'ADS, qui peuvent ensuite être utilisées pour cibler des annonceurs spécifiques en fonction de l'ID d'événement 1234.

**Consommation**  
Lorsqu'il MediaTailor rencontre des marqueurs de coupure de publicité SCTE-35, il place les publicités prélues dans un break publicitaire.  
+ Si vous définissez la *date d'expiration des annonces récupérées*, les annonces prélues peuvent être insérées jusqu'à la date d'expiration spécifiée.
+ Si vous n'avez pas défini de critères de correspondance, MediaTailor insère des annonces dès le premier intervalle de la fenêtre de consommation.
+ *Si vous avez défini une *clé de variable dynamique* pour utiliser les *critères* de *correspondance*, MediaTailor évalue ces critères par rapport aux variables dynamiques que vous avez définies dans la fenêtre de récupération.* Un break publicitaire ne peut être inséré dans une annonce prélue que si les critères de disponibilité sont remplis. MediaTailor insère des annonces dans la première pause qui répond aux critères.

  Pour obtenir la liste des critères de disponibilité pris en charge, consultez la colonne *Disponible pour la prélecture des annonces dans le* tableau ci-dessous. [MediaTailor variables de session pour les requêtes ADS](variables-session.md)

**Example a continué**  
Dans la consommation, vous incluez `scte.event_id` la clé dans les critères de correspondance disponibles.   
Pour chaque pause publicitaire MediaTailor rencontrée, il évalue l'identifiant de l'SCTEévénement correspondant à chaque interruption publicitaire. À chaque session de diffusion, MediaTailor insère les publicités prélues dans chaque pause publicitaire dont l'identifiant d'événement est 1234 (tel que défini dans les variables dynamiques de récupération). Pour les pauses publicitaires qui ne contiennent pas le bon identifiant d'événement, MediaTailor effectue une insertion publicitaire standard.   
Vous avez défini l'expiration des annonces à 2 700 secondes afin que les annonces récupérées puissent être insérées pendant 45 minutes.
Le graphique suivant illustre cet exemple, avec les petits carrés représentant les pauses publicitaires. Les paramètres du calendrier de prélecture récurrent sont illustrés le long de la chronologie de l'événement.  

![\[Illustration graphique d'un événement en direct, y compris les configurations de planning de prélecture récurrentes.\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/images/recurring_prefetch_timeline.png)


## Comprendre les coûts de prélecture
<a name="billing"></a>

Les demandes de récupération de publicités sont gratuites. Toutefois, pour la récupération des publicités prélues, vous serez facturé au tarif de transcodage standard pour les publicités prélues qui transcodent. MediaTailor Pour la consommation de publicités prélues, vous serez facturée au tarif standard pour l'insertion d'annonces prélues placées dans des pauses publicitaires. MediaTailor Pour plus d'informations sur les coûts de transcodage et d'insertion de publicités, consultez la section [AWS Elemental MediaTailor Tarification](https://aws.amazon.com/mediatailor/pricing/).

# Création de plannings de prélecture
<a name="creating-prefetch-schedules"></a>

La procédure suivante explique comment créer un planning de prélecture à l'aide de la MediaTailor console. *Pour plus d'informations sur la création et la gestion des plannings de prélecture par programmation à l'aide de l' MediaTailor API, consultez la référence de [PrefetchSchedules](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_PrefetchSchedule.html)l'API.AWS Elemental MediaTailor *

**Note**  
Lorsque vous configurez des programmes de prélecture dans MediaTailor, il est important de comprendre comment les différents types de variables sont gérés.  

**Utiliser les critères de correspondance**  
Si vous souhaitez utiliser des critères de correspondance de disponibilité dans un calendrier, assurez-vous d'abord de configurer le modèle d'URL ADS de votre configuration de lecture avec des [variables de session dynamiques](variables-session.md), sinon les critères de correspondance de disponibilité n'auront aucun effet. Pour plus d'informations sur l'utilisation de variables de session dynamiques, consultez [Étape 3 : Configuration de l'URL de demande ADS et des paramètres de requête](getting-started-ad-insertion.md#getting-started-configure-request) la rubrique Commencer à insérer des MediaTailor annonces.

**Variables relatives aux joueurs dans les plannings de prélecture**  
Lorsque vous créez un calendrier de prélecture, ne définissez pas les variables du joueur en tant que variables dynamiques dans votre configuration de prélecture. Transmettez plutôt les variables du joueur comme vous le feriez normalement au début de la session. MediaTailor inclut automatiquement ces variables dans les demandes publicitaires de prélecture si les variables sont mappées dans l'URL du modèle ADS.

**Pour créer un nouveau calendrier de prélecture à l'aide de la console**

1. Ouvrez la MediaTailor console à l'adresse [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1. Dans le volet de navigation, sélectionnez **Configurations**. Sélectionnez la configuration de lecture pour laquelle vous souhaitez créer un calendrier de prélecture.

1. Dans l'onglet Programmes de **prélecture, choisissez Ajouter un calendrier** **de prélecture**.

1. Dans le volet des **détails du planning Prefetch**, procédez comme suit :
   + Dans **Nom**, entrez un identifiant pour votre calendrier de prélecture, tel que. **my-prefetch-schedule**
   + Pour **Stream ID**, entrez éventuellement un identifiant unique. Si votre source contient plusieurs flux de lecture, vous pouvez utiliser cet identifiant pour demander de MediaTailor placer des publicités dans un flux spécifique. Par exemple, si votre configuration de diffusion comprend une diffusion sportive et une diffusion d'émission de télévision, vous pouvez utiliser l'ID de diffusion pour créer des programmes de prélecture afin d'insérer des publicités ciblées pour la diffusion sportive. Vous transmettez la valeur de l'ID de flux MediaTailor lors de l'initialisation de la session ou de la demande de manifeste de votre client. Pour plus d'informations, consultez l'exemple suivant.
     + Pour le *suivi côté serveur*, incluez le paramètre et la valeur de la `?aws.streamId` requête dans la `GET HTTP` demande envoyée par votre client à votre MediaTailor point de terminaison. Pour des informations générales sur le suivi côté serveur, voir. [MediaTailor suivi des publicités et rapports côté serveur](ad-reporting-server-side.md) Une demande de manifeste adressée à un point de terminaison HLS qui inclut un identifiant de flux se présente comme suit, où se `myStreamId` trouve le nom de votre identifiant de flux :

       ```
       GET <mediatailorURL>/v1/master/<hashed-account-id>/<origin-id>/<asset-id>?aws.streamId=myStreamId
       ```
     + Pour le *suivi côté client*, incluez la `streamId` clé et la valeur dans le corps de la demande d'initialisation de `POST HTTP` session de votre client envoyée au point de terminaison. **MediaTailor/v1/session** Pour des informations générales sur le suivi côté client, voir. [Suivi des publicités côté client](ad-reporting-client-side.md) Une demande d'initialisation de session qui inclut un identifiant de flux se présente comme suit, où se `myStreamId` trouve le nom de votre identifiant de flux :

       ```
       POST <mediatailorURL>/v1/session/<hashed-account-id>/<origin-id>/<asset-id>
       {
           'streamId': 'myStreamId',
           'reportingMode': 'client'
       }
       ```

1. Pour le **type Prefetch**, faites votre sélection et choisissez la section correspondante pour obtenir de l'aide sur les champs supplémentaires :
   + Choisissez **Single** si vous créez un calendrier de prélecture pour une pause publicitaire dans le cadre d'un événement.
   + Choisissez **Récurrent** si vous créez un calendrier qui prévisualise automatiquement les annonces avant chaque interruption publicitaire d'un événement. 

## Programme de prélecture unique
<a name="single-prefetch"></a>

Pour créer un calendrier prévisualisant les annonces avant qu'une annonce ne soit publiée dans le cadre d'un événement.

1. Dans le volet **Extraction**, spécifiez les paramètres de récupération que vous souhaitez utiliser. Ces paramètres déterminent à quel moment les publicités sont MediaTailor prélues depuis l'ADS. Ils déterminent également les variables de session dynamiques à inclure dans la demande adressée à l'ADS, le cas échéant.
   + Dans le **champ Heure de début**, entrez l'heure à laquelle les extractions par prélecture MediaTailor peuvent commencer pour cette pause publicitaire. MediaTailor tentera de prévisualiser les publicités pour les demandes manifestes faites par votre client à cette date ou après cette date. La valeur par défaut est l'heure actuelle. Si vous ne spécifiez aucune valeur, le service lance la récupération par prélecture dès que possible.
   + Dans **Heure de fin**, entrez l'heure à laquelle vous MediaTailor souhaitez arrêter de prélire les publicités pour cette pause publicitaire. MediaTailor tentera de prévisualiser les publicités pour les demandes manifestes qui se produisent à cette heure ou avant. La fenêtre de récupération peut se chevaucher avec la fenêtre de consommation.
   + Configurez éventuellement la mise en forme du trafic pour limiter le nombre de demandes adressées simultanément à l'ADS. Choisissez l'une des approches suivantes :

     *Approche par fenêtre temporelle* : pour la **durée de la fenêtre de façonnage du trafic**, entrez le nombre de secondes pendant lesquelles les demandes MediaTailor doivent être distribuées à l'ADS. Pour plus d'informations, voir Explication de la [récupération du calendrier par prélecture unique](understanding-prefetching.md#avail-matching-criteria-retr).

     *Approche basée sur* le **TPS : configurez les utilisateurs simultanés Peak TPS** **et Peak** pour limiter les demandes en fonction des transactions par seconde et des utilisateurs simultanés. Pour de plus amples informations, veuillez consulter [Gestion du trafic basée sur le TPS](tps-traffic-shaping.md).
   + Dans la section [**Variables dynamiques**](variables.md), entrez jusqu'à 100 variables de session dynamiques. MediaTailor utilise ces variables à des fins de substitution dans les demandes de prélecture qu'il envoie à l'ADS. Si vous ne saisissez aucune variable de session dynamique, MediaTailor essayez au mieux d'interpoler les valeurs des variables dynamiques contenues dans votre URL [ADS](configurations-create.md#configurations-create-main).
     + Sélectionnez **Ajouter une variable dynamique**. 
     + Pour **Clé**, entrez une clé de variable de session dynamique, telle que`scte.event_id`. Vous pouvez utiliser n'importe quelle variable dynamique qui MediaTailor prend en charge. Pour plus d'informations sur les variables de session dynamiques, consultez[MediaTailor variables de session pour les requêtes ADS](variables-session.md).
     + Pour **Valeur**, entrez une valeur de variable dynamique, telle que*my-event*.
     + Pour ajouter une autre variable dynamique, choisissez Sélectionner **Ajouter une variable dynamique**. 

1. Dans le volet **Consommation**, spécifiez les paramètres que vous souhaitez utiliser pour la fenêtre de consommation. Ces paramètres déterminent à quel moment MediaTailor les annonces sont placées dans le break publicitaire. Ils déterminent également les critères de correspondance de disponibilité que vous souhaitez utiliser.
   + Pour **Heure de début**, entrez l'heure à laquelle vous souhaitez commencer MediaTailor à placer des annonces prélues dans le break publicitaire. La valeur par défaut est l'heure actuelle. Si vous ne spécifiez pas d'heure, le service démarre la consommation de prélecture dès que possible.
   + Pour **Heure de fin**, entrez l'heure à laquelle vous MediaTailor souhaitez arrêter de placer les publicités prélues dans le break publicitaire. MediaTailor tentera de prévisualiser les publicités pour les demandes manifestes de votre client qui se produisent à cette heure ou avant. L'heure de fin doit être postérieure à l'heure de début, et dans moins d'un jour. La fenêtre de consommation peut se chevaucher avec la fenêtre de récupération.
   + Dans la section [**Critères de correspondance**](variables.md) de disponibilité, sélectionnez **Ajouter des critères de disponibilité** et ajoutez jusqu'à cinq critères de correspondance de disponibilité à votre calendrier. Ensuite, sous **Clé variable dynamique**, ajoutez une clé variable dynamique, telle que`scte.event_id`. MediaTailor placera les annonces prélues dans le break publicitaire *uniquement si elles* répondent aux critères définis par les valeurs des variables dynamiques que votre client transmet ou MediaTailor déduites à MediaTailor partir d'informations telles que les données de session. Si un break publicitaire ne répond pas aux critères de correspondance spécifiés, MediaTailor ignore le préchargement correspondant à cet intervalle. Pour plus d'informations, consultez l'explication de la [consommation du programme de prélecture unique](understanding-prefetching.md#avail-matching-criteria).

1. Sélectionnez **Ajouter des critères de disponibilité**.

Les programmes Prefetch expirent automatiquement après la fin de la fenêtre de consommation. À des fins de diagnostic, ils restent visibles pendant au moins 7 jours, après quoi ils MediaTailor sont automatiquement supprimés. Vous pouvez également supprimer manuellement un planning de prélecture à tout moment. Pour plus d'informations sur la suppression manuelle d'un planning de prélecture, consultez la section suivante[Supprimer des plannings de prélecture](deleting-prefetch-schedules.md).

### Déterminer la fréquence à laquelle votre client doit appeler l' CreatePrefetchSchedule API
<a name="how-often"></a>

Votre client peut appeler l'[CreatePrefetchSchedule](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_CreatePrefetchSchedule.html)API par programmation une fois par jour pour configurer la récupération et la consommation si vous savez exactement quand se produiront les interruptions publicitaires. Votre client peut également appeler l'API plusieurs fois au cours de la journée pour définir la récupération et la consommation. Lorsque vous choisissez la fréquence des appels d'API, tenez compte du [nombre maximum de programmes de prélecture actifs](quotas.md#prefetch-schedules-limit) et de la probabilité que votre calendrier de pause publicitaire change une fois que vous aurez créé votre ou vos programmes de prélecture. S'il est probable que le calendrier des pauses publicitaires change une fois que vous avez créé vos programmes de prélecture, vous pouvez appeler l'API plus fréquemment.

## Programme de prélecture récurrent
<a name="recurring-prefetch"></a>

Pour créer un calendrier prévisualisant les annonces avant que chaque annonce ne soit publiée dans le cadre d'un événement.

1. Dans le volet **Récupération récurrente**, spécifiez les paramètres de récupération que vous souhaitez utiliser. Ces paramètres déterminent à quel moment les publicités sont MediaTailor prélues depuis l'ADS. Ils déterminent également les variables de session dynamiques à inclure dans la demande adressée à l'ADS, le cas échéant.
   + Pour la **fenêtre de prélecture récurrente**, entrez l'heure à laquelle les extractions de prélecture MediaTailor peuvent commencer pour cette pause publicitaire. MediaTailor tentera de prévisualiser les publicités pour les demandes manifestes faites par votre client à cette date ou après cette date. La valeur par défaut est l'heure actuelle. Si vous ne spécifiez aucune valeur, le service lance la récupération par prélecture dès que possible.
   + Dans le **champ Délai après la fin d'utilisation**, entrez le nombre de secondes qui MediaTailor doivent s'écouler après la fin d'une utilisation avant de prévisualiser les publicités pour la prochaine utilisation. Si vous ne spécifiez aucune valeur, la valeur MediaTailor par défaut est « aucun délai ». 
   + Configurez éventuellement la mise en forme du trafic pour limiter le nombre de demandes adressées simultanément à l'ADS. Choisissez l'une des approches suivantes :

     *Approche par fenêtre temporelle* : pour la **durée de la fenêtre de façonnage du trafic**, entrez le nombre de secondes pendant lesquelles les demandes MediaTailor doivent être distribuées à l'ADS. Pour plus d'informations, voir Explication de la [récupération du calendrier de prélecture récurrent](understanding-prefetching.md#avail-matching-criteria-recurring-retr)

     *Approche basée sur* le **TPS : configurez les utilisateurs simultanés Peak TPS** **et Peak** pour limiter les demandes en fonction des transactions par seconde et des utilisateurs simultanés. Pour de plus amples informations, veuillez consulter [Gestion du trafic basée sur le TPS](tps-traffic-shaping.md).
   + Dans la section [**Variables dynamiques**](variables.md), entrez jusqu'à 100 variables de session dynamiques. MediaTailor utilise ces variables à des fins de substitution dans les demandes de prélecture qu'il envoie à l'ADS. Si vous ne saisissez aucune variable de session dynamique, MediaTailor essayez au mieux d'interpoler les valeurs des variables dynamiques contenues dans votre URL [ADS](configurations-create.md#configurations-create-main).
     + Sélectionnez **Ajouter une variable dynamique**. 
     + Pour **Clé**, entrez une clé de variable de session dynamique, telle que`scte.event_id`. Vous pouvez utiliser n'importe quelle variable dynamique qui MediaTailor prend en charge. Pour plus d'informations sur les variables de session dynamiques, consultez[MediaTailor variables de session pour les requêtes ADS](variables-session.md).
     + Pour **Valeur**, entrez une valeur de variable dynamique, telle que*my-event*.
     + Pour ajouter une autre variable dynamique, choisissez Sélectionner **Ajouter une variable dynamique**. 

1. Dans le volet **Consommation**, spécifiez les paramètres que vous souhaitez utiliser pour la fenêtre de consommation. Ces paramètres déterminent à quel moment MediaTailor les annonces sont placées dans le break publicitaire. Ils déterminent également les critères de correspondance de disponibilité que vous souhaitez utiliser.
   + Pour **Expiration des annonces récupérées**, indiquez combien de temps après la récupération les annonces peuvent être insérées.
   + Dans la section [**Critères de correspondance**](variables.md) de disponibilité, sélectionnez **Ajouter des critères de disponibilité** et ajoutez jusqu'à cinq critères de correspondance de disponibilité à votre calendrier. Ensuite, sous **Clé variable dynamique**, ajoutez une clé variable dynamique, telle que`scte.event_id`. MediaTailor placera les annonces prélues dans le break publicitaire *uniquement si elles* répondent aux critères définis par les valeurs des variables dynamiques que votre client transmet ou MediaTailor déduites à MediaTailor partir d'informations telles que les données de session. Si un break publicitaire ne répond pas aux critères de correspondance spécifiés, MediaTailor ignore le préchargement correspondant à cet intervalle. Pour plus d'informations, consultez l'explication de la [consommation récurrente du programme de prélecture](understanding-prefetching.md#avail-matching-criteria-recur).

1. Sélectionnez **Ajouter des critères de disponibilité**.

Les programmes Prefetch expirent automatiquement après la fin de la fenêtre de consommation. À des fins de diagnostic, ils restent visibles pendant au moins 7 jours, après quoi ils MediaTailor sont automatiquement supprimés. Vous pouvez également supprimer manuellement un planning de prélecture à tout moment. Pour plus d'informations sur la suppression manuelle d'un planning de prélecture, consultez la section suivante[Supprimer des plannings de prélecture](deleting-prefetch-schedules.md).

# Gestion du trafic basée sur le TPS
<a name="tps-traffic-shaping"></a>

AWS Elemental MediaTailor propose deux approches facultatives de mise en forme du trafic pour limiter le nombre de demandes adressées à l'ADS à la fois. La mise en forme du trafic basée sur le TPS offre une alternative à la mise en forme du trafic basée sur les fenêtres temporelles pour les horaires de prélecture. Cette approche fournit une configuration plus intuitive en vous permettant de spécifier la capacité de votre serveur de décision publicitaire (ADS) en termes de transactions par seconde (TPS) et d'utilisateurs simultanés attendus, plutôt que de calculs de temps.

## Comment fonctionne le formatage du trafic basé sur le TPS
<a name="tps-how-it-works"></a>

Au lieu de spécifier les durées des fenêtres de récupération, vous fournissez les paramètres suivants :

TPS de pointe  
Le nombre maximum de demandes par seconde que votre ADS peut traiter. Ce paramètre n'a aucune valeur par défaut.

Nombre maximal d'utilisateurs simultanés  
Le nombre maximal attendu de spectateurs simultanés pour votre contenu. Ce paramètre n'a aucune valeur par défaut.

MediaTailor distribue automatiquement les demandes de prélecture dans le temps afin de respecter la limite TPS spécifiée, quel que soit le nombre de sessions simultanées.

**Example Exemple de configuration basée sur le TPS**  
Votre ADS peut gérer 500 TPS et vous vous attendez à 100 000 spectateurs simultanés aux heures de pointe. Vous configurez :  
+ TPS de pointe : 500
+ Nombre maximal d'utilisateurs simultanés : 100 000
MediaTailor distribue automatiquement les demandes de prélecture dans le temps afin de respecter la limite TPS spécifiée, quel que soit le nombre de sessions simultanées.

# Supprimer des plannings de prélecture
<a name="deleting-prefetch-schedules"></a>

La procédure suivante explique comment supprimer un planning de prélecture à l'aide de la MediaTailor console. *Pour plus d'informations sur la suppression des plannings de prélecture par programmation à l'aide de l' MediaTailorAPI, consultez la référence de [DeletePrefetchSchedule](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_DeletePrefetchSchedule.html)l'API.AWS Elemental MediaTailor *

**Note**  
La suppression ne s'effectue pas en temps réel. Il se peut que vous rencontriez un certain délai lors de la MediaTailor suppression du ou des programmes de prélecture, période pendant laquelle la récupération et la consommation du préchargement continueront de s'exécuter en arrière-plan.

**Pour supprimer un calendrier de prélecture à l'aide de la console**

1. Ouvrez la MediaTailor console à l'adresse [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1. Dans le volet de navigation, sélectionnez **Configurations**. Sélectionnez la configuration de lecture qui contient le ou les programmes de prélecture que vous souhaitez supprimer.

1. Dans l'onglet **Programmes de prélecture**, sélectionnez le calendrier de prélecture que vous souhaitez supprimer. Ensuite, choisissez **Supprimer**.

# Utilisation de publicités préconditionnées avec AWS Elemental MediaTailor
<a name="precondition-ads"></a>

Dans le cadre d'un [flux de travail d'insertion d'annonces classique](what-is-flow.md), les annonces sont transcodées de MediaTailor manière dynamique pour qu'elles correspondent au flux de contenu, les enregistre et les intègre au flux en direct. Comme ce processus ne se produit qu'après MediaTailor réception de l'annonce dans une réponse VAST du serveur de décision publicitaire (ADS), il y a un délai avant que l'annonce soit disponible pour l'assemblage. Si une latence supplémentaire est introduite dans le flux de travail d'assemblage des annonces (soit en raison du délai d'attente de l'ADS, soit en raison d'un autre problème lié au contenu ou au réseau), MediaTailor cela pourrait partiellement combler le déficit ou complètement manquer la pause publicitaire. 

Pour réduire le temps nécessaire à l'intégration des annonces dans votre contenu, vous pouvez utiliser des publicités préconditionnées. Une annonce préconditionnée est une annonce que vous transcodez avant de l'utiliser pour l'insertion d' MediaTailor annonces. Au lieu de fournir URLs des publicités non conditionnées à votre ADS, vous fournissez URLs des publicités préconditionnées. Dans sa réponse VAST à la MediaTailor demande, l'ADS inclut des liens directs vers les publicités préconditionnées. En supprimant la partie transcodage de l'assemblage des annonces, il MediaTailor suffit d'enregistrer l'annonce et de l'intégrer au flux de contenu. Le processus d'assemblage des publicités préconditionnées réduit le délai entre le moment où une annonce MediaTailor est signalée par le biais de la réponse VAST et le moment où l'annonce est intégrée au contenu. 

Vous pouvez également utiliser le préchargement des annonces, qui consiste MediaTailor à configurer le processus d'assemblage des annonces à une heure planifiée avant que la pause publicitaire ne soit nécessaire. Pour plus d'informations sur le préchargement des annonces, consultez. [Publicités de prélecture](prefetching-ads.md)

## Exigences relatives aux annonces préconditionnées
<a name="precondition-ads-req"></a>

Les exigences suivantes doivent être prises en compte lors de la configuration d'un flux de travail d'assemblage d'annonces avec des publicités préconditionnées.

### Exigences relatives à `MediaFiles`
<a name="precondition-ads-req-vast"></a>

La réponse VAST à laquelle le serveur publicitaire envoie MediaTailor doit inclure `MediaFiles` les éléments suivants :

L'annonce (`Creative`) doit comporter des variantes conformes aux variantes de débit du flux de contenu. *Il est de votre responsabilité de vous assurer que la réponse VAST utilise les variantes d'annonces appropriées pour correspondre aux modèles de manifestes.*

Bien que l'utilisation de publicités préconditionnées puisse contribuer à rendre l'insertion des annonces plus efficace, MediaTailor elle n'est pas en mesure de gérer le processus de transcodage pour garantir que les fichiers multimédias des publicités sont compatibles avec les spécifications du manifeste de contenu. Si l'annonce ne correspond pas au flux de contenu, elle risque de ne pas MediaTailor être insérée ou la non-concordance peut provoquer une erreur sur l'appareil de lecture. 

En outre, pour être intégré au flux de contenu sans MediaTailor transcodage, `MediaFile` il doit répondre aux exigences suivantes :
+ Il doit être accessible sur l'Internet public pour MediaTailor pouvoir le télécharger. 
+ Il doit utiliser la diffusion en continu, désignée comme `delivery="streaming"` dans la réponse VAST.
+ Il doit s'agir d'un fichier `.m3u8` (pour HLS) ou `.mpd` (pour DASH).

**Example Réponse VASTE**  
À partir de l'exemple de réponse VAST suivant, MediaTailor insère le `MediaFile` texte suivant URLs :  
+ Pour un flux HLS, MediaTailor utilise`https://example-ad-origin.amazonaws.com/ad1/index_low.m3u8`. C'est le premier à proposer `MediaFile` une diffusion en streaming et une extension de fichier prise en charge (. `m3u8`).
+ Pour un flux DASH, MediaTailor utilise`https://example-ad-origin.amazonaws.com/ad1/index.mpd`. C'est le premier à proposer `MediaFile` une diffusion en streaming et une extension de fichier prise en charge (. `mpd`).

```
<?xml version="1.0" encoding="UTF-8"?>
<VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.0">
    <Ad id="ad1">
        <InLine>
            <AdSystem>ExampleAdSystem</AdSystem>
            <AdTitle>ad1</AdTitle>
            <Impression><![CDATA[https://example-impression.amazonaws.com]]></Impression>
            <AdServingId>de8e0d33-9c72-4d77-bb3a-f7e566ffc605</AdServingId>
            <Creatives>
                <Creative id="creativeId1" sequence="1">
                    <Linear skipoffset="00:00:05">
                        <Duration>00:00:30</Duration>
                        <MediaFiles>
                            <MediaFile delivery="progressive" width="1280" height="720" type="video/mp4" bitrate="533" scalable="true" maintainAspectRatio="true"><![CDATA[https://example-ad-origin.amazonaws.com/ad1/ad1.mp4]]></MediaFile>
                            <MediaFile delivery="streaming" width="1280" height="720" type="application/dash+xml" bitrate="533" scalable="true" maintainAspectRatio="true"><![CDATA[https://example-ad-origin.amazonaws.com/ad1/index.mpd]]></MediaFile>
                            <MediaFile delivery="streaming" width="640" height="360" type="application/x-mpegURL" bitrate="262" scalable="true" maintainAspectRatio="true"><![CDATA[https://example-ad-origin.amazonaws.com/ad1/index_low.m3u8]]></MediaFile>
                            <MediaFile delivery="streaming" width="2560" height="1440" type="application/x-mpegURL" bitrate="1066" scalable="true" maintainAspectRatio="true"><![CDATA[https://example-ad-origin.amazonaws.com/ad1/index_high.m3u8]]></MediaFile>
                        </MediaFiles>
                    </Linear>
                </Creative>
            </Creatives>
        </InLine>
    </Ad>
</VAST>
```

### Exigences relatives aux manifestes publicitaires
<a name="precondition-ads-req-ads"></a>

Pour utiliser des publicités préconditionnées, les manifestes publicitaires de vos parents et enfants doivent répondre aux exigences suivantes :
+ Le manifeste lié dans la `Creative` section de la réponse VAST doit être le manifeste publicitaire parent.
+ Les URLs manifestes publicitaires destinés aux enfants doivent être des chemins relatifs.
+ Les manifestes publicitaires pour enfants doivent se trouver dans le même répertoire que la playlist multivariante parente, au même niveau. Les manifestes enfants ne peuvent pas se trouver dans un sous-répertoire ou à un autre emplacement.

**Example liste de lecture multivariante parent prise en charge**  
La liste de lecture multivariante suivante contient des listes de lecture multimédia relatives URLs aux annonces pour enfants. Les playlists enfants se trouvent également dans le même répertoire que la playlist multivariante parente.  

```
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2"
index_1.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2"
index_2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=640000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2"
index_3.m3u8
```

**Example liste de lecture multivariante parent non prise en charge : sous-répertoires**  
La liste de lecture multivariante d'annonces parent suivante contient des listes de lecture pour enfants qui se trouvent dans des sous-répertoires relatifs à la liste de lecture multivariante parent. Il ne s'agit pas d'une playlist compatible avec les publicités préconditionnées.  

```
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2"
child/index_1.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2"
child/index_2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=640000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2"
child/index_3.m3u8
```

**Example liste de lecture multivariante parent non prise en charge : absolue URLs**  
La liste de lecture multivariante suivante contient des listes de lecture pour enfants avec valeur absolue URLs. Il ne s'agit pas d'une playlist compatible avec les publicités préconditionnées.  

```
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=150000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2"
https://example.mediatailor.us-west-2.amazonaws.com/index_1.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=440000,RESOLUTION=416x234,CODECS="avc1.42e00a,mp4a.40.2"
https://example.mediatailor.us-west-2.amazonaws.com/index_2.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=640000,RESOLUTION=640x360,CODECS="avc1.42e00a,mp4a.40.2"
https://example.mediatailor.us-west-2.amazonaws.com/index_3.m3u8
```

## Flux de travail publicitaire préconditionné
<a name="precondition-ads-setup"></a>

Vous trouverez ci-dessous une description de base du fonctionnement des publicités préconditionnées dans un flux de travail d'assemblage publicitaire avec. MediaTailor La première partie du flux de travail concerne les actions que vous devez effectuer pour vous préparer à utiliser des publicités préconditionnées. La deuxième partie décrit le MediaTailor traitement des publicités.

**Partie 1 : Configuration des publicités préconditionnées**  
Procédez comme suit pour configurer un flux de travail qui utilise des publicités préconditionnées dans MediaTailor.

1. Utilisez un service de transcodeur, par exemple AWS Elemental MediaConvert, pour conditionner vos créations en variantes compatibles avec les différents débits, résolutions et codecs de vos modèles de manifestes. 

1. Fournissez URLs les fichiers multimédias pré-transcodés à votre ADS, à utiliser dans les réponses VAST.

1. [Créez votre configuration de lecture](configurations-create.md) dans MediaTailor. Pour utiliser des publicités préconditionnées, sélectionnez **Aucun** pour le paramètre de **conditionnement des fichiers multimédia en streaming** dans la configuration.

1. Continuez à configurer la diffusion de votre contenu comme vous le feriez normalement.

**Partie 2 : traitement des MediaTailor publicités**  
MediaTailor et l'assemblage se termine comme décrit dans. [Comment fonctionne MediaTailor l'insertion d'annonces](what-is-flow.md) Lorsqu'il MediaTailor reçoit une réponse VAST de l'ADS, il utilise la logique suivante pour déterminer les actions à entreprendre pour les publicités. Cette logique est dictée par le paramètre de **conditionnement des fichiers multimédia en streaming** de la configuration de lecture. 
+ Lorsque **le conditionnement des fichiers multimédia en streaming** est défini sur **Transcode**, MediaTailor transcode les fichiers multimédia lors de leur `progressive` livraison et les assemble dans le manifeste. S'il n'y a pas assez de publicités `progressive` contenant des fichiers multimédia pour les diffuser, MediaTailor transcodez et utilisez ces fichiers pour les `streaming` diffuser.
+ Lorsque **le conditionnement des fichiers multimédia en streaming** est défini sur **Aucun**, MediaTailor les publicités contenant des fichiers multimédia de `streaming` diffusion sont insérées dans le manifeste sans les transcoder. S'il n'y a pas assez de publicités `streaming` contenant des fichiers multimédia pour les diffuser, MediaTailor transcodez et utilisez ces fichiers pour les `progressive` diffuser. 

# MediaTailor variables publicitaires dynamiques pour les demandes ADS
<a name="variables"></a>

AWS Elemental MediaTailor utilise des variables publicitaires dynamiques pour transmettre les informations de votre session de visionnage au serveur de décision publicitaire (ADS). Ces informations aident l'ADS à sélectionner les annonces les plus pertinentes pour vos spectateurs.

Cette section fournit une vue d'ensemble des variables publicitaires dynamiques et des liens vers des guides de mise en œuvre spécifiques. Pour les instructions de step-by-step configuration, consultez les rubriques individuelles ci-dessous.

**Types de variables dynamiques**  
MediaTailor prend en charge quatre types de variables dynamiques :
+ **Variables de session** : valeurs générées automatiquement, telles que l'ID de session et les données SCTE-35. Consultez [MediaTailor variables de session pour les requêtes ADS](variables-session.md).
+ **Variables du lecteur** : paramètres personnalisés envoyés par votre lecteur vidéo. Consultez [MediaTailor variables du joueur pour les requêtes ADS](variables-player.md).
+ **Variables de domaine** avec **alias de configuration** : domaines URL dynamiques pour les configurations à origines multiples. 
+ **Alias de configuration** : mappages prédéfinis pour le remplacement dynamique des variables. Consultez [Alias de configuration](configuration-aliases-overview.md).

**Cas d’utilisation courants**  
Utilisez des variables publicitaires dynamiques pour :
+ Transmettez les données démographiques et les préférences des utilisateurs à vos ADS
+ Acheminer les demandes vers différentes origines en fonction de la situation géographique
+ Activez l'affichage décalé dans le temps grâce à l'intégration MediaPackage 
+ Mettre en œuvre A/B des scénarios de test et de basculement

Les sections suivantes fournissent des informations supplémentaires sur l'utilisation de variables publicitaires dynamiques avec MediaTailor.

**Topics**
+ [Variables de session](variables-session.md)
+ [Variables du joueur](variables-player.md)
+ [Variables de domaine](variables-domains.md)
+ [Alias de configuration](configuration-aliases-overview.md)
+ [Transmission des paramètres ADS](passing-paramters-to-the-ads.md)
+ [Routage des paramètres](parameter-routing-behavior.md)
+ [intégration d’MediaPackage](mediapackage-integration-param.md)
+ [Comportement de session](parameter-session-behavior.md)
+ [Référence des paramètres](parameter-comprehensive-reference.md)
+ [Dépannage des paramètres](parameter-troubleshooting.md)
+ [Dépannage des alias](configuration-aliases-troubleshooting.md)

Pour connaître les exigences relatives au formatage des paramètres et la résolution des problèmes, reportez-vous [MediaTailor référence et limites des paramètres](parameter-comprehensive-reference.md) aux sections et[MediaTailor guide de résolution des problèmes de paramètres](parameter-troubleshooting.md).

# MediaTailor variables de session pour les requêtes ADS
<a name="variables-session"></a>

AWS Elemental MediaTailor envoie les données de session au serveur de décision publicitaire (ADS) lorsque vous configurez AWS Elemental MediaTailor pour spécifier une ou plusieurs des variables répertoriées dans cette section dans l'URL du modèle ADS. Vous pouvez utiliser des variables individuelles et vous pouvez concaténer plusieurs variables pour créer une valeur unique. MediaTailor génère certaines valeurs et obtient le reste à partir de sources telles que le manifeste et la demande d'initialisation de session du joueur. 

Le tableau suivant décrit les variables de données de session que vous pouvez utiliser dans la configuration de l'URL de votre modèle de demande ADS. Les numéros de section indiqués dans le tableau correspondent à la version 2019a de la spécification 35 de la Society of Cable Telecommunications Engineers (SCTE), [Digital Program Insertion Gueing Message](https://account.scte.org/standards/library/catalog/scte-35-digital-program-insertion-cueing-message/). Pour plus de détails sur le préchargement des publicités, voir. [Publicités de prélecture](prefetching-ads.md)


| Nom | Disponible pour la prélecture des annonces | Section de spécification SCTE-35 | Description | 
| --- | --- | --- | --- | 
| [avail.index] | Oui |  | Nombre qui représente la position d'une annonce dans un index. Au début d'une session de diffusion, MediaTailor crée un index de toutes les publicités disponibles dans un manifeste et stocke l'index pour le reste de la session. Lorsque vous MediaTailor faites une demande à l'ADS pour remplir le fichier, celui-ci inclut le numéro d'index de disponibilité des annonces. Ce paramètre permet au serveur ADS d'améliorer la sélection des publicités en utilisant des fonctionnalités telles que l'exclusion concurrentielle et le plafonnement des fréquences. | 
| [avail.random] | Oui |  | Un nombre aléatoire compris entre 0 et 10 000 000 000, sous forme de nombre long, MediaTailor généré pour chaque demande adressée à l'ADS. Certains serveurs publicitaires utilisent ce paramètre pour activer des fonctionnalités telles que la séparation de publicités d'entreprises concurrentes. | 
| [scte.archive\$1allowed\$1flag] | Oui | 10.3.3.1 | Valeur booléenne facultative. Lorsque cette valeur est égale à 0, des restrictions d'enregistrement sont imposées au segment. Lorsque cette valeur est égale à 1, aucune restriction d'enregistrement n'est imposée au segment. | 
| [scte.avail\$1num] | Oui | 9.7.2.1 | La valeur analysée MediaTailor à partir du champ SCTE-35avail\$1num, sous forme de nombre long. MediaTailor peut utiliser cette valeur pour désigner des numéros de publicité linéaires.La valeur doit être un entier. | 
| [scte.avails\$1expected] | Oui | 9,7.2.1 | Une valeur longue facultative qui indique le nombre attendu d'essais dans le cadre de l'événement en cours. | 
| [scte.delivery\$1not\$1restricted\$1flag] | Oui | 10.3.3.1 | Valeur booléenne facultative. Lorsque cette valeur est égale à 0, les cinq bits suivants sont réservés. Lorsque cette valeur est égale à 1, les cinq bits suivants prennent la signification décrite dans la spécification SCTE-35. | 
| [scte.device\$1restrictions] | Oui | 10.3.3.1 | Valeur entière facultative qui indique trois groupes de périphériques prédéfinis, indépendants et non hiérarchiques. Pour plus d'informations sur cette variable, consultez la description segments\$1expected dans la spécification SCTE-35. | 
| [scte.event\$1id] | Oui | 9.1 et 9.7.2.1 | La valeur analysée MediaTailor à partir du champ SCTE-35splice\$1event\$1id, sous forme de nombre long. MediaTailor utilise cette valeur pour désigner les numéros linéaires de disponibilité des publicités ou pour renseigner les chaînes de requête du serveur publicitaire, telles que les positions des espaces publicitaires.La valeur doit être un entier. | 
| [scte.no\$1regional\$1blackout\$1flag] | Oui | 10.3.3.1 | Valeur booléenne facultative. Lorsque cette valeur est égale à 0, les restrictions d'interdiction régionales s'appliquent au segment. Lorsque cette valeur est égale à 1, les restrictions d'interdiction régionales ne s'appliquent pas au segment. | 
| [scte.segment\$1num] | Oui | 10.3.3.1 | Valeur entière facultative qui numérote les segments au sein d'une collection de segments. Pour plus d'informations sur cette variable, consultez la description de segment\$1num dans la spécification SCTE-35. | 
| [scte.segmentation\$1event\$1id]  | Oui | 10.3.3.1 | MediaTailor expose cette variable sous la forme[scte.event_id](#scte.event_id). | 
| [scte.segmentation\$1type\$1id] | Oui | 10.3.3.1 | Une valeur entière optionnelle de 8 bits qui indique le type de segmentation. Pour plus d'informations sur cette variable, consultez la description de segmentation\$1type\$1id dans la spécification SCTE-35. | 
| [scte.segmentation\$1upid] |  `segmentation_upid_type` : Oui `private_data` : Oui  |  **segmentation\$1upid** : 10.3.3.1 UPID privé géré : 10.3.3.3  |  Correspond à l'élément SCTE-35`segmentation_upid`. L'`segmentation_upid`élément contient `segmentation_upid_type` et`segmentation_upid_length`. MediaTailor prend en charge les `segmentation_upid` types suivants : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/variables-session.html)  | 
| [scte.segmentation\$1upid.assetId] | Oui |  | Utilisé conjointement avec le Managed Private UPID (0xC) segmentation\$1 upid\$1type pour les flux de travail de podbuster. MediaTailordérive cette valeur du assetId paramètre dans la structure private\$1data JSON du MPU. Pour de plus amples informations, veuillez consulter [Managed Private UPID JSON structure for a podbuster workflow](#podbuster-workflow). | 
| [scte.segmentation\$1upid.cueData.key] | Oui |  | Utilisé conjointement avec le Managed Private UPID (0xC) segmentation\$1 upid\$1type pour les flux de travail de podbuster. MediaTailordérive cette valeur du cueData.key paramètre dans la structure private\$1data JSON du MPU. Pour de plus amples informations, veuillez consulter [Managed Private UPID JSON structure for a podbuster workflow](#podbuster-workflow). | 
| [scte.segmentation\$1upid.cueData.value] | Oui |  | Utilisé conjointement avec le Managed Private UPID (0xC) segmentation\$1 upid\$1type pour les flux de travail de podbuster. MediaTailordérive cette valeur du cueData.key paramètre dans la structure private\$1data JSON du MPU. Pour de plus amples informations, veuillez consulter [Managed Private UPID JSON structure for a podbuster workflow](#podbuster-workflow).La valeur peut être une chaîne. | 
| [scte.segmentation\$1upid.private\$1data.\$1index\$1] | Oui |  | Utilisé conjointement avec le Managed Private UPID (0xC) segmentation\$1upid\$1type pour des flux de travail publicitaires ciblés. MediaTailor divise les jetons UPID de segmentation délimités par des deux-points et crée des variables de session indexées. L'index correspond à la position dans la liste délimitée par des deux-points, sans tenir compte des espaces blancs situés en tête à partir des deux points initiaux. Par exemple`segmentation_upid = ":3213214:2313321/5:3943"`, si : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/variables-session.html) La valeur peut être une chaîne. | 
| [scte.segments\$1expected] | Oui | 10.3.3.1 | Valeur entière facultative qui indique le nombre attendu de segments individuels au sein d'une collection de segments. Pour plus d'informations sur cette variable, consultez la description segments\$1expected dans la spécification SCTE-35. | 
| [scte.sub\$1segment\$1num] | Oui | 10.3.3.1 | Valeur entière facultative qui identifie un sous-segment particulier au sein d'un ensemble de sous-segments. Pour plus d'informations sur cette variable, consultez la description de sub\$1segment\$1num dans la spécification SCTE-35. | 
| [scte.sub\$1segments\$1expected] | Oui | 10.3.3.1 | Valeur entière facultative qui indique le nombre attendu de sous-segments individuels au sein d'une collection de sous-segments. Pour plus d'informations sur cette variable, consultez la description sub\$1segments\$1expected dans la spécification SCTE-35. | 
| [scte.unique\$1program\$1id] | Oui | 9.7.2.1 | La valeur entière analysée MediaTailor à partir du champ SCTE-35splice\$1insert. unique\$1program\$1id L'ADS utilise l'ID de programme unique (UPID) pour fournir un ciblage publicitaire au niveau du programme pour les flux linéaires en direct. Si la commande SCTE-35 n'est pas Splice Insert, lui MediaTailor attribue une valeur vide.La valeur doit être un entier. | 
| [session.avail\$1duration\$1ms] | Oui |  |  Durée en millisecondes du créneau de disponibilité des annonces. La valeur par défaut est de 300 000 ms. AWS Elemental MediaTailor obtient la valeur de durée à partir du manifeste d'entrée comme suit : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/variables-session.html)  | 
| [session.avail\$1duration\$1secs] | Oui |  | Durée en secondes du créneau de disponibilité publicitaire, ou disponibilité publicitaire, arrondie à la seconde la plus proche. MediaTailor détermine cette valeur de la même manière qu'elle le fait[session.avail\$1duration\$1ms]. | 
| [session.client\$1ip] | Non |  | Adresse IP distante d'où provient la MediaTailor demande. Si l'en-tête X-forwarded-for est défini, cette valeur est ce que MediaTailor utilise pour client\$1ip. | 
| [session.id] | Non |  | Identifiant numérique unique pour la session de lecture en cours. Toutes les demandes adressées par un joueur pour une session ont le même ID et, par conséquent, il peut être utilisé pour les champs ADS destinés à établir une corrélation entre les demandes d'une même visualisation. | 
| [session.referer] | Non |  | Il s'agit généralement de l'URL de la page hébergeant le lecteur vidéo. MediaTailor définit cette variable sur la valeur de l'Refereren-tête que le joueur a utilisé dans sa demande MediaTailor. Si le lecteur ne fournit pas cet en-tête, MediaTailor laisse vide [session.referer]. Si vous utilisez un réseau de diffusion de contenu (CDN) ou un proxy devant le point de terminaison du manifeste et que vous souhaitez que cette variable apparaisse, utilisez le proxy pour l'en-tête correct depuis le lecteur ici. | 
| [session.user\$1agent] | Non |  | User-AgentEn-tête MediaTailor reçu de la demande d'initialisation de session du joueur. Si vous utilisez un réseau de diffusion de contenu (CDN) ou un proxy devant le point de terminaison du manifeste, utilisez comme proxy l'en-tête correct du lecteur ici. | 
| [session.uuid] | Non |  |  Alternative à**[session.id]**. Il s'agit d'un identifiant unique pour la session courante de lecture, tel que le suivant : <pre>e039fd39-09f0-46b2-aca9-9871cc116cde</pre>  | 
| [avail.source\$1content\$1time\$1epoch\$1ms] | Non |  |  Pour HLS, la valeur est le PDT du segment d'origine qui a démarré l'utilisation. Pour DASH, la valeur est `<SupplementalProperty> urn:scte:dash:utc-time` celle `<Period>` qui contient le`<EventStream>`. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/variables-session.html)  | 

**Example**  
Si le serveur ADS nécessite un paramètre de requête nommé `deviceSession` pour le transmettre avec l'identificateur de session unique, le modèle d'URL du serveur ADS dans AWS Elemental MediaTailor peut se présenter comme suit :  

```
https://my.ads.server.com/path?deviceSession=[session.id]
```
AWS Elemental MediaTailor génère automatiquement un identifiant unique pour chaque flux et saisit l'identifiant à la place de`session.id`. Si l'identifiant est le cas`1234567`, la demande finale MediaTailor envoyée à l'ADS ressemblera à ceci :  

```
https://my.ads.server.com/path?deviceSession=1234567
```
Si l'ADS nécessite la transmission de plusieurs paramètres de requête, l'URL ADS du modèle AWS Elemental MediaTailor peut se présenter comme suit :  

```
https://my.ads.server.com/sample?e=[scte.avails_expected]&f=[scte.segment_num]&g=[scte.segments_expected]&h=[scte.sub_segment_num]&j=[scte.sub_segments_expected]&k=[scte.segmentation_type_id]
```
Le fragment XML d'exemple de marqueur DASH suivant montre comment utiliser `scte35:SpliceInsert` :  

```
<Period start="PT444806.040S" id="123456" duration="PT15.000S">
  <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
    <Event duration="1350000">
      <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="180832" tier="4095">
        <scte35:SpliceInsert spliceEventId="1234567890" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
          <scte35:Program><scte35:SpliceTime ptsTime="5672624400"/></scte35:Program>
          <scte35:BreakDuration autoReturn="true" duration="1350000"/>
        </scte35:SpliceInsert>
      </scte35:SpliceInfoSection>
```
Le fragment XML d'exemple de marqueur DASH suivant montre comment utiliser `scte35:TimeSignal` :  

```
<Period start="PT346530.250S" id="123456" duration="PT61.561S">
  <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
    <Event duration="5310000">
      <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="183003" tier="4095">
        <scte35:TimeSignal>
          <scte35:SpliceTime ptsTime="3442857000"/>
        </scte35:TimeSignal>
        <scte35:SegmentationDescriptor segmentationEventId="1234567" segmentationEventCancelIndicator="false" segmentationDuration="8100000" segmentationTypeId="52" segmentNum="0" segmentsExpected="0">
          <scte35:DeliveryRestrictions webDeliveryAllowedFlag="false" noRegionalBlackoutFlag="false" archiveAllowedFlag="false" deviceRestrictions="3"/>
          <scte35:SegmentationUpid segmentationUpidType="12" segmentationUpidLength="2">0100</scte35:SegmentationUpid>
        </scte35:SegmentationDescriptor>
      </scte35:SpliceInfoSection>
    </Event>
```
Le fragment XML d'exemple de marqueur DASH suivant montre comment utiliser `scte35:Binary` :  

```
<Period start="PT444806.040S" id="123456" duration="PT15.000S">
  <EventStream schemeIdUri="urn:scte:scte35:2014:xml+bin" timescale="1">
    <Event presentationTime="1541436240" duration="24" id="29">
      <scte35:Signal xmlns="http://www.scte.org/schemas/35/2016">
        <scte35:Binary>/DAhAAAAAAAAAP/wEAUAAAHAf+9/fgAg9YDAAAAAAAA25aoh</Binary>
      </scte35:Signal>
    </Event>
    <Event presentationTime="1541436360" duration="24" id="30">
      <scte35:Signal xmlns="http://www.scte.org/schemas/35/2016">
        <scte35:Binary>QW5vdGhlciB0ZXN0IHN0cmluZyBmb3IgZW5jb2RpbmcgdG8gQmFzZTY0IGVuY29kZWQgYmluYXJ5Lg==</Binary>
      </scte35:Signal>
    </Event>
```
L'exemple de balise HLS suivant montre comment utiliser `EXT-X-DATERANGE` :  

```
#EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2014-03-05T11:
15:00Z",PLANNED-DURATION=59.993,SCTE35-OUT=0xFC002F0000000000FF0
00014056FFFFFF000E011622DCAFF000052636200000000000A0008029896F50
000008700000000
```
L'exemple de balise HLS suivant montre comment utiliser `EXT-X-CUE-OUT` :  

```
#EXT-OATCLS-SCTE35:/DA0AAAAAAAAAAAABQb+ADAQ6QAeAhxDVUVJQAAAO3/PAAEUrEoICAAAAAAg+2UBNAAANvrtoQ==  
#EXT-X-ASSET:CAID=0x0000000020FB6501  
#EXT-X-CUE-OUT:201.467
```
L'exemple de balise HLS suivant montre comment utiliser `EXT-X-SPLICEPOINT-SCTE35` :  

```
#EXT-X-SPLICEPOINT-SCTE35:/DA9AAAAAAAAAP/wBQb+uYbZqwAnAiVDVUVJAAAKqX//AAEjW4AMEU1EU05CMDAxMTMyMjE5M19ONAAAmXz5JA==
```
L'exemple suivant montre comment utiliser le `scte35:Binary` décodage :  

```
{
  "table_id": 252,
  "section_syntax_indicator": false,
  "private_indicator": false,
  "section_length": 33,
  "protocol_version": 0,
  "encrypted_packet": false,
  "encryption_algorithm": 0,
  "pts_adjustment": 0,
  "cw_index": 0,
  "tier": "0xFFF",
  "splice_command_length": 16,
  "splice_command_type": 5,
  "splice_command": {
    "splice_event_id": 448,
    "splice_event_cancel_indicator": false,
    "out_of_network_indicator": true,
    "program_splice_flag": true,
    "duration_flag": true,
    "splice_immediate_flag": false,
    "utc_splice_time": {
      "time_specified_flag": false,
      "pts_time": null
    },
    "component_count": 0,
    "components": null,
    "break_duration": {
      "auto_return": false,
      "duration": {
        "pts_time": 2160000,
        "wall_clock_seconds": 24.0,
        "wall_clock_time": "00:00:24:00000"
      }
    },
    "unique_program_id": 49152,
    "avail_num": 0,
    "avails_expected": 0
    "segment_num": 0,
    "segments_expected": 0,
    "sub_segment_num": 0,
    "sub_segments_expected": 0
  },
  "splice_descriptor_loop_length": 0,
  "splice_descriptors": null,
  "Scte35Exception": {
    "parse_status": "SCTE-35 cue parsing completed with 0 errors.",
    "error_messages": [],
    "table_id": 252,
    "splice_command_type": 5
  }
}
```

# MediaTailor variables du joueur pour les requêtes ADS
<a name="variables-player"></a>

AWS Elemental MediaTailor envoie les données reçues du joueur à l'ADS lorsque vous configurez AWS Elemental MediaTailor pour spécifier `player_params.<query_parameter_name>` des variables dans l'URL du modèle ADS. Par exemple, si le joueur envoie un paramètre de requête nommé `user_id` dans sa demande à MediaTailor, pour transmettre ces données dans la demande ADS, incluez-le `[player_params.user_id]` dans la configuration de l'URL ADS. 

Cela vous permet de contrôler les paramètres de la requête qui sont inclus dans la demande ADS. En général, vous ajoutez un paramètre de requête particulier que le serveur ADS reconnaît à l'URL de demande du serveur ADS et fournissez les paires clé-valeur comme la valeur du paramètre. 

Les exemples utilisés dans la procédure suivante utilisent les paires clé-valeur suivantes :
+ *param1* avec une valeur *valeur1 :*
+ *param2* avec une valeur *valeur2 :*

**Pour ajouter les paramètres de requête en tant que paires clé-valeur** 

1. Dans AWS Elemental MediaTailor, configurez l'URL du modèle de demande ADS pour référencer les paramètres. L'URL suivante affiche l'inclusion des exemples de paramètres : 

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

1. (Facultatif) Pour le reporting du suivi publicitaire côté serveur, encodez dans l'URL les paires clé-valeur du lecteur. Lorsqu'il MediaTailor reçoit la demande d'initialisation de session, il décode les valeurs une fois avant de les substituer dans l'URL de la demande ADS. 
**Note**  
Si votre ADS nécessite une valeur codée comme URL, codez comme URL la valeur deux fois sur le lecteur. De cette façon, le décodage effectué par produit MediaTailor une valeur codée une fois pour l'ADS. 

   Par exemple, si la représentation décodée des valeurs envoyées au serveur ADS est `param1=value1:&param2=value2:`, la représentation codée en URL est `param1=value1%3A&param2=value2%3A`.

1. Dans l'appel d'initialisation de session lancé par le joueur, transmettez les paires clé-valeur à MediaTailor en tant que valeur d'un seul paramètre de requête. Les exemples d'appels suivants fournissent les exemples de paires clé-valeur pour le reporting du suivi publicitaire côté serveur et côté client.
   + Exemple de demandes pour le reporting de suivi publicitaire côté serveur - avec les paires encodées en URL

     HLS :

     ```
     <master>.m3u8?ads.param1=value1%3A&ads.param2=value2%3A
     ```

     DASH :

     ```
     <manifest>.mpd?ads.param1=value1%3A&ads.param2=value2%3A
     ```
   + Exemple de demande de reporting de suivi publicitaire côté client – sans encodage de l'URL

     HLS :

     ```
     POST <master>.m3u8
         {
             "adsParams": {
                "param1": "value1:",
                "param2": "value2:"
            }
         }
     ```

     DASH :

     ```
     POST <manifest>.mpd
         {
             "adsParams": {
                "param1": "value1:",
                "param2": "value2:"
            }
         }
     ```

Pour les rapports côté serveur, MediaTailor décode les paramètres lorsque la demande du joueur est reçue. Pour les rapports côté client, cela ne modifie pas les paramètres reçus dans la charge utile JSON. MediaTailor envoie la demande suivante à l'ADS :

```
https://my.ads.com/<path>?param1=value1:&param2=value2:
```

De cette manière, les paires clé-valeur `param1` et `param2` sont incluses en tant que paramètres de requête de première classe dans la demande ADS.

# MediaTailor variables de domaine pour plusieurs sources de contenu
<a name="variables-domains"></a>

AWS Elemental MediaTailor les variables de domaine dynamiques vous permettent d'utiliser plusieurs domaines, tels que la partie **my-ads-server.com** de l'URL http ://my-ads-server.com, avec les paramètres du lecteur dans votre configuration. Cela vous permet d'utiliser plusieurs sources de contenu ou plusieurs serveurs de décision publicitaire (ADS) dans une seule configuration. 

 Vous pouvez utiliser des variables de domaine avec n'importe quel paramètre contenant un URI : 
+ `AdDecisionServerUrl`
+ `AdSegmentUrlPrefix`
+ `ContentSegmentUrlPrefix`
+ `LivePreroll.AdDecisionServerUrl`
+ `VideoContentSourceUrl`

 Les variables de domaine sont utilisées conjointement avec les *alias de configuration* pour effectuer le remplacement dynamique des variables. Les alias de configuration associent un ensemble d'alias et de valeurs aux paramètres du joueur utilisés pour la configuration dynamique du domaine. Pour les procédures de configuration, voir[Création et utilisation d'alias de configuration avec MediaTailor](creating-configuration-aliases.md). Pour des informations de référence détaillées, voir[MediaTailor vue d'ensemble des alias de configuration](configuration-aliases-overview.md). 

# MediaTailor vue d'ensemble des alias de configuration
<a name="configuration-aliases-overview"></a>

AWS Elemental MediaTailor les alias de configuration permettent le remplacement dynamique des variables dans les domaines URL et autres champs pris en charge. Utilisez cette fonctionnalité pour utiliser plusieurs domaines et effectuer une configuration dynamique URLs lors de l'initialisation de la session.

## Cas d’utilisation
<a name="configuration-aliases-use-cases"></a>

Les alias de configuration permettent d'utiliser des architectures multiconfigurations sophistiquées pour les scénarios suivants :
+ **Routage géographique : acheminez** les demandes vers différentes origines ou vers différents serveurs publicitaires en fonction de la localisation des internautes à l'aide d'alias spécifiques à la région. Pour obtenir des conseils de mise en œuvre, consultez [CloudFront Origin Failover](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/high_availability_origin_failover.html).
+ **Routage basé sur le contenu : Dirigez** les différents types de contenu vers des origines ou des pipelines de traitement spécialisés. Pour la configuration du comportement de routage, voir[Configurer les comportements de routage du CDN pour MediaTailor](cdn-routing-behaviors.md).
+ **Scénarios de basculement :** implémentez les origines de sauvegarde et les serveurs publicitaires avec un basculement automatique à l'aide du changement d'alias. Pour une mise en œuvre détaillée, voir [Mettre en œuvre la résilience multirégionale MediaTailor avec MQAR](media-quality-resiliency.md) et[Planifiez votre intégration au CDN pour AWS Elemental MediaTailor](planning-cdn-integration.md).
+ **Tests A/B :** testez différents serveurs publicitaires, origines ou configurations en acheminant le trafic en fonction des paramètres du joueur. Pour obtenir des conseils sur les tests de charge, consultez [Préparer et exécuter des tests de performance pour Amazon CloudFront avec une véritable surveillance des utilisateurs](https://aws.amazon.com/blogs/networking-and-content-delivery/prepare-and-run-performance-tests-for-amazon-cloudfront-with-real-user-monitoring/).
+ **Optimisation spécifique à l'appareil :** optimisez la diffusion de contenu et la diffusion d'annonces pour différents types d'appareils ou fonctionnalités. Pour des conseils complets, voir[Configurer le filtrage des manifestes avec MediaTailor MediaPackage, et le CDN](cdn-emp-manifest-filtering.md).
+ **Équilibrage de charge :** répartissez la charge entre plusieurs origines ou serveurs publicitaires à l'aide du routage dynamique. Pour des conseils de mise en œuvre, voir [Mettre en œuvre la résilience multirégionale MediaTailor avec MQAR](media-quality-resiliency.md) et[Planifiez votre intégration au CDN pour AWS Elemental MediaTailor](planning-cdn-integration.md).

## Champs pris en charge
<a name="configuration-aliases-supported"></a>

Vous pouvez utiliser des variables dynamiques dans les champs de configuration suivants :
+ `VideoContentSourceUrl`
+ `AdDecisionServerUrl`
+ `LivePreroll.AdDecisionServerUrl`
+ `AdSegmentUrlPrefix`
+ `ContentSegmentUrlPrefix`
+ `TranscodeProfileName`
+ `SlateAdUrl`
+ `StartUrl`
+ `EndUrl`

Les sections suivantes décrivent comment utiliser les alias de configuration.

**Topics**
+ [Cas d’utilisation](#configuration-aliases-use-cases)
+ [Champs pris en charge](#configuration-aliases-supported)
+ [Création et utilisation](creating-configuration-aliases.md)
+ [Exemple de flux](configuration-aliases-examples.md)

# Création et utilisation d'alias de configuration avec MediaTailor
<a name="creating-configuration-aliases"></a>

Avant de commencer à utiliser des variables de domaine, vous devez créer des alias de configuration pour votre configuration. Vous utilisez les alias de configuration comme variables de remplacement de domaine au moment de l'initialisation de la session.

**Restrictions**  
Notez les restrictions suivantes lorsque vous utilisez des alias de configuration :
+ Toutes les variables dynamiques utilisées dans le domaine doivent être définies en tant que variables `ConfigurationAliases` dynamiques.
+ Les variables des paramètres du joueur doivent être préfixées par`player_params.`. Par exemple, `player_params.origin_domain`.
+ La liste des valeurs aliasées doit être exhaustive pour les variables de domaine dans critical URLs (`VideoContentSourceUrl`,`AdSegmentUrlPrefix`,`ContentSegmentUrlPrefix`).
+ Si une demande est faite pour une variable de domaine critique URLs qui ne spécifie pas la variable dynamique ou utilise un alias non valide, la demande échouera avec un code d'`400`état HTTP. Les champs non critiques (`SlateAdUrl`,`TranscodeProfileName`, bumper URLs) enregistreront les avertissements mais ne feront pas échouer la demande.

**Comportement de secours en cas d'alias manquants**  
Lorsque les alias de configuration sont introuvables ou ne sont pas valides, MediaTailor implémente le comportement de secours suivant :
+ **Variables de domaine :** si un alias de variable de domaine est manquant ou non valide, la demande échoue avec le code d'état HTTP 400. Des alias valides doivent être définis pour toutes les variables de domaine.
+ **Variables non liées au domaine :** pour les variables utilisées dans des parties non liées au domaine de URLs (telles que les éléments de chemin ou les paramètres de requête), les alias manquants entraînent le remplacement de chaînes vides.
+ **Validation de la configuration :** MediaTailor vérifie que tous les alias requis sont présents lors des opérations de création et de mise à jour de la configuration.

## Étape 1 : créer des alias de configuration
<a name="dynamic-domains-creating-configuration-alias"></a>

Pour créer des alias de configuration à utiliser pour le remplacement de domaines à l'aide de la MediaTailor console, effectuez la procédure suivante.

------
#### [ Console ]

**Pour créer des alias de configuration à l'aide de la console**

1. Ouvrez la MediaTailor console à l'adresse [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1. Dans la section **Alias de configuration** de la page **Configurations**, choisissez **Ajouter un paramètre de joueur**. 

1. Dans **Paramètre du joueur**, entrez le nom du paramètre du joueur que vous souhaitez utiliser comme variable dynamique. Par exemple, `player_params.origin_domain`. 

1. **Dans Alias**, entrez les alias et leurs valeurs que vous souhaitez utiliser pour le paramètre du joueur. 

1. Choisissez **OK**. 

   AWS Elemental MediaTailor affiche le nouveau paramètre dans le tableau de la section **Alias de configuration**.

1. Répétez les étapes précédentes pour ajouter d'autres paramètres au joueur. 

1. Choisissez **Enregistrer**. 

------
#### [ API ]

**Pour créer des alias de configuration à l'aide de l'API**  
Lorsque vous créez ou mettez à jour une MediaTailor configuration, utilisez le `ConfigurationAliases` paramètre avec la structure JSON suivante : 

```
{
                "ConfigurationAliases": {
                "player_params.origin_domain": {
                "pdx": "abc.mediapackage.us-west-2.amazonaws.com",
                "iad": "xyz.mediapackage.us-east-1.amazonaws.com"
                },
                "player_params.ad_type": {
                "customized": "abc12345",
                "default": "defaultAdType"
                }
                }
                }
```

------

## Étape 2 : Utiliser des alias de configuration lors de l'initialisation de session
<a name="dynamic-domains-using-configuration-alias"></a>

Après avoir configuré les alias de configuration, vous pouvez les utiliser comme variables de remplacement pour les domaines dans votre demande d'initialisation de session. Cela vous permet de configurer dynamiquement les domaines de votre session.

**Example Exemple d'alias de configuration de base**  
Voici un exemple de configuration de base qui inclut des alias de configuration et des variables de domaine dynamiques :  

```
PUT /playbackConfiguration
{
    "Name": "aliasedConfig",
    "AdDecisionServerUrl": "https://abc.execute-api.us-west-2.amazonaws.com/ads?sid=[session.id]&ad_type=[player_params.ad_type]",
    "VideoContentSourceUrl": "https://[player_params.origin_domain].mediapackage.[player_params.region].amazonaws.com/out/v1/[player_params.endpoint_id]",
    "ConfigurationAliases": {
        "player_params.origin_domain": {
            "pdx": "abc",
            "iad": "xyz"
        },
        "player_params.region": {
            "pdx": "us-west-2",
            "iad": "us-east-1"
        },
        "player_params.endpoint_id": {
            "pdx": "abcd",
            "iad": "wxyz"
        },
        "player_params.ad_type": {
            "customized": "abc12345",
            "default": "defaultAdType"
        }
    }
}
```

**Example Initialisation de session avec des alias**  
En utilisant la configuration précédente, une demande d'initialisation de session utilisant les variables et les alias du lecteur ressemblerait à ce qui suit :  

```
POST index.m3u8
{
    "playerParams": {
        "origin_domain": "pdx",
        "region": "pdx",
        "endpoint_id": "pdx",
        "ad_type": "customized"
    }
}
```
MediaTailor remplace les chaînes d'alias par les valeurs mappées dans la configuration des alias de configuration.  
La demande adressée à l'ADS ressemblera à ce qui suit :  

```
https://abc.execute-api.us-west-2.amazonaws.com/ads?sid=[session.id]&ad_type=abc12345
```
La demande adressée à l'origine pour les manifestes ressemblera à ce qui suit :  

```
https://abc.mediapackage.us-west-2.amazonaws.com/out/v1/abcd
```

# Alias de configuration avec exemple MediaTailor d'utilisation
<a name="configuration-aliases-examples"></a>

Les exemples suivants illustrent une MediaTailor configuration complète avec des alias de configuration, une demande d'initialisation de session avec des alias et le flux de traitement des alias.

**Example Configuration complète avec alias**  
L'exemple suivant montre une configuration complète qui inclut des alias de configuration et des variables de domaine dynamiques :   

```
PUT /playbackConfiguration
{
    "Name": "aliasedConfig",
    "AdDecisionServerUrl": "https://abc.execute-api.us-west-2.amazonaws.com/ads?sid=[session.id]&ad_type=[player_params.ad_type]",
    "VideoContentSourceUrl": "https://[player_params.origin_domain].mediapackage.[player_params.region].amazonaws.com/out/v1/[player_params.endpoint_id]",
    
    "AdSegmentUrlPrefix": "https://[player_params.ad_cdn_domain]/ads/",
    "ContentSegmentUrlPrefix": "https://[player_params.content_cdn_domain]/content/",
    "TranscodeProfileName": "[player_params.transcode_profile]",
    "SlateAdUrl": "https://[player_params.slate_domain]/slate/[player_params.slate_type].mp4",
    "StartUrl": "https://[player_params.tracking_domain]/start?session=[session.id]",
    "EndUrl": "https://[player_params.tracking_domain]/end?session=[session.id]",
    
    "ConfigurationAliases": {
        "player_params.origin_domain": {
            "pdx": "abc",
            "iad": "xyz"
        },
        "player_params.region": {
            "pdx": "us-west-2",
            "iad": "us-east-1"
        },
        "player_params.endpoint_id": {
            "pdx": "abcd",
            "iad": "wxyz"
        },
        "player_params.ad_type": {
            "customized": "abc12345",
            "default": "defaultAdType"
        },
        "player_params.ad_cdn_domain": {
            "pdx": "ads-west.cdn.example.com",
            "iad": "ads-east.cdn.example.com"
        },
        "player_params.content_cdn_domain": {
            "pdx": "content-west.cdn.example.com",
            "iad": "content-east.cdn.example.com"
        },
        "player_params.transcode_profile": {
            "mobile": "mobile_optimized",
            "desktop": "high_quality",
            "tv": "4k_profile"
        },
        "player_params.slate_domain": {
            "pdx": "slate-west.example.com",
            "iad": "slate-east.example.com"
        },
        "player_params.slate_type": {
            "standard": "default_slate",
            "branded": "brand_slate"
        },
        "player_params.tracking_domain": {
            "pdx": "tracking-west.example.com",
            "iad": "tracking-east.example.com"
        }
    }
}
```

**Example Initialisation de session avec des alias**  
L'exemple suivant montre une demande d'initialisation de session qui spécifie les variables et alias du joueur :   

```
POST master.m3u8
{
    "playerParams": {
        "origin_domain": "pdx",
        "region": "pdx", 
        "endpoint_id": "pdx",
        "ad_type": "customized",
        "ad_cdn_domain": "pdx",
        "content_cdn_domain": "pdx",
        "transcode_profile": "mobile",
        "slate_domain": "pdx",
        "slate_type": "branded",
        "tracking_domain": "pdx"
    }
}
```

**Example Flux de traitement des paramètres**  
Dans l'exemple suivant, MediaTailor remplace les chaînes d'alias par les valeurs mappées dans les alias de configuration. Le traitement donne lieu aux demandes suivantes :   
+ Demande ADS :

  ```
  https://abc.execute-api.us-west-2.amazonaws.com/ads?sid=[session.id]&ad_type=abc12345
  ```
+ VideoContentSource demande :

  ```
  https://abc.mediapackage.us-west-2.amazonaws.com/out/v1/abcd
  ```
+ AdSegmentUrlPrefix:

  ```
  https://ads-west.cdn.example.com/ads/
  ```
+ ContentSegmentUrlPrefix:

  ```
  https://content-west.cdn.example.com/content/
  ```
+ TranscodeProfileName:

  ```
  mobile_optimized
  ```
+ SlateAdUrl:

  ```
  https://slate-west.example.com/slate/brand_slate.mp4
  ```
+ StartUrl:

  ```
  https://tracking-west.example.com/start?session=[session.id]
  ```
+ EndUrl:

  ```
  https://tracking-west.example.com/end?session=[session.id]
  ```

# MediaTailor transmission de paramètres à ADS
<a name="passing-paramters-to-the-ads"></a>

AWS Elemental MediaTailor prend en charge la configuration de variables dynamiques dans les MediaTailor demandes adressées à l'ADS en suivant les étapes suivantes. 
+ Pour plus d'informations sur le formatage pris en charge pour les paramètres de requête, consultez[MediaTailor référence et limites des paramètres](parameter-comprehensive-reference.md).
+ Pour les alias de configuration et les variables de domaine, consultez[MediaTailor vue d'ensemble des alias de configuration](configuration-aliases-overview.md).
+ Pour des personnalisations supplémentaires de la demande ADS, voir[Utilisation avancée](#variables-advanced-usage).

**Méthodes d'initialisation de session**  
MediaTailor prend en charge plusieurs méthodes d'initialisation de session et de transmission de paramètres : 

1. **POST avec le corps de la requête :**

   ```
   POST <master>.m3u8
   {
       "adsParams": {"param1": "value1", "param2": "value2"},
       "playerParams": {"param3": "value3"}
   }
   ```

1. **Paramètres de requête dans l'URL :**

   ```
   GET <master>.m3u8?ads.param1=value1&ads.param2=value2&playerParams.param3=value3
   ```

**Important**  
Vous ne pouvez spécifier les paramètres qu'une seule fois, au moment de l'initialisation. Les alias de configuration sont résolus en valeurs réelles avant le transfert. 

**Pour transmettre les informations de session et de lecteur au serveur ADS**

1. Collaborez avec l'ADS pour déterminer les informations dont il a besoin pour répondre à une requête publicitaire provenant de celui-ci AWS Elemental MediaTailor. 

1. Créez une configuration MediaTailor qui utilise un modèle d'URL de demande ADS qui répond aux exigences ADS. Dans l'URL, incluez les paramètres statiques et les espaces réservés correspondant aux paramètres dynamiques. Entrez l'URL de votre modèle dans le champ **Ad decision server (Serveur ADS)** de la configuration. 

   Dans l'exemple suivant d'URL du modèle `correlation` fournit les données de session et `deviceType` fournit des données de lecteur : 

   ```
   https://my.ads.server.com/path?correlation=[session.id]&deviceType=[player_params.deviceType]
   ```

1. Sur le joueur, configurez la demande d'initiation de session pour que AWS Elemental MediaTailor fournisse les paramètres pour les données de lecteur. Incluez vos paramètres dans la demande d'initiation de session et omettez-les des demandes suivantes pour la session. 

   Le type d'appel effectué par le joueur pour initialiser la session détermine si le joueur (client) ou MediaTailor (serveur) fournit des rapports de suivi publicitaire pour la session. Pour plus d'informations sur ces deux options, consultez la section [Signalement des données de suivi et](ad-reporting.md). 

   Effectuez l'une des types suivants d'appels, selon que vous voulez un rapport de suivi publicitaire côté serveur ou côté client. Dans les deux exemples d'appels, `userID` est destiné au serveur ADS et `auth_token` à l'origine :
   + (Option) Demandez des rapports de suivi des publicités côté serveur — Préfixez les paramètres que vous souhaitez envoyer MediaTailor à l'ADS. `ads` Conservez le préfixe désactivé pour les paramètres que MediaTailor doit envoyer au serveur d'origine : 

     Les exemples suivants montrent les demandes entrantes adressées à HLS et DASH à AWS Elemental MediaTailor. MediaTailor utilise le `deviceType` dans sa demande à l'ADS et `auth_token` dans sa demande au serveur d'origine. 

     Exemple HLS :

     ```
     GET master.m3u8?ads.deviceType=ipad&auth_token=kjhdsaf7gh
     ```

     Exemple DASH :

     ```
     GET manifest.mpd?ads.deviceType=ipad&auth_token=kjhdsaf7gh
     ```
   + (Option) Demandez des rapports de suivi des publicités côté client — Fournissez les paramètres de l'ADS à l'intérieur d'un objet. `adsParams`

     Exemple HLS :

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

     Exemple DASH :

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

Lorsque le joueur lance une session, il AWS Elemental MediaTailor remplace les variables du modèle d'URL de demande ADS par les données de session et les `ads` paramètres du joueur. Il transmet les paramètres restants du lecteur au serveur d'origine. 

**Example MediaTailor demandes avec variables publicitaires**  
Les exemples suivants illustrent les appels à l'ADS et au serveur d'origine provenant d' AWS Elemental MediaTailor qui correspondent aux exemples d'appel d'initialisation de session de lecteur précédents :   
+ MediaTailor appelle l'ADS avec les données de session et le type d'appareil du joueur : 

  ```
  https://my.ads.server.com/path?correlation=896976764&deviceType=ipad
  ```
+ MediaTailor appelle le serveur d'origine avec le jeton d'autorisation du joueur.
  + Exemple HLS :

    ```
    https://my.origin.server.com/master.m3u8?auth_token=kjhdsaf7gh
    ```
  + Exemple DASH :

    ```
    https://my.origin.server.com/manifest.mpd?auth_token=kjhdsaf7gh
    ```

## Utilisation avancée
<a name="variables-advanced-usage"></a>

Vous pouvez personnaliser la demande ADS de multiples façons avec les données du lecteur et les données de session. Il vous suffit d'inclure le nom d'hôte ADS. 

Les exemples suivants illustrent certaines façons de personnaliser votre demande : 
+ Concaténez les paramètres du lecteur et les paramètres de session pour créer de nouveaux paramètres. Exemple : 

  ```
  https://my.ads.com?key1=[player_params.value1][session.id]
  ```
+ Utilisez un paramètre du lecteur comme partie intégrante d'un élément du chemin. Exemple :

  ```
  https://my.ads.com/[player_params.path]?key=value
  ```
+ Utilisez les paramètres du lecteur pour transmettre les éléments du chemin d'accès et les clés elles-mêmes, plutôt que les seules valeurs. Exemple : 

  ```
  https://my.ads.com/[player_params.path]?[player_params.key1]=[player_params.value1]
  ```

# MediaTailor routage des paramètres pour ADS et origines
<a name="parameter-routing-behavior"></a>

AWS Elemental MediaTailor achemine les paramètres de requête vers différentes destinations en fonction de leur préfixe et de leur objectif. Comprendre le routage des paramètres est essentiel pour implémenter des fonctionnalités spécifiques à l'origine, telles que la visualisation décalée dans le temps avec. MediaPackage

**Règles de routage des paramètres**  
MediaTailor utilise les règles de routage suivantes pour les paramètres de requête :
+ **Paramètres d'origine (pas de préfixe) :** les paramètres sans préfixe spécifique sont transmis au serveur d'origine pour des fonctionnalités spécifiques à l'origine
+ **Paramètres ADS (`ads.`préfixe) :** les paramètres préfixés par `ads.` sont envoyés au serveur Ad Decision
+ **Paramètres du manifeste (`manifest.`préfixe) :** les paramètres préfixés par `manifest.` sont utilisés pour le routage et l'autorisation du CDN

**Example Exemple de routage de paramètres**  
L'initialisation de session suivante illustre le routage des paramètres :  

```
POST /v1/session/123456789/originId/index.m3u8
{
    "adsParams": {
        "param1": "value1",
        "param2": "value2"
    },
    "manifestParams": {
        "auth_token": "abc123"
    }
}
```
Dans cet exemple :  
+ `param1`et `param2` sont envoyés à l'ADS
+ `auth_token`est utilisé pour le routage et l'autorisation du CDN
+ Les paramètres sans préfixes seraient transmis au serveur d'origine

## Comportement des paramètres du serveur Origin
<a name="origin-parameter-behavior"></a>

Les paramètres transmis aux serveurs d'origine activent des fonctionnalités spécifiques à l'origine, telles que l'affichage décalé dans le temps, le filtrage du contenu et l'authentification.

**Cas d'utilisation courants des paramètres d'origine**  
Les paramètres d'origine sont couramment utilisés pour :
+ **Affichage décalé dans le temps :** `start` et `end` paramètres pour le contenu décalé MediaPackage dans le temps
+ **Authentification du contenu :** jetons d'authentification requis par le serveur d'origine
+ **Filtrage du contenu :** paramètres qui contrôlent les variantes de contenu renvoyées
+ **Fonctionnalités spécifiques à l'origine :** tous les paramètres utilisés par le serveur d'origine pour le traitement du contenu

**Important**  
Les paramètres sont traités lors de l'initialisation de la session et conservés tout au long de la session. Pour modifier des paramètres tels que les fenêtres de décalage temporel, vous devez créer une nouvelle session avec des valeurs mises à jour.

# MediaTailor et intégration de la visualisation MediaPackage décalée dans le temps
<a name="mediapackage-integration-param"></a>

AWS Elemental MediaTailor peut transmettre des paramètres d'affichage décalés dans le temps aux MediaPackage origines pour activer les fonctionnalités de visualisation de démarrage et de rattrapage. Cette intégration permet aux spectateurs de commencer à regarder du contenu en direct à des moments antérieurs.

**MediaPackage paramètres de visualisation décalés dans le temps**  
MediaPackage prend en charge les paramètres d'affichage décalés dans le temps suivants qui peuvent être transmis MediaTailor :
+ `start`: Epoch ou horodatage ISO 8601 définissant le début du manifeste décalé dans le temps
+ `end`: horodatage Epoch ou ISO 8601 définissant la fin du manifeste décalé dans le temps
+ `time_delay`: retarde la disponibilité du contenu de quelques secondes
+ `manifest_window_seconds`: demande un manifeste plus court que la fenêtre configurée

**Example MediaTailor initialisation de session avec paramètres décalés MediaPackage dans le temps**  
L'exemple suivant montre comment initialiser une session avec des paramètres d'affichage décalés dans le temps :  

```
GET /v1/master/123456789/originId/index.m3u8?start=2024-08-26T10:00:00Z&end=2024-08-26T11:00:00Z
```
Ou en utilisant une initialisation de session explicite :  

```
POST /v1/session/123456789/originId/index.m3u8
{
    "adsParams": {
        "param1": "value1"
    }
}
```
Avec des paramètres de requête supplémentaires :  

```
?start=2024-08-26T10:00:00Z&end=2024-08-26T11:00:00Z
```

**Comportement des paramètres pendant les sessions**  
Les paramètres de visualisation décalés dans le temps présentent des caractéristiques de comportement spécifiques :
+ **Initialisation de session :** les paramètres sont traités lors de la création de la session
+ **Persistance des paramètres :** les paramètres restent associés à la session pendant toute la durée de la lecture
+ **Immuable après l'initialisation :** les paramètres ne peuvent pas être modifiés pendant une session active
+ **Nouvelle session requise :** pour modifier les fenêtres de décalage horaire, créez une nouvelle session avec des valeurs de paramètres mises à jour

**MediaPackage exigences relatives à la fenêtre de démarrage**  
Pour que l'affichage décalé dans le temps fonctionne MediaPackage, assurez-vous de ce qui suit :

1. Configurez une fenêtre de démarrage sur votre MediaPackage terminal (jusqu'à 24 heures)

1. Assurez-vous que votre CDN transmet les paramètres de requête nécessaires à MediaPackage

1. Utilisez des fenêtres de lecture cohérentes entre les sessions de lecteur pour une meilleure mise en cache du CDN

1. Vérifiez que les heures de début et de fin se situent dans la fenêtre de démarrage configurée

**Important**  
Lorsque vous utilisez l'affichage décalé dans le temps, utilisez des fenêtres de lecture cohérentes entre les sessions de lecteur plutôt que de générer des heures de début ou de fin uniques pour chaque spectateur. Cela permet une meilleure mise en cache sur le CDN et évite un éventuel ralentissement.

Pour des informations complètes sur la configuration et les paramètres de l'affichage MediaPackage décalé dans le temps, voir [Affichage décalé](https://docs.aws.amazon.com/mediapackage/latest/ug/time-shifted.html) dans le temps AWS Elemental MediaPackage dans le guide de l'*AWS Elemental MediaPackage utilisateur*.

# MediaTailor comportement et persistance de la session de paramètres
<a name="parameter-session-behavior"></a>

AWS Elemental MediaTailor traite les paramètres lors de l'initialisation de la session et les gère tout au long du cycle de vie de la session. Il est essentiel de comprendre le comportement des sessions pour implémenter des scénarios de paramètres dynamiques.

**Méthodes d'initialisation de session**  
MediaTailor prend en charge plusieurs méthodes d'initialisation de session avec des paramètres :

1. **Initialisation implicite de session :** paramètres inclus dans la demande de manifeste initiale

   ```
   GET /v1/master/123456789/originId/index.m3u8?manifest.auth_token=abc123&start=2024-08-26T10:00:00Z
   ```

1. **Initialisation explicite de session (POST) :** paramètres fournis dans le corps de la requête

   ```
   POST /v1/session/123456789/originId/index.m3u8
   {
       "adsParams": {"param1": "value1"},
       "manifestParams": {"auth_token": "abc123"}
   }
   ```

1. **Initialisation explicite de session (GET) :** paramètres fournis sous forme de paramètres de requête

   ```
   GET /v1/session/123456789/originId/index.m3u8?ads.param1=value1&manifestParams.auth_token=abc123
   ```

**Persistance et immuabilité des paramètres**  
MediaTailor le comportement des paramètres suit les règles suivantes :
+ **Spécification unique :** les paramètres ne peuvent être spécifiés qu'une seule fois, lors de l'initialisation de la session
+ **Persistance à l'échelle de la session :** les paramètres sont conservés tout au long de la session
+ **Immuable après l'initialisation :** les paramètres ne peuvent pas être modifiés après la création de la session
+ **Résolution des alias de configuration :** les alias sont résolus à leurs valeurs réelles avant d'être transférés vers les destinations

**Scénarios de modification de paramètres**  
Pour modifier les paramètres pendant la lecture :
+ **Créer une nouvelle session :** initialise une nouvelle session avec des valeurs de paramètres mises à jour
+ **Transition de joueur :** faites passer facilement le joueur à la nouvelle session
+ **Héritage des paramètres :** reportez les paramètres inchangés pour maintenir la cohérence

**Example Modification des paramètres de décalage horaire**  
Pour passer d'une fenêtre d'une heure à une fenêtre de 2 heures :  

1. Session en cours : `start=2024-08-26T10:00:00Z&end=2024-08-26T11:00:00Z`

1. Créez une nouvelle session : `start=2024-08-26T10:00:00Z&end=2024-08-26T12:00:00Z`

1. Faire passer le lecteur à l'URL de la nouvelle session

**Important**  
Plusieurs demandes de playlist multivariantes pour une même session ne mettent pas à jour les paramètres après la première demande. Les paramètres restent immuables pendant toute la durée de la session.

# MediaTailor référence et limites des paramètres
<a name="parameter-comprehensive-reference"></a>

Avant de configurer des variables publicitaires dynamiques, prenez connaissance des exigences et des limites de mise en forme des paramètres qui s'appliquent à toutes les MediaTailor configurations.

AWS Elemental MediaTailor fournit des informations complètes sur les restrictions de caractères des paramètres, les limites de longueur et les formats pris en charge pour les paramètres de requête du manifeste et les paramètres ADS. 

## Restrictions relatives aux caractères des paramètres de requête manifeste
<a name="manifest-parameter-character-restrictions"></a>

Les paramètres de requête du manifeste prennent en charge des caractères spécifiques et ont des limites de longueur définies. 

**Caractères pris en charge (sans codage d'URL)**  
Vous pouvez utiliser les caractères suivants directement dans les paramètres de requête du manifeste : 
+ Caractères alphanumériques (A-Z, a-z, 0-9)
+ Périodes (.)
+ Tirets (-)
+ Soulignements (\$1)
+ Barres obliques inversées (\$1)

**Caractères pris en charge avec encodage URL**  
Les caractères spéciaux suivants sont pris en charge lorsqu'ils sont codés en URL : 
+ période (.) = %2E
+ tiret (-) = %2D
+ trait de soulignement (\$1) = %5F
+ pourcentage (%) = %25
+ tilde (\$1) = %7E
+ barre oblique (/) = %2F
+ astérisque (\$1) = %2A
+ est égal à (=) = %3D
+ une question (?) = 3 %F

**Support du codage d'URL**  
MediaTailor prend en charge le signe du pourcentage (%) lorsque vous l'utilisez dans le codage d'URL (par exemple, hello%20world = hello world). Vous pouvez utiliser n'importe quel caractère codé en URL, à condition qu'il s'agisse d'encodages d'URL valides conformément à la spécification HTTP. 

**Personnages non pris en charge**  
Vous ne pouvez pas utiliser les caractères suivants dans les paramètres de requête du manifeste sans codage URL :`:`,`?`,,`&`, `=``%`, `/` (barre oblique). 

**Important**  
MediaTailor ne prend pas en charge les caractères doubles tels que%%% ou ==. Vous ne pouvez pas utiliser la valeur complète URLs comme valeur de paramètre de requête manifeste en raison des restrictions de caractères. 

**Limites de longueur**  
La longueur totale de tous les paramètres de requête du manifeste (clés et valeurs combinées) ne doit pas dépasser 2 000 caractères. 

## Limites de longueur des paramètres ADS
<a name="ads-parameter-limitations"></a>

Les limites de longueur suivantes s'appliquent aux paramètres utilisés dans les demandes adressées à l'ADS : 
+ **Nom du paramètre ADS** : 10 000 caractères maximum
+ **Valeur du paramètre ADS** : 25 000 caractères maximum
+ **URL ADS** : 25 000 caractères maximum

# MediaTailor guide de résolution des problèmes de paramètres
<a name="parameter-troubleshooting"></a>

AWS Elemental MediaTailor fournit des conseils pour résoudre les problèmes courants liés aux paramètres, notamment les restrictions de caractères MediaTailor, les problèmes d'encodage d'URL et les erreurs d'alias de configuration. 

## Erreurs de restriction de caractères
<a name="parameter-character-restriction-errors"></a>

Les valeurs de paramètres contenant des caractères non pris en charge peuvent provoquer des erreurs ou des comportements inattendus. 

**Symptômes courants**  
Les symptômes suivants peuvent indiquer des problèmes de restriction de caractères : 
+ Les paramètres n'apparaissent pas dans le manifeste URLs
+ Erreurs HTTP 400 lors de l'initialisation de la session
+ Valeurs de paramètres tronquées ou endommagées
+ Les requêtes ADS échouent en raison d'une malformation URLs

**Étapes de résolution**  
Pour résoudre les erreurs de restriction de caractères : 

1. Vérifiez les valeurs des paramètres pour les caractères non pris en charge : `:``?`,`&`,,`=`, `%` `/`

1. Appliquez un codage URL approprié pour les caractères spéciaux (voir) [MediaTailor référence et limites des paramètres](parameter-comprehensive-reference.md)

1. Évitez les caractères doubles tels que `%%%` ou `==`

1. Envisagez d'autres formats de paramètres si la version complète URLs ne peut pas être utilisée

**Example Exemple de codage d'URL**  
Au lieu d'utiliser :   

```
manifest.redirect_url=https://example.com/path?param=value
```
Utilisez un format URL codé :   

```
manifest.redirect_url=https%3A%2F%2Fexample.com%2Fpath%3Fparam%3Dvalue
```

## Erreurs de limitation de longueur
<a name="parameter-length-limitation-errors"></a>

Les paramètres qui dépassent les limites de longueur peuvent être tronqués ou provoquer des erreurs. 

**Limites de longueur**  
Les limites de longueur suivantes s'appliquent (voir [MediaTailor référence et limites des paramètres](parameter-comprehensive-reference.md) pour plus de détails) :
+ Paramètres de requête du manifeste (total) : 2 000 caractères
+ noms des paramètres ADS : 10 000 caractères
+ Valeurs des paramètres ADS : 25 000 caractères
+ ADS URLs : 25.000 lettres

**Stratégies de résolution**  
Pour gérer les limites de longueur : 

1. Utilisez des noms et des valeurs de paramètres plus courts dans la mesure du possible

1. Divisez les grandes valeurs de paramètres en plusieurs paramètres plus petits

1. Utilisez des alias de configuration pour associer des alias courts à des valeurs plus longues (voir) [MediaTailor vue d'ensemble des alias de configuration](configuration-aliases-overview.md)

1. Envisagez d'utiliser un stockage externe pour les données volumineuses avec des références de paramètres

## Erreurs liées aux alias de configuration
<a name="parameter-configuration-alias-errors"></a>

Les problèmes d'alias de configuration peuvent entraîner des erreurs HTTP 400 ou des valeurs de paramètres inattendues. 

**Erreurs d'alias de configuration courantes**  
Les erreurs suivantes se produisent fréquemment avec les alias de configuration : 
+ Erreur HTTP 400 : valeur d'alias manquante ou non valide
+ Les variables de domaine ne sont pas résolues correctement
+ Les paramètres du joueur ne sont pas remplacés par des valeurs d'alias

**Liste de contrôle de résolution**  
Pour résoudre les erreurs liées aux alias de configuration : 

1. Vérifiez que toutes les variables de domaine sont définies comme `ConfigurationAliases`

1. Assurez-vous que les variables des paramètres du joueur utilisent un `player_params.` préfixe

1. Vérifiez que la liste des valeurs aliasées est exhaustive pour les variables de domaine dans critical URLs (`VideoContentSourceUrl`,`AdSegmentUrlPrefix`,`ContentSegmentUrlPrefix`)

1. Vérifiez que les demandes d'initialisation de session spécifient des valeurs d'alias valides

1. Valider la structure JSON du ConfigurationAliases paramètre

Pour obtenir des conseils de dépannage détaillés, consultez[MediaTailor guide de résolution des problèmes liés aux alias de configuration](configuration-aliases-troubleshooting.md).

**Example Validation des alias de configuration**  
Assurez-vous que votre configuration inclut tous les alias requis :   

```
"ConfigurationAliases": {
    "player_params.origin_domain": {
        "pdx": "abc.mediapackage.us-west-2.amazonaws.com",
        "iad": "xyz.mediapackage.us-east-1.amazonaws.com"
        // Must include all possible values used in session initialization
    }
}
```

## Problèmes de flux de traitement des paramètres
<a name="parameter-processing-flow-issues"></a>

La compréhension du flux de traitement des paramètres permet de résoudre les problèmes liés au transfert et à la transformation des paramètres. 

**Ordre de traitement des paramètres**  
MediaTailor traite les paramètres dans l'ordre suivant : 

1. Validation des paramètres d'initialisation de session

1. Résolution des alias de configuration (le cas échéant)

1. Filtrage des paramètres (ADS vs origine vs manifeste)

1. Encodage et formatage d'URL

1. Application de paramètres à URLs

**Flux de paramètres de débogage**  
Pour résoudre les problèmes de traitement des paramètres : 

1. Vérifiez que les paramètres sont correctement spécifiés lors de l'initialisation de la session

1. Vérifiez que les alias de configuration correspondent aux valeurs attendues

1. Vérifiez que les paramètres apparaissent correctement URLs (manifeste, ADS, origine)

1. Valider que le codage de l'URL est correctement appliqué

**Example Exemple de flux de paramètres**  
Initialisation de la session :   

```
POST master.m3u8
{
    "playerParams": {"origin_domain": "pdx"},
    "manifestParams": {"test": "123"}
}
```
Après la résolution et le traitement des alias :   
+ Demande d'origine : `https://abc.mediapackage.us-west-2.amazonaws.com/out/v1/abcd`
+ URL du manifeste : `/v1/master/.../index.m3u8?aws.sessionId=session&test=123`

## Considérations sur la sécurité et bonnes pratiques en la matière
<a name="parameter-security-considerations-troubleshooting"></a>

MediaTailor met en œuvre des mesures de sécurité pour la gestion des paramètres afin de prévenir les problèmes de sécurité courants. 

**Mesures de sécurité**  
MediaTailor met en œuvre les mesures de sécurité suivantes : 

1. Limitations de taille d'entrée pour éviter le gonflement de la base de données

1. Encodage et nettoyage appropriés des entrées utilisateur

1. Encodage URL de l'entrée pour empêcher la corruption de la réponse

**Bonnes pratiques**  
Suivez les meilleures pratiques suivantes pour une gestion sécurisée des paramètres : 
+ Valider les valeurs des paramètres côté client avant de les envoyer
+ Utiliser des alias de configuration pour limiter les valeurs de paramètres possibles
+ Évitez d'inclure des informations sensibles dans les paramètres
+ Surveillez l'utilisation des paramètres pour détecter les modèles inhabituels
+ Maintenir les valeurs des paramètres dans les limites de longueur recommandées

# MediaTailor guide de résolution des problèmes liés aux alias de configuration
<a name="configuration-aliases-troubleshooting"></a>

AWS Elemental MediaTailor fournit des conseils de dépannage systématiques pour les problèmes d'alias de configuration courants et les scénarios d'erreur. 

## Erreurs de validation des alias de configuration
<a name="configuration-alias-validation-errors"></a>

Lorsque les alias de configuration sont manquants ou non valides, MediaTailor renvoie des réponses d'erreur spécifiques pour aider à identifier le problème. 

**Scénarios d'erreur courants**  
Le tableau suivant décrit les erreurs d'alias de configuration courantes et leurs étapes de résolution : 


| Erreur | Cause | Résolution | 
| --- | --- | --- | 
| HTTP 400 : alias de paramètre de joueur non valide | La valeur du paramètre du joueur est introuvable dans ConfigurationAliases | Vérifiez que la valeur du paramètre du joueur existe sous forme de clé dans le ConfigurationAliases mappage correspondant | 
| HTTP 400 : alias de configuration requis manquant | Variable de domaine utilisée sans ConfigurationAliases entrée correspondante | Ajoutez le paramètre de joueur manquant à tous ConfigurationAliases les mappages d'alias requis | 
| HTTP 400 : échec de la validation de la configuration | ConfigurationAliases la structure est mal formée ou incomplète | Validez la structure JSON et assurez-vous que toutes les variables de domaine ont des alias correspondants | 
| Remplacement d'une chaîne vide dans URLs | Alias de variable autre que le domaine introuvable | Ajoutez un mappage d'alias manquant ou fournissez une valeur par défaut dans ConfigurationAliases | 

**Liste de contrôle pour la validation**  
Utilisez la liste de contrôle suivante pour valider la configuration de vos alias de configuration : 

1. **Couverture des variables de domaine :** assurez-vous que toutes les variables utilisées dans les parties du domaine URLs ont des ConfigurationAliases entrées correspondantes

1. **Exhaustivité des alias :** vérifiez que toutes les valeurs possibles des paramètres du joueur sont incluses sous forme de clés dans les mappages d'alias

1. **Structure JSON :** vérifiez que le ConfigurationAliases JSON est correctement formaté et imbriqué

1. **Dénomination des paramètres :** vérifiez que tous les paramètres du joueur utilisent le `player_params.` préfixe

1. **Cohérence des valeurs :** assurez-vous que les valeurs des alias sont valides pour l'usage auquel elles sont destinées (noms de profilURLs, etc.)

## Résolution des alias de configuration de débogage
<a name="configuration-alias-debugging"></a>

Suivez cette approche systématique pour résoudre les problèmes de résolution des alias de configuration. 

**Step-by-step méthodologie de débogage**  
Procédez comme suit pour identifier et résoudre les problèmes liés aux alias de configuration : 

**Procédure de débogage des alias de configuration**

1. **Vérifiez la structure de configuration :** vérifiez que votre configuration de lecture inclut un formatage correct ConfigurationAliases

   ```
   {
       "ConfigurationAliases": {
           "player_params.example_param": {
               "alias1": "value1",
               "alias2": "value2"
           }
       }
   }
   ```

1. **Vérifiez le format des paramètres du lecteur :** assurez-vous que l'initialisation de la session inclut les paramètres du lecteur correctement formatés

   ```
   {
       "playerParams": {
           "example_param": "alias1"
       }
   }
   ```

1. **Valider le mappage des alias :** vérifiez que la valeur du paramètre du joueur (« alias1 ») existe sous forme de clé dans le mappage ConfigurationAliases 

1. **Test avec une configuration simple :** commencez par une configuration minimale pour isoler le problème

1. **Surveiller les réponses aux erreurs :** vérifiez les réponses aux MediaTailor erreurs pour des messages de validation spécifiques

1. **Vérifier la résolution URLs :** confirmez que les résolutions finales URLs sont valides et accessibles

## Meilleures pratiques en matière d'alias de configuration
<a name="configuration-alias-best-practices"></a>

Suivez ces bonnes pratiques pour garantir une implémentation fiable des alias de configuration. 

**Considérations sur la sécurité**  
Mettez en œuvre les mesures de sécurité suivantes lorsque vous utilisez des alias de configuration : 
+ **Validation des entrées :** validez toutes les valeurs des paramètres du joueur avant de les utiliser dans la résolution des alias
+ Nettoyage des **valeurs d'alias :** assurez-vous que les valeurs d'alias contiennent uniquement les caractères et les formats attendus
+ **Restrictions de domaine :** limitez les alias de domaine aux domaines fiables et contrôlés
+ **Contrôle d'accès :** limiter les modifications de configuration au personnel autorisé uniquement

**Optimisation des performances**  
Optimisez les performances des alias de configuration à l'aide des recommandations suivantes : 
+ **Minimiser le nombre d'alias :** utilisez uniquement les alias nécessaires pour réduire la charge de traitement
+ **Nommage efficace :** utilisez des conventions de dénomination claires et cohérentes pour les alias et les paramètres
+ **Valeurs par défaut :** fournissez des alias par défaut adaptés aux cas d'utilisation courants
+ **Mise en cache de configuration :** Tirez parti MediaTailor de la mise en cache de configuration pour améliorer les performances

**Maintenance et surveillance**  
Maintenez des opérations d'alias de configuration fiables grâce aux pratiques suivantes : 
+ **Validation régulière :** vérifiez régulièrement que tous les mappages d'alias sont à jour et fonctionnels
+ **Surveillance des erreurs :** surveillez les erreurs HTTP 400 liées à des alias manquants ou non valides
+ **Documentation :** Conservez une documentation claire de tous les mappages d'alias et de leurs objectifs
+ **Procédures de test :** mise en œuvre de tests complets pour toutes les combinaisons d'alias

# MediaTailor paramètres de requête manifeste
<a name="manifest-query-parameters"></a>

AWS Elemental MediaTailor gère les paramètres de requête à différentes fins : paramètres de requête manifeste pour le routage et l'autorisation du CDN, et autres paramètres de requête pouvant être utilisés pour des fonctionnalités spécifiques à l'origine.

AWS Elemental MediaTailor préserve les paramètres de requête dès l'initialisation de la session et les ajoute au manifeste personnalisé URLs et à d'autres actifs. Utilisez cette fonctionnalité lorsque vous disposez d'un réseau de diffusion de contenu (CDN) entre MediaTailor et le lecteur client.

Utilisez les paramètres de requête du manifeste lorsque votre CDN a besoin des paramètres de requête pour les raisons suivantes :
+ Routage dynamique vers différents points de MediaTailor terminaison
+ Autorisation par jeton

**Comportement côté client par rapport au CDN**  
MediaTailor ajoute des paramètres de requête pour les points de terminaison de reporting côté client, mais ne les ajoute pas pour les segments CDN. La fonctionnalité mise à jour fournit une prise en charge plus complète des paramètres de requête sur divers MediaTailor actifs, améliorant ainsi la flexibilité pour le routage des CDN et les cas d'utilisation des autorisations.

MediaTailor ajoute des paramètres de requête pour les points de terminaison de reporting côté client, mais il n'ajoute pas les paramètres de requête pour les segments CloudFront (ou d'autres CDN).

Pour utiliser la préservation des paramètres, contactez [AWS Support](https://aws.amazon.com/premiumsupport/) pour demander que le transfert des paramètres de requête du manifeste soit activé. 

Le comportement varie entre HLS et DASH, et entre l'initialisation de session explicite et implicite. Les rubriques suivantes décrivent comment configurer les demandes d'initialisation de session afin que MediaTailor les paramètres soient transmis au manifeste :

# MediaTailor gestion des paramètres de requête pour les origines
<a name="origin-query-parameters"></a>

AWS Elemental MediaTailor gère les paramètres de requête différemment en fonction de leur objectif. Les paramètres de requête du manifeste (préfixés par`manifest.`) sont utilisés pour le routage et l'autorisation du CDN, tandis que d'autres paramètres de requête peuvent être utilisés pour des fonctionnalités spécifiques à l'origine.

**Affichage décalé dans le temps avec MediaPackage**  
Pour une fonctionnalité de visualisation décalée dans le temps avec MediaPackage, vous pouvez inclure `start` des `end` paramètres dans vos demandes. Ces paramètres définissent des fenêtres de contenu spécifiques pour le visionnage initial et le visionnage de rattrapage.

**Example demande de visualisation décalée dans le temps**  
Incluez les paramètres de début et de fin dans votre demande de manifeste pour un affichage décalé dans le temps :  

```
GET /v1/master/111122223333/originId/index.m3u8?start=2024-08-26T10:00:00Z&end=2024-08-26T11:00:00Z
```

**Comportement des paramètres pendant les sessions**  
Les paramètres de requête sont traités lors de l'initialisation de la session. Pour un affichage décalé dans le temps ou pour d'autres fonctionnalités spécifiques à l'origine :
+ **Initialisation de session :** incluez les paramètres requis dans la demande de manifeste initiale
+ **Persistance des paramètres :** les paramètres sont associés à la session et conservés tout au long de la lecture
+ **Modification des paramètres :** pour modifier les fenêtres de décalage horaire ou d'autres paramètres, créez une nouvelle session avec des valeurs mises à jour

**Important**  
La gestion spécifique des paramètres de requête dépend de votre configuration d'origine et des paramètres pris en charge par votre origine de contenu. Pour MediaPackage l'intégration, assurez-vous que votre CDN est configuré pour transmettre les paramètres de requête nécessaires, comme décrit dans[Configuration des paramètres de requête essentiels](mediapackage-integration.md#mediapackage-query-strings).

# MediaTailor restrictions relatives aux caractères des paramètres et codage des URL
<a name="manifest-query-parameters-character-restrictions"></a>

AWS Elemental MediaTailor prend en charge des caractères spécifiques dans les paramètres de requête du manifeste. Vous pouvez utiliser le codage URL pour les caractères spéciaux.

**Caractères pris en charge avec encodage URL**  
Les caractères spéciaux suivants sont pris en charge par le codage d'URL :
+ période (.) = %2E
+ tiret (-) = %2D
+ trait de soulignement (\$1) = %5F
+ pourcentage (%) = %25
+ tilde (\$1) = %7E
+ barre oblique (/) = %2F
+ astérisque (\$1) = %2A
+ est égal à (=) = %3D
+ une question (?) = 3 %F

**Support du codage d'URL**  
MediaTailor prend en charge le signe du pourcentage (%) lorsque vous l'utilisez dans le codage d'URL (par exemple, hello%20world = hello world). Vous pouvez utiliser n'importe quel caractère codé en URL, à condition qu'il s'agisse d'encodages d'URL valides conformément à la spécification HTTP.

**Important**  
MediaTailor ne prend pas en charge les caractères doubles tels que%%% ou ==.

**Considérations sur la sécurité**  
MediaTailor met en œuvre les mesures de sécurité suivantes pour la gestion des paramètres :

1. Limitations de taille d'entrée pour éviter le gonflement de la base de données

1. Encodage et nettoyage appropriés des entrées utilisateur

1. Encodage URL de l'entrée pour empêcher la corruption de la réponse

**Topics**
+ [Paramètres de requête d'origine](origin-query-parameters.md)
+ [MediaTailorrestrictions relatives aux caractères](manifest-query-parameters-character-restrictions.md)
+ [MediaTailorSessions HLS implicites](manifest-query-parameters-hls-implicit-session-initialization.md)
+ [MediaTailor Sessions implicites DASH](manifest-query-parameters-dash-implicit-session-initialization.md)
+ [MediaTailor initialisation explicite de session](manifest-query-parameters-hls-and-dash-explicit-session-initialization.md)
+ [MediaTailorcomportement spécifique au protocole](manifest-query-parameters-protocol-differences.md)
+ [MediaTailor Intégration au CDN](manifest-query-parameters-cdn-integration.md)

# MediaTailor Initialisation de session HLS implicite
<a name="manifest-query-parameters-hls-implicit-session-initialization"></a>

AWS Elemental MediaTailor inclut les paramètres de requête dans les liens vers MediaTailor les ressources lorsque votre demande inclut des paramètres de requête avec la clé`manifest.*`. L'exemple suivant illustre ce format de demande :

```
GET /v1/master/111122223333/originId/index.m3u8?manifest.test=123&other=456
```

Les liens n'incluent pas le `manifest.` préfixe.

**Application de paramètres dans HLS**  
Pour les sessions HLS implicites, MediaTailor applique des paramètres aux emplacements suivants dans la hiérarchie du manifeste :
+ Liste de lecture multivariée URLs
+ Liste de lecture multimédia URLs
+ Segment de contenu URLs
+ Segment publicitaire URLs
+ Initialisation du HLS URLs

**Example liste de lecture multivariante**  
L'exemple suivant montre comment MediaTailor inclure les paramètres de requête dans l'URL de la liste de lecture multivariée :  

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-INDEPENDENT-SEGMENTS
#EXT-X-MEDIA:LANGUAGE="eng",AUTOSELECT=YES,FORCED=NO,TYPE=SUBTITLES,URI="../../../manifest/111122223333/originId/session/1.m3u8?test=123",GROUP-ID="subtitles",DEFAULT=YES,NAME="caption_1"
#EXT-X-STREAM-INF:CODECS="avc1.640029,mp4a.40.2",AVERAGE-BANDWIDTH=2525657,RESOLUTION=960x540,SUBTITLES="subtitles",FRAME-RATE=29.97,BANDWIDTH=2665212
../../../manifest/111122223333/originId/session/0.m3u8?test=123
```

**Example playlist multimédia**  
L'exemple suivant montre comment MediaTailor inclure les paramètres de requête dans URLs les segments de contenu :  

```
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:28716269
#EXT-X-DISCONTINUITY-SEQUENCE:0
#EXTINF:6.006,
https://origin.com/contentSegment_1.ts?originQueryParam=foo&test=123
#EXT-X-DISCONTINUITY
#EXTINF:6.006,
../../../../segment/111122223333/originId/session/0/2?test=123
```

# MediaTailor Initialisation implicite de session DASH
<a name="manifest-query-parameters-dash-implicit-session-initialization"></a>

AWS Elemental MediaTailor crée une session pour le client et la redirige avec des paramètres de requête lorsque le client fait une demande de manifeste sans session. L'exemple suivant illustre ce format de demande :

```
GET /v1/dash/111122223333/originId/index.mpd?manifest.test=123&other=456
```

MediaTailor crée une session pour le client et la redirige avec les paramètres de requête :

```
/v1/dash/111122223333/originId/index.mpd?sessionId=session&test=123
```

**Application des paramètres dans DASH**  
La réponse au manifeste DASH inclut les paramètres de requête à différents emplacements, notamment les segments de contenu, les segments publicitaires et l'initialisation URLs. MediaTailor applique des paramètres aux éléments suivants :
+ Éléments de localisation du manifeste DASH
+ SegmentTemplate attributs d'initialisation
+ SegmentTemplate attributs des médias
+ Segment de contenu URLs
+ Segment publicitaire URLs

Lorsque le client fait la demande, il MediaTailor répond avec un manifeste DASH similaire à l'exemple suivant. La première période étant une période de contenu, le paramètre de requête du manifeste MediaTailor n'y est pas inséré. Au cours de la seconde période, qui est une période publicitaire, MediaTailor insère le paramètre de requête du manifeste dans l'`initialization`attribut et l'attribut de `media` l'`SegmentTemplate`élément. L'`Location`élément possède également les paramètres de requête du manifeste.

```
<?xml version="1.0" encoding="UTF-8"?>
<MPD availabilityStartTime="2018-07-27T09:48:23.634000+00:00" id="201" minBufferTime="PT30S" minimumUpdatePeriod="PT15S" profiles="urn:mpeg:dash:profile:isoff-live:2011" publishTime="2023-02-14T23:37:43" suggestedPresentationDelay="PT25.000S" timeShiftBufferDepth="PT56.997S" 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://origin.com/contentSegments/</BaseURL>
    <Location>https://mediatailor.com/v1/dash/111122223333/originId/index.mpd?test=123&aws.sessionId=session</Location>
    <Period duration="PT29.963S" id="28737823" start="PT143732873.178S">
        <AdaptationSet bitstreamSwitching="true" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <Representation bandwidth="2200000" codecs="avc1.640029" frameRate="30000/1001" height="540" id="1" width="960">
                <SegmentTemplate initialization="index_video_7_0_init.mp4?m=1611174111" media="index_video_7_0_$Number$.mp4?m=1611174111" presentationTimeOffset="4311986195351" startNumber="28737828" timescale="30000">
                    <SegmentTimeline>
                        <S d="180180" t="4311986911066"/>
                        <S d="3003" t="4311987091246"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
        </AdaptationSet>
    </Period>
    <Period id="28737829_1" start="PT39925H48M23.141S">
        <BaseURL>https://mediatailor.com/v1/dashsegment/111122223333/originId/session/28737829/28737829_1/</BaseURL>
        <AdaptationSet bitstreamSwitching="false" frameRate="30000/1001" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <SegmentTemplate startNumber="1" timescale="90000"/>
            <Representation bandwidth="2200000" codecs="avc1.64001f" height="540" id="1" width="960">
                <SegmentTemplate initialization="asset_540_2_0init.mp4?test=123" media="asset_540_2_0_$Number%09d$.mp4?test=123" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="87087" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
        </AdaptationSet>
    </Period>
</MPD>
```

# MediaTailor Initialisation explicite des sessions HLS et DASH
<a name="manifest-query-parameters-hls-and-dash-explicit-session-initialization"></a>

AWS Elemental MediaTailor inclut les paramètres de requête `manifestParams` as dans la liste de lecture multivariante et le suivi URLs dans la réponse lorsque le client fait une demande explicite d'initialisation de session.

**Méthodes d'initialisation de session**  
Pour une initialisation explicite de session, vous pouvez utiliser POST avec le corps de la requête ou GET avec les paramètres de requête :

1. **POST avec le corps de la requête :**

   ```
   POST /v1/session/111122223333/originId/index.m3u8
   {
       "adsParams": {"param1": "value1", "param2": "value2", "param3": "value3"},
       "manifestParams": {"test": "123"}
   }
   ```

1. **GET avec paramètres de requête :**

   ```
   GET /v1/session/111122223333/originId/index.m3u8?ads.param1=value1&ads.param2=value2&manifestParams.test=123
   ```

**Example demande d'initialisation de session**  

```
POST /v1/session/111122223333/originId/index.m3u8
{
    "adsParams": {
        "param1": "value1",
        "param2": "value2",
        "param3": "value3"
    },
    "manifestParams": { 
        "test": "123"
    },
    "reportingMode": "client"
}
```

**Example manifeste et réponse de suivi**  

```
{
    "manifestUrl": "/v1/master/111122223333/originId/index.m3u8?aws.sessionId=session&test=123",
    "trackingUrl": "/v1/tracking/111122223333/originId/session?test=123"
}
```

Les réponses au manifeste pour la session ont le caractère spécifique MediaTailor URLs similaire `manifestParams` aux flux de travail implicites d'initialisation de session décrits précédemment. La principale différence est que les paramètres du manifeste pour l'initialisation explicite d'une session ne commencent `manifest.` pas par.

Les paramètres de requête du manifeste sont immuables et vous ne pouvez les définir que lors de l'initialisation de la session. Si un client fait plusieurs demandes de playlist multivariantes pour une même session, MediaTailor il ne met pas à jour les paramètres de requête du manifeste après la première demande.

**Flux de traitement des paramètres**  
Vous ne pouvez spécifier les paramètres qu'une seule fois, au moment de l'initialisation. Les alias de configuration sont résolus en valeurs réelles avant le transfert. Par exemple : `player_params.ad_type=customized` est résolu en `ad_type=abc12345` fonction de la ConfigurationAliases configuration.

# MediaTailor comportement des paramètres spécifiques au protocole
<a name="manifest-query-parameters-protocol-differences"></a>

AWS Elemental MediaTailor gère les paramètres de requête du manifeste différemment pour les protocoles HLS et DASH. Chaque type de protocole possède des emplacements d'application et des méthodes de traitement spécifiques.

**Comparaison entre la gestion des paramètres HLS et DASH**  
Le tableau suivant compare le mode de gestion MediaTailor des paramètres de requête du manifeste entre les protocoles HLS et DASH :


| Aspect | Comportement HLS | Comportement DASH | 
| --- | --- | --- | 
| Application des paramètres | Appliqué directement au manifeste URLs et au segment URLs | Appliqué aux éléments de localisation, SegmentTemplate aux attributs et au segment URLs | 
| Hiérarchie du manifeste | Liste de lecture multivariée → Listes de lecture multimédia → Segments | MPD → Périodes → AdaptationSets → Représentations | 
| Initialisation URLs | Appliqué à HLS init lorsqu'il est présent URLs  | Appliqué aux attributs SegmentTemplate d'initialisation | 
| Gestion des sessions | Paramètres préservés lors des mises à jour des playlists | Paramètres inclus dans l'élément de localisation MPD pour la continuité de session | 
| Gestion des segments publicitaires | Appliqué au segment publicitaire URLs dans les playlists multimédias | Appliqué aux attributs SegmentTemplate multimédias de la période d'annonce | 

**Emplacement des applications de paramètres**  
MediaTailor applique les paramètres de requête du manifeste aux emplacements suivants :

## Application des paramètres HLS
<a name="hls-parameter-application"></a>

Pour les flux HLS, MediaTailor applique les paramètres de requête du manifeste à :
+ Liste de **lecture multivariante URLs :** les paramètres sont ajoutés aux références aux listes de lecture multimédia
+ Liste de **lecture multimédia URLs :** les paramètres sont inclus dans le segment URLs des listes de lecture multimédia
+ **Segment de contenu URLs :** tous les segments de contenu incluent les paramètres de requête du manifeste
+ **Segment publicitaire URLs :** les segments publicitaires reçoivent des paramètres pour le routage et l'autorisation du CDN
+ Initialisation **HLS URLs : les segments d'initialisation** incluent des paramètres lorsqu'ils sont présents dans le flux
+ **Segment Slate URLs :** le contenu de Slate inclut des paramètres pour un comportement CDN cohérent

**Example Exemple d'application de paramètres HLS**  
Compte tenu de l'initialisation de la session :  

```
GET /v1/master/123456789/originId/index.m3u8?manifest.auth_token=abc123&manifest.region=us-west
```
La liste de lecture multivariante inclut des paramètres dans les références de listes de lecture multimédia :  

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:BANDWIDTH=2665212,RESOLUTION=960x540
../../../manifest/123456789/originId/session/0.m3u8?auth_token=abc123&region=us-west
```
La liste de lecture multimédia inclut les paramètres du segment URLs :  

```
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:7
#EXTINF:6.006,
https://origin.com/segment1.ts?auth_token=abc123&region=us-west
#EXTINF:6.006,
../../../../segment/123456789/originId/session/0/2?auth_token=abc123&region=us-west
```

## Application des paramètres DASH
<a name="dash-parameter-application"></a>

Pour les flux DASH, MediaTailor applique les paramètres de requête du manifeste à :
+ **Éléments de localisation MPD :** l'élément de localisation inclut des paramètres pour les demandes d'actualisation du manifeste
+ **SegmentTemplate attributs d'initialisation :** le segment URLs d'initialisation inclut des paramètres
+ **SegmentTemplate attributs multimédia :** les modèles d'URL de segment multimédia incluent des paramètres
+ **Segment de contenu URLs :** tous les segments de contenu générés à partir de modèles incluent des paramètres
+ **Segment publicitaire URLs :** les segments de période publicitaire incluent des paramètres pour l'intégration du CDN
+ Redirections de **rapports côté serveur : 302 redirections vers** des segments publicitaires préservent les paramètres

**Example Exemple d'application des paramètres DASH**  
Compte tenu de l'initialisation de la session :  

```
GET /v1/dash/123456789/originId/index.mpd?manifest.auth_token=abc123&manifest.region=us-west
```
Le manifeste DASH inclut des paramètres situés à plusieurs endroits :  

```
<MPD>
    <Location>https://mediatailor.com/v1/dash/123456789/originId/index.mpd?auth_token=abc123&region=us-west&aws.sessionId=session</Location>
    <Period>
        <AdaptationSet>
            <Representation>
                <SegmentTemplate 
                    initialization="init.mp4?auth_token=abc123&region=us-west" 
                    media="segment_$Number$.mp4?auth_token=abc123&region=us-west"/>
            </Representation>
        </AdaptationSet>
    </Period>
</MPD>
```

# MediaTailor Intégration du CDN et routage des paramètres
<a name="manifest-query-parameters-cdn-integration"></a>

AWS Elemental MediaTailor les paramètres de requête manifeste permettent des scénarios d'intégration de CDN sophistiqués. Vous pouvez les utiliser pour le routage dynamique, l'autorisation et l'équilibrage de charge.

**Cas d'utilisation du routage CDN**  
Les scénarios courants d'intégration du CDN qui tirent parti des paramètres de requête du manifeste sont les suivants :
+ **Routage géographique : acheminer** les demandes vers des MediaTailor points de terminaison spécifiques à une région en fonction de l'emplacement du spectateur
+ **Autorisation basée sur des jetons :** transmettez des jetons d'autorisation via le CDN MediaTailor pour un accès sécurisé au contenu
+ **Équilibrage de charge :** répartissez le trafic sur plusieurs MediaTailor points de terminaison à l'aide de la logique de routage du CDN
+ **Tests A/B : acheminez** différents segments d'utilisateurs vers différentes MediaTailor configurations à des fins de test
+ **Optimisation spécifique à l'appareil :** acheminer les demandes en fonction du type ou des capacités de l'appareil

**Conservation des paramètres entre les couches CDN**  
MediaTailor garantit que les paramètres de requête du manifeste sont préservés sur plusieurs couches CDN et types de demandes :

1. **Demande initiale :** les paramètres sont extraits de la demande d'initialisation de session

1. **Génération du manifeste :** les paramètres sont appliqués à tous les URLs éléments pertinents du manifeste

1. **Demandes de segment :** les paramètres sont inclus dans tous les segments URLs pour un comportement CDN cohérent

1. **Insertion d'annonces :** les paramètres sont préservés lors de l'insertion de publicités et du remplacement des segments

**Example Flux d'autorisation CDN**  
L'exemple suivant illustre un flux d'autorisation CDN complet à l'aide des paramètres de requête du manifeste :  

1. Le client demande un manifeste avec un jeton d'autorisation :

   ```
   GET https://cdn.example.com/mediatailor/v1/master/123456789/originId/index.m3u8?manifest.auth_token=jwt_token_here&manifest.user_id=12345
   ```

1. Le CDN transmet la demande à MediaTailor avec les paramètres suivants :

   ```
   GET https://mediatailor.amazonaws.com/v1/master/123456789/originId/index.m3u8?manifest.auth_token=jwt_token_here&manifest.user_id=12345
   ```

1. MediaTailor génère un manifeste avec des paramètres appliqués à tous URLs :

   ```
   #EXTM3U
   #EXT-X-STREAM-INF:BANDWIDTH=2665212
   ../../../manifest/123456789/originId/session/0.m3u8?auth_token=jwt_token_here&user_id=12345
   ```

1. Les demandes de segment suivantes incluent les paramètres d'autorisation du CDN :

   ```
   GET https://cdn.example.com/mediatailor/segment/123456789/originId/session/0/1?auth_token=jwt_token_here&user_id=12345
   ```

# Signalement des données de suivi et
<a name="ad-reporting"></a>

MediaTailor propose deux options pour suivre et générer des rapports sur le nombre d'annonces regardées par un internaute. Dans le cadre de l'approche de reporting publicitaire côté serveur, MediaTailor suit l'annonce et envoie des balises (signaux de suivi) directement au serveur publicitaire. Dans le cadre de l'approche de suivi côté client, le lecteur client (l'appareil de l'utilisateur) suit la publicité et envoie les balises au serveur publicitaire. Le type de rapport publicitaire utilisé lors d'une session de lecture dépend de la demande spécifique que le joueur fait pour démarrer la session MediaTailor.

Pour plus d'informations sur la transmission des données de session et de joueur au serveur publicitaire à l'aide de variables dynamiques, consultez[MediaTailor variables publicitaires dynamiques pour les demandes ADS](variables.md). Pour plus de détails sur les paramètres d'initialisation de session, consultez[MediaTailor paramètres de requête manifeste](manifest-query-parameters.md).

**Topics**
+ [MediaTailor suivi des publicités et rapports côté serveur](ad-reporting-server-side.md)
+ [Suivi des publicités côté client](ad-reporting-client-side.md)

# MediaTailor suivi des publicités et rapports côté serveur
<a name="ad-reporting-server-side"></a>

AWS Elemental MediaTailor utilise par défaut les rapports côté serveur pour un suivi et une mesure complets des publicités. Avec le reporting côté serveur, lorsque le lecteur demande une URL de publicité du manifeste, le service indique la consommation de publicité directement à l'URL de suivi publicitaire. Une fois que le lecteur a initialisé une session de lecture avec MediaTailor, aucune autre intervention de votre part ou de votre part n'est requise pour effectuer des rapports côté serveur. Au fur et à mesure que chaque annonce est diffusée, des balises sont MediaTailor envoyées au serveur publicitaire pour indiquer le nombre de vues de l'annonce. MediaTailor envoie des balises pour le début de l'annonce et pour la progression de l'annonce par quartiles : le premier quartile, le point médian, le troisième quartile et la fin de l'annonce.

**Pour effectuer le reporting publicitaire côté serveur**
+ Depuis le lecteur, initialisez une nouvelle session de MediaTailor lecture à l'aide d'une requête dans l'un des formats suivants, conformément à votre protocole :
  + Exemple : format HLS

    ```
    GET <mediatailorURL>/v1/master/<hashed-account-id>/<origin-id>/<asset-id>?ads.<key-value-pairs-for-ads>&<key-value-pairs-for-origin-server>
    ```
  + Exemple : format DASH

    ```
    GET <mediatailorURL>/v1/dash/<hashed-account-id>/<origin-id>/<asset-id>?ads.<key-value-pairs-for-ads>&<key-value-pairs-for-origin-server>
    ```

  Les paires clé-valeur sont les paramètres de ciblage dynamique pour le suivi publicitaire. Pour plus d'informations sur l'ajout de paramètres à la demande, consultez [MediaTailor variables publicitaires dynamiques pour les demandes ADS](variables.md).

AWS Elemental MediaTailor répond à la demande avec l'URL du manifeste. Le manifeste contient URLs les manifestes destinés aux médias. Les manifestes des médias contiennent des liens intégrés pour les demandes de segments publicitaires.

**Note**  
Lorsqu' MediaTailor une double barre oblique (//) apparaît dans une URL de suivi, elle réduit les barres obliques à une (/).

Lorsque le joueur demande la diffusion à partir de l'URL (`/v1/segment`chemin) d'un segment publicitaire, il AWS Elemental MediaTailor envoie la balise appropriée au serveur publicitaire via le suivi publicitaire URLs. Dans le même temps, le service émet une redirection vers le segment publicitaire `*.ts` réel. Le segment publicitaire se trouve soit dans la CloudFront distribution Amazon où MediaTailor les publicités transcodées sont stockées, soit dans le réseau de diffusion de contenu (CDN) dans lequel vous avez mis l'annonce en cache. 

Les sections suivantes fournissent plus d'informations sur l'utilisation du suivi publicitaire côté serveur à partir de. MediaTailor

**Topics**
+ [Suivi SGAI côté serveur](ad-reporting-server-side-sgai.md)
+ [Glossaire des balises](ad-reporting-server-side-beacon-glossary.md)
+ [Comportement de synchronisation et de mise en cache](ad-reporting-server-side-timing-behavior.md)
+ [Fonctionnalités de suivi](ad-reporting-server-side-features.md)

# Suivi côté serveur avec insertion publicitaire guidée par le serveur (SGAI)
<a name="ad-reporting-server-side-sgai"></a>

Lorsque vous utilisez l'insertion publicitaire guidée par le serveur (SGAI), le suivi côté serveur utilise un mécanisme de *balisage sans session qui diffère de l'approche en mode assemblé décrite ci-dessus*. Au lieu d' MediaTailor intégrer des segments publicitaires dans le manifeste de contenu (où il suit les `/v1/segment` demandes), SGAI renvoie les références publicitaires sous forme de playlists distinctes dans une réponse à la liste d'actifs avec les métadonnées des balises intégrées à l'annonce. URIs

## Comment fonctionne le beaconing sans session côté serveur
<a name="ad-reporting-server-side-sgai-how-it-works"></a>

Les étapes suivantes décrivent le fonctionnement du balisage côté serveur pour les sessions SGAI :

1. **Initialisation de session** : le joueur demande la playlist multivariante HLS avec. `aws.insertionMode=GUIDED` Le reporting côté serveur est la valeur par défaut (aucun `aws.reportingMode` paramètre n'est nécessaire). Contrairement au mode assemblé, la réponse d'initialisation de session *n'inclut pas* de. `trackingUrl`

1. **Manifeste pouvant être mis en cache : MediaTailor renvoie un manifeste** pouvant être mis en cache contenant des `EXT-X-DATERANGE` balises `CLASS="com.apple.hls.interstitial"` et des `X-ASSET-LIST` attributs pointant vers le point de terminaison de la liste d' MediaTailoractifs interstitiels.

1. **Liste des actifs avec métadonnées relatives aux balises** : lorsque le joueur rencontre une interruption publicitaire, il récupère la liste des actifs. MediaTailorrenvoie une réponse JSON dans laquelle chaque URI d'annonce inclut des métadonnées de balise cryptées :

   ```
   {
     "ASSETS": [
       {
         "DURATION": 30.0,
         "URI": "https://cdn.example.com/ad/master.m3u8?awsBeaconData=<encrypted>&awsBeaconDomain=<MediaTailor-endpoint>&awsConfigurationName=<config-name>"
       }
     ]
   }
   ```

   Lorsque le reporting côté serveur est actif, la réponse *n'*inclut aucune section. `TRACKING` L'annonce contient URIs toutes les données des balises.

1. **Substitution de variables HLS** : le lecteur récupère la liste de lecture multivariée de l'annonce. Le manifeste publicitaire utilise des `#EXT-X-DEFINE:QUERYPARAM` directives pour transmettre les paramètres de balise de la chaîne de requête URI au segment URLs via la substitution de variables HLS :

   ```
   #EXTM3U
   #EXT-X-DEFINE:QUERYPARAM="awsBeaconData"
   #EXT-X-DEFINE:QUERYPARAM="awsBeaconDomain"
   #EXT-X-DEFINE:QUERYPARAM="awsConfigurationName"
   #EXTINF:5.0,
   {$awsBeaconDomain}/segment/hash/{$awsConfigurationName}/{$awsBeaconData}/0/0?aws.segmentRelativePath=asset_00001.ts
   ```

   Le joueur résout les `{$awsConfigurationName}` variables `{$awsBeaconData}``{$awsBeaconDomain}`, et en utilisant les valeurs de la chaîne de requête URI du manifeste publicitaire, puis demande le passage de chaque segment publicitaire MediaTailor.

1. **Balise déclenchée à la demande d'un segment** : au fur et à mesure que le joueur demande chaque segment publicitaire, la demande est transmise MediaTailor. Le service déchiffre les données de balise, détermine la position du segment dans l'annonce (impression, premier quartile, point médian, troisième quartile ou complet) et envoie la balise de suivi VAST appropriée au serveur publicitaire. MediaTailor redirige ensuite le lecteur vers le segment de contenu publicitaire proprement dit.

## Exigences relatives aux joueurs pour le balisage SGAI côté serveur
<a name="ad-reporting-server-side-sgai-requirements"></a>

Pour utiliser le balisage côté serveur avec SGAI, votre joueur doit répondre aux exigences suivantes :
+ HLS version 11 ou ultérieure
+ Support `EXT-X-DATERANGE` avec `CLASS` attribut pour HLS Interstitials
+ Support pour la substitution de `#EXT-X-DEFINE:QUERYPARAM` variables (RFC 8216bis). Le joueur doit décoder en pourcentage les valeurs des paramètres de requête avant de les substituer dans un segment. URLs

**Note**  
Le balisage SGAI côté serveur n'est actuellement pris en charge que pour le HLS. DASH n'est pas encore compatible avec le balisage SGAI côté serveur.

## Comparaison avec le suivi côté serveur en mode cousu
<a name="ad-reporting-server-side-sgai-comparison"></a>

Le tableau suivant résume les différences entre le suivi côté serveur entre l'insertion d'annonces cousues et l'insertion guidée par le serveur :


| Aspect | Cousu (SSAI) | Guidé par le serveur (SGAI) | 
| --- | --- | --- | 
| Possibilité de mise en cache du manifeste | Par session, ne peut pas être mis en cache | Peut être mis en cache, partagé entre les spectateurs | 
| Routage des segments publicitaires | En /v1/segment/ utilisant l'identifiant de session | /v1/segment/En utilisant un blob de données de balise crypté | 
| État de session pour les balises | Stocké par session dans MediaTailor | Sans session : tous les états sont enregistrés dans le paramètre crypté awsBeaconData | 
| URL de suivi lors de l'initialisation de la session | Renvoyé dans la réponse d'initialisation de session | Non fourni : les données de balise sont intégrées à l'annonce URIs dans chaque réponse à la liste d'actifs | 
| Prise en charge de DASH | Pris en charge | Pas encore pris en charge | 

**Note**  
Pour les sessions SGAI en direct, vous pouvez activer la prélecture des annonces basée sur le manifeste à l'aide de. `aws.guidedPrefetchMode=MANIFEST` Ceci est distinct de l'API de prélecture basée sur un calendrier utilisée avec les sessions Stitched (SSAI). Pour en savoir plus, consultez [Prélecture guidée avec battements de cœur manifestes](sgai-guided-prefetch.md).

# Glossaire des balises de suivi côté serveur
<a name="ad-reporting-server-side-beacon-glossary"></a>

MediaTailor le suivi côté serveur utilise un ensemble standardisé de balises pour signaler la progression du visionnage des annonces aux serveurs publicitaires et aux services de vérification. Ces balises sont conformes aux normes de l'Interactive Advertising Bureau (IAB) en matière de mesure des publicités vidéo et fournissent des rapports précis sur les impressions publicitaires et les taux d'achèvement.


**Types de balises de suivi côté serveur**  

| Type de balise | En cas de licenciement | Objectif | Détails du chronométrage | 
| --- | --- | --- | --- | 
| Impression | Lorsque le joueur demande le premier segment publicitaire | Indique que le contenu publicitaire a commencé à se charger et qu'il est sur le point d'être affiché à l'internaute | Déclenché à la première /v1/segment demande d'annonce. S'aligne sur les directives de l'IAB selon lesquelles le contenu publicitaire doit commencer à se charger avant de compter une impression. Voir [Flux de travail de suivi côté serveur](ad-reporting-server-side-timing-behavior.md#ad-reporting-server-side-timing-behavior-workflow) la séquence complète. | 
| Démarrer | Quand le joueur commence à afficher le contenu publicitaire | Confirme que la diffusion des publicités a bien commencé | Généralement déclenché simultanément avec la balise d'impression lors de la première demande de segment, mais cela représente le début réel du rendu de la publicité. Cette distinction est importante pour les services de vérification qui suivent séparément les événements d'impression et de démarrage. | 
| Premier quartile | Lorsque le joueur atteint 25 % de la durée de l'annonce | Mesure le visionnage continu des publicités pendant le premier trimestre de l'annonce | Déclenché lorsque le joueur demande le segment contenant les 25 % de points de la durée de l'annonce. Par exemple, dans une publicité de 20 secondes comportant des segments de 2 secondes, cela se déclenche généralement à la demande du troisième segment (environ 4 à 6 secondes après le début de l'annonce). | 
| Point médian | Lorsque le joueur atteint 50 % de la durée de l'annonce | Mesure le visionnage continu des publicités pendant la moitié de l'annonce | Déclenché lorsque le joueur demande le segment contenant les 50 % de points de la durée de l'annonce. Par exemple, dans une publicité de 20 secondes comportant des segments de 2 secondes, cela se déclenche généralement à la demande du 5e segment (environ 8 à 10 secondes après le début de l'annonce). | 
| Troisième quartile | Lorsque le joueur atteint 75 % de la durée de l'annonce | Mesure le visionnage continu des publicités pendant les trois quarts de celles-ci | Déclenché lorsque le joueur demande le segment contenant les 75 % de points de la durée de l'annonce. Par exemple, dans une publicité de 20 secondes comportant des segments de 2 secondes, cela se déclenche généralement à la demande du 8e segment (environ 14 à 16 secondes après le début de l'annonce). | 
| Complet | Lorsque le joueur atteint la fin de l'annonce | Confirme que l'intégralité de l'annonce a été diffusée au spectateur | Déclenché lorsque le joueur demande le dernier segment de l'annonce. Cela indique que le spectateur a potentiellement vu l'intégralité du contenu de l'annonce. Par exemple, dans une annonce de 20 secondes comportant des segments de 2 secondes, cela se déclenche généralement à la demande du dixième segment (environ 18 à 20 secondes après le début de l'annonce). | 

**Note**  
Le moment exact du déclenchement de la balise dépend de la durée du segment et de la longueur de l'annonce. MediaTailor calcule la demande de segment appropriée correspondant à chaque position du quartile en fonction de la durée de l'annonce et de la structure du segment spécifiques.

# Synchronisation du suivi et comportement de mise en cache côté serveur
<a name="ad-reporting-server-side-timing-behavior"></a>

Dans les rapports côté serveur, MediaTailor déclenche des événements de suivi basés sur les demandes de segment réelles du joueur, et non sur les activités d'analyse du manifeste ou de préchargement. Cette approche garantit un comptage précis des impressions conforme aux normes du secteur en matière de mesure des publicités vidéo.

## Principaux principes de chronométrage
<a name="ad-reporting-server-side-timing-behavior-principles"></a>

MediaTailor le suivi côté serveur suit ces principes fondamentaux de synchronisation :
+ **Les événements de suivi se déclenchent lors de demandes de segments réelles** : les balises ne sont envoyées que lorsque le joueur envoie des requêtes HTTP `/v1/segment` URLs, et non lors de l'analyse ou de la mise en cache du manifeste.
+ **La mise en cache et le préchargement des manifestes par les joueurs ne déclenchent PAS d'événements** : les joueurs peuvent analyser, mettre en cache ou précharger les informations des manifestes sans générer d'événements de suivi.
+ La **prélecture des segments *déclenchera* des événements** : si les joueurs préextraient des segments publicitaires avant de les visionner, cela suit le comportement standard du secteur selon lequel les demandes de segment constituent des impressions valides.
+ **Chaque demande /v1/segment déclenche la balise appropriée**. L'événement de suivi spécifique (impression, quartile, achèvement) est déterminé par la position de l'annonce et le segment demandés.
+ **Le calendrier est conforme aux normes de l'IAB**. L'approche suit les directives de l'Interactive Advertising Bureau en matière de mesure des publicités vidéo et de comptage des impressions.

## Flux de travail de suivi côté serveur
<a name="ad-reporting-server-side-timing-behavior-workflow"></a>

Les diagrammes suivants illustrent l'ensemble du flux de travail de suivi côté serveur, indiquant à quel moment les événements de suivi sont déclenchés en relation avec les demandes des joueurs :

**Phase 1 : Initialisation de la session**  
Le joueur demande un manifeste à MediaTailor, qui renvoie un manifeste personnalisé contenant un segment publicitaire URLs :  

![\[Phase d'initialisation de la session montrant le joueur demandant un manifeste MediaTailor et recevant un manifeste personnalisé avec un segment URLs publicitaire.\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/images/ss-track-phase1.png)


**Phase 2 : demande de publicité et suivi des impressions**  
Lorsque le joueur demande le premier segment publicitaire, envoie MediaTailor des balises d'impression et de démarrage au serveur de décision publicitaire et aux services de vérification des publicités :  

![\[Phase de suivi des impressions publicitaires consistant à MediaTailor envoyer des balises d'impression et de démarrage au serveur de décision publicitaire et aux services de vérification des publicités lorsque le joueur demande un premier segment publicitaire.\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/images/ss-track-phase2.png)


**Phase 3 : suivi des quartiles**  
MediaTailor déclenche des balises de quartile (premier quartile, point médian, troisième quartile, achèvement) en fonction des demandes de segment suivantes :  

![\[Phase de suivi des quartiles montrant le MediaTailor lancement de balises quartiles à la fois vers le serveur de décision publicitaire et les services de vérification des publicités lorsque le joueur demande les segments publicitaires suivants.\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/images/ss-track-phase3.png)


**Phase 4 : livraison par segment**  
Après avoir déclenché des balises de suivi, MediaTailor redirige vers le segment publicitaire réel depuis Amazon CloudFront ou votre CDN :  

![\[Phase de diffusion du segment montrant la MediaTailor redirection du joueur vers un segment publicitaire réel depuis CloudFront ou un CDN après le déclenchement de balises de suivi.\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/images/ss-track-phase4.png)


Le flux de travail de suivi côté serveur inclut les principaux comportements temporels suivants :

1. **Initialisation de session** - Le joueur demande un manifeste à MediaTailor. MediaTailor renvoie un manifeste personnalisé contenant un segment publicitaire URLs avec le `/v1/segment` chemin.

1. **Analyse et mise en cache du manifeste : le joueur analyse** le manifeste et peut précharger ou mettre en cache les informations relatives aux segments. **Aucun événement de suivi n'est déclenché pendant cette phase**, quel que soit le comportement du joueur lors de la mise en cache.

1. **Demande de segment publicitaire et suivi des impressions** : lorsque le joueur demande réellement le premier segment publicitaire (généralement destiné à être diffusé), MediaTailor déclenche la balise d'impression et commence à suivre l'événement à la fois vers le serveur de décision publicitaire et les services de vérification des publicités. Cela se produit lors de la requête HTTP réelle envoyée à l'`/v1/segment`URL, et non lors de l'analyse du manifeste.

1. **Suivi des quartiles basé sur les demandes de segment** : envoie MediaTailor des balises de quartile (premier quartile, point médian, troisième quartile, achèvement) à la fois au serveur de décision publicitaire et aux services de vérification des publicités sur la base des demandes de segment suivantes qui correspondent aux positions de quartile calculées pendant la durée de la publicité.

1. **Diffusion par segment** : après avoir activé la balise de suivi appropriée, MediaTailor émet une redirection HTTP vers le segment publicitaire en question (depuis Amazon CloudFront ou votre CDN).

## Considérations relatives à la mise en cache et au préchargement des joueurs
<a name="ad-reporting-server-side-timing-behavior-caching-considerations"></a>

MediaTailor le suivi côté serveur est conçu pour être compatible avec les différentes stratégies de mise en cache et de préchargement des joueurs tout en maintenant une mesure précise des impressions :
+ **Préchargement du manifeste** : les joueurs qui préchargent ou mettent en cache les informations du manifeste ne déclenchent pas d'événements de suivi. Les événements de suivi ne sont déclenchés que lorsque des demandes de segment réelles sont effectuées.
+ **Prélecture des segments :** si un joueur préextrait des segments publicitaires avant leur diffusion, les événements de suivi se déclenchent lorsque ces segments sont demandés, potentiellement avant l'heure de lecture réelle. Ce comportement est conforme aux normes du secteur qui considèrent les demandes de segment comme des impressions valides.
+ Mise **en mémoire tampon du** lecteur : le comportement standard de mise en mémoire tampon du lecteur (demande de segments légèrement avant la lecture) déclenche des événements de suivi aux moments appropriés en fonction du modèle de demande de segment.

## Résolution des problèmes de suivi
<a name="ad-reporting-server-side-timing-behavior-troubleshooting"></a>

Si vous remarquez des différences entre le suivi MediaTailor côté serveur et les indicateurs tiers, tenez compte des facteurs suivants :
+ **Différences de comportement des** joueurs - Les stratégies de pré-extraction et de mise en mémoire tampon peuvent varier selon les joueurs, ce qui influe sur le moment où les demandes de segment sont effectuées.
+ **État du réseau** - Les mauvaises conditions du réseau peuvent amener les joueurs à demander des segments plusieurs fois ou à des intervalles différents de ceux prévus.
+ **Configuration du CDN - La** mise en cache incorrecte des `/v1/segment` demandes sur le CDN peut entraîner l'omission ou la duplication d'événements de suivi.
+ **Gestion des sessions** : assurez-vous que chaque session de lecture utilise un identifiant de session unique pour éviter les conflits liés aux événements de suivi.

Pour obtenir des conseils de dépannage détaillés, consultez[Dépannage des problèmes courants](monitoring-and-troubleshooting.md#troubleshooting-common-issues).

# MediaTailor fonctionnalités et capacités de suivi côté serveur
<a name="ad-reporting-server-side-features"></a>

AWS Elemental MediaTailor applique automatiquement ces fonctionnalités de suivi intégrées côté serveur pour optimiser la précision et la fiabilité des mesures publicitaires. Le système empêche la duplication des balises, gère le trafic pendant les périodes de volume élevé, assure un séquencement correct des événements et fournit une surveillance complète des performances sans nécessiter de configuration de votre part. Il vous suffit de vous assurer que votre serveur de décision publicitaire (ADS) fournit les balises de suivi dans la réponse VAST.

**Note**  
Ces fonctionnalités sont disponibles pour les nouveaux clients à partir du 30 septembre 2025. Les clients existants y auront accès tout au long de 2025 dans le cadre de l'amélioration continue des services. Si vous souhaitez accéder immédiatement à ces fonctionnalités, contactez [AWS Support](https://aws.amazon.com/premiumsupport/).

**Note**  
Ces fonctionnalités s'appliquent à la fois aux méthodes d'insertion de publicités cousues (SSAI) et guidées par le serveur (SGAI). Les types de balises et le chronométrage sont les mêmes dans les deux modes. Ils diffèrent quant à la manière dont ils MediaTailor déclenchent les balises. Voir [Suivi côté serveur avec insertion publicitaire guidée par le serveur (SGAI)](ad-reporting-server-side-sgai.md) pour plus de détails sur le balisage SGAI côté serveur.

## Déduplication des balises
<a name="ad-reporting-server-side-beacon-deduplication"></a>

MediaTailor empêche le double déclenchement de balises pour des événements publicitaires identiques. Le système de suivi côté serveur envoie chaque balise d'impression, de quartile et de complétion une seule fois par session de visionnage des publicités. Lorsque les lecteurs vidéo demandent plusieurs fois le même segment publicitaire en raison de l'état du réseau, de modifications du débit ou de stratégies de mise en mémoire tampon, il MediaTailor suit les balises déclenchées et bloque les transmissions redondantes.

La déduplication résout automatiquement les scénarios courants à l'origine de l'augmentation du nombre de balises :
+ **Streaming à débit adaptatif** : lorsque les joueurs téléchargent des variantes de qualité différentes d'un même segment publicitaire
+ **Scénarios de nouvelle tentative sur le réseau** : lorsque les joueurs demandent à nouveau des segments en raison de problèmes de réseau ou d'un délai d'attente
+ **Stratégies de mise en mémoire tampon des joueurs** : lorsque les joueurs préextraient ou récupèrent des segments à des fins de mise en mémoire tampon

Le système est conçu pour déclencher des balises d'impression une seule fois, même lorsque les joueurs passent d'un niveau de qualité à un autre.

## Réglage adaptatif et nouvelles tentatives d'utilisation des balises
<a name="ad-reporting-server-side-adaptive-throttling"></a>

MediaTailor gère automatiquement les taux de trafic des balises en fonction des indicateurs de réponse du serveur. Le système surveille les modèles de réponse HTTP, les délais de connexion et les codes d'erreur pour détecter les encombrements, puis ajuste les taux de trafic en conséquence. Lorsque le système identifie les indicateurs de stress des serveurs, il réduit les taux de trafic pour le domaine concerné et augmente automatiquement les taux lorsque les serveurs démontrent une capacité améliorée.

Le système surveille l'état du serveur à l'aide des indicateurs suivants :
+ **Délais de connexion HTTP :** lorsque les plateformes de mesure ne répondent pas dans les délais prévus
+ **Codes de réponse d'erreur** : réponses 503, 504 et 507 indiquant une surcharge du serveur. Votre serveur publicitaire doit également prendre en charge ces codes d'erreur pour une compatibilité totale.
+ **Modèles de réponse - Modification des** performances de la plateforme de mesure indiquant des problèmes de capacité

Le comportement de nouvelle tentative tente automatiquement de livrer pendant une heure maximum avec un délai minimum de 30 secondes entre les tentatives. Ce comportement de nouvelle tentative ne peut pas être configuré. 

## Gestion du trafic de balises par seconde
<a name="ad-reporting-server-side-tps-management"></a>

Vous pouvez définir des limites TPS pour contrôler les taux de diffusion des balises. Il s'agit du seul paramètre configurable pour les fonctionnalités de suivi côté serveur. Les limites au niveau du compte plafonnent le nombre total de demandes de suivi publicitaire envoyées à tous les partenaires de mesure. MediaTailor applique une limite de TPS minimale de 10 000 afin de fournir une capacité suffisante pour les opérations à l'échelle de l'entreprise.

Soumettez un ticket d' AWS assistance pour établir les limites du TPS avec les informations suivantes :
+ **ID de compte AWS** : votre identifiant de compte spécifique
+ **Région cible : région** AWS dans laquelle vous souhaitez appliquer la limite TPS
+ **Seuil TPS souhaité** : limite de transactions par seconde requise (minimum 10 000)

Par défaut, il n'y a aucune limite de TPS. Vous pouvez demander une limite de TPS si votre serveur de décision publicitaire (ADS) l'exige, mais la limite doit être supérieure à 10 000 TPS. MediaTailor ne dépassera pas la limite que vous avez spécifiée, mais ne garantit pas un débit constant jusqu'à cette limite. Votre serveur de décision publicitaire vous indiquera les limites de TPS qu'il peut prendre en charge.

## Balisage dans l'ordre
<a name="ad-reporting-server-side-in-order-beaconing"></a>

MediaTailor gère automatiquement la diffusion séquentielle des événements de suivi publicitaire. Le système préserve l'ordre des balises même en cas de problèmes réseau, de nouvelles tentatives ou de gestion du trafic. Cela garantit que les partenaires de mesure reçoivent les événements dans le bon ordre pour des analyses précises.

Le système suit la séquence de balises standard de l'industrie :

1. **Démarrer des événements** - Se déclencher lorsque la diffusion d'une publicité commence

1. **Événements du premier quartile** - Incendie à 25 % et fin

1. **Événements à mi-parcours** : feu à 50 % à la fin

1. **Événements du troisième quartile** - Incendie à 75 % et fin

1. **Événements d'achèvement : se** déclenchent lorsque les publicités se terminent

Ces fonctionnalités fonctionnent automatiquement ensemble :
+ Les balises sont maintenues pendant l'étranglement pour maintenir le bon ordre
+ Chaque domaine partenaire de mesure possède des files d'attente d'événements distinctes pour éviter toute interruption lors des ajustements de taux
+ La déduplication permet de suivre le type d'événement et la position chronologique tout en maintenant l'ordre chronologique

# 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
    }
  ]
}
```

# Superposer des publicités
<a name="overlay-ads"></a>

Pour les flux de diffusion en direct dans lesquels vous souhaitez augmenter la monétisation sans interrompre l'expérience de visionnage avec des publicités intermédiaires, vous pouvez tirer parti de votre AWS Elemental MediaTailor intégration actuelle pour définir un format publicitaire rendu côté client. Ce type de publicité est connu sous le nom de *publicités superposées*. Les publicités superposées sont des publicités vidéo non linéaires qui apparaissent sous la forme de « publicités en bande L », de « publicités vidéo non linéaires », de « publicités », de « superpositions animées », de « picture-in-picture  publicités intégrées au contenu » ou de « publicités encadrées ».

MediaTailor détecte un marqueur SCTE-35 avec un type de segmentation en `id=0x38` tant que signal intra-bande pour une opportunité d'insertion publicitaire en superposition. Le marqueur SCTE-35 envoie une demande MediaTailor au serveur de décision publicitaire (ADS), qui répond ensuite avec une charge utile publicitaire non linéaire dans la réponse VAST. MediaTailor analyse la réponse VAST afin de prendre en charge l'insertion d'annonces par superposition. MediaTailor n'assemble pas de publicités linéaires, mais indique au joueur qu'une publicité non linéaire est disponible pour être diffusée. Cette signalisation permet au joueur de récupérer et de corréler les publicités non linéaires à diffuser à partir du point de suivi côté client. Le joueur gère ensuite l'affichage, les rapports et les autres tâches liées à ces publicités. Par exemple, le développeur du lecteur peut utiliser un SDK pour appareil fourni par un fournisseur qui prend en charge les formats publicitaires superposés. Pour plus d'informations sur les intégrations de suivi côté client, consultez. [Intégrations de suivi publicitaire côté client](ad-reporting-client-side-ad-tracking-integrations.md)

![\[L'image montre une chronologie des différents types d'annonces affichées à côté d'une vidéo de contenu. Les publicités linéaires sont diffusées avant et après le contenu vidéo. L'annonce qui précède le contenu vidéo est appelée publicité pré-roll. L'annonce qui suit le contenu vidéo est appelée publicité post-roll. Une publicité non linéaire recouvre une partie du contenu vidéo lui-même. L'annonce non linéaire est appelée publicité superposée.\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/images/client-side-overlays.png)


**Topics**
+ [Conditions préalables à l'utilisation d'annonces incrustées avec MediaTailor](overlay-ads-prerequisites.md)
+ [Commencer à utiliser les publicités incrustées avec MediaTailor](overlay-ads-getting-started.md)
+ [Enregistrement et statistiques pour les annonces incrustées dans MediaTailor](overlay-ads-logging-and-metrics.md)
+ [Facturation des publicités incrustées dans MediaTailor](overlay-ads-billing.md)

# Conditions préalables à l'utilisation d'annonces incrustées avec MediaTailor
<a name="overlay-ads-prerequisites"></a>

Les conditions préalables suivantes s'appliquent lors de l'utilisation d'annonces en incrustation avec : MediaTailor
+ Le flux de travail doit être en direct et non en vidéo à la demande (VOD).
+ La réponse du serveur ADS (Ad Decision Server) doit être configurée pour renvoyer uniquement des publicités non linéaires dans la réponse VAST. MediaTailor ignore les publicités linéaires aux fins de l'assemblage des publicités.
+ Le manifeste doit utiliser un message de signal temporel SCTE-35 de type segmentation `id=0x38` pour invoquer la fonctionnalité de superposition.
+ Le fournisseur de streaming doit contrôler l'application client-appareil et être intégré à l'API de suivi côté MediaTailor client.

# Commencer à utiliser les publicités incrustées avec MediaTailor
<a name="overlay-ads-getting-started"></a>

Cette section explique comment commencer à utiliser la fonctionnalité de superposition de. MediaTailor Vous allez configurer la signalisation SCTE-35, configurer les réponses du serveur ADS (Ad Decision Server) et configurer le contrôle au niveau de la session.

**Topics**
+ [Activation des publicités superposées](overlay-ads-getting-started-enabling.md)
+ [Suivi des publicités superposées à l'aide de métadonnées côté client](overlay-ads-client-side-tracking-metadata.md)

# Activation des publicités superposées
<a name="overlay-ads-getting-started-enabling"></a>

MediaTailor la prise en charge des annonces incrustées est activée par défaut. Un type de marqueur publicitaire SCTE-35 spécifique dans le manifeste déclenche l'insertion d'une publicité superposée. Certains joueurs étant susceptibles de ne pas prendre en charge le rendu des publicités incrustées côté client, vous pouvez désactiver cette fonctionnalité au niveau de la session.

**Pour désactiver la prise en charge des publicités en superposition à l'aide des préfixes de lecture HLS ou DASH :**
+ Depuis le lecteur, initialisez une nouvelle session de MediaTailor lecture à l'aide d'une requête dans l'un des formats suivants, conformément à votre protocole :
  + Exemple : format HLS

    ```
    GET mediatailorURL/v1/master/hashed-account-id/origin-id/asset-id?aws.overlayAvails=off
    ```
  + Exemple : format DASH

    ```
    GET mediatailorURL/v1/master/hashed-account-id/origin-id/asset-id?aws.overlayAvails=off
    ```

**Pour désactiver la prise en charge des publicités superposées à l'aide du préfixe d'initialisation de session :**
+ Sur le lecteur, créez un corps de message JSON pour la demande d'initialisation de session afin de MediaTailor :
  + Pour désactiver la prise en charge de la superposition de publicités, ajoutez un `overlays` objet en tant que clé de niveau supérieur avec une valeur de. `off` La `overlays` valeur par défaut est`on`.
  + (Facultatif) Fournissez tous les paramètres qui sont MediaTailor ensuite transmis à l'ADS à l'intérieur d'un `adsParams` objet. Ces paramètres correspondent aux paramètres `[player_params.param]` dans l'URL modèle d'ADS de la configuration de MediaTailor.

**Example HLS :**  

```
POST master.m3u8
    {
       "adsParams": {
           "deviceType": "ipad"
       },
       "overlayAvails": "off"
    }
```

**Example DASH :**  

```
POST manifest.mpd
    {
        "adsParams": {
           "deviceType": "androidmobile"
       },
       "overlayAvails": "off"
    }
```

# Signalisation manifeste
<a name="overlay-ads-manifest-signaling"></a>

MediaTailor trigger overlay-ads support lorsqu'il voit un marqueur SCTE-35 spécifique dans le manifeste. Le signal requis est une commande d'épissage de type 6, ou signal horaire, qui est un signal Provider Overlay Advertisement Start. Ce signal possède un identifiant de type de segmentation de `0x38`

L'exemple suivant montre le marqueur `0x38` SCTE-35 dans un objet JSON.

```
{
  "tableId": 252,
  "selectionSyntaxIndicator": false,
  "privateIndicator": false,
  "sectionLength": 53,
  "protocolVersion": 0,
  "encryptedPacket": false,
  "encryptedAlgorithm": 0,
  "ptsAdjustment": 0,
  "cwIndex": 0,
  "tier": 4095,
  "spliceCommandLength": 5,
  "spliceCommandType": 6,
  "spliceCommand": {
    "specified": true,
    "pts": 1800392
  },
  "descriptorLoopLength": 31,
  "descriptors": [
    {
      "spliceDescriptorTag": 2,
      "descriptorLength": 29,
      "indentifier": "CUEI",
      "segmentationEventId": 158389361,
      "segmentationEventCancelIndicator": false,
      "programSegmentationFlag": true,
      "segmentationDurationFlag": true,
      "deliveryNotRestrictedFlag": false,
      "webDeliveryAllowedFlag": true,
      "noRegionalBlackoutFlag": true,
      "archiveAllowedFlag": true,
      "deviceResctrictions": 3,
      "segmentationDuration": 1350000,
      "segmentationUpidType": 9,
      "segmentationUpidLength": 7,
      "segmentationUpid": {
        "0": 111,
        "1": 118,
        "2": 101,
        "3": 114,
        "4": 108,
        "5": 97,
        "6": 121
      },
      "segmentationTypeId": 56,
      "segmentNum": 1,
      "segmentsExpected": 0
    }
  ],
  "crc": 2510422713
}
```

L'exemple suivant montre le signal SCTE-35 représenté sous forme de valeur binaire (base 32/hexadécimal) :

```
0xfc303500000000000000fff00506fe001b78c8001f021d435545490970d4717fdf00000dbba009076f7665726c6179380100000084226c4f
```

Les exemples suivants montrent le marqueur SCTE-35 dans les manifestes HLS et DASH.

**Example : manifeste HLS**  

```
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:419
#EXT-X-DISCONTINUITY-SEQUENCE:3
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:09.231Z
#EXTINF:6.02,
https://aws.cloudfront.net/media/asset1/index1_00007.ts
#EXT-X-DISCONTINUITY
#EXT-X-KEY:METHOD=NONE
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:15.251Z
#EXTINF:6.0,
https://aws.cloudfront.net/media/asset1/index1_00001.ts
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:21.251Z
#EXTINF:4.0,
https://aws.cloudfront.net/media/asset1/index1_00002.ts
#EXT-X-DISCONTINUITY
#EXT-X-DATERANGE:ID="1692073825251-30-1",START-DATE="2023-08-15T04:30:25.251Z",DURATION=10.0,PLANNED-DURATION=10.0,SCTE35-OUT=0xfc303500000000000000fff00506fe001b78c8001f021d435545490970d4717fdf00000dbba009076f7665726c6179380100000084226c4f
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:25.251Z
#EXTINF:2.0,
https://aws.cloudfront.net/media/asset1/index1_00003.ts
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:27.251Z
#EXTINF:6.0,
https://aws.cloudfront.net/media/asset1/index1_00004.ts
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:33.251Z
#EXTINF:2.0,
https://aws.cloudfront.net/media/asset1/index1_00005.ts
#EXT-X-DISCONTINUITY
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:35.251Z
#EXTINF:4.0,
https://aws.cloudfront.net/media/asset1/index1_00006.ts
#EXT-X-PROGRAM-DATE-TIME:2023-08-15T04:30:39.251Z
#EXTINF:6.02,
https://aws.cloudfront.net/media/asset1/index1_00007.ts
```

**Example : manifeste DASH**  

```
<?xml version="1.0"?>
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:scte35="urn:scte:scte35:2013:xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" availabilityStartTime="2023-08-15T16:34:05.911Z" minBufferTime="PT30S" minimumUpdatePeriod="PT2S" profiles="urn:mpeg:dash:profile:isoff-live:2011" publishTime="2023-08-15T16:34:17.950Z" suggestedPresentationDelay="PT20S" timeShiftBufferDepth="PT1M30S" type="dynamic" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd">
  <Period xmlns="urn:mpeg:dash:schema:mpd:2011" id="1692117245944_1" start="PT0.033S">
    <BaseURL>https://aws.cloudfront.net/out/v1/abc/123/def/</BaseURL>
    <EventStream schemeIdUri="urn:scte:scte35:2013:xml" timescale="90000">
      <Event duration="900000">
        <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="0" tier="4095">
          <scte35:TimeSignal>
            <scte35:SpliceTime ptsTime="0"/>
          </scte35:TimeSignal>
          <scte35:SegmentationDescriptor segmentNum="0" segmentationDuration="900000" segmentationEventCancelIndicator="false" segmentationEventId="1" segmentationTypeId="56" segmentsExpected="0" subSegmentNum="0" subSegmentsExpected="0">
            <scte35:SegmentationUpid segmentationUpidFormat="hexBinary" segmentationUpidType="14">63736f7665726c6179</scte35:SegmentationUpid>
          </scte35:SegmentationDescriptor>
        </scte35:SpliceInfoSection>
      </Event>
    </EventStream>
    <AdaptationSet bitstreamSwitching="true" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
      <Representation bandwidth="3000000" codecs="avc1.4D4028" frameRate="30/1" height="1080" id="1" width="1920">
        <SegmentTemplate initialization="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_video_1_0_init.mp4" media="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_video_1_0_$Number$.mp4" presentationTimeOffset="0" startNumber="1" timescale="30000">
          <SegmentTimeline>
            <S d="60000" r="6" t="1000"/>
            <S d="30000" t="421000"/>
          </SegmentTimeline>
        </SegmentTemplate>
      </Representation>
      <Representation bandwidth="2499968" codecs="avc1.4D4028" frameRate="30/1" height="1080" id="2" width="1920">
        <SegmentTemplate initialization="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_video_2_0_init.mp4" media="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_video_2_0_$Number$.mp4" presentationTimeOffset="0" startNumber="1" timescale="30000">
          <SegmentTimeline>
            <S d="60000" r="6" t="1000"/>
            <S d="30000" t="421000"/>
          </SegmentTimeline>
        </SegmentTemplate>
      </Representation>
      <Representation bandwidth="2200000" codecs="avc1.4D401F" frameRate="30/1" height="720" id="3" width="1280">
        <SegmentTemplate initialization="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_video_3_0_init.mp4" media="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_video_3_0_$Number$.mp4" presentationTimeOffset="0" startNumber="1" timescale="30000">
          <SegmentTimeline>
            <S d="60000" r="6" t="1000"/>
            <S d="30000" t="421000"/>
          </SegmentTimeline>
        </SegmentTemplate>
      </Representation>
    </AdaptationSet>
    <AdaptationSet lang="eng" mimeType="audio/mp4" segmentAlignment="0">
      <Label>Alternate Audio</Label>
      <Representation audioSamplingRate="48000" bandwidth="128000" codecs="mp4a.40.2" id="9">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
        <SegmentTemplate initialization="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_audio_9_0_init.mp4" media="../cf684d31ec9e451ca98d2349989f6c0a/855c733eed20493ab3cc1100750bcf0b/index_audio_9_0_$Number$.mp4" presentationTimeOffset="0" startNumber="1" timescale="48000">
          <SegmentTimeline>
            <S d="98304" t="0"/>
            <S d="96256" t="98304"/>
            <S d="95232" t="194560"/>
            <S d="96256" r="2" t="289792"/>
            <S d="95232" t="578560"/>
            <S d="46080" t="673792"/>
          </SegmentTimeline>
        </SegmentTemplate>
      </Representation>
    </AdaptationSet>
  </Period>
</MPD>
```

# Réponse du serveur ADS (Ad Decision Server)
<a name="overlay-ads-ads-response"></a>

La réponse ADS doit contenir un événement de suivi valide. Au minimum, l'événement de suivi peut être un événement `Impression` de suivi. L'événement de suivi doit contenir au moins une `NonLinear` annonce. Cette annonce est une publicité superposée, qui prend la forme d'une ressource statique, HTML ou iFrame.

```
<vmap AdBreak breaktype="linear" breakId="csoverlay"
```

Si la réponse VAST est un VMAP avec ou `breakType``nonlinear`, les métadonnées Avail se trouvent dans l'objet `nonLinearAvails` racine. Si la réponse VAST est une réponse VMAP avec un `breakType` de`linear`, ou une réponse VAST simple sans VMAP, les métadonnées Avail se trouvent dans l'`avails`objet racine.

La réponse VAST suivante est une réponse VMAP encapsulée avec une `breakType` valeur de`linear`.

Outre la réponse VMAP encapsulée, prend MediaTailor également en charge une réponse VMAP encapsulée avec une `breakType` valeur de `nonlinear` et une réponse VAST simple.

```
<?xml version="1.0" encoding="utf-8"?>
<vmap:VMAP xmlns:vmap="http://www.iab.net/vmap-1.0" version="1.0">
  <vmap:AdBreak breakType="linear" breakId="csoverlay">
    <vmap:AdSource allowMultipleAds="true" followRedirects="true" id="1">
      <vmap:VASTAdData>
        <VAST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.0" xsi:noNamespaceSchemaLocation="vast.xsd">
          <Ad sequence="1">
            <InLine>
              <AdSystem>2.0</AdSystem>
              <AdTitle>2</AdTitle>
              <Impression><![CDATA[https://adserver.com/beacon=impression]]></Impression>
              <Creatives>
                <Creative>
                  <NonLinearAds>
                    <NonLinear width="640" height="360" id="18">
                      <StaticResource creativeType="text/js_ref"><![CDATA[https://client-side-ads.com/tags/static/ctv-generic/overlay001.json?iv_geo_country%3DUS%26]]></StaticResource>
                    </NonLinear>
                  </NonLinearAds>
                </Creative>
              </Creatives>
            </InLine>
          </Ad>
        </VAST>
      </vmap:VASTAdData>
    </vmap:AdSource>
    <vmap:TrackingEvents>
      <vmap:Tracking event="breakStart"><![CDATA[https://adserver.com/beacon=breakstartimpression]]></vmap:Tracking>
      <vmap:Tracking event="breakEnd"><![CDATA[https://adserver.com/beacon=breakendimpression]]></vmap:Tracking>
    </vmap:TrackingEvents>
  </vmap:AdBreak>
</vmap:VMAP>
```

**Example 1 : source du manifeste DASH pour MediaTailor**  

```
<?xml version="1.0" encoding="utf-8"?>
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:scte35="urn:scte:scte35:2013:xml" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" id="201" type="dynamic" publishTime="2022-11-07T19:59:05+00:00" minimumUpdatePeriod="PT2S" availabilityStartTime="2022-11-07T06:57:11.250000+00:00" minBufferTime="PT10S" suggestedPresentationDelay="PT20.000S" timeShiftBufferDepth="PT58.999S" profiles="urn:mpeg:dash:profile:isoff-live:2011">
  <Period start="PT46827.601S" id="0" duration="PT88.321S">
  ...
  </Period>
  <Period start="PT46915.922S" id="45" duration="PT6.006S">
    <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2014:xml+bin">
    <Event duration="540000" id="144">
        <scte35:Signal>
            <scte35:Binary>SCTE35-binary</scte35:Binary>
        </scte35:Signal>
    </Event>
    </EventStream>
    ... 
  </Period>
  <Period start="PT46921.928S" id="49"> 
  ...
  </Period>
</MPD>
```

**Example 2 : manifeste DASH MediaTailor personnalisé contenant une décoration d'identifiant publicitaire**  

```
<?xml version="1.0" encoding="utf-8"?>
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:scte35="urn:scte:scte35:2013:xml" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" id="201" type="dynamic" publishTime="2022-11-07T19:59:05+00:00" minimumUpdatePeriod="PT2S" availabilityStartTime="2022-11-07T06:57:11.250000+00:00" minBufferTime="PT10S" suggestedPresentationDelay="PT20.000S" timeShiftBufferDepth="PT58.999S" profiles="urn:mpeg:dash:profile:isoff-live:2011">
  <Period start="PT46827.601S" id="0" duration="PT88.321S">
  ...
  </Period>
  <Period start="PT46915.922S" id="45" duration="PT6.006S">
  <EventStream schemeIdUri="urn:sva:advertising-wg:ad-id-signaling" timescale="90000">
    <Event presentationTime="13500000" duration="1351350">
    <![CDATA[{"version": 1,"identifiers": [{"scheme": "urn:smpte:ul:060E2B34.01040101.01200900.00000000","value": "adId","ad_position": "adId", "ad_type":"overlay","creative_id": "creativeId","tracking_uri": "trackingUri"}]}]]></Event>
  </EventStream>
  ...
  </Period>
  <Period start="PT46921.928S" id="49"> 
  ...
  </Period>
</MPD>
```

# Suivi des publicités superposées à l'aide de métadonnées côté client
<a name="overlay-ads-client-side-tracking-metadata"></a>

MediaTailor place les publicités superposées dans `nonLinearAdsList` le catalogue. L'API de suivi MediaTailor côté client possède deux objets racines, appelés `avails` et. `nonLinearAvails` Si la réponse VAST est un VMAP avec ou `breakType``nonlinear`, les métadonnées Avail se trouvent dans l'objet `nonLinearAvails` racine. Si la réponse VAST est une réponse VMAP avec un `breakType` de`linear`, ou une réponse VAST simple sans VMAP, les métadonnées Avail se trouvent dans l'`avails`objet racine.

Pour plus d'informations sur le suivi côté client, consultez. [Suivi des publicités côté client](ad-reporting-client-side.md)

L'exemple suivant montre une réponse VAST simple ou une réponse VMAP avec une `breakType` valeur de`linear`.

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [
        {
          "beaconUrls": [
            "https://adserver.com/beacon=breakstartimpression"
          ],
          "eventType": "breakStart"
        },
        {
          "beaconUrls": [
            "https://adserver.com/beacon=breakendimpression"
          ],
          "eventType": "breakEnd"
        }
      ],
      "adMarkerDuration": null,
      "ads": [],
      "availId": "828",
      "availProgramDateTime": null,
      "duration": "PT0S",
      "durationInSeconds": 0,
      "meta": null,
      "nonLinearAdsList": [
        {
          "extensions": null,
          "nonLinearAdList": [
            {
              "adId": "",
              "adParameters": null,
              "adSystem": "2.0",
              "adTitle": "2",
              "apiFramework": null,
              "clickThrough": null,
              "clickTracking": null,
              "clickTrackingId": null,
              "creativeAdId": "",
              "creativeId": "18",
              "creativeSequence": "",
              "duration": null,
              "durationInSeconds": 0,
              "expandedHeight": null,
              "expandedWidth": null,
              "height": "360",
              "htmlResource": null,
              "iFrameResource": null,
              "maintainAspectRatio": false,
              "minSuggestedDuration": null,
              "scalable": false,
              "staticResource": "https://client-side-ads.com/tags/static/ctv-generic/overlay001.json?iv_geo_country%3DUS%26",
              "staticResourceCreativeType": "text/js_ref",
              "width": "640"
            }
          ],
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://adserver.com/beacon=impression"
              ],
              "duration": null,
              "durationInSeconds": 0,
              "eventId": null,
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": null,
              "startTimeInSeconds": 0
            }
          ]
        }
      ],
      "startTime": "PT1M46.08S",
      "startTimeInSeconds": 106.08
    }
  ],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": null,
  "nonLinearAvails": []
}
```

L'exemple suivant montre une réponse VMAP simple avec une `breakType` valeur de`nonlinear`.

```
{
  "avails": [],
  "dashAvailabilityStartTime": null,
  "hlsAnchorMediaSequenceNumber": null,
  "nextToken": null,
  "nonLinearAvails": [
    {
      "adBreakTrackingEvents": [
        {
          "beaconUrls": [
            "https://adserver.com/beacon=breakstartimpression"
          ],
          "eventType": "breakStart"
        },
        {
          "beaconUrls": [
            "https://adserver.com/beacon=breakendimpression"
          ],
          "eventType": "breakEnd"
        }
      ],
      "adMarkerDuration": null,
      "ads": [],
      "availId": "828",
      "availProgramDateTime": null,
      "duration": "PT0S",
      "durationInSeconds": 0,
      "meta": null,
      "nonLinearAdsList": [
        {
          "extensions": null,
          "nonLinearAdList": [
            {
              "adId": "",
              "adParameters": null,
              "adSystem": "2.0",
              "adTitle": "2",
              "apiFramework": null,
              "clickThrough": null,
              "clickTracking": null,
              "clickTrackingId": null,
              "creativeAdId": "",
              "creativeId": "18",
              "creativeSequence": "",
              "duration": null,
              "durationInSeconds": 0,
              "expandedHeight": null,
              "expandedWidth": null,
              "height": "360",
              "htmlResource": null,
              "iFrameResource": null,
              "maintainAspectRatio": false,
              "minSuggestedDuration": null,
              "scalable": false,
              "staticResource": "https://client-side-ads.com/tags/static/ctv-generic/overlay001.json?iv_geo_country%3DUS%26",
              "staticResourceCreativeType": "text/js_ref",
              "width": "640"
            }
          ],
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://adserver.com/beacon=impression"
              ],
              "duration": null,
              "durationInSeconds": 0,
              "eventId": null,
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": null,
              "startTimeInSeconds": 0
            }
          ]
        }
      ],
      "startTime": "PT1M46.08S",
      "startTimeInSeconds": 106.08
    }
  ]
}
```

# Enregistrement et statistiques pour les annonces incrustées dans MediaTailor
<a name="overlay-ads-logging-and-metrics"></a>

Cette section explique la journalisation et les statistiques relatives aux annonces incrustées. MediaTailor Pour plus d'informations sur la configuration de la journalisation, consultez[Ressources de surveillance et de balisage AWS Elemental MediaTailor](monitoring.md).

**Topics**
+ [CloudWatch journaux](#overlay-ads-logging-and-metrics-cloudwatch)
+ [CloudWatch métriques](#overlay-ads-logging-and-metrics-cloudwatch-metrics)

## CloudWatch journaux
<a name="overlay-ads-logging-and-metrics-cloudwatch"></a>

CloudWatch collecte les informations de journal suivantes concernant les publicités incrustées :
+ `VAST_RESPONSE`- Affiche des informations sur la liste d'annonces non linéaires.
+ `FILLED_PROVIDER_OVERLAY`- Affiche des informations sur les publicités non linéaires.

**Note**  
`RAW_ADS_RESPONSE`Il s'agit d'un événement facultatif qui montre la réponse initiale de l'ADS. L'utilisation de cet événement est particulièrement utile dans un environnement de préparation et de test. Pour activer cet événement sur une configuration ou un compte, envoyez un ticket au AWS Support.

## CloudWatch métriques
<a name="overlay-ads-logging-and-metrics-cloudwatch-metrics"></a>

MediaTailor collecte les statistiques relatives aux annonces superposées séparément des autres statistiques ADS. MediaTailorcollecte ces statistiques après avoir récupéré avec succès les publicités de l'ADS. Il n'est pas nécessaire d'interroger l'`GetTracking`API pour collecter les métriques.

Le tableau suivant décrit les CloudWatch statistiques relatives aux annonces incrustées :


| Métrique | Description | 
| --- | --- | 
| AdDecisionServer.OverlayAds |  Le nombre d'annonces incrustées incluses dans les réponses ADS au cours de la CloudWatch période que vous avez spécifiée.  | 
| AdDecisionServer.OverlayErrors |  Le nombre de réponses par code d'`200`état autres que HTTP, de réponses vides et de réponses périmées MediaTailor reçues de l'ADS au cours de la CloudWatch période que vous avez spécifiée.  | 
| AdDecisionServer.OverlayFilled |  Le nombre d'offres qui ont été remplies avec succès avec au moins une annonce superposée : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/mediatailor/latest/ug/overlay-ads-logging-and-metrics.html) `SampleCount`suit le nombre de fichiers disponibles. `Sum`suit le nombre de versions de superposition remplies avec succès.  | 
| AdDecisionServer.OverlayMinSuggestedDuration |  Somme des `minSuggestedDuration` durées, en millisecondes, de toutes les publicités MediaTailor reçues de l'ADS pendant la CloudWatch période que vous avez spécifiée. Si `minSuggestedDuration` ce n'est pas spécifié, la durée affichée est la durée planifiée.  | 
| AdDecisionServer.OverlayLatency |  Le temps de réponse, en millisecondes, pour les demandes adressées à l' MediaTailor ADS.  | 
| AdDecisionServer.OverlayTimeouts |  Le nombre de demandes d'expiration adressées à l'ADS au cours de la CloudWatch période que vous avez spécifiée.  | 
| AdsBilled |  Pour plus d'informations sur les publicités facturées, consultez[Facturation des publicités incrustées dans MediaTailor](overlay-ads-billing.md).  | 
| Avail.\$1 |  Parce qu' MediaTailor il ne planifie pas les publicités incrustées et CloudWatch n'affiche aucun indicateur`Avail.X`.  | 
| SkippedReason.\$1 |  Parce qu' MediaTailor il ne planifie pas les publicités incrustées et CloudWatch n'affiche aucun indicateur`SkippedReason.X`.  | 

# Facturation des publicités incrustées dans MediaTailor
<a name="overlay-ads-billing"></a>

MediaTailor facture les clients en fonction du nombre d'annonces non linéaires figurant dans la réponse ADS. Ce chiffre inclut les publicités non linéaires qui s'étendent au-delà de la durée de la pause. Une fois le fichier MediaTailor rempli, il facture les annonces qu'il a publiées.

Pour les flux de travail de prélecture, MediaTailor ne facture pas les publicités lors de la récupération du préchargement, mais plutôt lorsqu'une publicité compatible apparaît dans la fenêtre de consommation de cette session.

Pour des informations de facturation supplémentaires, consultez[https://aws.amazon.com/mediatailor/pricing/](https://aws.amazon.com/mediatailor/pricing/).

# Décoration d'identification publicitaire
<a name="ad-id-decoration"></a>

AWS Elemental MediaTailor effectue l'assemblage des publicités côté serveur lors de la transition entre le contenu et les pauses publicitaires. MediaTailor peut conditionner le manifeste à l'aide de métadonnées associées aux publicités qui ont été assemblées. Cela peut apporter les avantages suivants :

**Important**  
La décoration de l'identifiant publicitaire n'est pas compatible avec les méthodes d'insertion de publicités guidées par le serveur (SGAI), car les champs qui remplissent les `X-AD-CREATIVE-SIGNALING ` en-têtes ne sont connus que lorsque la liste des ressources est extraite pendant la diffusion de la publicité, et non lorsque le manifeste pouvant être mis en cache est initialement écrit.
+ L'*heure de début de la vidéo* (VST) s'améliore
+ MediaTailor peut prendre en charge un modèle hybride d'insertion publicitaire côté serveur et d'insertion publicitaire guidée par le serveur
+ Les sessions côté serveur peuvent créer des chronologies de diffusion à l'aide de marqueurs de position des annonces
+ Pour les sessions côté client qui créent déjà des chronologies de lecture avec l' MediaTailor API, la session VST s'améliore, car la session ne repose pas sur l'appel de l'API de suivi pour créer la chronologie
+ Il est possible d'en tirer parti MediaTailor pour l'insertion de publicités côté serveur ainsi que pour les publicités affichées sur scène côté client. Ainsi, le kit de développement logiciel (SDK) d'un joueur n'a pas besoin d'une intégration distincte pour appeler directement les entités diffusant des publicités côté client. MediaTailor peut vendre les publicités via le manifeste et l'API de suivi côté client.

Il existe des normes pour associer chaque ressource publicitaire créative à un identifiant unique. Cette association permet aux annonceurs, aux agences, aux fournisseurs et aux éditeurs de relier un actif publicitaire créatif à leurs flux de travail indépendants. À mesure que les indicateurs et la surveillance des flux continuent de s'améliorer et que de plus en plus de distributeurs utilisent des architectures d'insertion basées sur des serveurs, il devient nécessaire de communiquer avec précision les identifiants attribués aux actifs créatifs individuels dans une interleaved/stitched présentation, par exemple dans le manifeste personnalisé.

**Topics**
+ [Activation de la signalisation des identifiants publicitaires pour les sessions](ad-id-session-state.md)
+ [Insertion de manifestes et de métadonnées publicitaires](ad-id-manifest.md)
+ [Interactions avec le serveur de décision publicitaire (ADS)](ad-id-ads-interactions.md)
+ [API de suivi côté client](ad-id-client-side-tracking-api.md)

# Activation de la signalisation des identifiants publicitaires pour les sessions
<a name="ad-id-session-state"></a>

La fonction de signalisation de l'identifiant publicitaire doit être activée lors de l'initialisation de la session. Le processus d'activation de cette fonctionnalité est différent de la création de sessions utilisant le préfixe de HLS/DASH lecture (initialisation implicite de session) ou du préfixe d'initialisation de session (initialisation explicite de session).

**Pour activer l'identifiant publicitaire pour la session à l'aide des HLS/DASH préfixes de lecture**
+ Depuis le lecteur, initialisez une nouvelle session de MediaTailor lecture à l'aide d'une requête dans l'un des formats suivants, conformément à votre protocole :
  + Exemple : format HLS

    ```
    GET <mediatailorURL>/v1/master/<hashed-account-id>/<origin-id>/<asset-id>?aws.adSignalingEnabled=true
    ```
  + Exemple : format DASH

    ```
    GET <mediatailorURL>/v1/dash/<hashed-account-id>/<origin-id>/<asset-id>?aws.adSignalingEnabled=true
    ```

**Pour activer l'identifiant publicitaire pour la session à l'aide du préfixe d'initialisation de session**
+ Sur le lecteur, créez un corps de message JSON pour la demande d'initialisation de session afin de MediaTailor : 
  + À l'intérieur d'un `adsParams` objet, fournissez tous les paramètres qui MediaTailor doivent être transmis à l'ADS. Ces paramètres correspondent aux `[player_params.param]` paramètres de l'URL du modèle ADS de la MediaTailor configuration. 
  + Pour activer la signalisation par identifiant publicitaire, ajoutez un `adSignaling` objet en tant qu'objet de niveau supérieur, puis ajoutez un paramètre appelé `enabled` et une valeur de`true`. La `adSignaling` valeur par défaut est`disabled`.
  + Exemple : format HLS

    ```
    POST master.m3u8
        {
           "adsParams": {
               "deviceType": "ipad"
           },
           "adSignaling": {
               "enabled": "true"
           },
           "reportingMode": "client"
        }
    ```
  + Exemple : format DASH

    ```
    POST manifest.mpd
        {
            "adsParams": {
               "deviceType": "ipad"
           },
           "adSignaling": {
                "enabled": "true"
            },
            "reportingMode": "client"
        }
    ```

# Insertion de manifestes et de métadonnées publicitaires
<a name="ad-id-manifest"></a>

Au cours du processus d'assemblage des publicités, MediaTailor ajoute au manifeste l'identifiant unique associé à chaque création en cours de montage. MediaTailor obtient l'identifiant unique de la création à partir de la valeur d'`id`attribut de cette création dans la réponse VAST. Si la création ne possède pas de valeur d'attribut ID, elle MediaTailor publiera une valeur vide (`id=""`).

MediaTailor utilise un signal de métadonnées intégré au manifeste pour dissocier les dépendances entre l'API de suivi client pour les métadonnées de création publicitaire et timing/positioning dans le calendrier global. Ce découplage réduit la latence de lecture (en particulier dans les scénarios de VOD), où l'interface utilisateur (UI) du lecteur affiche les positions des pauses publicitaires dans la chronologie avant d'initialiser la lecture.

Les métadonnées ajoutées prennent les formes suivantes :
+ Pour les manifestes HLS, les métadonnées ajoutées prennent la forme de `DATERANGE` balises pour chaque annonce pendant la période de disponibilité.
+ Pour les manifestes DASH, les métadonnées ajoutées prennent la forme d'un `Event` élément au sein de chaque période publicitaire.

Le corps du message JSON suivant montre un exemple de réponse VAST :

```
{
  "version": 1,
  "identifiers": [
    {
      "scheme": "urn:smpte:ul:060E2B34.01040101.01200900.00000000",
      "value": "creativeId",
      "ad_position": "adId",
      "ad_type": "adType",
      "tracking_uri": "trackingUri",
      "custom_vast_data":"customVastData"
    }
  ]
}
```

Dans l'exemple précédent :
+ *creativeId*est la valeur d'`Id`attribut de l'`Creative`élément de l'annonce
+ *adId*est soit le numéro de séquence HLS associé au début de l'annonce, soit l'identifiant de période DASH de l'annonce
+ *adType*est soit`overlay`, `avail` soit, sur la base de la réponse VAST
+ *trackingUri*est le point de terminaison de suivi relatif pour la MediaTailor session, au format `../../../../tracking/hashed-account-id/origin-id/session-id`
+ *customVastData*est une valeur MediaTailor extraite de l'extension `creative_signaling` VAST. MediaTailor utilise le contenu du nœud CDATA, s'il est présent. Consultez la [Interactions avec le serveur de décision publicitaire (ADS)](ad-id-ads-interactions.md) section pour plus de détails et un exemple de réponse VAST.

# Personnalisation des manifestes HLS avec des métadonnées publicitaires
<a name="ad-id-manifest-hls"></a>

Pour un flux HLS en direct, ajoute des métadonnées MediaTailor uniquement lorsque le flux contient des `PROGRAM-DATA-TIME` balises, au moins une fois par durée de manifeste. Pour un flux de vidéo à la demande (VOD), MediaTailor ajoute `PROGRAM-DATE-TIME` au moins un segment dans le manifeste personnalisé, où l'heure de début de chaque ressource VOD est Epoch Zero (). `1970-01-01T00:00:00Z` Si le manifeste d'origine possède un `PROGRAM-DATE-TIME` contenu existant, il MediaTailor préserve ce contenu.

MediaTailor personnalise le manifeste avec les créations renvoyées par le serveur de décision publicitaire (ADS). Pour chaque annonce, inclut MediaTailor également un `DATERANGE` tag qui couvre la durée de l'annonce. Le format des `DATERANGE` balises est similaire à celui décrit dans la section [Signalisation publicitaire créative dans DASH et HLS](https://www.svta.org/document/draft-ad-creative-signaling-in-dash-and-hls/) de la version 2023 de la publication *technique de la SVA*.

Le `DATERANGE` qui MediaTailor génère possède des valeurs d'identification uniques. Pour garantir l'unicité (conformément aux directives spécifiées dans [Mapping SCTE-35 into EXT-X-DATERANGE](https://datatracker.ietf.org/doc/html/draft-pantos-http-live-streaming-23#section-4.3.2.7.1)), MediaTailor associe le `MEDIA-SEQUENCE` numéro du *premier* segment publicitaire de l'annonce au numéro de séquence de l'annonce contenue dans la publication.

Pour les pauses publicitaires insuffisamment remplies dans les configurations dans lesquelles Slate est activée MediaTailor , ajoutez les segments de Slate à la fin de la publication, séparés par une `DISCONTINUITY` balise, mais sans aucune métadonnée. `DATERANGE`

Pour chaque annonce insérée dans le manifeste personnalisé, les métadonnées créatives sont MediaTailor ajoutées, représentées sous forme de données codées en base64 dans une balise personnalisée. `DATERANGE`

**Example Origine HLS linéaire (`#EXT-X-CUE-OUT`) :**  

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:398
#EXT-X-PROGRAM-DATE-TIME:2023-02-10T19:20:01.397Z
#EXTINF:6.006,
index_1_398.ts?m=1676054627
#EXTINF:5.873,
index_1_399.ts?m=1676054627
#EXT-OATCLS-SCTE35:/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXT-X-CUE-OUT:59.993
#EXTINF:6.139,
index_1_400.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=6.139,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:6.006,
index_1_401.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=12.145,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:6.006,
index_1_402.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=18.151,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:6.006,
index_1_403.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=24.157,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:6.006,
index_1_404.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=30.163,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:6.006,
index_1_405.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=36.169,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:6.006,
index_1_406.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=42.175,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:6.006,
index_1_407.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=48.181,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:6.006,
index_1_408.ts?m=1676054627
#EXT-X-CUE-OUT-CONT:ElapsedTime=54.187,Duration=59.993,SCTE35=/DAlAAAAAyiYAP/wFAUAAAACf+//jPl97P4AUmNiAAEBAQAAse4/gA==
#EXTINF:5.806,
index_1_409.ts?m=1676054627
#EXT-X-CUE-IN
#EXTINF:6.206,
index_1_410.ts?m=1676054627
#EXTINF:6.006,
index_1_411.ts?m=1676054627
#EXTINF:6.006,
index_1_412.ts?m=1676054627
```

**Example Origine HLS linéaire (`#EXT-X-DATERANGE`) :**  

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:25
#EXT-X-PROGRAM-DATE-TIME:2023-02-10T19:19:53.389Z
#EXTINF:6.006,
index_1_25.ts?m=1676056675
#EXTINF:6.006,
index_1_26.ts?m=1676056675
#EXTINF:6.006,
index_1_27.ts?m=1676056675
#EXTINF:1.869,
index_1_28.ts?m=1676056675
#EXT-X-DATERANGE:ID="2",START-DATE="2023-02-10T19:20:13.276Z",PLANNED-DURATION=59.993,SCTE35-OUT=0xFC302500000003289800FFF01405000000027FEFFF8CF97DECFE00526362000101010000B1EE3F80
#EXTINF:6.139,
index_1_29.ts?m=1676056675
#EXTINF:6.006,
index_1_30.ts?m=1676056675
#EXTINF:6.006,
index_1_31.ts?m=1676056675
#EXTINF:6.006,
index_1_32.ts?m=1676056675
#EXTINF:6.006,
index_1_33.ts?m=1676056675
#EXTINF:6.006,
index_1_34.ts?m=1676056675
#EXTINF:6.006,
index_1_35.ts?m=1676056675
#EXTINF:6.006,
index_1_36.ts?m=1676056675
#EXTINF:6.006,
index_1_37.ts?m=1676056675
#EXTINF:5.806,
index_1_38.ts?m=1676056675
#EXT-X-DATERANGE:ID="2",START-DATE="2023-02-10T19:20:13.276Z",END-DATE="2023-02-10T19:21:13.269Z",DURATION=59.993
#EXTINF:6.206,
index_1_39.ts?m=1676056675
#EXTINF:6.006,
index_1_40.ts?m=1676056675
```

**Example Manifeste personnalisé HLS linéaire (avec signalisation publicitaire créative) :**  
Le `DATERANGE` qui MediaTailor génère possède des valeurs d'identification uniques. Pour garantir l'unicité (conformément aux directives spécifiées dans [Mapping SCTE-35 into EXT-X-DATERANGE](https://datatracker.ietf.org/doc/html/draft-pantos-http-live-streaming-23#section-4.3.2.7.1)), MediaTailor associe le `MEDIA-SEQUENCE` numéro du *premier* segment publicitaire de l'annonce au numéro de séquence de l'annonce contenue dans la publication.  
Dans l'exemple suivant, `MEDIA-SEQUENCE` 421 est MediaTailor concatène avec le numéro de position de l'annonce.  

```
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:418
#EXT-X-DISCONTINUITY-SEQUENCE:5
#EXT-X-PROGRAM-DATE-TIME:2023-02-10T19:19:55.391Z
#EXTINF:6.006,
https://d3fch9e2fcarly.cloudfront.net/out/v1/1cc7058242a74fdd8aea14e22a9b4131/index_1_397.ts?m=1676054627
#EXTINF:6.006,
https://d3fch9e2fcarly.cloudfront.net/out/v1/1cc7058242a74fdd8aea14e22a9b4131/index_1_398.ts?m=1676054627
#EXTINF:5.873,
https://d3fch9e2fcarly.cloudfront.net/out/v1/1cc7058242a74fdd8aea14e22a9b4131/index_1_399.ts?m=1676054627
#EXT-X-DISCONTINUITY
#EXT-X-PROGRAM-DATE-TIME:2023-02-10T19:19:55.391Z
#EXT-X-DATERANGE:ID="421-1",CLASS="urn:sva:advertising-wg:ad-id-signaling",START-DATE=2019-01-01T00:02:30.000Z,DURATION=15.015,X-AD-CREATIVE-SIGNALING="base64JSON"
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056813
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056814
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056815
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056816
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056817
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056818
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056819
#EXTINF:1.001,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056820
#EXT-X-DISCONTINUITY
#EXT-X-PROGRAM-DATE-TIME:2023-02-10T19:19:55.391Z
#EXT-X-DATERANGE:ID="421-1",START-DATE="2023-02-10T19:36:13.435Z",END-DATE="2023-02-10T19:36:43.432Z",DURATION=15.015
#EXT-X-DATERANGE:ID="421-2",CLASS="urn:sva:advertising-wg:ad-id-signaling",START-DATE=2019-01-01T00:02:30.000Z,DURATION=15.015,X-AD-CREATIVE-SIGNALING="base64JSON"
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056821
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056822
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056823
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056824
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056825
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056826
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056827
#EXTINF:1.001,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056828
#EXT-X-DISCONTINUITY
#EXT-X-PROGRAM-DATE-TIME:2023-02-10T19:19:55.391Z
#EXT-X-DATERANGE:ID="421-2",START-DATE="2023-02-10T19:36:13.435Z",END-DATE="2023-02-10T19:36:43.432Z",DURATION=15.015
#EXT-X-DATERANGE:ID="421-3",CLASS="urn:sva:advertising-wg:ad-id-signaling",START-DATE=2019-01-01T00:02:30.000Z,DURATION=15.015,X-AD-CREATIVE-SIGNALING="base64JSON"
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056829
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056830
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056831
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056832
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056833
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056834
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056835
#EXTINF:1.001,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056836
#EXT-X-DISCONTINUITY
#EXT-X-PROGRAM-DATE-TIME:2023-02-10T19:19:55.391Z
#EXT-X-DATERANGE:ID="421-3",START-DATE="2023-02-10T19:36:13.435Z",END-DATE="2023-02-10T19:36:43.432Z",DURATION=29.997
#EXT-X-DATERANGE:ID="421-4",CLASS="urn:sva:advertising-wg:ad-id-signaling",START-DATE=2019-01-01T00:02:30.000Z,DURATION=15.015,X-AD-CREATIVE-SIGNALING="base64JSON"
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056837
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056838
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056839
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056840
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056841
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056842
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056843
#EXTINF:1.001,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/9e178fa9-dce5-4248-83d2-5b5d98b019bf/0/1676056844
#EXT-X-DISCONTINUITY
#EXT-X-DATERANGE:ID="421-4",START-DATE="2023-02-10T19:36:13.435Z",END-DATE="2023-02-10T19:36:43.432Z",DURATION=15.015
#EXTINF:6.206,
https://d3fch9e2fcarly.cloudfront.net/out/v1/1cc7058242a74fdd8aea14e22a9b4131/index_1_410.ts?m=1676054627
#EXTINF:6.006,
https://d3fch9e2fcarly.cloudfront.net/out/v1/1cc7058242a74fdd8aea14e22a9b4131/index_1_411.ts?m=1676054627
```

**Example Origine VOD HLS (avec signaux SCTE) :**  

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:1
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:6,
index_720p1500k_00001.ts
#EXTINF:6,
index_720p1500k_00002.ts
#EXTINF:6,
index_720p1500k_00003.ts
#EXTINF:6,
index_720p1500k_00004.ts
#EXTINF:6,
index_720p1500k_00005.ts
#EXT-X-CUE-OUT:0
#EXT-X-CUE-IN
#EXTINF:6,
index_720p1500k_00006.ts
#EXTINF:6,
index_720p1500k_00007.ts
#EXTINF:6,
index_720p1500k_00008.ts
#EXTINF:6,
index_720p1500k_00009.ts
#EXTINF:6,
index_720p1500k_00010.ts
#EXTINF:6,
index_720p1500k_00011.ts
#EXTINF:6,
index_720p1500k_00012.ts
```

**Example Origine de la VOD HLS :**  

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:1
#EXT-X-PLAYLIST-TYPE:VOD
#EXTINF:6,
index_720p1500k_00001.ts
#EXTINF:6,
index_720p1500k_00002.ts
#EXTINF:6,
index_720p1500k_00003.ts
#EXTINF:6,
index_720p1500k_00004.ts
#EXTINF:4,
index_720p1500k_00005.ts
#EXTINF:2,
index_720p1500k_00006.ts
#EXTINF:6,
index_720p1500k_00007.ts
#EXTINF:6,
index_720p1500k_00008.ts
#EXTINF:6,
index_720p1500k_00009.ts
#EXTINF:6,
index_720p1500k_00010.ts
#EXTINF:6,
index_720p1500k_00011.ts
#EXTINF:6,
index_720p1500k_00012.ts
```

**Example Manifeste personnalisé VOD HLS :**  
MediaTailor `PROGRAM-DATE-TIME`s'ajoute aux manifestes de VOD afin de les utiliser comme points d'ancrage pour les `DATERANGE` éléments HLS qui indiquent les positions des annonces.  
Le `DATERANGE` qui MediaTailor génère possède des valeurs d'identification uniques. Pour garantir l'unicité (conformément aux directives spécifiées dans [Mapping SCTE-35 into EXT-X-DATERANGE](https://datatracker.ietf.org/doc/html/draft-pantos-http-live-streaming-23#section-4.3.2.7.1)), MediaTailor associe le `MEDIA-SEQUENCE` numéro du *premier* segment publicitaire de l'annonce au numéro de séquence de l'annonce contenue dans la publication.  
Dans l'exemple suivant, `MEDIA-SEQUENCE` 421 est MediaTailor concatène avec le numéro de position de l'annonce.  

```
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-TARGETDURATION:7
#EXT-X-MEDIA-SEQUENCE:1
#EXT-X-DISCONTINUITY-SEQUENCE:0
#EXT-X-PROGRAM-DATE-TIME:1970-01-01T00:00:00Z
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00001.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00002.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00003.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00004.ts
#EXTINF:4.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00005.ts
#EXT-X-DISCONTINUITY
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/28
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/29
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/30
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/31
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/32
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/33
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/34
#EXTINF:1.001,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/35
#EXT-X-DISCONTINUITY
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/36
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/37
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/38
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/39
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/40
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/41
#EXTINF:2.002,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/42
#EXTINF:1.001,
../../../../segment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/vod-variations/9810d863-8736-45fa-866e-be6d2c2bfa20/0/43
#EXT-X-DISCONTINUITY
#EXTINF:2.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00006.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00007.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00008.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00009.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00010.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00011.ts
#EXTINF:6.0,
https://d3fch9e2fcarly.cloudfront.net/cunsco-media/SKO-22/asset-1/hls/index_720p1500k_00012.ts
#EXT-X-ENDLIST
#EXT-X-DATERANGE:ID="5-1",START-DATE="1970-01-01T00:00:28.000Z",END-DATE="1970-01-01T00:00:43.015Z",DURATION=15.015
#EXT-X-DATERANGE:ID="5-2",START-DATE="1970-01-01T00:00:43.015Z",END-DATE="1970-01-01T00:00:58.030Z",DURATION=15.01
```

# Personnalisation des manifestes DASH avec des métadonnées publicitaires
<a name="ad-id-manifest-dash"></a>

MediaTailor personnalise le manifeste avec les créations renvoyées par le serveur de décision publicitaire (ADS). Pour chaque annonce, inclut MediaTailor également un `EventStream` élément qui couvre la durée de l'annonce. Le format des `Event` éléments est similaire à celui décrit dans la section [Signalisation créative publicitaire dans DASH et HLS](https://www.svta.org/document/draft-ad-creative-signaling-in-dash-and-hls/) de la version 2023 de la publication *technique SVA*.

Pour les pauses publicitaires insuffisamment remplies sur les configurations dans lesquelles Slate MediaTailor est activée, ajoute la période Slate à la fin de la période de disponibilité, mais sans aucune métadonnée `EventStream`

Pour chaque annonce intégrée au manifeste personnalisé, les métadonnées créatives sont MediaTailor ajoutées, représentées sous la forme d'un `CDATA` élément au sein d'un `Event` élément.

**Example Origine linéaire du DASH (attributs SCTE intégrés) :**  

```
<MPD xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:scte35="urn:scte:scte35:2013:xml" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-DASH_schema_files/DASH-MPD.xsd" id="201" type="dynamic" publishTime="2023-02-10T21:08:40+00:00" minimumUpdatePeriod="PT6S" availabilityStartTime="2023-02-09T22:47:05.865000+00:00" minBufferTime="PT10S" suggestedPresentationDelay="PT20.000S" timeShiftBufferDepth="PT88.999S" profiles="urn:mpeg:dash:profile:isoff-live:2011">
  <Period start="PT80141.456S" id="104" duration="PT304.103S">
    <AdaptationSet id="1485523442" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1" bitstreamSwitching="true">
      <SegmentTemplate timescale="60000" media="index_video_$RepresentationID$_0_$Number$.mp4?m=1676062374" initialization="index_video_$RepresentationID$_0_init.mp4?m=1676062374" startNumber="151" presentationTimeOffset="4808487386">
        <SegmentTimeline>
          <S t="4824975858" d="360360" r="3"/>
          <S t="4826417298" d="316316"/>
        </SegmentTimeline>
      </SegmentTemplate>
      <Representation id="1" width="960" height="540" frameRate="30000/1001" bandwidth="1800000" codecs="avc1.4D401F"/>
      <Representation id="3" width="640" height="360" frameRate="30000/1001" bandwidth="1200000" codecs="avc1.4D401E"/>
      <Representation id="5" width="480" height="270" frameRate="30000/1001" bandwidth="800000" codecs="avc1.4D4015"/>
    </AdaptationSet>
    <AdaptationSet id="1377232898" mimeType="audio/mp4" segmentAlignment="0" lang="eng">
      <Label>eng</Label>
      <SegmentTemplate timescale="48000" media="index_audio_$RepresentationID$_0_$Number$.mp4?m=1676062374" initialization="index_audio_$RepresentationID$_0_init.mp4?m=1676062374" startNumber="151" presentationTimeOffset="3846790126">
        <SegmentTimeline>
          <S t="3859981294" d="287744"/>
          <S t="3860269038" d="288768"/>
          <S t="3860557806" d="287744"/>
          <S t="3860845550" d="288768"/>
          <S t="3861134318" d="252928"/>
        </SegmentTimeline>
        </SegmentTemplate>
        <Representation id="2" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
      <Representation id="4" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
      <Representation id="6" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
    </AdaptationSet>
    <SupplementalProperty schemeIdUri="urn:scte:dash:utc-time" value="2023-02-10T21:02:31.007Z"/>
  </Period>
  <Period start="PT80445.560S" id="155" duration="PT44.978S">
    <EventStream timescale="90000" schemeIdUri="urn:scte:scte35:2013:xml">
      <Event duration="4048044">
        <scte35:SpliceInfoSection protocolVersion="0" ptsAdjustment="207000" tier="4095">
          <scte35:SpliceInsert spliceEventId="111" spliceEventCancelIndicator="false" outOfNetworkIndicator="true" spliceImmediateFlag="false" uniqueProgramId="1" availNum="1" availsExpected="1">
            <scte35:Program>
              <scte35:SpliceTime ptsTime="7239893422"/>
            </scte35:Program>
            <scte35:BreakDuration autoReturn="true" duration="4048044"/>
          </scte35:SpliceInsert>
        </scte35:SpliceInfoSection>
      </Event>
    </EventStream>
    <AdaptationSet id="1485523442" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1" bitstreamSwitching="true">
      <SegmentTemplate timescale="60000" media="index_video_$RepresentationID$_0_$Number$.mp4?m=1676062374" initialization="index_video_$RepresentationID$_0_init.mp4?m=1676062374" startNumber="156" presentationTimeOffset="4826733614">
        <SegmentTimeline>
          <S t="4826733614" d="284284"/>
          <S t="4827017898" d="360360" r="5"/>
          <S t="4829180058" d="252252"/>
        </SegmentTimeline>
      </SegmentTemplate>
      <Representation id="1" width="960" height="540" frameRate="30000/1001" bandwidth="1800000" codecs="avc1.4D401F"/>
      <Representation id="3" width="640" height="360" frameRate="30000/1001" bandwidth="1200000" codecs="avc1.4D401E"/>
      <Representation id="5" width="480" height="270" frameRate="30000/1001" bandwidth="800000" codecs="avc1.4D4015"/>
    </AdaptationSet>
    <AdaptationSet id="1377232898" mimeType="audio/mp4" segmentAlignment="0" lang="eng">
      <Label>eng</Label>
      <SegmentTemplate timescale="48000" media="index_audio_$RepresentationID$_0_$Number$.mp4?m=1676062374" initialization="index_audio_$RepresentationID$_0_init.mp4?m=1676062374" startNumber="156" presentationTimeOffset="3861387246">
        <SegmentTimeline>
          <S t="3861387246" d="227328"/>
          <S t="3861614574" d="288768"/>
          <S t="3861903342" d="287744"/>
          <S t="3862191086" d="288768"/>
          <S t="3862479854" d="287744"/>
          <S t="3862767598" d="288768"/>
          <S t="3863056366" d="287744"/>
          <S t="3863344110" d="202752"/>
        </SegmentTimeline>
      </SegmentTemplate>
      <Representation id="2" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
      <Representation id="4" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
      <Representation id="6" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
    </AdaptationSet>
    <SupplementalProperty schemeIdUri="urn:scte:dash:utc-time" value="2023-02-10T21:07:35.111Z"/>
  </Period>
  <Period start="PT80490.538S" id="163">
    <AdaptationSet id="1485523442" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1" bitstreamSwitching="true">
      <SegmentTemplate timescale="60000" media="index_video_$RepresentationID$_0_$Number$.mp4?m=1676062374" initialization="index_video_$RepresentationID$_0_init.mp4?m=1676062374" startNumber="164" presentationTimeOffset="4829432310">
        <SegmentTimeline>
          <S t="4829432310" d="348348"/>
          <S t="4829780658" d="360360" r="1"/>
        </SegmentTimeline>
      </SegmentTemplate>
      <Representation id="1" width="960" height="540" frameRate="30000/1001" bandwidth="1800000" codecs="avc1.4D401F"/>
      <Representation id="3" width="640" height="360" frameRate="30000/1001" bandwidth="1200000" codecs="avc1.4D401E"/>
      <Representation id="5" width="480" height="270" frameRate="30000/1001" bandwidth="800000" codecs="avc1.4D4015"/>
    </AdaptationSet>
    <AdaptationSet id="1377232898" mimeType="audio/mp4" segmentAlignment="0" lang="eng">
      <Label>eng</Label>
      <SegmentTemplate timescale="48000" media="index_audio_$RepresentationID$_0_$Number$.mp4?m=1676062374" initialization="index_audio_$RepresentationID$_0_init.mp4?m=1676062374" startNumber="164" presentationTimeOffset="3863546862">
        <SegmentTimeline>
          <S t="3863546862" d="278528"/>
          <S t="3863825390" d="287744"/>
          <S t="3864113134" d="288768"/>
        </SegmentTimeline>
      </SegmentTemplate>
      <Representation id="2" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
      <Representation id="4" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
      <Representation id="6" bandwidth="193007" audioSamplingRate="48000" codecs="mp4a.40.2">
        <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
      </Representation>
    </AdaptationSet>
    <SupplementalProperty schemeIdUri="urn:scte:dash:utc-time" value="2023-02-10T21:08:20.090Z"/>
  </Period>
</MPD>
```

**Example Manifeste personnalisé linéaire DASH (avec signalisation publicitaire créative) :**  

```
<MPD availabilityStartTime="2023-02-09T22:47:05.865000+00:00" id="201" minBufferTime="PT10S" minimumUpdatePeriod="PT6S" profiles="urn:mpeg:dash:profile:isoff-live:2011" publishTime="2023-02-10T21:08:43+00:00" suggestedPresentationDelay="PT20.000S" timeShiftBufferDepth="PT88.999S" 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://d3fch9e2fcarly.cloudfront.net/out/v1/f9f38deca3f14fc4b5ab3cdbd76cfb9e/</BaseURL>
    <Location>https://777788889999.mediatailor.us-west-2.amazonaws.com/v1/dash/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/out/v1/f9f38deca3f14fc4b5ab3cdbd76cfb9e/index.mpd?aws.sessionId=672ed481-4ffd-4270-936f-7c8403947f2e</Location>
    <Period duration="PT304.103S" id="104" start="PT80141.456S">
        <AdaptationSet bitstreamSwitching="true" id="1485523442" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <SegmentTemplate initialization="index_video_$RepresentationID$_0_init.mp4?m=1676062374" media="index_video_$RepresentationID$_0_$Number$.mp4?m=1676062374" presentationTimeOffset="4808487386" startNumber="151" timescale="60000">
                <SegmentTimeline>
                    <S d="360360" r="3" t="4824975858"/>
                    <S d="316316" t="4826417298"/>
                </SegmentTimeline>
            </SegmentTemplate>
            <Representation bandwidth="1800000" codecs="avc1.4D401F" frameRate="30000/1001" height="540" id="1" width="960"/>
            <Representation bandwidth="1200000" codecs="avc1.4D401E" frameRate="30000/1001" height="360" id="3" width="640"/>
            <Representation bandwidth="800000" codecs="avc1.4D4015" frameRate="30000/1001" height="270" id="5" width="480"/>
        </AdaptationSet>
        <AdaptationSet id="1377232898" lang="eng" mimeType="audio/mp4" segmentAlignment="0">
            <Label>eng</Label>
            <SegmentTemplate initialization="index_audio_$RepresentationID$_0_init.mp4?m=1676062374" media="index_audio_$RepresentationID$_0_$Number$.mp4?m=1676062374" presentationTimeOffset="3846790126" startNumber="151" timescale="48000">
                <SegmentTimeline>
                    <S d="287744" t="3859981294"/>
                    <S d="288768" t="3860269038"/>
                    <S d="287744" t="3860557806"/>
                    <S d="288768" t="3860845550"/>
                    <S d="252928" t="3861134318"/>
                </SegmentTimeline>
            </SegmentTemplate>
            <Representation audioSamplingRate="48000" bandwidth="193007" codecs="mp4a.40.2" id="2">
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
            <Representation audioSamplingRate="48000" bandwidth="193007" codecs="mp4a.40.2" id="4">
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
            <Representation audioSamplingRate="48000" bandwidth="193007" codecs="mp4a.40.2" id="6">
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
        </AdaptationSet>
        <SupplementalProperty schemeIdUri="urn:scte:dash:utc-time" value="2023-02-10T21:02:31.007Z"/>
    </Period>
    <Period id="155_1" start="PT22H20M45.56S">
        <BaseURL>https://777788889999.mediatailor.us-west-2.amazonaws.com/v1/dashsegment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/672ed481-4ffd-4270-936f-7c8403947f2e/155/155_1/</BaseURL>
        <EventStream schemeIdUri="urn:sva:advertising-wg:ad-id-signaling" timescale="90000">
            <Event presentationTime="xxxxx" duration="1351350">
                <![CDATA[{"version": 1,"identifiers": [{"scheme": "urn:smpte:ul:060E2B34.01040101.01200900.00000000","value": "155_1","ad_position": "155_1", "ad_type":"avail","creative_id": "123","tracking_uri": "../../../../v1/tracking/hashed-account-id/origin-id/session-id","custom_vast_data":"123abc"}]}]]>
            </Event>
        </EventStream>
        <AdaptationSet bitstreamSwitching="false" frameRate="30000/1001" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <SegmentTemplate startNumber="1" timescale="90000"/>
            <Representation bandwidth="1800000" codecs="avc1.64001f" height="540" id="1" width="960">
                <SegmentTemplate initialization="asset_540_1_2init.mp4" media="asset_540_1_2_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
            <Representation bandwidth="1200000" codecs="avc1.64001e" height="360" id="3" width="640">
                <SegmentTemplate initialization="asset_360_1_1init.mp4" media="asset_360_1_1_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
            <Representation bandwidth="800000" codecs="avc1.640015" height="270" id="5" width="480">
                <SegmentTemplate initialization="asset_270_0_0init.mp4" media="asset_270_0_0_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
        </AdaptationSet>
        <AdaptationSet lang="eng" mimeType="audio/mp4" segmentAlignment="0">
            <SegmentTemplate initialization="asset_audio_128_3init.mp4" media="asset_audio_128_3_$Number%09d$.mp4" startNumber="1" timescale="48000"/>
            <Label>eng</Label>
            <Representation audioSamplingRate="48000" bandwidth="128000" codecs="mp4a.40.2" id="6">
                <SegmentTemplate initialization="asset_audio_128_3init.mp4" media="asset_audio_128_3_$Number%09d$.mp4" startNumber="1" timescale="48000">
                    <SegmentTimeline>
                        <S d="98304" t="0"/>
                        <S d="96256" r="1" t="98304"/>
                        <S d="95232" t="290816"/>
                        <S d="96256" r="2" t="386048"/>
                        <S d="48128" t="674816"/>
                    </SegmentTimeline>
                </SegmentTemplate>
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
        </AdaptationSet>
    </Period>
    <Period id="155_2" start="PT22H21M0.575S">
        <BaseURL>https://777788889999.mediatailor.us-west-2.amazonaws.com/v1/dashsegment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/672ed481-4ffd-4270-936f-7c8403947f2e/155/155_2/</BaseURL>
        <EventStream schemeIdUri="urn:sva:advertising-wg:ad-id-signaling" timescale="90000">
            <Event presentationTime="0" duration="1351350">
                <![CDATA[{"version": 1,"identifiers": [{"scheme": "urn:smpte:ul:060E2B34.01040101.01200900.00000000","value": "155_2","ad_position": "155_2", "ad_type":"avail","creative_id": "234","tracking_uri": "../../../../v1/tracking/hashed-account-id/origin-id/session-id","custom_vast_data":"123abc"}]}]]>
            </Event>
        </EventStream>
        <AdaptationSet bitstreamSwitching="false" frameRate="30000/1001" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <SegmentTemplate startNumber="1" timescale="90000"/>
            <Representation bandwidth="1800000" codecs="avc1.64001f" height="540" id="1" width="960">
                <SegmentTemplate initialization="asset_540_1_2init.mp4" media="asset_540_1_2_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
            <Representation bandwidth="1200000" codecs="avc1.64001e" height="360" id="3" width="640">
                <SegmentTemplate initialization="asset_360_1_1init.mp4" media="asset_360_1_1_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
            <Representation bandwidth="800000" codecs="avc1.640015" height="270" id="5" width="480">
                <SegmentTemplate initialization="asset_270_0_0init.mp4" media="asset_270_0_0_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
        </AdaptationSet>
        <AdaptationSet lang="eng" mimeType="audio/mp4" segmentAlignment="0">
            <SegmentTemplate initialization="asset_audio_128_3init.mp4" media="asset_audio_128_3_$Number%09d$.mp4" startNumber="1" timescale="48000"/>
            <Label>eng</Label>
            <Representation audioSamplingRate="48000" bandwidth="128000" codecs="mp4a.40.2" id="6">
                <SegmentTemplate initialization="asset_audio_128_3init.mp4" media="asset_audio_128_3_$Number%09d$.mp4" startNumber="1" timescale="48000">
                    <SegmentTimeline>
                        <S d="98304" t="0"/>
                        <S d="96256" r="1" t="98304"/>
                        <S d="95232" t="290816"/>
                        <S d="96256" r="2" t="386048"/>
                        <S d="48128" t="674816"/>
                    </SegmentTimeline>
                </SegmentTemplate>
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
        </AdaptationSet>
    </Period>
    <Period id="155_3" start="PT22H21M15.59S">
        <BaseURL>https://777788889999.mediatailor.us-west-2.amazonaws.com/v1/dashsegment/94063eadf7d8c56e9e2edd84fdf897826a70d0df/emt/672ed481-4ffd-4270-936f-7c8403947f2e/155/155_3/</BaseURL>
        <EventStream schemeIdUri="urn:sva:advertising-wg:ad-id-signaling" timescale="90000">
            <Event presentationTime="0" duration="1351350">
                <![CDATA[{"version": 1,"identifiers": [{"scheme": "urn:smpte:ul:060E2B34.01040101.01200900.00000000","value": "155_3","ad_position": "155_3", "ad_type":"avail","creative_id": "345","tracking_uri": "../../../../v1/tracking/hashed-account-id/origin-id/session-id","custom_vast_data":"123abc"}]}]]>
            </Event>
        </EventStream>
        <AdaptationSet bitstreamSwitching="false" frameRate="30000/1001" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <SegmentTemplate startNumber="1" timescale="90000"/>
            <Representation bandwidth="1800000" codecs="avc1.64001f" height="540" id="1" width="960">
                <SegmentTemplate initialization="asset_540_1_2init.mp4" media="asset_540_1_2_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
            <Representation bandwidth="1200000" codecs="avc1.64001e" height="360" id="3" width="640">
                <SegmentTemplate initialization="asset_360_1_1init.mp4" media="asset_360_1_1_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
            <Representation bandwidth="800000" codecs="avc1.640015" height="270" id="5" width="480">
                <SegmentTemplate initialization="asset_270_0_0init.mp4" media="asset_270_0_0_$Number%09d$.mp4" startNumber="1" timescale="90000">
                    <SegmentTimeline>
                        <S d="180180" r="6" t="0"/>
                        <S d="90090" t="1261260"/>
                    </SegmentTimeline>
                </SegmentTemplate>
            </Representation>
        </AdaptationSet>
        <AdaptationSet lang="eng" mimeType="audio/mp4" segmentAlignment="0">
            <SegmentTemplate initialization="asset_audio_128_3init.mp4" media="asset_audio_128_3_$Number%09d$.mp4" startNumber="1" timescale="48000"/>
            <Label>eng</Label>
            <Representation audioSamplingRate="48000" bandwidth="128000" codecs="mp4a.40.2" id="6">
                <SegmentTemplate initialization="asset_audio_128_3init.mp4" media="asset_audio_128_3_$Number%09d$.mp4" startNumber="1" timescale="48000">
                    <SegmentTimeline>
                        <S d="98304" t="0"/>
                        <S d="96256" r="1" t="98304"/>
                        <S d="95232" t="290816"/>
                        <S d="96256" r="2" t="386048"/>
                        <S d="48128" t="674816"/>
                    </SegmentTimeline>
                </SegmentTemplate>
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
        </AdaptationSet>
    </Period>
    <Period id="163" start="PT80490.538S">
        <AdaptationSet bitstreamSwitching="true" id="1485523442" mimeType="video/mp4" segmentAlignment="true" startWithSAP="1" subsegmentAlignment="true" subsegmentStartsWithSAP="1">
            <SegmentTemplate initialization="index_video_$RepresentationID$_0_init.mp4?m=1676062374" media="index_video_$RepresentationID$_0_$Number$.mp4?m=1676062374" presentationTimeOffset="4829432310" startNumber="164" timescale="60000">
                <SegmentTimeline>
                    <S d="348348" t="4829432310"/>
                    <S d="360360" r="1" t="4829780658"/>
                </SegmentTimeline>
            </SegmentTemplate>
            <Representation bandwidth="1800000" codecs="avc1.4D401F" frameRate="30000/1001" height="540" id="1" width="960"/>
            <Representation bandwidth="1200000" codecs="avc1.4D401E" frameRate="30000/1001" height="360" id="3" width="640"/>
            <Representation bandwidth="800000" codecs="avc1.4D4015" frameRate="30000/1001" height="270" id="5" width="480"/>
        </AdaptationSet>
        <AdaptationSet id="1377232898" lang="eng" mimeType="audio/mp4" segmentAlignment="0">
            <Label>eng</Label>
            <SegmentTemplate initialization="index_audio_$RepresentationID$_0_init.mp4?m=1676062374" media="index_audio_$RepresentationID$_0_$Number$.mp4?m=1676062374" presentationTimeOffset="3863546862" startNumber="164" timescale="48000">
                <SegmentTimeline>
                    <S d="278528" t="3863546862"/>
                    <S d="287744" t="3863825390"/>
                    <S d="288768" t="3864113134"/>
                </SegmentTimeline>
            </SegmentTemplate>
            <Representation audioSamplingRate="48000" bandwidth="193007" codecs="mp4a.40.2" id="2">
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
            <Representation audioSamplingRate="48000" bandwidth="193007" codecs="mp4a.40.2" id="4">
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
            <Representation audioSamplingRate="48000" bandwidth="193007" codecs="mp4a.40.2" id="6">
                <AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
            </Representation>
        </AdaptationSet>
        <SupplementalProperty schemeIdUri="urn:scte:dash:utc-time" value="2023-02-10T21:08:20.090Z"/>
    </Period>
</MPD>
```

# Interactions avec le serveur de décision publicitaire (ADS)
<a name="ad-id-ads-interactions"></a>

MediaTailor utilise la valeur de `id` l'attribut créatif issue de la réponse VAST comme valeur dans la signalisation de l'identifiant publicitaire. Si la valeur de `id` l'attribut est vide ou absente de la réponse VAST, MediaTailor place une valeur vide dans le signal d'identification publicitaire.

**Example Réponse VASTE :**  
L'exemple de réponse VAST suivant inclut une valeur d'`id`attribut pour le linéaire `Creative` en ligne. MediaTailor extrait la valeur de l'`Extension`élément VAST personnalisé et place cette valeur dans les métadonnées créatives du manifeste.  

```
<?xml version="1.0" encoding="utf-8"?>
<VAST version="3.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Ad sequence="3">
        <InLine>
            <AdSystem>2.0</AdSystem>
            <AdTitle>AD-caribbean2-15</AdTitle>
            <Impression><![CDATA[https://n8ljfs0xxx.execute-api.us-west-2.amazonaws.com/v1/impression]]></Impression>
            <Creatives>
                <Creative sequence="3" apiFramework="inLine" id="1234">
                    <Linear>
                        <Duration>00:00:15</Duration>
                        <MediaFiles>
                            <MediaFile id="00002" delivery="progressive" type="video/mp4" width="1280" height="720"><![CDATA[https://d3re4i3vgppxxx.cloudfront.net/Media/Bumpers/AD-caribbean2-15-HD.mp4]]></MediaFile>
                        </MediaFiles>
                    </Linear>
                </Creative>
            </Creatives>
          <Extensions>
            <Extension type="creative_signaling"><![CDATA[999999|TVNlDDNpFTchtpRj,E5TfTtcYd5IEzvEt,ChA05OHcvWRGFY6Zp5VSSlxUEJ2B9p8GGhQIDzIQkFeQC-Ho67FR3P9qNa6khSAGKgAyAA]]></Extension>
          </Extensions>
        </InLine>
    </Ad>
</VAST>
```

# API de suivi côté client
<a name="ad-id-client-side-tracking-api"></a>

L'exemple suivant montre comment un SDK de lecteur lie les métadonnées publicitaires du manifeste aux données complètes des événements de suivi de la charge utile de réponse de suivi côté client avec et. `creativeId` `adId`

**Example Message JSON :**  

```
{
  "avails": [
    {
      "adBreakTrackingEvents": [],
      "ads": [
        {
          "adId": "5",
          "adParameters": "",
          "adProgramDateTime": null,
          "adSystem": "2.0",
          "adTitle": "AD-caribbean2-15",
          "adVerifications": [],
          "companionAds": [],
          "creativeId": "1234",
          "creativeSequence": "2",
          "duration": "PT15S",
          "durationInSeconds": 15,
          "extensions": [],
          "mediaFiles": {
            "mediaFilesList": [],
            "mezzanine": ""
          },
          "skipOffset": null,
          "startTime": "PT30S",
          "startTimeInSeconds": 30,
          "trackingEvents": [
            {
              "beaconUrls": [
                "https://myServer/impression"
              ],
              "duration": "PT15S",
              "durationInSeconds": 15,
              "eventId": "5",
              "eventProgramDateTime": null,
              "eventType": "impression",
              "startTime": "PT30S",
              "startTimeInSeconds": 30
            }
          ],
          "vastAdId": ""
        }
      ],
      "availId": "5",
      "availProgramDateTime": null,
      "duration": "PT15S",
      "durationInSeconds": 15,
      "meta": null,
      "nonLinearAdsList": [],
      "startTime": "PT30S",
      "startTimeInSeconds": 30
    }
  ],
  "nextToken": "UFQ1TTM0Ljk2N1NfMjAyMi0xMS0xOFQwNDozMzo1Mi4yNDUxOTdaXzE%3D",
  "nonLinearAvails": []
}
```