View a markdown version of this page

MediaTailor variables de session pour les requêtes ADS - AWS Elemental MediaTailor

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.

MediaTailor variables de session pour les requêtes ADS

AWS Elemental MediaTailor envoie des données de session à l'Ad Decision Server (ADS) lorsque vous configurez AWS Elemental MediaTailor pour spécifier une ou plusieurs des variables répertoriées dans cette section dans le modèle d'URL ADS. Vous pouvez utiliser des variables individuelles et 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 répertoriés dans le tableau correspondent à la version 2019a de la spécification S-35 de la Society of Cable Telecommunications Engineers (SCTE), Digital Program Insertion Cueing Message. Pour plus de détails sur la prélecture des annonces, voir. Publicités de prélecture

Nom Disponible pour la prélecture des annonces SCTE-35 section des spécifications Description
[avail.index] Oui Nombre qui représente la position d'une annonce disponible dans un index. Au début d'une session de lecture, MediaTailor crée un index de toutes les publicités disponibles dans un manifeste et stocke l'index pour le reste de la session. Lorsqu'il MediaTailor fait une demande à l'ADS pour remplir l'offre, il 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_allowed_flag] Oui 10.3.3.1 Valeur booléenne facultative. Lorsque cette valeur est égale à 0, des restrictions d'enregistrement sont appliquées au segment. Lorsque cette valeur est égale à 1, aucune restriction d'enregistrement n'est imposée au segment.
[scte.avail_num] Oui 9.7.2.1 La valeur analysée par MediaTailor le SCTE-35 champavail_num, sous la forme d'un nombre long. MediaTailor Je peux utiliser cette valeur pour désigner des numéros de disponibilité linéaires.

La valeur doit être un entier.

[scte.avails_expected] Oui 9,7,2.1 Une valeur longue facultative qui indique le nombre attendu de résultats au cours de l'événement en cours.
[scte.delivery_not_restricted_flag] 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 SCTE-35 spécification.
[scte.device_restrictions] Oui 10.3.3.1 Valeur entière facultative qui signale 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_expected dans la spécification. SCTE-35
[scte.event_id]
Oui 9.1 et 9.7.2.1 La valeur analysée par MediaTailor le SCTE-35 champsplice_event_id, sous la forme d'un nombre long. MediaTailor utilise cette valeur pour désigner des numéros linéaires de disponibilité des annonces ou pour renseigner les chaînes de requête du serveur publicitaire, telles que la position des pods publicitaires.

La valeur doit être un entier.

[scte.no_regional_blackout_flag] Oui 10.3.3.1 Valeur booléenne facultative. Lorsque cette valeur est égale à 0, des 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_num] Oui 10.3.3.1 Valeur entière facultative qui numérote les segments d'une collection de segments. Pour plus d'informations sur cette variable, consultez la description segment_num dans la spécification. SCTE-35
[scte.segmentation_event_id] Oui 10.3.3.1 MediaTailor expose cette variable sous la formescte.event_id.
[scte.segmentation_type_id] Oui 10.3.3.1 Valeur entière 8 bits facultative qui spécifie le type de segmentation. Pour plus d'informations sur cette variable, consultez la description segmentation_type_id dans la spécification. SCTE-35
[scte.segmentation_upid]

segmentation_upid_type : Oui

private_data : Oui

segmentation_upid : 10.3.3.1

UPID privé géré : 10.3.3.3

Correspond à l' SCTE-35 segmentation_upidélément. L'segmentation_upidélément contient segmentation_upid_type etsegmentation_upid_length.

MediaTailor prend en charge les segmentation_upid types suivants :

  • Informations sur l'ADS (0x0E)  : informations publicitaires. Pour plus d'informations, consultez la description de segmentation_upid dans la spécification. SCTE-35

  • UPID privé géré (0x0C)  : structure UPID privé géré (MPU) telle que définie dans la spécification. SCTE-35 MediaTailor prend en charge les représentations SCTE binaires ou DASH XML.

    Vous pouvez utiliser cette structure dans un flux de travail de podbuster. Pour ce faire, spécifiez une valeur de 32 bits (4 octets) format_identifier et incluez les paramètres suivants dans l'private_dataattribut :

    ABCD{"assetId":"my_program","cueData":{"cueType":"theAdType","key":"pb","value":"123456"}}

    MediaTailor analyse les valeurs du JSON précédent et les transmet aux variables scte.segmentation_upid.assetIdscte.segmentation_upid.cueData.key, et scte.segmentation_upid.cueData.value dynamiques.

  • Défini par l'utilisateur (0x01)  : structure définie par l'utilisateur. Pour plus d'informations, consultez la description de segmentation_upid dans la spécification. SCTE-35

