

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

# Mengintegrasikan sumber MPEG-DASH
<a name="manifest-dash"></a>

AWS Elemental MediaTailor mendukung `.mpd` live dan video on demand (VOD) manifes yang mengikuti pedoman untuk profil dinamis DASH. MediaTailor menerima input manifes yang sesuai dengan Dash multi-periode dan periode tunggal, dan memberikan output manifes multi-periode yang sesuai dengan DASH. 

Manifes input harus memiliki yang berikut:
+ Streaming acara SCTE-35 dengan pengaturan info sambatan untuk salah satu atau. `splice insert ` ` time signal` Pengaturan dapat disediakan dalam XHTML yang jelas atau biner yang dikodekan base64. 
+ `Segment templates`dengan`segment timelines`. 

Untuk manifes yang diterbitkan, MediaTailor mengharuskan pembaruan dari server asal membiarkan hal berikut tidak berubah: 
+ Periode waktu mulai, ditentukan dalam `start` atribut. 
+ Nilai `presentationTimeOffset` dalam template segmen representasi periode. 

Sebagai praktik terbaik, berikan iklan yang sama `AdaptationSet` dan `Representation` setelan sebagai periode streaming konten. AWS Elemental MediaTailor menggunakan pengaturan ini untuk mentranskode iklan agar sesuai dengan aliran konten, untuk kelancaran peralihan di antara keduanya.

Bagian berikut memberikan informasi selengkapnya tentang cara MediaTailor menangani iklan dalam manifes DASH.

**Topics**
+ [Penanda iklan DASH](dash-ad-markers.md)
+ [Durasi penggunaan iklan DASH](dash-ad-avail-duration.md)
+ [Penomoran segmen manifes DASH](dash-manifest-segment-numbering.md)
+ [Contoh DASH MPD](manifest-dash-example.md)
+ [Fitur lokasi DASH](dash-location-feature.md)

# Penanda iklan DASH
<a name="dash-ad-markers"></a>

MediaTailor 

AWS Elemental MediaTailor menggunakan penanda isyarat SCTE-35 untuk mengidentifikasi ketersediaan iklan dalam manifes DASH menggunakan logika berikut: 
+ **DASH multi-periode**: MediaTailor menyisipkan iklan untuk yang pertama `Event` di masing-masing `Period` yang berisi salah satu `SpliceInsert` atau penanda `TimeSignal` isyarat. MediaTailormengabaikan `Event` penanda tambahan di. `Period`
+ **DASH periode tunggal**: MediaTailor menyisipkan iklan masing-masing `Event` dalam `Period` yang berisi salah satu `SpliceInsert` atau penanda `TimeSignal` isyarat.

Secara default, AWS Elemental MediaTailor mengelola manifes DASH sebagai manifes multi-periode. Anda dapat mengubah konfigurasi untuk menangani manifes DASH periode tunggal dari server asal Anda. Untuk informasi, lihat [Membuat konfigurasi MediaTailor pemutaran](configurations-create.md).

Bagian berikut memberikan detail tambahan tentang penanganan penanda iklan DASH dan menyediakan manifes yang didekorasi dari asal.

## Persyaratan XHTML manifes asal DASH
<a name="dash-ad-markers-examples"></a>

Penanda iklan dalam manifes DASH dari asal harus diformat dengan benar MediaTailor untuk mengidentifikasi jeda iklan. Topik berikut menjelaskan persyaratan pemformatan ini dalam XHTML yang jelas.

### `SpliceInsert`dalam XHTML yang jelas
<a name="dash-splice-xml"></a>

`SpliceInsert`penanda iklan dalam XHTML yang jelas harus berisi yang berikut ini:
+ `EventStream`harus memiliki atribut berikut: `schemeIdUri=urn:scte:scte35:2013:xml`
+ `Event`harus memegang `scte35:SpliceInfoSection` 
+ `scte35:SpliceInfoSection`harus memegang `scte35:SpliceInsert` 
+ `scte35:SpliceInsert`harus memiliki atribut berikut: `outOfNetworkIndicator="true"`

