Menggunakan variabel sesi - AWS Elemental MediaTailor

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan variabel sesi

AWS Elemental MediaTailorUntuk mengonfigurasi pengiriman data sesi ke Server Keputusan Iklan (ADS), di URL ADS templat, tentukan satu atau beberapa variabel yang tercantum di bagian ini. Anda dapat menggunakan variabel individual, dan Anda dapat menggabungkan beberapa variabel untuk membuat nilai tunggal. MediaTailor menghasilkan beberapa nilai dan memperoleh sisanya dari sumber seperti manifes dan permintaan inisialisasi sesi pemain.

Tabel berikut menjelaskan variabel data sesi yang dapat Anda gunakan dalam konfigurasi URL permintaan ADS template Anda. Nomor bagian yang tercantum dalam tabel sesuai dengan spesifikasi Society of Cable Telecommunications Engineers (SCTE) -35 versi 2019a, Pesan Isyarat Penyisipan Program Digital Untuk Kabel, Untuk detail tentang prefetch iklan, lihat. Prefetching iklan

Nama Tersedia untuk prefetch iklan Bagian spesifikasi SCTE-35 Deskripsi
[avail.index] Ya Angka yang mewakili posisi iklan tersedia dalam indeks. Pada awal sesi pemutaran, MediaTailor buat indeks semua iklan yang tersedia dalam manifes dan menyimpan indeks untuk sisa sesi. Ketika MediaTailor membuat permintaan ke ADS untuk mengisi avail, itu termasuk nomor indeks iklan avail. Parameter ini memungkinkan ADS untuk meningkatkan pemilihan iklan dengan menggunakan fitur seperti pengecualian kompetitif dan pembatasan frekuensi.
[avail.random] Ya Angka acak antara 0 dan 10.000.000.000, sebagai angka panjang, yang MediaTailor menghasilkan untuk setiap permintaan ke ADS. Beberapa server iklan menggunakan parameter ini untuk mengaktifkan fitur seperti memisahkan iklan dari perusahaan pesaing.
[scte.archive_allowed_flag] Ya 10.3.3.1 Nilai Boolean opsional. Ketika nilai ini adalah 0, pembatasan perekaman ditegaskan pada segmen. Ketika nilai ini adalah 1, pembatasan perekaman tidak ditegaskan pada segmen.
[scte.avail_num] Ya 9.7.2.1 Nilai diuraikan oleh MediaTailor dari bidang SCTE-35avail_num, sebagai angka panjang. MediaTailor dapat menggunakan nilai ini untuk menunjuk nomor avail iklan linier.
[scte.avails_expected] Ya 9,7.2.1 Nilai panjang opsional yang memberikan jumlah ketersediaan yang diharapkan dalam peristiwa saat ini.
[scte.delivery_not_restricted_flag] Ya 10.3.3.1 Nilai Boolean opsional. Ketika nilai ini adalah 0, lima bit berikutnya dicadangkan. Ketika nilai ini adalah 1, lima bit berikutnya mengambil arti seperti yang dijelaskan dalam spesifikasi SCTE-35.
[scte.device_restrictions] Ya 10.3.3.1 Nilai integer opsional yang memberi sinyal tiga kelompok perangkat yang telah ditentukan sebelumnya, independen, dan non-hierarkis. Untuk informasi selengkapnya tentang variabel ini, lihat deskripsi segments_expected dalam spesifikasi SCTE-35.
[scte.event_id]
Ya 9.1 dan 9.7.2.1 Nilai diuraikan oleh MediaTailor dari bidang SCTE-35splice_event_id, sebagai angka panjang. MediaTailor menggunakan nilai ini untuk menentukan nomor ketersediaan iklan linier atau untuk mengisi string kueri server iklan, seperti posisi pod iklan.
[scte.no_regional_blackout_flag] Ya 10.3.3.1 Nilai Boolean opsional. Jika nilai ini 0, pembatasan pemadaman regional berlaku untuk segmen tersebut. Ketika nilai ini adalah 1, pembatasan pemadaman regional tidak berlaku untuk segmen.
[scte.segment_num] Ya 10.3.3.1 Nilai integer opsional yang memberi nomor segmen dalam kumpulan segmen. Untuk informasi lebih lanjut tentang variabel ini, lihat deskripsi segment_num dalam spesifikasi SCTE-35.
[scte.segmentation_event_id] Ya 10.3.3.1 MediaTailor mengekspos variabel ini sebagaiscte.event_id.
[scte.segmentation_type_id] Ya 10.3.3.1 Nilai integer 8-bit opsional yang menentukan jenis segmentasi. Untuk informasi selengkapnya tentang variabel ini, lihat deskripsi segmentation_type_id dalam spesifikasi SCTE-35.
[scte.segmentation_upid]