[scte.segmentation_upid.assetId] Oui Utilisé conjointement avec l'UPID privé géré (0xC) segmentation_ upid_type pour les flux de travail Podbuster. MediaTailordérive cette valeur à partir du assetId paramètre de la structure private_data JSON du MPU. Pour de plus amples informations, veuillez consulter Managed Private UPID JSON structure for a podbuster workflow.
[scte.segmentation_upid.cueData.key] Oui Utilisé conjointement avec l'UPID privé géré (0xC) segmentation_ upid_type pour les flux de travail Podbuster. MediaTailordérive cette valeur à partir du cueData.key paramètre de la structure private_data JSON du MPU. Pour de plus amples informations, veuillez consulter Managed Private UPID JSON structure for a podbuster workflow.
[scte.segmentation_upid.cueData.value] Oui Utilisé conjointement avec l'UPID privé géré (0xC) segmentation_ upid_type pour les flux de travail Podbuster. MediaTailordérive cette valeur à partir du cueData.key paramètre de la structure private_data JSON du MPU. Pour de plus amples informations, veuillez consulter Managed Private UPID JSON structure for a podbuster workflow.

La valeur peut être une chaîne.

[scte.segmentation_upid.private_data.{index}] Oui Utilisé conjointement avec l'UPID privé géré (0xC) segmentation_upid_type pour les flux de travail publicitaires ciblés. MediaTailor divise les jetons UPID de segmentation séparé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 deux points, sans tenir compte des espaces en tête des deux points initiaux.

Par exemple, sisegmentation_upid = ":3213214:2313321/5:3943", alors :

  • [scte.segmentation_upid.private_data.0] = 3213214

  • [scte.segmentation_upid.private_data.1] = 2313321/5

  • [scte.segmentation_upid.private_data.2] = 3943

La valeur peut être une chaîne.

[scte.segments_expected] 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_expected dans la spécification. SCTE-35
[scte.sub_segment_num] 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_segment_num dans la spécification. SCTE-35
[scte.sub_segments_expected] Oui 10.3.3.1 Valeur entière facultative qui donne 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 de sub_segments_expected dans la spécification. SCTE-35
[scte.unique_program_id] Oui 9.7.2.1 La valeur entière analysée par MediaTailor le SCTE-35 splice_insert champ. unique_program_id 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 SCTE-35 commande n'est pas splice insert, MediaTailor définissez-la sur une valeur vide.

La valeur doit être un entier.

[session.avail_duration_ms] 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 :

  • Pour HLS : MediaTailor obtient la durée à partir des valeurs #EXT-X-CUE-OUT: DURATION ou de la #EXT-X-DATERANGE balise. Si le manifeste d'entrée a une durée nulle, non valide ou nulle pour la disponibilité de l'annonce dans ces balises, MediaTailor utilise la valeur par défaut.

  • Pour DASH : MediaTailor obtient la valeur de durée à partir de la durée de l'événement, si celle-ci est spécifiée. Sinon, la valeur par défaut est utilisée.

  • Pour la VOD : lorsqu'un flux VOD déclenche un appel publicitaire pré-roll, si le manifeste n'inclut pas la messagerie SCTE avec une valeur de durée, aucune durée MediaTailor n'est saisie pour le [session.avail_duration_ms], y compris la valeur de durée par défaut.

[session.avail_duration_secs] Oui Durée en secondes du créneau de disponibilité des annonces, ou durée de disponibilité des annonces, arrondie à la seconde la plus proche. MediaTailor détermine cette valeur de la même manière qu'elle le détermine[session.avail_duration_ms].
[session.client_ip] 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_ip.
[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 Généralement, l'URL de la page qui héberge le lecteur vidéo. MediaTailor définit cette variable sur la valeur de l'Refereren-tête que le joueur a utilisé dans sa requête 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 bon en-tête depuis le lecteur situé ici.
[session.user_agent] Non User-AgentEn-tête MediaTailor reçu suite à 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 :

e039fd39-09f0-46b2-aca9-9871cc116cde
[avail.source_content_time_epoch_ms] Non

Pour HLS, la valeur est le PDT du segment d'origine à l'origine de l'utilisation. Pour DASH, la valeur est <SupplementalProperty> urn:scte:dash:utc-time celle <Period> qui contient le<EventStream>.

  • Pour les publicités HLS ou DASH avant le [avail.source_content_time_epoch_ms] lancement, il s'agit du PDT du premier segment HLS et du <SupplementalProperty> urn:scte:dash:utc-time premier. <Period> Pour les diffusions en direct avec de courtes fenêtres de manifeste, cette valeur sera différente pour chaque spectateur en fonction du moment où il commence à regarder le flux. Pour une diffusion en direct avec une fenêtre DVR complète, la valeur sera la même pour chaque spectateur.

  • Pour les disponibilités partielles dues à une suppression de disponibilité, il [avail.source_content_time_epoch_ms] s'agit du PDT du segment de contenu source qui a déclenché la disponibilité. Par exemple, si MediaTailor les 20 premières secondes sont supprimées, le PDT d'origine [avail.source_content_time_epoch_ms] sera toujours réglé sur le PDT d'origine, et non décalé de 20 secondes.

  • Pour les requêtes ADS par prélecture, [avail.source_content_time_epoch_ms] est vide, mais les clients peuvent le définir à l'aide de variables dynamiques de récupération du calendrier de prélecture.

Exemple

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 desession.id. Si l'identifiant est1234567, la demande finale MediaTailor adressé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, le modèle d'URL ADS AWS Elemental MediaTailor peut ressembler à ce qui 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]

L'exemple de fragment XML 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>

L'exemple de fragment XML 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>

L'exemple de fragment XML 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 } }