**Example `SpliceInsert`dalam XML/XML/XM**  
Dalam contoh berikut, penanda SCTE yang diperlukan dicetak tebal.   

```
<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`dalam XHTML yang jelas
<a name="dash-signal-xml"></a>

`TimeSignal`penanda iklan dalam XHTML yang jelas harus berisi yang berikut ini:
+ `EventStream`harus memiliki atribut berikut: `schemeIdUri=urn:scte:scte35:2013:xml`
+ `Event`harus memegang `scte35:SpliceInfoSection`
+ `scte35:SpliceInfoSection`harus memegang `scte35:TimeSignal`
+ `scte35:SpliceInfoSection`juga harus memegang `scte35:SegmentationDescriptor`
+ `scte35:SegmentationDescriptor`harus memiliki atribut berikut, di mana nilainya valid[Nomor isyarat](#dash-signal-xml-values): `segmentationTypeId="xx"`
+ `scte35:SegmentationDescriptor`harus memegang `scte35:SegmentationUpid` 
<a name="dash-signal-xml-values"></a>
**Nomor isyarat**  
Berikut ini adalah nomor isyarat yang didukung untuk. `segmentationTypeId`


| Pesan segmentasi | Nilai segmentationTypeId | Nilai heksadesimal | 
| --- | --- | --- | 
| Akhir iklan distributor | 51 | 0x51 | 
| Iklan distributor dimulai | 50 | 0x32 | 
| Kesempatan penempatan distributor berakhir | 55 | 0x37 | 
| Peluang penempatan distributor dimulai | 54 | 0x36 | 
| Istirahat akhir | 35 | 0x23 | 
| Akhir iklan penyedia | 49 | 0x31 | 
| Iklan penyedia dimulai | 48 | 0x30 | 
| Kesempatan penempatan overlay penyedia berakhir | 57 | 0x39 | 
| Peluang penempatan overlay penyedia dimulai | 56 | 0x38 | 
| Kesempatan penempatan penyedia berakhir | 53 | 0x35 | 
| Peluang penempatan penyedia dimulai | 52 | 0x34 | 
| Mulai istirahat | 34 | 0x22 | 

**Example `TimeSignal`dalam XML/XML/XM**  
Dalam contoh berikut, penanda SCTE yang diperlukan dicetak tebal.   

```
<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>
```

## Persyaratan biner yang dikodekan base64 manifes asal DASH
<a name="dash-base64"></a>

Penanda iklan dalam manifes DASH dari asal harus diformat dengan benar MediaTailor untuk mengidentifikasi jeda iklan. Topik berikut menjelaskan persyaratan pemformatan ini dalam biner berenkode base64.

Keduanya `TimeSignal` dan penanda `SpliceInsert` iklan dalam manifes yang disandikan base64 harus berisi yang berikut:
+ `EventStream`harus memiliki atribut berikut: `urn:scte:scte35:2014:xml+bin`
+ `Event`harus memegang `scte35:Signal`
+ `scte35:Signal`harus memegang `scte35:Binary` yang berisi biner yang dikodekan base64. 

Biner yang diterjemahkan harus memberikan informasi yang sama `splice_info_section` dengan apa yang diperlukan untuk penanda iklan XHTML yang jelas.
+ Jenis perintah harus salah satu `splice_insert()` atau `time_signal()`
+ Pengaturan tambahan harus sesuai dengan yang dijelaskan dalam [`TimeSignal`dalam XHTML yang jelas](#dash-signal-xml) dan[`SpliceInsert`dalam XHTML yang jelas](#dash-splice-xml).

 Biner yang didekodekan harus `splice_info_section` menyediakan kumpulan informasi yang sama seperti yang akan disediakan XHTML yang jelas dalam suatu elemen. `scte35:SpliceInfoSection` Jenis perintah harus salah satu `splice_insert()` atau`time_signal()`, dan pengaturan tambahan harus sesuai dengan yang dijelaskan sebelumnya untuk pengiriman XHTML yang jelas. 

Contoh berikut menunjukkan opsi ini, dengan spidol yang diperlukan dalam huruf tebal.

```
<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>
```

Berikut ini adalah biner decoded untuk peristiwa pertama yang tercantum dalam contoh sebelumnya. Pengaturan untuk `splice_command_type` adalah 5, yang menunjukkan`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
        }
      }
```

# Durasi penggunaan iklan DASH
<a name="dash-ad-avail-duration"></a>

Selama pemutaran, ketika AWS Elemental MediaTailor menemukan iklan yang berhasil, itu menggantikan sebagian atau semua yang berhasil dengan iklan. MediaTailor memulai penggantian iklan di awal iklan yang tersedia dan menyertakan iklan sebagai berikut: 
+ Jika iklan tersedia menentukan durasi, MediaTailor sertakan sebanyak mungkin iklan yang sesuai di dalam batas durasi, tanpa menimpa konten yang mengikuti. 
+ Jika tidak ada durasi yang disediakan, MediaTailor sertakan iklan hingga mencapai akhir iklan. Untuk manifes multi-periode, ini adalah akhir periode. Untuk manifes periode tunggal, ini adalah akhir dari acara. MediaTailor tidak memutar iklan melewati akhir iklan dan, ketika menemukan akhir, memotong iklan saat ini alih-alih menimpa konten yang mengikuti. 

**Bagaimana AWS Elemental MediaTailor tampilan durasi iklan tersedia**  
AWS Elemental MediaTailor mencari pengaturan durasi dengan urutan sebagai berikut: 

1. `Event` `duration`

1. Untuk sisipan sambatan, `scte35:BreakDuration` `duration`

1. Untuk sinyal waktu, `scte35:SegmentationDescriptor` `segmentationDuration`

Jika AWS Elemental MediaTailor tidak menemukan setelan ini, ia mengelola penyertaan iklan tanpa durasi. 

Contoh berikut menunjukkan `Event` yang memiliki a`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>
              ...
```

Contoh berikut menunjukkan iklan yang berhasil tanpa durasi yang ditentukan. The `Event` has no `duration` dan `scte35:SpliceInsert` elemen tidak mengandung elemen `scte35:BreakDuration` anak.

```
  <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>
            ...
```

# Penomoran segmen manifes DASH
<a name="dash-manifest-segment-numbering"></a>

MediaTailor mendukung segmen media `<SegmentTemplate>` yang didefinisikan menggunakan `<SegmentTimeline>` dan `media` atribut. Anda dapat menentukan daftar segmen media dalam `media` atribut menggunakan pengenal atau `$Number$` `$Time$` pengenal.

 Contoh berikut menunjukkan `SegmentTemplate` dengan pengaturan `media` atribut yang menggunakan `$Number$` identifier.

```
        <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>
```

 Contoh berikut menunjukkan `SegmentTemplate` dengan pengaturan `media` atribut yang menggunakan `$Time$` identifier.

```
        <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>
```

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

Bagian berikut memberikan contoh asal DASH MPDs dan dipersonalisasi MPDs. Memahami contoh-contoh ini dapat membantu Anda mengonfigurasi dan memecahkan masalah alur kerja Anda MediaTailor.

Untuk informasi tentang bagaimana parameter kueri diterapkan pada manifes dan segmen DASH, lihat[MediaTailor Inisialisasi sesi implisit DASH](manifest-query-parameters-dash-implicit-session-initialization.md).

## Memahami struktur DASH MPD
<a name="dash-mpd-overview"></a>

Dynamic Adaptive Streaming melalui HTTP (DASH) menggunakan manifes Media Presentation Description (MPD) untuk mengirimkan konten streaming. MPD adalah dokumen XMLyang menjelaskan struktur dan ketersediaan konten media.

MPD (Deskripsi Presentasi Media)  
MPD adalah file manifes utama dalam streaming DASH yang menggambarkan struktur dan ketersediaan konten media. Ini berisi informasi tentang periode, set adaptasi, representasi, dan segmen yang membentuk konten streaming.  
Jenis manifes ini juga dikenal dengan beberapa nama lain dalam berbagai konteks, termasuk manifes DASH, DASH MPD, manifes master (bila dibandingkan dengan HLS), atau manifes presentasi.  
Dalam MediaTailor alur kerja, MPD adalah titik masuk untuk permintaan pemutaran dan di mana personalisasi iklan dimulai.

Periode  
Periode adalah bagian temporal dari presentasi DASH. Setiap Periode berisi satu atau lebih set adaptasi dan mewakili rentang waktu media. Dalam alur kerja penyisipan iklan, Periode terpisah biasanya digunakan untuk menggambarkan antara konten dan iklan.  
Dalam MediaTailor alur kerja, Periode digunakan untuk memisahkan konten utama dari konten iklan, dengan setiap iklan biasanya diwakili oleh Periode sendiri.

AdaptationSet  
 AdaptationSet Kelompokkan satu set versi enkode yang dapat dipertukarkan dari satu atau beberapa komponen konten media. Misalnya, satu AdaptationSet mungkin berisi beberapa tingkat kualitas video, sementara yang lain mungkin berisi beberapa opsi bahasa audio.  
Dalam MediaTailor alur kerja, AdaptationSets disimpan selama penyisipan iklan untuk mempertahankan jenis media yang konsisten antara konten dan iklan.

Representasi  
Representasi adalah versi khusus yang dikodekan dari konten media dalam file. AdaptationSet Setiap Representasi biasanya berbeda dalam bitrate, resolusi, atau parameter pengkodean lainnya, memungkinkan klien untuk memilih versi yang paling tepat berdasarkan kondisi jaringan dan kemampuan perangkat.  
Dalam MediaTailor alur kerja, Representasi dalam Periode iklan dicocokkan sedekat mungkin dengan Representasi dalam Periode konten untuk memastikan pengalaman menonton yang lancar.

Untuk informasi lebih rinci tentang jenis manifes DASH, lihat[Jenis manifes DASH](dash-manifest-types.md).

Untuk informasi tentang struktur dan konfigurasi manifes DASH AWS Elemental MediaPackage, lihat bagian Panduan MediaPackage Pengguna di ikhtisar DASH.

## Contoh MPD DASH langsung
<a name="dash-manifest-live-examples"></a>

Bagian ini memberikan contoh DASH langsung MPDs. Setiap contoh mencantumkan MPD yang diterima dari server asal dan setelah MediaTailor mempersonalisasi MPD dengan iklan.

### Contoh sisipan sambungan DASH MPD
<a name="dash-manifest-splice-insert-example"></a>

**Contoh MPD asal DASH untuk sisipan sambatan**  
Contoh berikut dari MPD menunjukkan iklan yang berhasil dalam manifes yang diterima oleh DASH dari asal konten. Contoh ini menggunakan `SpliceInsert` penanda untuk menunjukkan iklan yang berhasil.

```
<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>
```

Dalam contoh MPD asal ini:
+ `<EventStream>`Elemen berisi penanda SCTE-35 yang menunjukkan ketersediaan iklan
+ `<scte35:SpliceInsert>`Elemen memberikan rincian tentang iklan yang tersedia
+ `<scte35:BreakDuration>`Elemen menentukan durasi jeda iklan
+ `<AdaptationSet>`Elemen-elemen menentukan aliran video dan audio yang tersedia

**Contoh MPD yang dipersonalisasi DASH untuk sisipan sambatan**  
AWS Elemental MediaTailor mempersonalisasi iklan yang tersedia dengan spesifikasi iklan. Personalisasi mencerminkan data pemirsa yang diterima dari pemain dan kampanye iklan yang sedang berlangsung. 

Contoh berikut menunjukkan iklan yang berhasil setelah AWS Elemental MediaTailor mempersonalisasikannya. 

```
<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>
```

Dalam contoh MPD yang dipersonalisasi ini:
+ MediaTailor telah membuat Periode baru untuk konten iklan
+ `<BaseURL>`Elemen menunjuk ke lokasi konten iklan
+ `<AdaptationSet>`Elemen-elemen mempertahankan struktur yang mirip dengan konten
+ `<Representation>`Elemen memberikan tingkat kualitas yang berbeda untuk konten iklan

### Contoh sinyal waktu DASH MPD
<a name="dash-manifest-time-signal-example"></a>

**Contoh MPD asal DASH untuk sinyal waktu**  
Contoh berikut dari MPD menunjukkan iklan yang berhasil dalam manifes yang diterima oleh DASH dari asal konten. Contoh ini menggunakan `TimeSignal` penanda untuk menunjukkan iklan yang berhasil.

```
<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>
```

Dalam contoh MPD asal ini:
+ `<scte35:TimeSignal>`Elemen digunakan sebagai pengganti `<scte35:SpliceInsert>`
+ `<scte35:SegmentationDescriptor>`Memberikan informasi tambahan tentang iklan yang tersedia

**Contoh MPD yang dipersonalisasi DASH untuk sinyal waktu**  
AWS Elemental MediaTailor mempersonalisasi iklan yang tersedia dengan spesifikasi iklan. Personalisasi mencerminkan data pemirsa yang diterima dari pemain dan kampanye iklan yang sedang berlangsung. 

Contoh berikut menunjukkan iklan yang berhasil setelah AWS Elemental MediaTailor mempersonalisasikannya. 

```
<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>
```

MPD yang dipersonalisasi untuk sinyal waktu mirip dengan yang untuk sisipan sambatan, dengan MediaTailor membuat Periode baru untuk konten iklan.

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

Bagian ini memberikan contoh video on demand (VOD) DASH MPDs. Setiap contoh mencantumkan MPD yang diterima dari server asal dan setelah MediaTailor mempersonalisasi MPD dengan iklan.

VOD DASH MPDs mengikuti struktur yang sama seperti live MPDs, tetapi mereka biasanya memiliki `type="static"` atribut dalam elemen MPD dan mungkin berisi beberapa Periode untuk segmen konten yang berbeda.

Untuk contoh VOD DASH MPDs, lihat MediaTailor dokumentasi di[Penanda iklan DASH](dash-ad-markers.md).

## Perbedaan utama dalam personalisasi MPDs
<a name="dash-manifest-key-differences"></a>

Saat MediaTailor mempersonalisasi DASH MPDs, itu membuat beberapa perubahan penting:

Penanganan periode  
+ Periode Baru dibuat untuk konten iklan
+ Waktu mulai periode disesuaikan untuk mempertahankan kontinuitas timeline
+ EventStream elemen dengan spidol SCTE-35 diproses dan dihapus

AdaptationSet dan penanganan representasi  
+ AdaptationSets di iklan Periode dibuat agar sesuai dengan konten AdaptationSets
+ Representasi dibuat untuk berbagai tingkat kualitas konten iklan
+ SegmentTemplate elemen diperbarui untuk menunjuk ke konten iklan

Memahami perubahan ini dapat membantu Anda memecahkan masalah dalam MediaTailor alur kerja Anda dan memastikan konfigurasi CDN dan pemutar yang tepat.

## Topik terkait
<a name="dash-manifest-related-topics"></a>

Untuk informasi selengkapnya tentang DASH MPDs dan MediaTailor, lihat topik berikut:
+ [Jenis manifes DASH](dash-manifest-types.md)- Penjelasan rinci tentang jenis manifes DASH
+ [Menggunakan CDN untuk mengoptimalkan personalisasi MediaTailor iklan dan penayangan konten](integrating-cdn.md)- Informasi tentang menggunakan CDN dengan MediaTailor
+ [Cara kerja penyisipan MediaTailor iklan](what-is-flow.md)- Ikhtisar tentang cara MediaTailor kerja penyisipan iklan
+ Untuk informasi lengkap tentang struktur dan MediaPackage konfigurasi manifes DASH, lihat bagian Panduan MediaPackage Pengguna tentang ikhtisar DASH.

# Fitur lokasi DASH
<a name="dash-location-feature"></a>

Bagian ini memberikan informasi tentang fitur lokasi untuk DASH, yang diaktifkan secara default di AWS Elemental MediaTailor. Baca bagian ini jika Anda membuat aturan perutean jaringan pengiriman konten (CDN) untuk mengakses MediaTailor manifes. Baca juga bagian ini jika Anda menggunakan pelaporan sisi server dengan pemain yang tidak mendukung pengalihan HTTP lengket.

**Apa fitur lokasinya?**  
Fitur lokasi memungkinkan pemain yang tidak mendukung pengalihan HTTP lengket untuk memberikan perilaku lengket dalam permintaan pembaruan manifes mereka. 

AWS Elemental MediaTailor menggunakan inisialisasi tanpa sesi, dan itu membutuhkan perilaku pengalihan HTTP lengket dari pemainnya. Dengan pelaporan sisi server, ketika pemain membuat permintaan untuk pembaruan manifes, layanan mengeluarkan pengalihan sementara 302 MediaTailor, untuk mengarahkan pemain ke titik akhir untuk manifes yang dipersonalisasi. MediaTailor menyertakan ID sesi dalam respons, sebagai parameter kueri. Tujuannya adalah agar pemain mengikuti URL untuk keseluruhan sesi, tetapi pemain yang tidak mendukung pengalihan HTTP lengket menjatuhkan pengalihan dan kembali ke URL asli. Ketika pemain kembali ke URL asli, untuk setiap permintaan baru MediaTailor membuat sesi baru daripada tetap dengan sesi asli. Hal ini dapat menyebabkan manifes menjadi korup. 

Spesifikasi DASH memberikan solusi untuk masalah ini di fitur lokasi, yang diaktifkan secara default dalam AWS Elemental MediaTailor konfigurasi. Ketika fitur ini diaktifkan, MediaTailor menempatkan URL absolut dalam `<Location>` tag manifes. Pemain yang tidak mendukung pengalihan HTTP lengket dapat menggunakan URL yang disediakan `<Location>` untuk meminta pembaruan ke manifes. 

**Apakah saya perlu menonaktifkan fitur lokasi dalam konfigurasi saya?**  
Fitur lokasi mengesampingkan aturan perutean CDN apa pun yang Anda siapkan untuk mengakses AWS Elemental MediaTailor manifes, jadi Anda mungkin perlu menonaktifkannya. Fitur lokasi tidak memengaruhi caching CDN pada konten atau segmen iklan. 

Temukan situasi Anda dalam daftar berikut untuk menentukan apakah Anda perlu menonaktifkan fitur lokasi untuk konfigurasi Anda dan cara menanganinya:
+ Jika Anda tidak memiliki aturan perutean CDN yang disiapkan untuk mengakses AWS Elemental MediaTailor manifes, biarkan pengaturan lokasi diaktifkan. 
+ Jika tidak, gunakan aturan berikut:
  + Jika Anda tidak menggunakan pelaporan sisi server atau semua pemain Anda mendukung pengalihan HTTP lengket, nonaktifkan fitur lokasi. Untuk informasi tentang cara melakukan ini di konsol, lihat[Membuat konfigurasi MediaTailor pemutaran](configurations-create.md).
  + Jika tidak, hubungi [AWS Support](https://aws.amazon.com/premiumsupport/).

**Apakah saya perlu menggunakan fitur lokasi?**  
Anda perlu menggunakan fitur lokasi untuk pemain yang tidak mendukung pengalihan HTTP lengket. Gunakan URL yang disediakan dalam `<Location>` tag untuk semua permintaan pembaruan manifes Anda. 

**Contoh**  
Contoh URLs dan contoh `<Location>` tag.
+   
**Example Contoh: URL permintaan awal**  

  ```
  https://777788889999.mediatailor.us-east-1.amazonaws.com/v1/dash/5ca4c1892b1f213a1247fad47b3e34c454a7d490/testLocationTag/index.mpd
  ```
+   
**Example Contoh: Respon 302 yang dialihkan**  

  ```
  /v1/dash/5ca4c1892b1f213a1247fad47b3e34c454a7d490/testLocationTag/index.mpd?aws.sessionId=0e5d9b45-ae97-49eb-901b-893d043e0aa6
  ```
+   
**Example Contoh: Tag lokasi dalam manifes**  

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