segmentation_upid_type: Ya

private_data: Ya

segmentasi_upid: 10.3.3.1

UPID Pribadi Terkelola: 10.3.3.3

Sesuai dengan elemen SCTE-35segmentation_upid. segmentation_upidElemen berisi segmentation_upid_type dansegmentation_upid_length.

MediaTailor mendukung segmentation_upid jenis berikut:

  • Informasi ADS (0x0E) - Informasi iklan. Untuk informasi lebih lanjut, lihat deskripsi segmentation_upid dalam spesifikasi SCTE-35.

  • Managed Private UPID (0x0C) - Struktur Managed Private UPID (MPU) sebagaimana didefinisikan dalam spesifikasi SCTE-35. MediaTailor mendukung representasi biner atau DASH XMLSCTE.

    Anda dapat menggunakan struktur ini dalam alur kerja podbuster. Untuk melakukannya, tentukan 32-bit (4 byte)format_identifier, dan sertakan parameter berikut dalam private_data atribut:

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

    MediaTailor mem-parsing nilai-nilai dari JSON sebelumnya, dan meneruskannya ke dalam, scte.segmentation_upid.assetIdscte.segmentation_upid.cueData.key, dan variabel dinamis. scte.segmentation_upid.cueData.value

  • User Defined (0x01) - Struktur yang ditentukan pengguna. Untuk informasi lebih lanjut, lihat deskripsi segmentation_upid dalam spesifikasi SCTE-35.

[scte.segmentation_upid.assetId] Ya Digunakan bersama dengan Managed Private UPID (0xC) segmentation_ upid_type untuk alur kerja podbuster. MediaTailormenurunkan nilai ini dari assetId parameter dalam struktur private_data JSON MPU. Untuk informasi selengkapnya, lihat Managed Private UPID JSON structure for a podbuster workflow.
[scte.segmentation_upid.cueData.key] Ya Digunakan bersama dengan Managed Private UPID (0xC) segmentation_ upid_type untuk alur kerja podbuster. MediaTailormenurunkan nilai ini dari cueData.key parameter dalam struktur private_data JSON MPU. Untuk informasi selengkapnya, lihat Managed Private UPID JSON structure for a podbuster workflow.
[scte.segmentation_upid.cueData.value] Ya Digunakan bersama dengan Managed Private UPID (0xC) segmentation_ upid_type untuk alur kerja podbuster. MediaTailormenurunkan nilai ini dari cueData.key parameter dalam struktur private_data JSON MPU. Untuk informasi selengkapnya, lihat Managed Private UPID JSON structure for a podbuster workflow.
[scte.segments_expected] Ya 10.3.3.1 Nilai integer opsional yang memberikan jumlah yang diharapkan dari segmen individu dalam kumpulan segmen. Untuk informasi selengkapnya tentang variabel ini, lihat deskripsi segments_expected dalam spesifikasi SCTE-35.
[scte.sub_segment_num] Ya 10.3.3.1 Nilai integer opsional yang mengidentifikasi sub-segmen tertentu dalam kumpulan sub-segmen. Untuk informasi selengkapnya tentang variabel ini, lihat deskripsi sub_segment_num dalam spesifikasi SCTE-35.
[scte.sub_segments_expected] Ya 10.3.3.1 Nilai integer opsional yang memberikan jumlah yang diharapkan dari masing-masing sub-segmen dalam kumpulan sub-segmen. Untuk informasi selengkapnya tentang variabel ini, lihat deskripsi sub_segments_expected dalam spesifikasi SCTE-35.
[scte.unique_program_id] Ya 9.7.2.1 Nilai integer diuraikan oleh MediaTailor dari bidang splice_insert SCTE-35. unique_program_id ADS menggunakan ID program unik (UPID) untuk menyediakan penargetan iklan tingkat program untuk streaming linier langsung. Jika perintah SCTE-35 bukan sisipan sambatan, MediaTailor atur ini ke nilai kosong.
[session.avail_duration_ms] Ya

Durasi dalam milidetik dari slot ketersediaan iklan. Nilai defaultnya adalah 300.000 ms. AWS Elemental MediaTailormemperoleh nilai durasi dari manifes masukan sebagai berikut:

  • Untuk HLS, MediaTailor memperoleh durasi dari #EXT-X-CUE-OUT: DURATION atau dari nilai dalam tag. #EXT-X-DATERANGE Jika manifes input memiliki durasi nol, tidak valid, atau 0 untuk iklan yang tersedia di tag tersebut, MediaTailor gunakan default.

  • Untuk DASH, MediaTailor memperoleh nilai durasi dari durasi acara, jika ditentukan. Jika tidak, ia menggunakan nilai default.

[session.avail_duration_secs] Ya Durasi dalam hitungan detik dari slot ketersediaan iklan, atau penggunaan iklan, dibulatkan ke detik terdekat. MediaTailor menentukan nilai ini dengan cara yang sama seperti yang ditentukan[session.avail_duration_ms].
[session.client_ip] Tidak Alamat IP jarak jauh tempat MediaTailor permintaan berasal. Jika X-forwarded-for header diatur, maka nilai itulah yang MediaTailor digunakan untukclient_ip.
[session.id] Tidak Pengidentifikasi numerik unik untuk sesi pemutaran saat ini. Semua permintaan yang dibuat pemain untuk sesi memiliki id yang sama, sehingga dapat digunakan untuk bidang ADS yang dimaksudkan untuk menghubungkan permintaan untuk satu tampilan.
[session.referer] Tidak Biasanya, URL halaman yang menghosting pemutar video. MediaTailor menetapkan variabel ini ke nilai Referer header yang digunakan pemain dalam permintaannya MediaTailor. Jika pemain tidak menyediakan header ini, MediaTailor biarkan yang [session.referer] kosong. Jika Anda menggunakan jaringan pengiriman konten (CDN) atau proxy di depan titik akhir manifes dan Anda ingin variabel ini muncul, proxy header yang benar dari pemutar di sini.
[session.user_agent] Tidak User-AgentHeader yang MediaTailor diterima dari permintaan inisialisasi sesi pemain. Jika Anda menggunakan CDN atau proxy di depan titik akhir manifes, Anda harus mem-proxy header yang benar dari pemain di sini.
[session.uuid] Tidak

Alternatif untuk[session.id]. Ini adalah pengenal unik untuk sesi pemutaran saat ini, seperti berikut ini:

e039fd39-09f0-46b2-aca9-9871cc116cde

Jika ADS memerlukan parameter kueri bernama deviceSession untuk diteruskan dengan pengenal sesi unik, URL ADS template di AWS Elemental MediaTailor dapat terlihat seperti berikut:

https://my.ads.server.com/path?deviceSession=[session.id]

AWS Elemental MediaTailorsecara otomatis menghasilkan pengenal unik untuk setiap aliran, dan memasukkan pengenal sebagai pengganti. session.id Jika pengenalnya1234567, permintaan akhir yang MediaTailor dibuat ke ADS akan terlihat seperti ini:

https://my.ads.server.com/path?deviceSession=1234567

Jika ADS memerlukan beberapa parameter kueri untuk diteruskan, URL ADS template di AWS Elemental MediaTailor dapat terlihat seperti berikut:

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]

Berikut DASH penanda contoh fragmen XMLmenunjukkan cara menggunakan: 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>

Berikut DASH penanda contoh fragmen XMLmenunjukkan cara menggunakan: 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>

Berikut DASH penanda contoh fragmen XMLmenunjukkan cara menggunakan: 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>

Contoh tag HLS berikut menunjukkan cara menggunakanEXT-X-DATERANGE:

#EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2014-03-05T11: 15:00Z",PLANNED-DURATION=59.993,SCTE35-OUT=0xFC002F0000000000FF0 00014056FFFFFF000E011622DCAFF000052636200000000000A0008029896F50 000008700000000

Contoh tag HLS berikut menunjukkan cara menggunakanEXT-X-CUE-OUT:

#EXT-OATCLS-SCTE35:/DA0AAAAAAAAAAAABQb+ADAQ6QAeAhxDVUVJQAAAO3/PAAEUrEoICAAAAAAg+2UBNAAANvrtoQ== #EXT-X-ASSET:CAID=0x0000000020FB6501 #EXT-X-CUE-OUT:201.467

Contoh tag HLS berikut menunjukkan cara menggunakanEXT-X-SPLICEPOINT-SCTE35:

#EXT-X-SPLICEPOINT-SCTE35:/DA9AAAAAAAAAP/wBQb+uYbZqwAnAiVDVUVJAAAKqX//AAEjW4AMEU1EU05CMDAxMTMyMjE5M19ONAAAmXz5JA==

Contoh berikut menunjukkan cara menggunakan scte35:Binary decode:

{ "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 } }