

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

# Menggunakan AWS Elemental MediaTailor untuk menyisipkan iklan
<a name="configurations"></a>

Konfigurasi adalah objek yang berinteraksi dengan Anda AWS Elemental MediaTailor. Konfigurasi menyimpan informasi pemetaan untuk server asal dan server keputusan iklan (ADS). Anda juga dapat menentukan pemutaran default MediaTailor untuk digunakan saat iklan tidak tersedia atau tidak mengisi seluruh iklan yang tersedia.

Jika Anda menggunakan jaringan pengiriman konten (CDN) dengan MediaTailor, Anda harus mengatur aturan perilaku di CDN sebelum menambahkan informasi CDN ke konfigurasi. Untuk informasi selengkapnya tentang pengaturan CDN Anda, lihat[Menggunakan CDN untuk mengoptimalkan personalisasi MediaTailor iklan dan penayangan konten](integrating-cdn.md).

**Topics**
+ [Codec audio dan video yang didukung](#supportedcodecs)
+ [Memahami AWS Elemental MediaTailor perilaku penyisipan iklan](ad-behavior.md)
+ [MediaTailor ikhtisar dan implementasi penyisipan iklan yang dipandu server](server-guided.md)
+ [MediaTailor persyaratan integrasi server iklan](vast.md)
+ [MediaTailor manajemen konfigurasi pemutaran](working-with-configurations.md)
+ [Mengintegrasikan sumber konten untuk penyisipan MediaTailor iklan](integrating-origin.md)
+ [Integrasi AWS Elemental MediaTailor dengan Google Ad Manager](gam-integration.md)
+ [Menyesuaikan perilaku pemutusan iklan dengan penekanan jeda iklan](ad-rules.md)
+ [MediaTailor penyisipan iklan bumper](bumpers.md)
+ [MediaTailor penyisipan iklan pra-gulung](ad-behavior-preroll.md)
+ [MediaTailor penyisipan iklan batu tulis](slate-management.md)
+ [Prefetching iklan](prefetching-ads.md)
+ [Menggunakan iklan terkondisi dengan AWS Elemental MediaTailor](precondition-ads.md)
+ [MediaTailor variabel iklan dinamis untuk permintaan ADS](variables.md)
+ [MediaTailor parameter kueri manifes](manifest-query-parameters.md)
+ [Melaporkan data pelacakan iklan](ad-reporting.md)
+ [Iklan overlay](overlay-ads.md)
+ [Dekorasi ID Iklan](ad-id-decoration.md)

## Codec audio dan video yang didukung
<a name="supportedcodecs"></a>

MediaTailor mendukung codec berikut.
+ Codec audio:mp4a,, dan ac-3 ec-3
+ Codec video: h.264 (AVC), h.265 (), (HEVC) av01 AV1

# Memahami AWS Elemental MediaTailor perilaku penyisipan iklan
<a name="ad-behavior"></a>

AWS Elemental MediaTailor menjahit iklan ke dalam konten langsung atau video sesuai permintaan (VOD) dengan mengganti atau memasukkan iklan ke manifes asal. Apakah iklan disisipkan atau diganti tergantung pada cara jeda iklan dikonfigurasi dalam manifes asal, dan apakah konten tersebut VOD atau live. Jeda iklan adalah periode waktu selama pemrograman saat iklan ditampilkan, sedangkan ketersediaan iklan adalah unit waktu iklan tertentu dalam jeda iklan yang dapat diisi dengan iklan.
+ Dengan *penggantian iklan, MediaTailor ganti* segmen konten dengan iklan. 
+ Dengan *penyisipan iklan*, MediaTailor menyisipkan konten iklan di mana segmen tidak ada.

Untuk informasi tentang cara MediaTailor menjahit iklan ke dalam konten langsung dan VOD, pilih topik yang berlaku.

**Topics**
+ [Perilaku menjahit iklan untuk VOD](#ad-behavior-vod)
+ [Perilaku menjahit iklan langsung](#ad-behavior-live)

## Perilaku menjahit iklan untuk VOD
<a name="ad-behavior-vod"></a>

MediaTailor menyisipkan atau mengganti iklan dalam konten VOD berdasarkan cara penanda iklan dikonfigurasi dalam manifes asal, dan jika server keputusan iklan (ADS) mengirimkan respons VMAP.

Untuk perilaku iklan berdasarkan konfigurasi penanda, lihat bagian berikut.

### Jika ada penanda iklan
<a name="markers-present"></a>

AWS Elemental MediaTailor menyisipkan iklan di mana penanda iklan SCTE-35 hadir dalam manifes asal. Penanda iklan dengan `EXT-X-CUE-OUT` nilai `0` durasi menunjukkan penyisipan iklan. 

#### Pedoman penanda iklan HLS
<a name="markers-present-hls"></a>

 Ikuti panduan berikut untuk pensinyalan SCTE post-roll dan ad pod: 

##### Iklan pra-putar
<a name="post-roll-ad-markers"></a>

Untuk pasca-gulungan HLS, `CUE-OUT/IN` penanda harus mendahului segmen konten terakhir. Ini karena spesifikasi HLS mengharuskan dekorator tag dideklarasikan secara eksplisit sebelum segmen. 

Misalnya, perhatikan deklarasi berikut. 

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

AWS Elemental MediaTailor menyisipkan post-roll seperti berikut ini.

```
#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: Pod iklan**  
 `CUE-OUT/IN`tag harus secara eksplisit dilampirkan ke segmen. Anda tidak dapat menggunakan beberapa `CUE-OUT/IN` tag berturut-turut untuk meniru perilaku pod iklan.  
Misalnya, deklarasi berikut adalah penggunaan yang valid `CUE-OUT/IN` untuk menggambarkan pod iklan.  

```
#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
```
Deklarasi sebelumnya menghasilkan output seperti berikut ini.   

```
Ad 1
Somecontent.ts
Ad 2
Somecontent2.ts
Videocontent.ts
Post-Roll Ad 3
```
Deklarasi berikut tidak valid.  

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

### Jika tidak ada penanda iklan yang ada
<a name="no-markers"></a>

Penanda iklan adalah cara yang disarankan untuk memberi sinyal jeda iklan dalam manifes. Namun, penanda iklan tidak diperlukan. Jika manifes tidak berisi penanda iklan untuk DASH atau HLS, MediaTailor lakukan satu panggilan ke ADS dan buat jeda iklan berdasarkan respons:
+ Jika ADS mengirimkan respons MediaTailor VAST, maka sisipkan semua iklan dari respons dalam jeda iklan di awal manifes. Ini adalah pre-roll.
+ Jika ADS mengirimkan respons VMAP, MediaTailor gunakan offset waktu istirahat iklan untuk membuat jeda dan menyisipkannya ke seluruh manifes pada waktu yang ditentukan (pra-putar, pertengahan putaran, atau pasca-roll). MediaTailor menggunakan semua iklan dari setiap jeda iklan dalam respons VMAP untuk setiap jeda iklan dalam manifes. 
**catatan**  
Saat segmen tumpang tindih dengan titik penyisipan dengan VMAP untuk konten VOD, MediaTailor bulatkan ke bawah ke titik penyisipan terdekat. 
**Tip**  
Jika Anda ingin membuat jeda iklan mid-roll tetapi ADS Anda tidak mendukung VMAP, pastikan ada penanda iklan di manifes. MediaTailor menyisipkan iklan di penanda, seperti yang dijelaskan di bagian berikut.

**catatan**  
Untuk metode penyisipan iklan yang dipandu server, MediaTailor sisipkan iklan pra-putar di bagian atas manifes dan pemain memainkannya sebelum jenis iklan lainnya.

## Perilaku menjahit iklan langsung
<a name="ad-behavior-live"></a>

Dalam streaming langsung, AWS Elemental MediaTailor selalu lakukan penggantian iklan, menjaga total waktu antara penanda iklan sedekat mungkin. Jika penanda iklan menyertakan `DURATION` atribut, MediaTailor gunakan nilai untuk menentukan durasi jeda iklan. Setiap `CUE-OUT` indikator harus memiliki durasi atau `CUE-IN` indikator yang cocok dalam alur kerja langsung. 

MediaTailor melakukan penggantian iklan untuk konten langsung HLS dan DASH. Untuk informasi tentang cara MediaTailor menghitung penempatan dan waktu jeda iklan, lihat [Penanda iklan yang didukung HLS](hls-ad-markers.md) dan[Penanda iklan DASH](dash-ad-markers.md). 

### Pemilihan dan penggantian iklan
<a name="ad-behavior-live-ad-selection"></a>

AWS Elemental MediaTailor menyertakan iklan dari server keputusan iklan (ADS) respons VAST sebagai berikut: 
+ Jika durasi ditentukan, MediaTailor pilih sekumpulan iklan yang sesuai dengan durasi dan sertakan iklan tersebut. 
+ Jika tidak ada durasi yang MediaTailor ditentukan, putar iklan sebanyak mungkin hingga menemukan penanda iklan yang menunjukkan pengembalian ke konten utama.

AWS Elemental MediaTailor mematuhi pedoman berikut selama penggantian iklan langsung: 
+ MediaTailor mencoba memutar iklan lengkap, tanpa kliping atau pemotongan.
+ Setiap kali MediaTailor menemukan penanda iklan yang menunjukkan berakhirnya jeda iklan, penanda tersebut akan kembali ke konten yang mendasarinya. Ini bisa berarti memperpendek iklan yang sedang diputar. 
+ Di akhir durasi, MediaTailor kembali ke konten yang mendasarinya.
+ Jika MediaTailor kehabisan iklan untuk diputar selama jeda iklan, iklan tersebut akan memutar papan tulis, jika dikonfigurasi, atau melanjutkan pemutaran aliran konten yang mendasarinya. Ini biasanya terjadi ketika tidak ada cukup iklan transkode untuk mengisi durasi jeda iklan. 

  
**Tip**  
Anda dapat menentukan batas waktu iklan yang tidak terisi yang diizinkan dalam jeda dengan setelan konfigurasi ambang personalisasi. Untuk informasi lebih lanjut, lihat [PlaybackConfiguration referensi](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_PutPlaybackConfiguration.html#mediatailor-PutPlaybackConfiguration-request-PersonalizationThresholdSeconds).

### Preroll langsung untuk penyisipan iklan yang dipandu server
<a name="ad-behavior-live-preroll-sgai"></a>

Preroll langsung bekerja secara berbeda untuk metode penyisipan iklan yang dipandu server dibandingkan dengan penyisipan iklan sisi server:

Penyisipan iklan sisi server (mode dijahit)  
Iklan preroll menggantikan bagian dari konten langsung di awal sesi setiap pemirsa. Setiap pemirsa melihat preroll pada waktu yang berbeda berdasarkan kapan mereka bergabung dengan streaming.

Metode penyisipan iklan yang dipandu server  
MediaTailor menempatkan tag daterange preroll di bagian atas semua manifes media dengan atribut. `CUE="PRE,ONCE"` Hal ini menyebabkan pemain meminta dan memutar iklan preroll sekali pada awal pemutaran, meskipun berbagi manifes non-personal yang sama.

**Persyaratan konfigurasi:**
+ **Server keputusan iklan preroll langsung:** Konfigurasikan titik akhir VAST untuk iklan preroll (bisa berbeda dari iklan mid-roll)
+ **Durasi maksimum yang diizinkan preroll langsung:** Tetapkan durasi maksimum untuk iklan preroll (opsional - jika dihilangkan, semua iklan yang dikembalikan akan digunakan)

**Implementasi teknis:**
+ Penggunaan `START-DATE="1970-01-01T00:00:00.000Z"` tag daterange preroll (Unix epoch)
+ Permintaan daftar aset untuk preroll menggunakan server keputusan iklan preroll yang dikonfigurasi, bukan ADS biasa
+ Pemain mengidentifikasi permintaan preroll melalui data `availId="aws-mediatailor-preroll-1"` dalam daftar aset

**penting**  
Untuk streaming langsung, iklan preroll mencakup konten daripada menundanya. Versi mendatang dapat mendukung mode penundaan konten melalui opsi konfigurasi tambahan.

**catatan**  
Perilaku preroll bervariasi antara konten langsung dan VOD untuk penyisipan iklan yang dipandu server. Konten langsung memerlukan konfigurasi preroll eksplisit, sedangkan konten VOD menyertakan preroll secara default menggunakan server keputusan iklan reguler.

### Contoh
<a name="ad-behavior-live-examples"></a>
+ Jika jeda iklan memiliki durasi yang disetel ke 70 detik dan respons ADS berisi dua iklan 40 detik, putar AWS Elemental MediaTailor salah satu iklan 40 detik. Dalam waktu yang tersisa, itu beralih ke batu tulis yang dikonfigurasi atau konten yang mendasarinya. Pada titik mana pun selama proses ini, jika MediaTailor menemukan indikator isyarat, itu langsung memotong ke konten yang mendasarinya. 
+ Jika jeda iklan memiliki durasi yang disetel ke 30 detik dan iklan terpendek yang disediakan oleh respons ADS adalah 40 detik, iklan tidak akan MediaTailor diputar. Jika papan tulis iklan dikonfigurasi, MediaTailor putar itu selama 30 detik atau hingga menemukan indikator isyarat. Jika tidak, MediaTailor mainkan konten yang mendasarinya.

# MediaTailor ikhtisar dan implementasi penyisipan iklan yang dipandu server
<a name="server-guided"></a>

AWS Elemental MediaTailor penyisipan iklan yang dipandu server (SGAI) menyediakan alternatif untuk penyisipan iklan sisi server dengan mereferensikan iklan sebagai daftar putar terpisah daripada menjahitnya langsung ke daftar putar media. Pendekatan ini meningkatkan kinerja melalui manifes yang dapat di-cache dan memungkinkan skalabilitas yang lebih baik.

Untuk informasi tentang cara menggunakan penyisipan iklan yang dipandu server MediaTailor, pilih topik yang berlaku dari daftar berikut.

## Aktifkan dalam konfigurasi pemutaran
<a name="enable-in-config"></a>

Untuk memungkinkan pemain menggunakan penyisipan iklan yang dipandu server, Anda harus mengatur `Insertion Mode` ke `PLAYER_SELECT` dalam konfigurasi pemutaran. MediaTailor Ini memungkinkan pemain untuk memilih penyisipan iklan yang dijahit atau dipandu pada waktu inisialisasi sesi.

## Buat sesi yang dipandu server
<a name="create-guided-session"></a>

Saat membuat sesi pemutaran, pilih mode terpandu. Cara untuk melakukan ini tergantung pada apakah pemain Anda menggunakan sesi implisit atau eksplisit.

### Sesi yang dipandu server yang dibuat secara implisit
<a name="create-implicit-guided-session"></a>

Tambahkan `aws.insertionMode=GUIDED` ke permintaan daftar putar multivarian HLS. Contoh:

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

Di mana:
+ `playback-endpoint`adalah titik akhir pemutaran unik yang AWS Elemental MediaTailor dihasilkan saat konfigurasi dibuat. 

  Contoh

  ```
  https://777788889999.mediatailor.us-east-1.amazonaws.com
  ```
+ `hashed-account-id`adalah Akun AWS ID Anda. 

  Contoh

  ```
  777788889999
  ```
+ `origin-id`adalah nama yang Anda berikan saat membuat konfigurasi. 

  Contoh

  ```
  myOrigin
  ```
+ `index.m3u8`atau adalah nama manifes dari aliran pengujian ditambah ekstensi file-nya. Tentukan ini sehingga Anda mendapatkan manifes yang teridentifikasi sepenuhnya saat menambahkan ini ke sumber konten video yang Anda konfigurasikan[Langkah 4: Buat konfigurasi](getting-started-ad-insertion.md#getting-started-add-mapping). 

Menggunakan nilai-nilai dari contoh sebelumnya, lengkap URLs adalah sebagai berikut.
+ Contoh:

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

### Sesi yang dipandu server yang dibuat secara eksplisit
<a name="create-explicit-guided-session"></a>

Tambahkan `insertionMode=GUIDED` ke metadata JSON yang dikirim pemain dalam HTTP `POST` ke titik akhir awalan sesi MediaTailor inisialisasi konfigurasi.

Contoh berikut menunjukkan struktur metadata JSON:

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

Dengan metadata inisialisasi ini, sesi pemutaran akan menggunakan penyisipan iklan yang dipandu server.

# Pelacakan iklan dengan SGAI
<a name="sgai-ad-tracking"></a>

SGAI mendukung pelacakan iklan sisi server dan sisi klien. Anda mengatur mode pelaporan pada inisialisasi sesi. Mode tidak dapat berubah selama sesi.

Pelacakan sisi server (default)  
MediaTailor menyalakan suar VAST secara otomatis saat pemain meminta segmen iklan. Iklan URIs dalam daftar aset berisi metadata suar terenkripsi (,,). `awsBeaconData` `awsBeaconDomain` `awsConfigurationName` Pemain harus mendukung substitusi `#EXT-X-DEFINE:QUERYPARAM` variabel HLS. Respons daftar aset tidak menyertakan `TRACKING` bagian.  
Untuk detail tentang cara kerja beaconing sisi server SGAI, lihat. [Pelacakan sisi server dengan penyisipan iklan yang dipandu server (SGAI)](ad-reporting-server-side-sgai.md)

Pelacakan sisi klien  
Tambahkan `aws.reportingMode=CLIENT` ke permintaan inisialisasi sesi Anda. Respons daftar aset mencakup `TRACKING` bagian dengan suar URLs yang diaktifkan pemain selama pemutaran iklan. Titik akhir `GetTracking` API *tidak* digunakan untuk sesi SGAI. Sebagai gantinya, setiap respons daftar aset mencakup data pelacakan secara langsung. Data pelacakan menggunakan skema JSON yang sama dengan respons pelacakan penyisipan iklan sisi server (SSAI).  
Lihat perinciannya di [Penyisipan iklan yang dipandu server](ad-reporting-client-side.md#ad-reporting-client-side-best-practices-sgai).

# Prefetch terpandu dengan detak jantung yang nyata
<a name="sgai-guided-prefetch"></a>

Untuk streaming SGAI langsung, Anda dapat mengaktifkan prefetching iklan berbasis manifes dengan menambahkan permintaan inisialisasi sesi Anda: `aws.guidedPrefetchMode=MANIFEST`

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

Saat diaktifkan, MediaTailor tambahkan pengenal sesi (`?aws.sessionId=<id>`) sebagai parameter kueri ke setiap URL manifes media interstitial (`/v1/i-media`) dalam daftar putar multivariant. Setiap kali pemain menyegarkan manifes i-media, permintaan mencapai MediaTailor dengan ID sesi, yang MediaTailor digunakan untuk mengantrekan permintaan prefetch untuk jeda iklan yang akan datang.
+ `aws.guidedPrefetchMode`Parameter menerima dua nilai: `MANIFEST` (diaktifkan) dan `OFF` (dinonaktifkan, default).
+ Mode prefetch terpandu hanya berlaku untuk sesi SGAI. Menggunakannya dengan sesi yang dijahit mengembalikan kesalahan.
+ DASH belum mendukung mode prefetch terpandu.
+ Prefetch terpandu tidak tergantung pada mode pelaporan - suar menyala pada waktu pemutaran, bukan pada waktu prefetch.
+ **Jangan cache manifes i-media di CDN Anda saat menggunakan prefetch terpandu.** Mekanisme prefetch tergantung pada permintaan refresh manifes pemain yang menjangkau MediaTailor secara langsung. Jika CDN Anda menyimpan `/v1/i-media` respons, MediaTailor tidak menerima permintaan detak jantung dan tidak dapat memicu prefetching.

# MediaTailor matriks kompatibilitas fitur penyisipan iklan yang dipandu server
<a name="sgai-feature-compatibility"></a>

AWS Elemental MediaTailor menawarkan dua metode penyisipan iklan dengan kompatibilitas fitur yang berbeda. Penyisipan iklan yang dipandu server bekerja secara berbeda dari penyisipan iklan sisi server, yang memengaruhi kompatibilitas dengan beberapa fitur. MediaTailor Gunakan tabel ini untuk memahami fitur mana yang berfungsi dengan setiap metode penyisipan iklan.


**Kompatibilitas fitur dengan metode penyisipan iklan**  

| Fitur | Penyisipan iklan sisi server (SSAI) | Penyisipan iklan yang dipandu server (SGAI) | 
| --- | --- | --- | 
| Pengambilan iklan | ✓ Didukung | Belum didukung | 
| Penindasan iklan | ✓ Didukung | Tidak berlaku | 
| Perilaku iklan pra-putar | Dikendalikan oleh MediaTailor konfigurasi | Dikendalikan oleh MediaTailor konfigurasi | 
| Pelacakan iklan sisi klien | Menggunakan GetTracking API | Menggunakan TRACKING bagian dalam daftar aset (GetTrackingAPI tidak digunakan) | 
| Pelacakan iklan sisi server | ✓ Didukung - beacon menyala berdasarkan /v1/segment permintaan menggunakan ID sesi | ✓ Didukung (hanya HLS) - menggunakan beaconing tanpa sesi dengan data suar terenkripsi yang disematkan dalam iklan via. URIs \$1EXT-X-DEFINE:QUERYPARAM Membutuhkan HLS v11 atau yang lebih baru. DASH belum didukung. | 
| Dekorasi Ad-ID | ✓ Didukung | ✗ Tidak kompatibel | 

## Detail kompatibilitas
<a name="compatibility-details"></a>

### Pengambilan iklan
<a name="prefetch-compatibility"></a>

Pengambilan iklan saat ini tidak didukung.

### Penindasan iklan
<a name="prefetch-compatibility"></a>

Penindasan iklan tidak didukung dengan metode penyisipan iklan yang dipandu server karena pemain hanya mengambil iklan yang akan mereka mainkan. 

### Perilaku iklan pra-putar
<a name="preroll-compatibility"></a>

Pengaturan waktu iklan pra-putar bekerja secara berbeda antara metode penyisipan:
+ **Penyisipan iklan sisi server:** MediaTailor mengontrol saat iklan pra-putar diputar berdasarkan pengaturan konfigurasi
+ **Penyisipan iklan yang dipandu server: MediaTailor menyisipkan** iklan pra-putar di bagian atas manifes. Pemain Anda menampilkan iklan ini terlebih dahulu, lalu memulai konten Anda

### Pelacakan iklan
<a name="tracking-compatibility"></a>

**Pelacakan sisi klien** menggunakan mekanisme yang berbeda tergantung pada metode penyisipan iklan:
+ **Penyisipan iklan sisi server (SSAI)**: Menggunakan titik akhir API `GetTracking`
+ **Penyisipan iklan yang dipandu server (SGAI):** MediaTailor menyediakan informasi pelacakan di `TRACKING` bagian setiap respons daftar aset. Titik akhir `GetTracking` API tidak digunakan. Respons inisialisasi sesi tidak termasuk a`trackingUrl`.

**Pelacakan sisi server** juga berbeda antar metode:
+ **Penyisipan iklan sisi server (SSAI):** MediaTailor mengaktifkan beacon saat pemain mengambil segmen iklan yang dijahit melalui menggunakan ID sesi. `/v1/segment/`
+ **Penyisipan iklan yang dipandu server (SGAI**): menggunakan suar tanpa sesi. MediaTailor MediaTailor menyematkan data suar terenkripsi (`awsBeaconData`,`awsBeaconDomain`,`awsConfigurationName`) dalam manifes iklan URIs yang ditampilkan dalam daftar aset. Manifes iklan menggunakan `#EXT-X-DEFINE:QUERYPARAM` tag sehingga pemain mengganti nilai ini ke dalam segmen URLs. Saat pemain meminta setiap segmen iklan, MediaTailor mendekripsi data, menyalakan suar yang sesuai, dan mengalihkan ke segmen konten. Saat pelaporan sisi server aktif, MediaTailor hilangkan `TRACKING` bagian dari respons daftar aset. Lihat perinciannya di [Pelacakan sisi server dengan penyisipan iklan yang dipandu server (SGAI)](ad-reporting-server-side-sgai.md).

### Dekorasi Ad-ID
<a name="ad-id-compatibility"></a>

Dekorasi Ad-ID tidak kompatibel dengan penyisipan iklan yang dipandu server karena bidang yang mengisi X-AD-CREATIVE-SIGNALING header hanya diketahui saat daftar aset diambil, bukan saat manifes ditulis.

# MediaTailor Konfigurasi penyisipan iklan yang dipandu server untuk streaming langsung
<a name="sgai-live-configuration"></a>

AWS Elemental MediaTailor Penyisipan iklan yang dipandu server untuk konten langsung memberikan manfaat kinerja yang signifikan melalui manifes yang dapat di-cache. Mengkonfigurasi SGAI untuk konten langsung menggunakan parameter inti yang sama dengan VOD, dengan pertimbangan khusus untuk karakteristik streaming langsung dan pemrosesan waktu nyata.

## Persyaratan untuk Live SGAI
<a name="sgai-live-requirements"></a>

Sebelum Anda mengaktifkan SGAI untuk konten langsung, pastikan Anda memiliki yang berikut:
+ Streaming langsung Anda menyertakan penanda DATERANGE yang diformat dengan benar
+ Durasi jeda iklan konsisten dan dapat diprediksi
+ CDN Anda dikonfigurasi untuk menyimpan manifes SGAI dengan tepat
+ Pemain mendukung alur kerja penyisipan iklan yang dipandu server
+ Server keputusan iklan Anda dapat menangani permintaan real-time untuk konten langsung

### Persyaratan pemain
<a name="sgai-live-player-integration"></a>

Pemain harus dikonfigurasi untuk menangani manifes langsung SGAI dengan benar:
+ Support untuk alur kerja penyisipan iklan yang dipandu server
+ Kemampuan untuk memproses panduan penyisipan iklan dari manifes
+ Penanganan waktu streaming langsung dan sinkronisasi yang tepat
+ Untuk konten HLS: Support untuk HLS versi 8 dan EXT-X-DATERANGE dengan atribut CLASS. Versi 11 untuk beaconing sisi server.
+ Untuk konten HLS: dukungan substitusi EXT-X-DEFINE variabel

## Konfigurasi pemutaran langsung
<a name="sgai-live-playback-config"></a>

Untuk mengaktifkan SGAI untuk konten langsung, buat konfigurasi pemutaran yang memiliki pengaturan berikut:

**Example Konfigurasi pemutaran langsung SGAI**  

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

Berikut ini adalah pertimbangan utama untuk konfigurasi SGAI langsung:

`VideoContentSourceUrl`  
Harus menunjuk ke aliran HLS langsung dengan penanda SCTE-35 DATERANGE yang diformat dengan benar. Aliran harus mempertahankan durasi segmen dan varian bitrate yang konsisten.

## Permintaan manifes langsung SGAI
<a name="sgai-live-manifest-requests"></a>

Manifes langsung SGAI menggunakan pola URL yang sama dengan penyisipan iklan tradisional:

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

## Prefetch berbasis manifes untuk Live SGAI
<a name="sgai-live-guided-prefetch"></a>

Untuk alur kerja SGAI langsung, Anda dapat mengaktifkan detak jantung prefetch berbasis manifes untuk mengurangi latensi pengisian iklan. Tambahkan `aws.guidedPrefetchMode=MANIFEST` ke permintaan manifes:

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

Saat diaktifkan, MediaTailor tambahkan pengenal sesi (`?aws.sessionId=<id>`) sebagai parameter kueri ke setiap URL manifes media interstitial (`/v1/i-media`) dalam daftar putar multivariant. Setiap kali pemain menyegarkan manifes i-media, permintaan mencapai MediaTailor dengan ID sesi, yang MediaTailor digunakan untuk mengidentifikasi sesi dan mengantrekan permintaan prefetch untuk jeda iklan yang akan datang.

**penting**  
**Jangan cache manifes i-media di CDN Anda saat menggunakan prefetch terpandu.** Mekanisme detak jantung prefetch tergantung pada permintaan refresh manifes pemain yang menjangkau secara langsung. MediaTailor Jika CDN Anda cache dan menyajikan `/v1/i-media` respons, MediaTailor tidak menerima permintaan detak jantung dan tidak dapat memicu prefetching. Konfigurasikan CDN Anda untuk melewati `/v1/i-media/*` permintaan MediaTailor saat `aws.guidedPrefetchMode=MANIFEST` digunakan.

Prefetch terpandu tidak tergantung pada mode pelaporan. Baik Anda menggunakan pelacakan sisi server (default) atau sisi klien (`aws.reportingMode=CLIENT`), beacon menyala pada waktu pemutaran, bukan saat iklan diambil sebelumnya. Untuk informasi umum tentang cara kerja prefetching iklan MediaTailor, lihat. [Prefetching iklan](prefetching-ads.md)

## Menguji konfigurasi langsung SGAI
<a name="sgai-live-testing"></a>

Verifikasi pengaturan langsung SGAI Anda dengan langkah-langkah validasi berikut:

1. **Uji generasi manifes**

   Minta URL manifes langsung SGAI dan verifikasi bahwa URL tersebut menampilkan konten yang dapat di-cache dengan panduan penyisipan iklan yang tepat.

1. **Verifikasi caching CDN**

   Periksa apakah CDN Anda menyimpan manifes SGAI sesuai dengan nilai TTL yang dikonfigurasi.

1. **Uji penyisipan iklan**

   Konfirmasikan bahwa pemain dapat berhasil menyisipkan iklan menggunakan panduan yang disediakan dalam manifes SGAI.

1. **Pantau kinerja**

   Gunakan CloudWatch metrik untuk memverifikasi pengurangan beban asal dan tingkat hit cache yang ditingkatkan.

# MediaTailor konfigurasi penyisipan iklan yang dipandu server untuk konten VOD
<a name="sgai-vod-configuration"></a>

AWS Elemental MediaTailor Penyisipan iklan yang dipandu server untuk konten VOD memberikan manfaat kinerja yang signifikan melalui manifes yang sangat dapat di-cache dan pemrosesan server yang berkurang. Mengkonfigurasi SGAI untuk konten VOD memanfaatkan sifat statis video-on-demand aset untuk memaksimalkan efisiensi caching dan meminimalkan permintaan asal, menjadikannya ideal untuk pustaka konten besar dengan pola tampilan berulang.

## Persyaratan untuk VOD SGAI
<a name="sgai-vod-requirements"></a>

Sebelum Anda mengaktifkan SGAI untuk konten VOD, pastikan Anda memiliki yang berikut:
+ Konten VOD Anda menyertakan penanda iklan yang diformat dengan benar (SCTE-35 atau metadata berjangka waktu)
+ Konten disimpan dalam sumber yang andal dengan ketersediaan yang konsisten
+ CDN Anda dikonfigurasi untuk menyimpan manifes SGAI dengan nilai TTL yang sesuai
+ Pemain mendukung alur kerja penyisipan iklan yang dipandu server
+ Server keputusan iklan Anda dapat menangani metadata dan penargetan khusus VOD

### Persyaratan pemain
<a name="sgai-vod-player-requirements"></a>

Pemain harus dikonfigurasi untuk menangani manifes SGAI VOD dan penyisipan iklan:
+ Support untuk alur kerja penyisipan iklan yang dipandu server
+ Kemampuan untuk memproses panduan penyisipan iklan dari manifes VOD
+ Support untuk penyisipan iklan sisi klien selama pemutaran VOD
+ Penanganan operasi pencarian yang tepat di seluruh jeda iklan
+ Support untuk durasi konten dan pelacakan posisi

## Konfigurasi pemutaran VOD
<a name="sgai-vod-playback-config"></a>

Untuk mengaktifkan SGAI untuk konten VOD, buat konfigurasi pemutaran yang memiliki pengaturan berikut:

**Example Konfigurasi pemutaran SGAI VOD**  

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

Berikut ini adalah pertimbangan utama untuk konfigurasi VOD SGAI:

`VideoContentSourceUrl`  
Harus menunjuk ke pustaka konten VOD Anda dengan pola URL yang konsisten. Pastikan asal dapat menangani volume permintaan yang diharapkan dan menyediakan pengiriman konten yang andal.

`ConfigurationAliases`  
Sertakan parameter khusus VOD seperti durasi konten, genre, atau informasi seri yang dapat digunakan untuk penargetan iklan tanpa memengaruhi kemampuan cache manifes.

`ManifestProcessingRules`  
Aktifkan passthrough penanda iklan untuk mempertahankan informasi waktu konten asli, yang sangat penting untuk konten VOD dengan posisi jeda iklan yang telah ditentukan sebelumnya.

## Permintaan manifes SGAI VOD
<a name="sgai-vod-manifest-requests"></a>

Manifestasi SGAI VOD menggunakan pola URL yang sama penyisipan iklan VOD tradisional. 

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

## Penargetan iklan khusus VOD
<a name="sgai-vod-ad-targeting"></a>

Konten VOD memungkinkan peluang penargetan iklan yang unik:

### Penargetan metadata konten
<a name="sgai-vod-content-metadata"></a>

Manfaatkan metadata konten VOD untuk meningkatkan penargetan iklan:
+ **Genre dan kategori:** Target iklan berdasarkan jenis konten (drama, komedi, dokumenter)
+ **Peringkat konten:** Pastikan konten iklan yang sesuai dengan usia (peringkat G, PG, R)
+ **Seri dan musim:** Targetkan iklan untuk kontinuitas seri atau konten terkait
+ **Tanggal rilis:** Target berdasarkan usia konten (rilis baru vs. konten katalog)
+ **Durasi konten:** Sesuaikan pemuatan iklan berdasarkan total panjang konten

### Melihat penargetan konteks
<a name="sgai-vod-viewing-context"></a>

Pola tampilan VOD memungkinkan penargetan iklan kontekstual:
+ **Waktu hari:** Targetkan iklan berdasarkan kapan konten sedang ditonton
+ **Binge watching:** Sesuaikan frekuensi iklan untuk pengguna yang menonton beberapa episode
+ **Tingkat penyelesaian:** Target berdasarkan pola penyelesaian konten historis pengguna
+ **Jenis perangkat:** Optimalkan format iklan untuk melihat perangkat (TV, ponsel, tablet)

## Menguji konfigurasi VOD SGAI
<a name="sgai-vod-testing"></a>

Verifikasi penyiapan SGAI VOD Anda dengan langkah-langkah validasi berikut:

1. **Uji generasi manifes**

   Minta manifes SGAI VOD URLs untuk berbagai jenis konten dan verifikasi bahwa mereka menampilkan konten yang dapat di-cache dengan panduan penyisipan iklan yang tepat.

1. **Verifikasi caching CDN**

   Periksa apakah CDN Anda menyimpan manifes SGAI sesuai dengan nilai TTL yang dikonfigurasi dan mencapai tingkat hit cache yang tinggi.

1. **Uji penyisipan iklan**

   Konfirmasikan bahwa pemain dapat berhasil menyisipkan iklan menggunakan panduan yang disediakan dalam manifes SGAI untuk berbagai konten VOD.

1. **Uji mencari operasi**

   Verifikasi bahwa pencarian dalam konten VOD berfungsi dengan benar di seluruh jeda iklan dan mempertahankan posisi pemutaran yang tepat.

1. **Pantau kinerja**

   Gunakan CloudWatch metrik untuk memverifikasi pengurangan beban asal, tingkat hit cache yang ditingkatkan, dan tingkat penyisipan iklan yang berhasil.

### Skenario pengujian kunci
<a name="sgai-vod-testing-scenarios"></a>

Uji skenario VOD spesifik ini:
+ **Konten populer:** Verifikasi tingkat hit cache yang tinggi untuk aset VOD yang sering diakses
+ **Konten bentuk panjang:** Uji penyisipan iklan di film atau episode panjang dengan beberapa jeda iklan
+ **Konten seri:** Verifikasi penargetan iklan yang konsisten di seluruh episode dalam seri
+ **Genre berbeda:** Uji penargetan iklan berdasarkan metadata dan genre konten

## Praktik terbaik pengoptimalan VOD SGAI
<a name="sgai-vod-optimization"></a>

Optimalkan implementasi SGAI VOD Anda untuk kinerja maksimum:

### Pengoptimalan cache
<a name="sgai-vod-cache-optimization"></a>
+ **Maksimalkan nilai TTL:** Gunakan durasi cache yang lebih lama untuk manifes VOD karena konten tidak berubah
+ **Minimalkan kunci cache:** Kurangi variasi kunci cache untuk meningkatkan hit rate
+ **Konten populer pra-hangat: Manifestasi cache untuk konten** VOD yang sedang tren atau unggulan
+ **Pantau kinerja cache:** Lacak tingkat hit cache dan optimalkan berdasarkan pola penggunaan

### Optimalisasi pengiriman konten
<a name="sgai-vod-content-optimization"></a>
+ **Pola URL yang konsisten:** Gunakan struktur URL yang dapat diprediksi untuk caching yang lebih baik
+ **Standarisasi metadata:** Pastikan metadata konten yang konsisten untuk penargetan iklan yang andal
+ **Posisi jeda iklan:** Optimalkan penempatan jeda iklan untuk transisi konten alami
+ **Varian kualitas:** Pastikan SGAI berfungsi di semua varian bitrate konten VOD Anda

# MediaTailor persyaratan integrasi server iklan
<a name="vast"></a>

Untuk mengintegrasikan server iklan Anda AWS Elemental MediaTailor, server iklan Anda harus mengirim XHTML yang sesuai dengan spesifikasi IAB untuk versi VAST dan VMAP yang didukung. Anda dapat menggunakan validator VAST publik untuk memastikan bahwa tag Anda terbentuk dengan baik.

AWS Elemental MediaTailor mendukung respons VAST dan VMAP dari server keputusan iklan. AWS Elemental MediaTailor juga mendukung proxy metadata VPAID melalui API pelaporan sisi klien kami untuk penyisipan iklan sisi klien. Untuk informasi tentang pelaporan sisi klien, lihat. [Pelacakan iklan sisi klien](ad-reporting-client-side.md)

MediaTailor mendukung versi VAST, VMAP, dan VPAID berikut:
+ Hingga [VAST 4.3](https://iabtechlab.com/standards/vast/) 

  MediaTailor menerima versi respons melalui VAST 4.3, tetapi beberapa fitur canggih dari VAST 4.0 dan lebih tinggi tidak didukung.
+ [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/)

## Persyaratan VAST
<a name="vast-integration"></a>

Respons VAST server iklan Anda harus berisi `TrackingEvents` elemen yang sesuai dengan IAB dan jenis peristiwa standar, seperti. `impression` Jika Anda menyertakan peristiwa pelacakan non-standar, AWS Elemental MediaTailor tolak respons VAST dan tidak menyediakan iklan untuk keuntungannya.

VAST 3.0 memperkenalkan dukungan untuk pod iklan, yang merupakan pengiriman serangkaian iklan linier berurutan. Jika iklan tertentu di pod iklan tidak tersedia, akan AWS Elemental MediaTailor mencatat kesalahan di CloudWatch log interaksi ADS. Kemudian mencoba memasukkan iklan berikutnya ke dalam pod. Dengan cara ini, MediaTailor iterasi melalui iklan di pod hingga menemukan satu yang dapat digunakan.

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

Untuk menargetkan pemain tertentu untuk iklan Anda, Anda dapat membuat template untuk tag iklan Anda dan URLs. Untuk informasi selengkapnya, lihat [MediaTailor variabel iklan dinamis untuk permintaan ADS](variables.md).

AWS Elemental MediaTailor proxy pemutar `user-agent` dan `x-forwarded-for` header saat mengirimkan permintaan VAST server iklan dan saat melakukan panggilan pelacakan sisi server. Pastikan server iklan Anda dapat menangani header ini. Atau, Anda dapat menggunakan `[session.user_agent]` atau `[session.client_ip]` dan meneruskan nilai-nilai ini dalam string kueri pada tag iklan dan URL iklan. Untuk informasi selengkapnya, lihat [MediaTailor variabel sesi untuk permintaan ADS](variables-session.md).

### Panggilan iklan
<a name="ad-calls"></a>

AWS Elemental MediaTailor memanggil URL iklan VAST Anda seperti yang ditentukan dalam konfigurasi Anda. Ini menggantikan parameter khusus pemain atau khusus sesi saat melakukan panggilan iklan. MediaTailor mengikuti hingga tujuh tingkat pembungkus VAST dan pengalihan dalam respons VAST. Dalam skenario streaming langsung, MediaTailor lakukan panggilan iklan secara bersamaan di awal iklan untuk pemain yang terhubung. Dalam praktiknya, karena jitter, panggilan iklan ini dapat tersebar selama beberapa detik. Pastikan server iklan Anda dapat menangani jumlah koneksi bersamaan yang diperlukan oleh jenis panggilan ini. MediaTailor mendukung pengambilan respons VAST untuk alur kerja langsung. Untuk informasi selengkapnya, lihat [Prefetching iklan](prefetching-ads.md).

### Penanganan kreatif
<a name="creative-handling"></a>

Saat AWS Elemental MediaTailor menerima respons ADS VAST, untuk setiap materi iklan mengidentifikasi bitrate tertinggi `MediaFile` untuk transcoding dan menggunakannya sebagai sumbernya. Ini mengirimkan file ini ke on-the-fly transcoder untuk transformasi menjadi rendisi yang sesuai dengan bitrate dan resolusi playlist multivariant pemain. Untuk hasil terbaik, pastikan file media bitrate tertinggi Anda adalah MP4 aset berkualitas tinggi dengan preset manifes yang valid. Jika preset manifes tidak valid, pekerjaan transkode gagal, sehingga tidak ada iklan yang ditampilkan. Contoh preset yang tidak valid termasuk format file input yang tidak didukung, seperti, dan spesifikasi rendisi tertentu ProRes, seperti resolusi 855X481. 

Untuk daftar format yang didukung untuk input file media, lihat **MP4**baris [format input yang didukung](https://docs.aws.amazon.com/mediaconvert/latest/ug/reference-codecs-containers-input.html) di *Panduan AWS Elemental MediaConvert Pengguna*.

**Pengindeksan kreatif**  
AWS Elemental MediaTailor secara unik mengindeks setiap kreatif dengan nilai `id` atribut yang disediakan dalam elemen. `<Creative>` Jika ID kreatif tidak ditentukan, MediaTailor gunakan URL file media untuk indeks.

Contoh deklarasi berikut menunjukkan ID kreatif.

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

Jika Anda mendefinisikan kreatif Anda sendiri IDs, gunakan ID baru yang unik untuk setiap materi iklan. Jangan gunakan kembali kreatif IDs. AWS Elemental MediaTailor menyimpan konten kreatif untuk penggunaan berulang, dan menemukan masing-masing dengan ID yang diindeks. Ketika materi iklan baru masuk, layanan pertama-tama memeriksa ID-nya terhadap indeks. Jika ID ada, MediaTailor gunakan konten yang disimpan, daripada memproses ulang konten yang masuk. Jika Anda menggunakan kembali ID kreatif, MediaTailor gunakan iklan lama yang disimpan dan tidak memutar iklan baru Anda. 

**Ekstensi VAST disediakan oleh mitra penayangan iklan**  
Untuk membantu mencegah tabrakan dengan materi iklan IDs, Anda dapat menggunakan ekstensi yang disediakan oleh mitra penayangan iklan untuk respons VAST. MediaTailor mendukung ekstensi dari SpringServe, Publica, dan FreeWheel. Saat Anda mengaktifkan penggantian ekstensi VAST, MediaTailor ganti ID kreatif default dengan nilai ekstensi.

Untuk mengaktifkan fitur ini, [kirimkan tiket AWS Support](https://console.aws.amazon.com/support/home#/) untuk meminta materi iklan IDs berbasis ekstensi VAST diaktifkan. Sertakan informasi berikut dalam tiket Support:
+ AWS Wilayah
+ AWS ID akun
+ MediaTailor nama konfigurasi pemutaran

Untuk memvalidasi bahwa materi iklan berbasis ekstensi VAST IDs diaktifkan di akun Anda, sebaiknya Anda juga meminta `RAW_ADS_RESPONSE` pencatatan untuk diaktifkan pada konfigurasi pemutaran pementasan atau pengujian. Dengan logging, Anda dapat melihat respons VAST asli yang diterima ADS dan mengonfirmasi bahwa materi iklan yang benar IDs digunakan. 

## Persyaratan VPAID
<a name="vpaid"></a>

VPAID memungkinkan penayang untuk menayangkan iklan video yang sangat interaktif dan memberikan metrik keterlihatan pada aliran monetisasi mereka. Untuk informasi tentang VPAID, lihat spesifikasi [VPAID](https://www.iab.com/guidelines/digital-video-player-ad-interface-definition-vpaid-2-0/).

AWS Elemental MediaTailor mendukung campuran iklan MP4 linier server-side-stitched client-side-inserted VAST dan materi iklan interaktif VPAID dalam iklan yang sama. Ini menjaga urutan di mana mereka muncul dalam respons VAST. MediaTailor mengikuti pengalihan VPAID melalui maksimal tujuh tingkat pembungkus. Respons pelaporan sisi klien mencakup metadata VPAID yang tidak dibungkus.

Untuk menggunakan VPAID, ikuti panduan ini:
+ Konfigurasikan MP4 batu tulis untuk materi iklan VPAID Anda. AWS Elemental MediaTailor mengisi slot iklan VPAID dengan papan tulis Anda yang dikonfigurasi, dan menyediakan metadata iklan VPAID untuk digunakan pemutar klien untuk menjalankan iklan interaktif. Jika Anda tidak memiliki papan tulis yang dikonfigurasi, saat iklan VPAID muncul, MediaTailor berikan metadata iklan melalui pelaporan sisi klien seperti biasa. Itu juga mencatat kesalahan CloudWatch tentang batu tulis yang hilang. Untuk informasi selengkapnya, lihat [MediaTailor penyisipan iklan batu tulis](slate-management.md) dan [Membuat konfigurasi MediaTailor pemutaran](configurations-create.md). 
+ Gunakan pelaporan sisi klien. AWS Elemental MediaTailor mendukung VPAID melalui API pelaporan sisi klien kami. Untuk informasi selengkapnya, lihat [Pelacakan iklan sisi klien](ad-reporting-client-side.md). 

  Secara teoritis dimungkinkan untuk menggunakan mode pelaporan sisi server default dengan VPAID. Namun, jika Anda menggunakan pelaporan sisi server, Anda kehilangan informasi apa pun tentang keberadaan iklan VPAID dan metadata yang mengelilinginya, karena itu hanya tersedia melalui API sisi klien. 
+ Dalam skenario langsung, pastikan bahwa ketersediaan iklan Anda, dilambangkan dengan`EXT-X-CUE-OUT: Duration`, cukup panjang untuk mengakomodasi interaktivitas pengguna apa pun di VPAID. Misalnya, jika VAST XMLmenetapkan iklan VPAID yang berdurasi 30 detik, pertimbangkan untuk mengonfigurasi iklan Anda lebih dari 30 detik. Waktu tambahan ini memberi pengguna lebih banyak kesempatan untuk berinteraksi dengan iklan. Jika Anda tidak menambahkan waktu, Anda bisa kehilangan metadata VPAID karena durasi yang tersisa dalam iklan tidak cukup lama untuk mengakomodasi iklan VPAID.



# MediaTailor manajemen konfigurasi pemutaran
<a name="working-with-configurations"></a>

Bagian ini mencakup tugas-tugas utama untuk mengelola konfigurasi AWS Elemental MediaTailor pemutaran. Anda dapat mempelajari cara membuat konfigurasi baru untuk menyiapkan aliran konten dan menyediakan akses untuk perangkat pemutaran, melihat detail konfigurasi yang ada, mengedit konfigurasi untuk memperbarui setelan seperti server asal dan server keputusan iklan, dan menghapus konfigurasi yang tidak lagi diperlukan.

**Topics**
+ [Membuat konfigurasi MediaTailor pemutaran](configurations-create.md)
+ [Melihat detail MediaTailor konfigurasi](configurations-view.md)
+ [Mengedit pengaturan MediaTailor konfigurasi](configurations-edit.md)
+ [Menghapus konfigurasi MediaTailor](configurations-delete.md)

# Membuat konfigurasi MediaTailor pemutaran
<a name="configurations-create"></a>

Topik ini menunjukkan cara membuat konfigurasi untuk mulai menerima aliran konten. AWS Elemental MediaTailor Ini juga menunjukkan cara menyediakan titik akses untuk perangkat pemutaran hilir untuk meminta konten.

Anda dapat menggunakan AWS Elemental MediaTailor konsol, AWS Command Line Interface (AWS CLI) >, atau MediaTailor API untuk membuat konfigurasi. Untuk informasi tentang membuat konfigurasi melalui MediaTailor API AWS CLI atau, lihat [https://docs.aws.amazon.com/mediatailor/latest/apireference/what-is.html](https://docs.aws.amazon.com/mediatailor/latest/apireference/what-is.html)..

Saat Anda membuat konfigurasi, jangan masukkan informasi identifikasi sensitif ke dalam bidang bentuk bebas seperti bidang **nama Konfigurasi**. Mengidentifikasi informasi dapat mencakup hal-hal seperti nomor rekening pelanggan. Selain itu, jangan gunakan informasi identifikasi saat Anda bekerja di MediaTailor konsol, REST API AWS CLI, atau AWS SDKs. Data apa pun yang Anda masukkan MediaTailor mungkin diambil untuk dimasukkan ke dalam log diagnostik atau CloudWatch Acara Amazon.

**Untuk menambahkan konfigurasi (konsol)**

1. Buka MediaTailor konsol di [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1. Di halaman **Konfigurasi**, pilih **Buat konfigurasi**. 

1. Lengkapi konfigurasi dan bidang konfigurasi tambahan seperti yang dijelaskan dalam topik berikut:
   +  [Pengaturan yang diperlukan](#configurations-create-main) 
   +  [Pengaturan konfigurasi opsional](#configurations-create-addl) 

1. Pilih **Buat konfigurasi**. 

   AWS Elemental MediaTailor menampilkan konfigurasi baru dalam tabel pada halaman **Konfigurasi.**

1. (Disarankan) Siapkan CDN dengan AWS Elemental MediaTailor permintaan manifes dan pelaporan. Anda dapat menggunakan pemutaran konfigurasi URLs untuk pengaturan CDN. Untuk informasi tentang menyiapkan CDN untuk permintaan manifes dan pelaporan, lihat[Menggunakan CDN untuk mengoptimalkan personalisasi MediaTailor iklan dan penayangan konten](integrating-cdn.md).

## Pengaturan yang diperlukan
<a name="configurations-create-main"></a>

Saat Anda membuat konfigurasi, Anda harus menyertakan pengaturan yang diperlukan berikut.

**Nama**  
Masukkan nama unik yang menggambarkan konfigurasi. Nama adalah pengenal utama untuk konfigurasi. Panjang maksimum yang diizinkan adalah 512 karakter.

**Sumber konten**  
 Masukkan awalan URL untuk manifes untuk aliran ini, dikurangi ID aset. Panjang maksimum adalah 512 karakter.  
Misalnya, awalan `http://origin-server.com/a/` URL berlaku untuk URL daftar putar multivariant HLS `http://origin-server.com/a/main.m3u8` dan untuk URL MPD DASH dari. `http://origin-server.com/a/dash.mpd` Atau, Anda dapat memasukkan awalan yang lebih pendek seperti`http://origin-server.com`, tetapi `/a/` harus disertakan dalam ID aset dalam permintaan pemain untuk konten.   
Jika asal konten Anda menggunakan HTTPS, sertifikatnya harus dari otoritas sertifikat yang terkenal. Itu tidak bisa menjadi sertifikat yang ditandatangani sendiri. Jika Anda menggunakan sertifikat yang ditandatangani sendiri, AWS Elemental MediaTailor gagal terhubung ke asal konten dan tidak dapat menyajikan manifes sebagai tanggapan atas permintaan pemain.

**Server keputusan iklan**  
 Masukkan URL untuk server keputusan iklan (ADS) Anda. Ini adalah URL dengan variabel seperti yang dijelaskan dalam[Langkah 3: Konfigurasikan URL permintaan ADS dan parameter kueri](getting-started-ad-insertion.md#getting-started-configure-request), atau URL VAST statis yang Anda gunakan untuk tujuan pengujian. Panjang maksimum adalah 25.000 karakter.  
Jika ADS Anda menggunakan HTTPS, sertifikatnya harus dari otoritas sertifikat yang terkenal. Itu tidak bisa menjadi sertifikat yang ditandatangani sendiri. Hal yang sama juga berlaku untuk iklan mezzanine yang URLs dikembalikan oleh ADS. Jika Anda menggunakan sertifikat yang ditandatangani sendiri, maka tidak AWS Elemental MediaTailor dapat mengambil dan memasukkan iklan ke dalam manifes dari asal konten.

## Pengaturan konfigurasi opsional
<a name="configurations-create-addl"></a>

Anda dapat mengonfigurasi **alias konfigurasi**, **detail personalisasi**, dan **pengaturan lanjutan** secara opsional di MediaTailor konsol, MediaTailor API, atau (). AWS Command Line Interface AWS CLI

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

Berikut ini adalah alias konfigurasi opsional yang dapat Anda konfigurasi di MediaTailor konsol, atau dengan MediaTailor API.

**Variabel parameter pemain**  
Untuk konfigurasi domain dinamis selama inisialisasi sesi, tambahkan satu atau beberapa variabel parameter pemain.  
Untuk informasi selengkapnya tentang penggunaan variabel parameter pemain untuk mengonfigurasi domain secara dinamis, lihat. [MediaTailor variabel domain untuk beberapa sumber konten](variables-domains.md)

### Konfigurasi log
<a name="configurations-log-configurations"></a>

Berikut ini adalah pengaturan konfigurasi log.

**Persen diaktifkan**  
Menetapkan persentase log sesi konfigurasi pemutaran yang MediaTailor menulis ke CloudWatch Log. Misalnya, jika konfigurasi pemutaran Anda memiliki 1000 sesi, dan Anda menetapkan persen diaktifkan ke **60**, MediaTailor tulis 600 log sesi ke CloudWatch Log.  
 Saat Anda mengaktifkan opsi ini, MediaTailor secara otomatis membuat peran terkait layanan yang memungkinkan MediaTailor untuk menulis dan mengelola log sesi di akun CloudWatch Log Anda. Untuk informasi selengkapnya, lihat [Menggunakan peran terkait layanan untuk MediaTailor](using-service-linked-roles.md). 

**Strategi pencatatan**  
Menunjukkan metode yang digunakan untuk mengumpulkan log yang MediaTailor memancarkan. Untuk mengirim log langsung ke CloudWatch Log, pilih`LEGACY_CLOUDWATCH`. Untuk mengirim CloudWatch log ke Log, yang kemudian menjual log ke tujuan pilihan Anda, pilih`VENDED_LOGS`. Tujuan yang didukung adalah grup CloudWatch log Log, bucket Amazon S3, dan aliran Amazon Data Firehose.  
Pengaturan tambahan diperlukan untuk log yang dijual. Untuk mengatur, lihat[Menggunakan log vended](vended-logs.md).

**Acara keikutsertaan log interaksi ADS**  
Menunjukkan bahwa MediaTailor akan memancarkan `RAW_ADS_RESPONSE` log untuk sesi yang diinisialisasi dengan konfigurasi ini.   
Peristiwa `RAW_ADS_RESPONSE` log berisi seluruh respons VAST atau VMAP dari ADS. Dengan demikian, log bisa sangat luas dan dapat meningkatkan biaya logging Anda.

**Log interaksi ADS mengecualikan peristiwa**  
Menunjukkan bahwa MediaTailor tidak akan memancarkan peristiwa yang dipilih dalam log yang menjelaskan interaksi dengan ADS.  
Untuk deskripsi peristiwa log ADS, lihat[Log ADS](ads-log-format.md).

**Log interaksi layanan manifes mengecualikan peristiwa**  
Menunjukkan bahwa MediaTailor tidak akan memancarkan peristiwa yang dipilih dalam log yang menjelaskan interaksi dengan layanan manifes.  
Untuk deskripsi peristiwa log layanan manifes, lihat[Log manifes](log-types.md).

### Pengkondisian iklan
<a name="configurations-ad-conditioning"></a>

Berikut ini menentukan tindakan apa yang MediaTailor diperlukan untuk mengkondisikan iklan sebelum memasukkannya ke dalam aliran konten. 

**Pengkondisian file media streaming**  
Menentukan logika yang MediaTailor digunakan saat memutuskan iklan mana yang akan dijahit.   
+ Saat **pengkondisian file media Streaming** diatur ke **Transcode**, MediaTailor mentranskode file media dengan `progressive` pengiriman dan menjahitnya ke dalam manifes. Jika tidak ada cukup iklan dengan file media `progressive` pengiriman untuk mengisi ketersediaan, MediaTailor mentranskode, dan menggunakan iklan dengan `streaming` pengiriman.
+ Saat **pengkondisian file media Streaming** diatur ke **Tidak Ada**, MediaTailor jahit iklan dengan file media `streaming` pengiriman ke dalam manifes tanpa mentranskodekannya. Jika tidak ada cukup iklan dengan file media `streaming` pengiriman untuk mengisi ketersediaan, MediaTailor mentranskode, dan menggunakan iklan dengan `progressive` pengiriman. 

### Detail personalisasi
<a name="configurations-personalization-details"></a>

Berikut ini adalah detail personalisasi yang dapat Anda konfigurasikan di MediaTailor konsol atau dengan MediaTailor API.

**Iklan batu tulis**  
Masukkan URL untuk MP4 aset berkualitas tinggi yang MediaTailor digunakan untuk mengisi waktu iklan yang tidak terisi. Konfigurasi batu tulis adalah opsional untuk sebagian besar alur kerja tetapi wajib untuk iklan VPAID. Untuk informasi lengkap tentang perilaku batu tulis, persyaratan konfigurasi, dan kapan batu tulis ditampilkan, lihat. [MediaTailor penyisipan iklan batu tulis](slate-management.md)

**Mulai bumper**  
URL lokasi aset bumper awal. Bumper adalah klip video atau audio pendek yang diputar di awal atau akhir jeda iklan. Mereka dapat disimpan di Amazon S3, atau layanan penyimpanan yang berbeda. Untuk mempelajari lebih lanjut tentang bumper, lihat[MediaTailor penyisipan iklan bumper](bumpers.md).

**Ujung bumper**  
URL lokasi aset bumper akhir. Bumper adalah klip video atau audio pendek yang diputar di awal atau akhir jeda iklan. Mereka dapat disimpan di Amazon S3, atau layanan penyimpanan yang berbeda. Untuk mempelajari lebih lanjut tentang bumper, lihat[MediaTailor penyisipan iklan bumper](bumpers.md).

**Ambang personalisasi**  
Hanya berlaku bila digunakan bersama dengan iklan batu tulis. Menentukan durasi maksimum waktu iklan yang kurang terisi (dalam detik) yang diizinkan dalam jeda iklan sebelum MediaTailor meninggalkan personalisasi dan menampilkan konten yang mendasarinya. Fitur ini berlaku untuk penggantian iklan di streaming langsung dan VOD, bukan penyisipan iklan, karena bergantung pada aliran konten yang mendasarinya. Untuk skenario perilaku terperinci dan informasi komprehensif, lihat[Cara kerja ambang personalisasi](slate-management.md#personalization-threshold-scenarios).

**Server keputusan iklan pra-putar langsung**  
Untuk menyisipkan iklan di awal streaming langsung sebelum konten utama mulai diputar, masukkan URL pra-putar iklan dari server keputusan iklan (ADS). Ini adalah URL dengan variabel seperti yang dijelaskan dalam[Langkah 3: Konfigurasikan URL permintaan ADS dan parameter kueri](getting-started-ad-insertion.md#getting-started-configure-request), atau URL VAST statis yang Anda gunakan untuk tujuan pengujian. Panjang maksimum adalah 25.000 karakter.  
Jika ADS Anda menggunakan HTTPS, sertifikatnya harus dari otoritas sertifikat yang terkenal. Itu tidak bisa menjadi sertifikat yang ditandatangani sendiri. Hal yang sama juga berlaku untuk iklan mezzanine yang URLs dikembalikan oleh ADS. Jika Anda menggunakan sertifikat yang ditandatangani sendiri, maka tidak AWS Elemental MediaTailor dapat mengambil dan memasukkan iklan ke dalam manifes dari asal konten.
Untuk informasi tentang cara kerja pre-roll, lihat[MediaTailor penyisipan iklan pra-gulung](ad-behavior-preroll.md).

**Durasi maksimum pra-roll langsung yang diizinkan**  
Saat Anda memasukkan iklan di awal streaming langsung, masukkan durasi maksimum yang diizinkan untuk penggunaan iklan pra-putar. MediaTailor tidak akan melewati durasi ini saat memasukkan iklan. Jika respons dari ADS berisi lebih banyak iklan daripada yang sesuai dengan durasi ini, MediaTailor isi keuntungan dengan iklan sebanyak mungkin, tanpa melebihi durasi. Untuk detail selengkapnya tentang cara MediaTailor mengisi avails, lihat. [Perilaku menjahit iklan langsung](ad-behavior.md#ad-behavior-live)

**Tersedia mode penindasan**  
Menetapkan mode untuk penekanan avail, juga dikenal sebagai penekanan iklan. Secara default, penekanan iklan tidak aktif dan MediaTailor mengisi semua dengan iklan atau batu tulis. Saat mode disetel ke`BEHIND_LIVE_EDGE`, penekanan iklan aktif dan MediaTailor tidak mengisi jeda iklan pada atau di belakang waktu nilai penekanan avail di jendela tampilan balik manifes. Saat mode disetel ke`AFTER_LIVE_EDGE`, penekanan iklan aktif. MediaTailortidak mengisi jeda iklan pada atau di belakang periode penekanan avail, yang merupakan tepi langsung ditambah nilai penekanan yang tersedia ditambah waktu buffer.

**Nilai penekanan yang tersedia**  
Nilai penekanan yang tersedia adalah waktu offset tepi langsung di. `HH:MM:SS` MediaTailor tidak akan mengisi jeda iklan pada atau di belakang waktu ini di jendela tampilan balik manifes.

**Mode Penyisipan**  
Mode Penyisipan mengontrol apakah pemain dapat menggunakan penyisipan iklan yang dijahit atau dipandu. Default,`STITCHED_ONLY`, memaksa semua sesi pemain untuk menggunakan penyisipan iklan yang dijahit (sisi server). Pengaturan InsertionMode untuk `PLAYER_SELECT` memungkinkan pemain memilih penyisipan iklan yang dijahit atau dipandu pada waktu inisialisasi sesi. Default untuk pemain yang tidak menentukan mode penyisipan dijahit.

### Pengaturan lanjutan
<a name="configurations-advanced-settings"></a>

Berikut ini adalah pengaturan opsional lanjutan. Anda dapat mengonfigurasinya di MediaTailor konsol, dengan AWS Command Line Interface (AWS CLI), atau menggunakan MediaTailor API.

**Awalan segmen konten CDN**  
Memungkinkan AWS Elemental MediaTailor untuk membuat manifes dengan URLs jalur CDN Anda untuk segmen konten. Sebelum Anda melakukan langkah ini, buat aturan di CDN Anda untuk menarik segmen dari server asal Anda. Untuk **awalan segmen konten CDN, masukkan jalur awalan** CDN.  
Untuk informasi lebih lanjut tentang integrasi MediaTailor dengan CDN, lihat. [Menggunakan CDN untuk mengoptimalkan personalisasi MediaTailor iklan dan penayangan konten](integrating-cdn.md)

**Awalan segmen iklan CDN**  
Memungkinkan AWS Elemental MediaTailor untuk membuat manifes dengan URLs jalur CDN Anda sendiri untuk segmen iklan. Secara default, MediaTailor menayangkan segmen iklan dari CloudFront distribusi Amazon internal dengan setelan cache default. Sebelum menyelesaikan bidang **awalan segmen iklan CDN**, Anda harus menyiapkan aturan di CDN untuk menarik segmen iklan dari asal berikut, seperti pada contoh berikut.  

```
https://segments.mediatailor.<region>.amazonaws.com
```
Untuk **awalan segmen iklan CDN, masukkan nama awalan** CDN Anda dalam konfigurasi.  
Untuk informasi lebih lanjut tentang integrasi MediaTailor dengan CDN, lihat. [Menggunakan CDN untuk mengoptimalkan personalisasi MediaTailor iklan dan penayangan konten](integrating-cdn.md)

**Jenis manifes asal DASH**  
**Jika server asal Anda menghasilkan manifes DASH periode tunggal, buka daftar dropdown dan pilih SINGLE\$1PERIOD.** Secara default, MediaTailor menangani manifes DASH sebagai manifes multi-periode. Untuk informasi selengkapnya, lihat [Mengintegrasikan sumber MPEG-DASH](manifest-dash.md).

**Lokasi DASH mpd**  
(Opsional sesuai kebutuhan untuk DASH) Lokasi deskripsi presentasi media (mpd). Pilih **DISABLED** untuk situasi berikut:  
+ Anda mengatur aturan perutean CDN untuk mengakses MediaTailor manifes.
+ Anda menggunakan pelaporan sisi klien, atau pemutar Anda mendukung pengalihan HTTP yang lengket.
Untuk informasi selengkapnya tentang fitur **Lokasi**, lihat[Fitur lokasi DASH](dash-location-feature.md).

**Nama profil transcode**  
Nama yang mengaitkan konfigurasi ini dengan profil transcode kustom. Nama ini mengesampingkan default transcoding dinamis dari. MediaTailor Lengkapi bidang ini hanya jika Anda telah menyiapkan profil khusus dengan bantuan AWS Support.

**Passthrough penanda iklan**  
Untuk HLS, mengaktifkan atau menonaktifkan passthrough penanda iklan. Saat passthrough penanda iklan diaktifkan, MediaTailor melewati `EXT-X-CUE-IN``EXT-X-CUE-OUT`, dan penanda `EXT-X-SPLICEPOINT-SCTE35` iklan dari manifes asal ke manifes yang MediaTailor dipersonalisasi. Tidak ada logika yang diterapkan pada nilai penanda iklan; nilai tersebut diteruskan dari manifes asal ke manifes yang dipersonalisasi apa adanya. Misalnya, jika `EXT-X-CUE-OUT` memiliki nilai `60` dalam manifes asal, tetapi tidak ada iklan yang ditempatkan, tidak MediaTailor akan mengubah nilainya `0` dalam manifes yang dipersonalisasi.

# Melihat detail MediaTailor konfigurasi
<a name="configurations-view"></a>

Selain nilai yang diberikan saat konfigurasi dibuat, AWS Elemental MediaTailor menampilkan nama konfigurasi, titik akhir pemutaran, dan akses URLs yang relevan. Untuk melihat konfigurasi, gunakan prosedur berikut.



 **Untuk melihat konfigurasi** 

1. Buka MediaTailor konsol di [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1. Pada halaman **Konfigurasi**, pilih **nama Konfigurasi** untuk konfigurasi yang akan dilihat.

# Mengedit pengaturan MediaTailor konfigurasi
<a name="configurations-edit"></a>

Anda dapat mengedit konfigurasi untuk memperbarui pemetaan server asal dan server keputusan iklan (ADS), atau mengubah cara AWS Elemental MediaTailor berinteraksi dengan jaringan distribusi konten (CDN).



 **Untuk mengedit konfigurasi** 

1. Buka MediaTailor konsol di [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1. Pada halaman **Konfigurasi**, pilih nama konfigurasi yang ingin Anda edit.

1. Pada halaman detail konfigurasi, pilih **Edit**, lalu revisi pengaturan konfigurasi sesuai kebutuhan. Anda tidak dapat mengedit nama konfigurasi. Untuk informasi tentang atribut konfigurasi, lihat[Membuat konfigurasi MediaTailor pemutaran](configurations-create.md).

1. Pilih **Simpan**. 

# Menghapus konfigurasi MediaTailor
<a name="configurations-delete"></a>

Anda dapat menghapus konfigurasi untuk membuatnya tidak tersedia untuk pemutaran. AWS Elemental MediaTailor



 **Untuk menghapus konfigurasi** 

1. Buka MediaTailor konsol di [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1. Pada halaman **Konfigurasi**, lakukan salah satu hal berikut:
   + Pilih nama konfigurasi yang ingin Anda hapus. 
   + Di kolom **Nama konfigurasi**, pilih opsi di sebelah nama, lalu pilih **Hapus**. 

1. Di kotak **Hapus** konfirmasi, masukkan**Delete**, lalu pilih **Hapus**. 

# Mengintegrasikan sumber konten untuk penyisipan MediaTailor iklan
<a name="integrating-origin"></a>

Topik ini mencakup mengintegrasikan berbagai jenis sumber konten video dengan MediaTailor. MediaTailormendukung protokol streaming HLS dan DASH untuk konten langsung dan sesuai permintaan. Layanan dapat melakukan penyisipan atau penggantian iklan selama jeda iklan yang ditentukan, dan memiliki persyaratan khusus untuk struktur dan pemformatan manifes video input untuk mengaktifkan kemampuan ini. Topik berikut memberikan detail tentang persyaratan sumber input dan langkah-langkah untuk mengintegrasikan konten HLS dan DASH MediaTailor untuk mengaktifkan pengalaman iklan yang dipersonalisasi.

**Topics**
+ [Persyaratan sumber input untuk penyisipan MediaTailor iklan](stream-reqmts.md)
+ [Mengintegrasikan sumber HLS](manifest-hls.md)
+ [Mengintegrasikan sumber MPEG-DASH](manifest-dash.md)
+ [Mengamankan interaksi AWS Elemental MediaTailor asal dengan SiGv4](origin-sigv4.md)

# Persyaratan sumber input untuk penyisipan MediaTailor iklan
<a name="stream-reqmts"></a>

Sumber input harus memenuhi persyaratan berikut untuk bekerja dengan MediaTailor:
+ Menggunakan Apple HLS (Streaming Langsung HTTP) atau MPEG DASH (Streaming Adaptif Dinamis melalui HTTP)
+ Gunakan streaming langsung atau video sesuai permintaan (VOD)
+ Dapat diakses di internet publik dan memiliki alamat IP publik
+ Gunakan port HTTP standar (port 80) atau port HTTPS (port 443). MediaTailor tidak mendukung port khusus untuk komunikasi server asal.
+ Berisi penanda iklan di salah satu format yang dijelaskan dalam tutorial [Memulai dengan penyisipan MediaTailor iklan](getting-started-ad-insertion.md#getting-started-prep-stream) 

# Mengintegrasikan sumber HLS
<a name="manifest-hls"></a>

AWS Elemental MediaTailor mendukung manifes `.m3u8` HLS dengan `EXT-X-VERSION` `3` atau lebih tinggi untuk streaming langsung dan video on demand (VOD). Saat MediaTailor menemukan jeda iklan, iklan mencoba penyisipan atau penggantian iklan, berdasarkan jenis konten. Jika tidak ada cukup iklan untuk mengisi durasi, selama sisa jeda iklan, MediaTailor menampilkan aliran konten yang mendasarinya atau papan tulis yang dikonfigurasi. Untuk informasi selengkapnya tentang perilaku iklan HLS berdasarkan jenis konten, lihat[Memahami AWS Elemental MediaTailor perilaku penyisipan iklan](ad-behavior.md).

Bagian berikut memberikan informasi lebih lanjut tentang bagaimana MediaTailor menangani manifestasi HLS.

**Topics**
+ [Penanda iklan yang didukung HLS](hls-ad-markers.md)
+ [Mengaktifkan passthrough penanda iklan](ad-marker-passthrough.md)
+ [Penanganan tag manifes HLS](manifest-hls-tags.md)
+ [Contoh manifes HLS](manifest-hls-example.md)

# Penanda iklan yang didukung HLS
<a name="hls-ad-markers"></a>

AWS Elemental MediaTailor mengidentifikasi batas penggunaan iklan dalam manifes HLS dengan mengurai manifes masukan untuk penanda iklan yang didukung. Bagian berikut menjelaskan apa yang MediaTailor digunakan penanda.

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

`EXT-X-ASSET`Tag berisi metadata yang digunakan oleh server keputusan iklan (ADS) untuk mempersonalisasi konten bagi pemirsa. `EXT-X-ASSET`parameter adalah pasangan nilai kunci yang dipisahkan koma.

Untuk menggunakan tag ini, Anda harus memenuhi persyaratan berikut:
+ Anda harus mengkodekan URL `EXT-X-ASSET` *nilai dalam manifes* asal. Contoh berikut menunjukkan `EXT-X-ASSET` tag dengan kunci dan nilai-nilai URL-encoded.

  ```
              #EXT-X-ASSET:GENRE=CV,CAID=12345678,EPISODE="Episode%20Name%20Date",SEASON="Season%20Name%20and%20Number",SERIES="Series%2520Name"
  ```
+ Anda harus menyertakan `[asset.]` variabel dinamis dan *kunci* dalam konfigurasi MediaTailor ADS Anda. Contoh berikut menunjukkan konfigurasi MediaTailor ADS menggunakan `[asset.]` variabel dinamis dan kunci.

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

**Contoh permintaan VAST**  
Contoh berikut menunjukkan `GET` permintaan VAST ke 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 dan EXT-X-CUE-IN
<a name="hls-ad-markers-cue"></a>

Jenis penanda iklan ini adalah yang paling umum. Contoh berikut menunjukkan opsi untuk penanda isyarat ini.

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

Dengan tag penanda `EXT-X-DATERANGE` iklan, Anda menggunakan `SCTE35-OUT` atribut untuk menentukan waktu iklan yang tersedia. 

**catatan**  
AWS Elemental MediaTailor mengabaikan `START-DATE` atribut apa pun yang disediakan untuk penanda `EXT-X-DATERANGE` iklan. 

Anda dapat menentukan iklan yang tersedia dengan salah satu cara berikut:
+ `EXT-X-DATERANGE`tag dengan `SCTE35-OUT` dan `DURATION` spesifikasi. 

  Contoh

  ```
  #EXT-X-DATERANGE:ID="splice-6FFFFFF0",START-DATE="2019-01T00:15:00Z\",DURATION=60.000,SCTE35-OUT=0xF
  ```
+ `EXT-X-DATERANGE`Tag berpasangan, yang pertama dengan `SCTE35-OUT` spesifikasi dan yang kedua dengan `SCTE35-IN` spesifikasi. 

  Contoh

  ```
  #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
  ```
+ Kombinasi dari opsi sebelumnya. Anda menentukan `EXT-X-DATERANGE` tag dengan `SCTE35-OUT` dan `DURATION` spesifikasi diikuti oleh `EXT-X-DATERANGE` tag dengan `SCTE35-IN` spesifikasi. Dalam hal ini, MediaTailor gunakan pengaturan isyarat paling awal dari dua spesifikasi.

  Contoh

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

Anda menambahkan tag penanda `EXT-X-SPLICEPOINT-SCTE35` iklan dengan muatan SCTE-35 dalam biner berenkode base64. Biner yang diterjemahkan harus menyediakan SCTE-35 `splice_info_section` yang berisi penanda isyarat, untuk memulai peluang penempatan penyedia`0x34`, dan penanda isyarat, untuk akhir peluang penempatan penyedia. `0x35` 

Contoh berikut menunjukkan spesifikasi titik sambatan dengan muatan biner berenkode base64 yang menentukan penanda cue-out dan cue-in. 

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

# Mengaktifkan passthrough penanda iklan
<a name="ad-marker-passthrough"></a>

Secara default untuk HLS, manifes yang MediaTailor dipersonalisasi tidak menyertakan penanda iklan SCTE-35 dari manifes asal. Saat passthrough penanda iklan diaktifkan, MediaTailor lewati penanda iklan berikut dari manifes asal ke manifes yang dipersonalisasi:
+ EXT-X-CUE-IN
+ EXT-X-CUE-OUT
+ EXT-X-SPLICEPOINT- SCTE35

 Passthrough penanda iklan adalah pengaturan opsional. Gunakan passthrough penanda iklan jika Anda ingin penanda iklan SCTE disertakan dalam manifes yang dipersonalisasi. MediaTailor Kasus penggunaan umum meliputi: 
+ Penggantian konten - Lakukan penggantian konten atau pembatasan konten.
+ Pelacakan iklan - Memicu informasi pelacakan iklan berdasarkan ada atau tidak adanya satu atau beberapa penanda iklan.
+ Pengaturan pemain - Aktifkan fungsionalitas pengatur waktu scrubbing atau hitung mundur di UI pemain, berdasarkan ada atau tidak adanya penanda iklan.

**catatan**  
MediaTailor tidak mengubah nilai untuk penanda ini. Misalnya, jika `EXT-X-CUE-OUT` memiliki nilai `60` dalam manifes asal, tetapi tidak ada iklan yang ditempatkan, tidak MediaTailor akan mengubah nilainya `0` dalam manifes yang dipersonalisasi. 

## Aktifkan passthrough penanda iklan
<a name="enable-ad-marker-passthrough"></a>

Anda dapat mengaktifkan passthrough penanda iklan menggunakan Konsol Manajemen AWS atau AWS Command Line Interface (AWS CLI).

**Untuk mengaktifkan passthrough penanda iklan menggunakan konsol**

1. Buka MediaTailor konsol di [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1.  Pilih **Konfigurasi Baru** atau **Edit Konfigurasi**.

1. Di bagian **Pengaturan Lanjut**, pilih **Aktifkan** dari menu tarik-turun.

**Untuk mengaktifkan passthrough penanda iklan menggunakan AWS Command Line Interface ()AWS CLI**  
Gunakan perintah [put-playback-configuration](https://docs.aws.amazon.com/cli/latest/reference/mediatailor/put-playback-configuration.html).

# Penanganan tag manifes HLS
<a name="manifest-hls-tags"></a>

Bagian ini menjelaskan cara AWS Elemental MediaTailor mengelola tag dalam manifes keluaran yang dipersonalisasi.

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

MediaTailor menggantikan`EXT-X-CUE-OUT`,`EXT-X-CUE-OUT-CONT`, dan `EXT-X-CUE-IN` tag dalam manifes masukan dengan `EXT-X-DISCONTINUITY` tag dalam manifes keluaran. `DISCONTINUITY`Tag menandai batas-batas berikut:
+ Di mana konten utama bertransisi ke iklan
+ Di mana satu iklan bertransisi ke iklan lain
+ Tempat iklan bertransisi kembali ke konten utama

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

MediaTailor melewati `EXT-X-DATERANGE` tag dari manifes masukan ke manifes keluaran. MediaTailor juga menyisipkan `EXT-X-DISCONTINUITY` tag yang sesuai dengan `DATERANGE` tag. `DISCONTINUITY`Tag menandai batas-batas berikut:
+ Di mana konten utama bertransisi ke iklan
+ Di mana satu iklan bertransisi ke iklan lain
+ Tempat iklan bertransisi kembali ke konten utama

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

MediaTailor melewati `EXT-X-KEY` tag dari manifes input. Tag ini menunjukkan bahwa konten utama dienkripsi. Karena iklan tidak dienkripsi, MediaTailor sisipan `EXT-X-KEY:METHOD=NONE` di awal iklan tersedia. Saat pemutaran kembali ke konten utama, MediaTailor aktifkan kembali enkripsi dengan memasukkan `EXT-X-KEY` tag dengan `METHOD` nilai yang didefinisikan sebagai jenis enkripsi.

## Tag yang tidak dikenal
<a name="manifest-hls-tags-unknown"></a>

MediaTailor melewati semua tag yang tidak diketahui dan kustom dari manifes input ke manifes keluaran.

# Contoh manifes HLS
<a name="manifest-hls-example"></a>

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

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

## Memahami jenis daftar putar HLS
<a name="hls-playlist-overview"></a>

HTTP Live Streaming (HLS) menggunakan dua jenis utama daftar putar:

Daftar putar multivarian  
Daftar putar multivariant adalah file indeks tingkat atas yang mencantumkan semua rendisi konten yang tersedia. Ini berisi referensi ke daftar putar media tetapi tidak mengandung segmen media itu sendiri. Daftar putar ini memungkinkan pemain untuk memilih rendisi yang paling tepat berdasarkan kondisi jaringan, kemampuan perangkat, atau preferensi pengguna.  
Jenis playlist ini juga dikenal dengan beberapa nama lain dalam berbagai konteks, termasuk master playlist, master manifes, primary playlist, main playlist, index file, atau master M3U8.  
Dalam MediaTailor alur kerja, playlist multivariant adalah titik masuk untuk permintaan pemutaran dan di situlah personalisasi iklan dimulai.

Daftar putar media  
Daftar putar media berisi informasi segmen media aktual untuk rendisi tertentu (tingkat kualitas) konten. Ini termasuk informasi waktu, segmen URLs, dan metadata lain yang diperlukan untuk pemutaran rendisi tunggal.  
Jenis playlist ini juga dikenal sebagai playlist media, child manifes, chunklist, media M3U8, atau rendition playlist.  
Dalam MediaTailor alur kerja, daftar putar media dipersonalisasi untuk menyertakan segmen konten dan segmen iklan dalam urutan yang tepat.

Untuk informasi selengkapnya tentang jenis daftar putar HLS, lihat. [Jenis daftar putar HLS](hls-playlist-types.md)

## Contoh manifes asal HLS
<a name="manifest-hls-ex-origin"></a>

Contoh berikut menunjukkan daftar putar multivarian HLS yang AWS Elemental MediaTailor diterima oleh HLS dari asal konten.

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

Dalam contoh playlist multivariant ini:
+ `#EXT-X-STREAM-INF`Tag mendefinisikan rendisi yang berbeda dengan berbagai resolusi dan bitrate
+ Setiap rendisi mereferensikan daftar putar media (seperti) `index_1.m3u8`
+ `#EXT-X-MEDIA`Tag mendefinisikan trek subtitle

Contoh berikut menunjukkan daftar putar media HLS yang AWS Elemental MediaTailor diterima oleh HLS dari asal konten. Contoh ini menggunakan `EXT-X-CUE-OUT` dan `EXT-X-CUE-IN` tag untuk menggambarkan peluang memanfaatkan iklan.

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

Dalam contoh playlist media ini:
+ `#EXTINF`Tag menentukan durasi setiap segmen
+ `#EXT-X-CUE-OUT`Tag menandai awal jeda iklan
+ `#EXT-X-CUE-OUT-CONT`Tag memberikan informasi tentang jeda iklan yang sedang berlangsung
+ `#EXT-X-CUE-IN`Tag menandai akhir jeda iklan

## Contoh manifes yang dipersonalisasi HLS
<a name="manifest-hls-ex-personalized"></a>

Contoh berikut menunjukkan daftar putar multivarian HLS yang dipersonalisasi. 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
```

Perhatikan cara MediaTailor memodifikasi daftar putar media URLs untuk menyertakan informasi khusus sesi yang memungkinkan penyisipan iklan yang dipersonalisasi.

Contoh berikut menunjukkan playlist media yang AWS Elemental MediaTailor dipersonalisasi.

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

Dalam contoh daftar putar media yang dipersonalisasi ini:
+ MediaTailor telah menyisipkan segmen iklan di antara segmen konten
+ `#EXT-X-DISCONTINUITY`Tag menandai transisi antara konten dan iklan
+ Segmen konten disajikan dari server asal (MediaPackage dalam contoh ini)
+ Segmen iklan MediaTailor ditayangkan dari penyimpanan segmen iklan

## Perbedaan utama dalam manifes yang dipersonalisasi
<a name="manifest-hls-key-differences"></a>

Ketika MediaTailor mempersonalisasi manifestasi HLS, itu membuat beberapa perubahan penting:

Perubahan daftar putar multivariant  
+ Daftar putar varian URLs ditulis ulang untuk menunjuk ke MediaTailor -managed URLs yang menyertakan informasi sesi
+ Urutan tag dapat diatur ulang untuk pemutaran optimal

Perubahan daftar putar varian  
+ Penanda iklan (`EXT-X-CUE-OUT`,`EXT-X-CUE-IN`) diganti dengan segmen iklan aktual
+ Penanda diskontinuitas (`EXT-X-DISCONTINUITY`) ditambahkan pada batas content/ad 
+ Segmen konten URLs ditulis ulang untuk menunjuk ke asal atau CDN
+ Segmen iklan URLs ditambahkan untuk menunjuk ke MediaTailor penyimpanan segmen 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="manifest-hls-related-topics"></a>

Untuk informasi selengkapnya tentang manifes HLS dan MediaTailor, lihat topik berikut:
+ [Jenis daftar putar HLS](hls-playlist-types.md)- Penjelasan rinci tentang jenis daftar putar HLS
+ [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

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

# Mengamankan interaksi AWS Elemental MediaTailor asal dengan SiGv4
<a name="origin-sigv4"></a>

Sigv4 (SigV4) adalah protokol penandatanganan yang digunakan untuk mengautentikasi MediaTailor permintaan ke asal yang didukung melalui HTTPS. MediaTailor hanya mendukung komunikasi HTTPS dan tidak mengizinkan koneksi HTTP. Dengan penandatanganan SiGv4, MediaTailor sertakan header otorisasi yang ditandatangani dalam permintaan asal HTTPS ke MediaTailor Channel Assembly, Amazon S3, dan versi 2. AWS Elemental MediaPackage 

Anda dapat menggunakan SigV4 di asal Anda untuk memastikan bahwa permintaan manifes hanya terpenuhi jika permintaan tersebut berasal MediaTailor dan berisi header otorisasi yang ditandatangani. Dengan cara ini, konfigurasi MediaTailor pemutaran yang tidak sah diblokir agar tidak mengakses konten asal Anda. Jika header otorisasi yang ditandatangani valid, asal Anda memenuhi permintaan. Jika tidak valid, permintaan gagal.

Bagian berikut menjelaskan persyaratan untuk menggunakan MediaTailor penandatanganan SiGv4 ke asal yang didukung.

## MediaTailor Persyaratan Perakitan Saluran
<a name="origin-sigv4-ca"></a>

Jika Anda menggunakan SigV4 untuk melindungi asal Majelis MediaTailor Saluran, persyaratan berikut harus dipenuhi MediaTailor untuk mengakses manifes:
+ URL dasar asal dalam MediaTailor konfigurasi Anda harus berupa saluran Perakitan Saluran dalam format berikut: `channel-assembly.mediatailor.region.amazonaws.com`
+ Asal Anda harus dikonfigurasi untuk menggunakan HTTPS. MediaTailor hanya mendukung komunikasi HTTPS dan tidak mengizinkan koneksi HTTP. Jika HTTPS tidak diaktifkan di asal, tidak MediaTailor akan menandatangani permintaan.
+ Saluran Anda harus memiliki kebijakan akses asal yang mencakup hal-hal berikut:
  + Akses utama MediaTailor untuk mengakses saluran Anda. Berikan akses ke **mediatailor.amazonaws.com**.
  + Izin IAM **mediatailor: GetManifest ** untuk membaca semua playlist multivariant yang direferensikan oleh konfigurasi. MediaTailor 

  Untuk informasi tentang menyetel kebijakan di saluran, lihat[Buat saluran menggunakan MediaTailor konsol](channel-assembly-creating-channels.md).

**Example kebijakan akses asal untuk Majelis Saluran, dicakup ke akun konfigurasi MediaTailor**  

```
{
    "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 kebijakan akses asal untuk Majelis Saluran, tercakup ke konfigurasi pemutaran MediaTailor**  

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

## Persyaratan Amazon S3
<a name="origin-sigv4-s3"></a>

Jika Anda menggunakan SigV4 untuk melindungi asal Amazon S3, persyaratan berikut harus dipenuhi MediaTailor untuk mengakses manifes:
+ URL dasar asal dalam MediaTailor konfigurasi Anda harus berupa bucket S3 dalam format berikut: `s3.region.amazonaws.com`
+ Asal Anda harus dikonfigurasi untuk menggunakan HTTPS. MediaTailor hanya mendukung komunikasi HTTPS dan tidak mengizinkan koneksi HTTP. Jika HTTPS tidak diaktifkan di asal, tidak MediaTailor akan menandatangani permintaan.
+ Saluran Anda harus memiliki kebijakan akses asal yang mencakup hal-hal berikut:
  + Akses utama MediaTailor untuk mengakses bucket Anda. Berikan akses ke **mediatailor.amazonaws.com**. 

    Untuk informasi tentang mengonfigurasi akses di IAM, lihat [Manajemen akses](https://docs.aws.amazon.com/) di *Panduan Pengguna AWS Identity and Access Management*. 
  + Izin IAM **s3: GetObject ** untuk membaca semua manifes tingkat atas yang direferensikan oleh konfigurasi. MediaTailor 

 Untuk informasi umum tentang SiGv4 untuk Amazon S3, lihat topik [Permintaan Autentikasi (AWS Signature Version](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html) 4) di referensi API *Amazon S3*. 

**Example kebijakan akses asal untuk Amazon S3, dicakup ke akun MediaTailor**  

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

**Example kebijakan akses asal untuk Amazon S3, tercakup ke konfigurasi pemutaran MediaTailor**  

```
{
    "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 persyaratan
<a name="origin-sigv4-mp"></a>

Jika Anda menggunakan SigV4 untuk melindungi asal MediaPackage v2 Anda, persyaratan berikut harus dipenuhi MediaTailor untuk mengakses manifes:
+ URL basis asal dalam MediaTailor konfigurasi Anda harus berupa titik akhir MediaPackage v2 dalam format berikut: `mediapackagev2.region.amazonaws.com`
+ Asal Anda harus dikonfigurasi untuk menggunakan HTTPS. MediaTailor hanya mendukung komunikasi HTTPS dan tidak mengizinkan koneksi HTTP. Jika HTTPS tidak diaktifkan di asal, tidak MediaTailor akan menandatangani permintaan.
+ Saluran Anda harus memiliki kebijakan akses asal yang mencakup hal-hal berikut:
  + Akses utama MediaTailor untuk mengakses titik akhir Anda. Berikan akses ke **mediatailor.amazonaws.com**. 
  + Izin IAM **mediapackagev2: GetObject ** untuk membaca semua playlist multivariant yang direferensikan oleh konfigurasi. MediaTailor 

 Untuk informasi umum tentang SigV4 for MediaPackage v2, lihat topik [Authenticating Requests (AWS Signature Version 4)](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html) di referensi API *MediaPackage v2*.

**Example kebijakan akses asal untuk MediaPackage v2, dicakup ke akun 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 kebijakan akses asal untuk MediaPackage v2, tercakup ke konfigurasi pemutaran 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:SourceArn": "arn:aws:mediatailor:us-west-2:444455556666:playbackConfiguration/test”"}
    }
}
```

# Integrasi AWS Elemental MediaTailor dengan Google Ad Manager
<a name="gam-integration"></a>

Integrasikan MediaTailor dengan [Google Ad Manager](https://admanager.google.com/home/) (Manajer Iklan) untuk akses terprogram ke pasar online berbasis lelang di mana tayangan iklan dapat dibeli dan dijual secara real time. Anda harus memiliki akun yang disiapkan dengan Manajer Iklan, kemudian Anda dapat mengintegrasikan dengan Manajer Iklan dengan cara berikut:
+ Integrasi sisi server menggunakan sertifikat SSL. 
+ Integrasi pemutar sisi klien menggunakan SDK Programmatic Access Libraries (PAL). Integrasi ini diperlukan jika Anda ingin menggunakan jenis transaksi lelang terbuka.

Dukungan Manajer Iklan untuk jenis transaksi terprogram bervariasi berdasarkan jenis integrasi yang Anda gunakan. Untuk daftar opsi yang tersedia, lihat [Jenis transaksi](https://support.google.com/admanager/answer/2805834?hl=en) atau hubungi tim akun Google Anda. 

Bagian berikut menjelaskan integrasi ini secara rinci.

**Topics**
+ [Integrasi sisi server](gam-integration-ssl.md)
+ [Integrasi sisi klien](gam-integration-pal.md)

# AWS Elemental MediaTailor Integrasi sisi server dengan Google Ad Manager
<a name="gam-integration-ssl"></a>

Permintaan iklan sisi server ke Google Ad Manager (Pengelola Iklan) harus menyertakan sertifikat SSL yang dikeluarkan oleh Manajer Iklan MediaTailor untuk mengotorisasi transaksi terprogram. 

**Untuk membuat permintaan iklan sisi server ke Manajer Iklan**

1. [Kirim tiket AWS Support](https://console.aws.amazon.com/support/home#/) untuk meminta sertifikat SSL diaktifkan. Sertakan informasi berikut dalam tiket Support:
   + AWS Wilayah
   + AWS ID akun
   + MediaTailor nama konfigurasi pemutaran

   Jika Anda tidak mengaktifkan sertifikat SSL, Manajer Iklan merespons permintaan MediaTailor iklan dengan kode kesalahan HTTP 401 dalam jenis peristiwa log interaksi `ERROR_ADS_INVALID_RESPONSE` ADS.

1. Setelah sertifikat SSL diaktifkan, perbarui URL dan parameter untuk ADS dan ADS preroll Anda dalam konfigurasi pemutaran. Untuk memperbarui atau membuat konfigurasi pemutaran, lihat[MediaTailor manajemen konfigurasi pemutaran](working-with-configurations.md).

   Untuk panduan resmi tentang parameter URL permintaan iklan VAST untuk Manajer Iklan, lihat panduan implementasi [sisi Server](https://support.google.com/admanager/answer/10668760) Manajer Iklan. Memperbarui mencakup perubahan berikut:
   + Ubah URL dasar dari `pubads.g.doubleclick.net` ke`serverside.doubleclick.net`.
   + Tambahkan `ssss=mediatailor` parameter. Ini menunjukkan bahwa MediaTailor adalah sumber jahitan sisi server.
   + Hapus `IP` parameternya. MediaTailor secara otomatis melewati alamat IP pengguna akhir menggunakan header. `X-Forwarded-For`
   + Hapus `ss_req=1` parameternya.

   Untuk panduan URL VAST yang diperbarui dan lengkap, lihat [panduan implementasi sisi server](https://support.google.com/admanager/answer/10668760) atau hubungi tim akun Google Anda. 

# AWS Elemental MediaTailor Integrasi sisi klien dengan Google Ad Manager
<a name="gam-integration-pal"></a>

Integrasi MediaTailor sisi klien diperlukan untuk menggunakan Google Ad Manager Programmatic Access Libraries (PAL). SDKs Integrasi ini diperlukan jika Anda ingin menggunakan jenis transaksi lelang terbuka Ad Manager. 

PAL SDKs memberikan informasi tentang konten, perangkat, dan data pengguna untuk sesi pemutaran. Melalui PAL SDK, Anda dapat memberikan informasi ini ke Google Ad Manager, yang kemudian dapat membuat penentuan yang lebih baik tentang iklan bertarget apa yang akan ditampilkan. SDKstersedia untuk Android, iOS HTML5, dan Cast. Untuk informasi tentang penggunaan PAL SDKs, lihat [SDK PAL Manajer Iklan Google](https://developers.google.com/ad-manager/pal). 

**Untuk membuat integrasi sisi klien dengan Ad Manager**

1. Gunakan PAL SDK untuk menghasilkan nonce. 

   Nonce adalah string terenkripsi yang dihasilkan PAL untuk permintaan aliran. Setiap permintaan harus memiliki nonce yang unik. Untuk informasi tentang menyiapkan nonce, pilih SDK Anda dari [Google Ad Manager PAL](https://developers.google.com/ad-manager/pal) SDK.

1. Gunakan `givn` parameter dalam permintaan ADS Anda untuk melewati nilai nonce. Untuk melakukan ini, perbarui URL ADS Anda untuk disertakan`&givn=[player_params.givn]`. Untuk petunjuk, lihat [Mengaktifkan pelacakan sisi klien](ad-reporting-client-side.md#ad-reporting-client-side-enabling).

**Pemain datazoom SDKs**  
MediaTailor telah bermitra dengan Datazoom untuk menyediakan pemain gratis SDKs untuk memudahkan integrasi dengan SDKs seperti yang ditawarkan di Ad Manager PAL. Untuk informasi tentang Datazoom dan MediaTailor kemitraan, lihat. [Datazoom pemain gratis SDKs](ad-reporting-client-side-ad-tracking-integrations.md#ad-reporting-client-side-ad-tracking-integrations-dz)

Untuk mengakses pemutar Datazoom SDKs, gunakan informasi kontak di [Datazoom](https://www.datazoom.io/partner-aws) dengan situs. AWS

# Menyesuaikan perilaku pemutusan iklan dengan penekanan jeda iklan
<a name="ad-rules"></a>

Saat membuat konfigurasi AWS Elemental MediaTailor, Anda dapat menentukan setelan konfigurasi jeda iklan opsional yang mengatur perilaku jeda iklan, termasuk kemampuan untuk mengonfigurasi penekanan jeda iklan. Ini memungkinkan Anda menyesuaikan pengalaman jeda iklan untuk konten video Anda untuk memenuhi persyaratan spesifik Anda.

**Pembatasan kompatibilitas**  
Anda tidak dapat menggunakan penekanan pemutusan iklan dengan yang berikut ini:
+  VOD dan live-to-VOD alur kerja. Hanya alur kerja langsung yang didukung.
+ Metode penyisipan iklan (SGAI) yang dipandu server. Metode yang dipandu server menangani pengambilan keputusan iklan secara berbeda dan tidak memerlukan konfigurasi penekanan.

**Topics**
+ [Mengonfigurasi penekanan jeda iklan](#ad-suppression)

## Mengonfigurasi penekanan jeda iklan
<a name="ad-suppression"></a>

Anda dapat mengonfigurasi MediaTailor untuk melewati personalisasi jeda iklan untuk konten langsung. Ini dikenal sebagai *ad break suppression*, atau *avail* suppression. Topik ini menunjukkan caranya, dan juga menjelaskan cara mengonfigurasi penekanan jeda iklan bekerja.

Penindasan pemutusan iklan dapat digunakan untuk kasus penggunaan berikut:
+ **Jendela tampilan balik manifes besar** — Jika pemirsa memulai pemutaran di tepi langsung manifes tetapi jendela tampilan belakangnya besar, Anda mungkin ingin hanya menyisipkan iklan yang dimulai setelah pemirsa mulai menonton. Atau, sisipkan iklan untuk sebagian dari total jendela lookback di manifes. Anda dapat mengonfigurasi penekanan iklan sehingga MediaTailor mempersonalisasi jeda iklan pada atau dalam rentang waktu tertentu di belakang live edge.
+ **Mid-break join** — Jika pemirsa mulai menonton streaming video langsung di tengah jeda iklan, pengguna tersebut kemungkinan akan mengubah saluran dan tidak menonton iklan. Dengan penekanan iklan, Anda dapat melewati personalisasi jeda iklan jika jeda iklan dimulai sebelum pemirsa bergabung dengan streaming.

### Mengkonfigurasi penekanan iklan
<a name="working-with-ad-suppression"></a>

Untuk menggunakan penekanan iklan, Anda mengonfigurasi **mode penekanan avail**, memanfaatkan **nilai penekanan, dan memanfaatkan** kebijakan pengisian **penekanan dengan cara berikut**: 
+ Di MediaTailor konsol
+ Menggunakan AWS Command Line Interface (AWS CLI)
+ Menggunakan MediaTailor API, atau sebagai parameter dalam permintaan sesi pemutaran klien Anda

Untuk informasi tentang konfigurasi dengan parameter, lihat[Mengonfigurasi parameter penekanan iklan — permintaan sesi pemutaran](#configuring-ad-suppression-parameters-playback-session-request).

#### Parameter konfigurasi penekanan iklan
<a name="ad-suppression-configuration-parameters"></a>

Anda dapat memilih untuk mengaktifkan atau menonaktifkan penekanan iklan. Jika Anda mengaktifkan penekanan iklan, Anda menentukan apakah penekanan itu terjadi setelah tepi pemutaran langsung atau sebelum tepi pemutaran langsung streaming langsung. Dalam kedua kasus tersebut, Anda juga menentukan waktu, relatif terhadap live edge, yang MediaTailor tidak mempersonalisasi iklan. Saat mengaktifkan penekanan avail, Anda dapat menentukan kebijakan penekanan avail yang MediaTailor digunakan untuk pengisian jeda iklan sebagian saat sesi dimulai pada pertengahan istirahat.

Berikut ini adalah parameter konfigurasi penekanan iklan:
+ **Mode penindasan yang tersedia - Mengatur mode** penekanan iklan. Secara default, penekanan iklan tidak aktif. **Nilai yang diterima**:`OFF`,`BEHIND_LIVE_EDGE`, atau`AFTER_LIVE_EDGE`.
  + `OFF`: Tidak ada penekanan iklan dan MediaTailor mempersonalisasi semua jeda iklan.
  + `BEHIND_LIVE_EDGE`: MediaTailor tidak mempersonalisasi jeda iklan yang dimulai sebelum live edge, dikurangi nilai **penekanan Avail**. Ini memengaruhi seluruh jeda iklan, bukan hanya ketersediaan iklan individual.
  + `AFTER_LIVE_EDGE`: MediaTailor tidak mempersonalisasi jeda iklan yang berada dalam live edge, ditambah nilai **penekanan Avail**. Ini dapat dikonfigurasi untuk memengaruhi seluruh jeda iklan atau memungkinkan pengisian sebagian dari ketersediaan iklan.
+ **Nilai penekanan yang tersedia** — Waktu relatif terhadap tepi langsung dalam streaming langsung. **Nilai yang diterima**: Nilai waktu dalam`HH:MM:SS`.
+ **Avail suppression fill policy** — Mendefinisikan kebijakan yang MediaTailor berlaku untuk mode **Avail** suppression. **Nilai yang diterima**:`PARTIAL_AVAIL`,`FULL_AVAIL_ONLY`.
  + `BEHIND_LIVE_EDGE`mode selalu menggunakan kebijakan `FULL_AVAIL_ONLY` penindasan. 
  + `AFTER_LIVE_EDGE`mode dapat digunakan untuk memanggil pengisian jeda `PARTIAL_AVAIL` iklan saat sesi dimulai pada pertengahan istirahat.

#### Contoh setelan penekanan iklan
<a name="ad-suppression-settings-examples"></a>

Cara [parameter konfigurasi penekanan iklan](#ad-suppression-configuration-parameters) berinteraksi satu sama lain memungkinkan Anda menentukan beberapa cara berbeda untuk menangani penekanan iklan dan memanfaatkan pengisian sebelum, di, atau setelah tepi langsung streaming langsung. Bagian ini memberikan contoh yang menunjukkan kepada Anda beberapa interaksi ini. Gunakan contoh ini untuk membantu Anda mengatur parameter konfigurasi untuk situasi khusus Anda.

Berikut ini adalah contoh pengaturan penekanan iklan:

**Example 1: Tidak ada penekanan iklan**  
Saat **mode penekanan tersedia`OFF`, tidak ada penekanan** iklan dan MediaTailor mempersonalisasi semua jeda iklan.  
Pada gambar berikut, berbagai blok disusun secara horizontal sepanjang garis waktu yang berlangsung dari kiri ke kanan. Setiap blok mewakili sebagian waktu di mana konten streaming langsung atau jeda iklan yang dipersonalisasi diputar. Garis putus-putus mewakili tepi langsung saat ini dari streaming langsung. Dua jeda iklan terjadi sebelum tepi langsung, dan jeda iklan lainnya sedang berlangsung di tepi langsung. Seperti yang ditunjukkan pada gambar, saat mode penekanan tersedia`OFF`, MediaTailor personalisasi semua jeda iklan yang terjadi sebelum tepi langsung pada timeline. MediaTailor juga mempersonalisasi jeda iklan yang sedang berlangsung di live edge.  

![\[MediaTailor personalisasi jeda iklan dengan mode penekanan yang tersedia disetel ke. OFF\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/images/no_ad_suppression.png)


**Example 2: penekanan `BEHIND_LIVE_EDGE` iklan dengan nilai yang sinkron dengan live edge**  
Ketika **mode penekanan avail** disetel ke `BEHIND_LIVE_EDGE` dan nilai **penekanan avail disetel ke`00:00:00`, nilai penekanan** avail disinkronkan dengan tepi langsung. MediaTailor tidak mempersonalisasi jeda iklan apa pun yang dimulai pada atau sebelum live edge.  
Pada gambar berikut, berbagai blok disusun secara horizontal sepanjang garis waktu yang berlangsung dari kiri ke kanan. Setiap blok mewakili sebagian waktu di mana konten streaming langsung, jeda iklan yang dipersonalisasi, atau jeda iklan yang tidak dipersonalisasi diputar. Garis putus-putus mewakili tepi langsung saat ini dari streaming langsung. Garis putus-putus lainnya, yang mewakili nilai penekanan avail yang disetel ke`00:00:00`, tumpang tindih dengan garis putus-putus untuk tepi langsung. Dua jeda iklan terjadi sebelum tepi langsung, dan jeda iklan lainnya terjadi setelah tepi langsung. Seperti yang ditunjukkan pada gambar, saat mode penekanan avail disetel ke`BEHIND_LIVE_EDGE`, dan nilai penekanan avail disetel `00:00:00` agar sinkron dengan tepi langsung, MediaTailor tidak mempersonalisasi jeda iklan apa pun yang terjadi sebelum tepi langsung pada timeline. MediaTailor mempersonalisasi jeda iklan yang terjadi *setelah* live edge.  

![\[MediaTailor personalisasi pemutusan iklan dengan mode penekanan yang tersedia disetel ke BEHIND_LIVE_EDGE dan gunakan nilai penekanan yang disetel ke. 00:00:00\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/images/ad_supp_value_sync_live_edge.png)


**Example 3: penekanan `BEHIND_LIVE_EDGE` iklan dengan nilai di balik tepi langsung**  
Ketika **mode penekanan avail** disetel ke`BEHIND_LIVE_EDGE`, MediaTailor tidak mempersonalisasi jeda iklan apa pun pada atau sebelum waktu itu. Dalam contoh ini, MediaTailor personalisasi jeda iklan yang dimulai hingga 45 menit di belakang live edge. MediaTailor *tidak* mempersonalisasi jeda iklan yang dimulai lebih dari 45 menit di belakang live edge.  
Pada gambar berikut, berbagai blok disusun secara horizontal sepanjang garis waktu yang berlangsung dari kiri ke kanan. Setiap blok mewakili sebagian waktu di mana konten streaming langsung, jeda iklan yang dipersonalisasi, atau jeda iklan yang tidak dipersonalisasi diputar. Garis putus-putus mewakili tepi langsung saat ini dari streaming langsung. Garis putus-putus lainnya, yang mewakili nilai penekanan yang disetel ke`00:45:00`, terjadi 45 menit lebih awal di garis waktu sehubungan dengan garis putus-putus untuk tepi langsung. Periode waktu 45 menit antara garis putus-putus mewakili periode penekanan yang berhasil. Jeda iklan sedang berlangsung pada awal periode penekanan yang berhasil. Dua jeda iklan lainnya terjadi selama periode penekanan yang berhasil. Seperti yang ditunjukkan pada gambar, ketika mode penekanan avail disetel ke`BEHIND_LIVE_EDGE`, dan nilai penekanan avail diatur ke `00:45:00` belakang tepi langsung, MediaTailor mempersonalisasi setiap jeda iklan yang terjadi dalam periode penekanan avail. MediaTailor *tidak* mempersonalisasi jeda iklan yang sedang berlangsung di awal periode penekanan yang berhasil.  

![\[MediaTailor personalisasi pemutusan iklan dengan mode penekanan yang tersedia disetel ke BEHIND_LIVE_EDGE dan gunakan nilai penekanan yang disetel ke. 00:45:00\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/images/ad_supp_value_offset_live_edge.png)


**Example 4: penindasan `AFTER_LIVE_EDGE` iklan tanpa jeda iklan yang terjadi selama periode penekanan yang berhasil**  
Ketika **mode penekanan avail** disetel ke `AFTER_LIVE_EDGE` dan **nilai penekanan avail** lebih besar dari nol, MediaTailor tidak mempersonalisasi jeda iklan apa pun hingga waktu sesi yang telah berlalu telah mencapai nilai tersebut.  
Pada gambar berikut, berbagai blok disusun secara horizontal sepanjang garis waktu yang berlangsung dari kiri ke kanan. Setiap blok mewakili sebagian waktu di mana konten streaming langsung atau jeda iklan yang dipersonalisasi diputar. Garis putus-putus mewakili tepi langsung saat ini dari streaming langsung. Garis putus-putus lainnya, yang mewakili nilai penekanan yang disetel ke`00:30:00`, terjadi 30 menit kemudian di garis waktu sehubungan dengan garis putus-putus untuk tepi langsung. Garis putus-putus ketiga, mewakili inisialisasi sesi, terjadi lebih awal di timeline sehubungan dengan garis putus-putus untuk tepi langsung. Periode waktu 30 menit antara waktu live-edge dan avail-suppression-value waktu mewakili periode penekanan yang tersedia. Jeda iklan terjadi setelah periode penekanan yang berhasil. *Seperti yang ditunjukkan pada gambar, ketika mode penekanan avail disetel ke`AFTER_LIVE_EDGE`, nilai penekanan avail diatur ke `00:30:00` setelah tepi langsung, dan inisialisasi sesi terjadi sebelum tepi langsung, MediaTailor mempersonalisasi setiap jeda iklan yang terjadi setelah periode penekanan yang berhasil.*  

![\[MediaTailor personalisasi pemutusan iklan dengan mode penekanan yang tersedia disetel keAFTER_LIVE_EDGE, nilai penekanan yang disetel ke00:30:00, dan inisialisasi sesi yang terjadi sebelum live edge.\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/images/ad_supp_after_no_ad_break.png)


**Example 5: penindasan `AFTER_LIVE_EDGE` iklan dengan kebijakan `PARTIAL_AVAIL` pengisian dan jeda iklan sedang berlangsung pada akhir periode penindasan yang berhasil**  
Ketika **mode penekanan avail** disetel ke `AFTER_LIVE_EDGE` dan **nilai penekanan avail** lebih besar dari nol, MediaTailor tidak mempersonalisasi jeda iklan apa pun hingga waktu sesi yang telah berlalu telah mencapai nilai tersebut.  
Pada gambar berikut, berbagai blok disusun secara horizontal sepanjang garis waktu yang berlangsung dari kiri ke kanan. Setiap blok mewakili sebagian waktu di mana konten streaming langsung, jeda iklan yang dipersonalisasi, atau jeda iklan yang tidak dipersonalisasi diputar. Garis putus-putus mewakili tepi langsung saat ini dari streaming langsung. Garis putus-putus lainnya, yang mewakili nilai penekanan yang disetel ke`00:30:00`, terjadi 30 menit kemudian di garis waktu sehubungan dengan garis putus-putus untuk tepi langsung. Garis putus-putus ketiga, mewakili inisialisasi sesi, terjadi lebih awal di timeline sehubungan dengan garis putus-putus untuk tepi langsung. Periode waktu 30 menit antara waktu live-edge dan avail-suppression-value waktu mewakili periode penekanan yang tersedia. Jeda iklan sedang berlangsung pada akhir periode penekanan yang berhasil. *Seperti yang ditunjukkan pada gambar, ketika mode penekanan avail disetel ke`AFTER_LIVE_EDGE`, nilai penekanan avail disetel ke `00:30:00` setelah live edge, kebijakan pengisian penekanan avail disetel ke, dan inisialisasi sesi terjadi sebelum live edge`PARTIAL_AVAIL`, MediaTailor mempersonalisasi setiap jeda iklan yang terjadi setelah periode penekanan avail.* *Untuk jeda iklan yang sedang berlangsung di akhir periode penekanan avail, MediaTailor personalisasi bagian jeda iklan yang terjadi *setelah* periode penekanan avail, tetapi tidak mempersonalisasi bagian dari jeda iklan yang terjadi selama periode penekanan avail.*  

![\[MediaTailor personalisasi pemutusan iklan dengan mode penekanan yang tersedia disetel keAFTER_LIVE_EDGE, nilai penekanan yang disetel ke00:30:00, memanfaatkan kebijakan pengisian penekanan yang disetel kePARTIAL_AVAIL, inisialisasi sesi yang terjadi sebelum tepi langsung, dan jeda iklan sedang berlangsung di akhir periode penekanan yang berhasil.\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/images/ad_supp_after_ending_ad_break.png)


**Example 6: penindasan `AFTER_LIVE_EDGE` iklan dengan kebijakan `PARTIAL_AVAIL` pengisian dan jeda iklan yang sedang berlangsung dari sebelum inisialisasi sesi hingga setelah akhir periode penekanan yang berhasil**  
Ketika **mode penekanan avail** disetel ke `AFTER_LIVE_EDGE` dan **nilai penekanan avail** lebih besar dari nol, MediaTailor tidak mempersonalisasi jeda iklan apa pun hingga waktu sesi yang telah berlalu telah mencapai nilai tersebut.  
Pada gambar berikut, berbagai blok disusun secara horizontal sepanjang garis waktu yang berlangsung dari kiri ke kanan. Setiap blok mewakili sebagian waktu di mana konten streaming langsung, jeda iklan yang dipersonalisasi, atau jeda iklan yang tidak dipersonalisasi diputar. Garis putus-putus mewakili tepi langsung saat ini dari streaming langsung. Garis putus-putus lainnya, yang mewakili nilai penekanan yang disetel ke`00:30:00`, terjadi 30 menit kemudian di garis waktu sehubungan dengan garis putus-putus untuk tepi langsung. Garis putus-putus ketiga, mewakili inisialisasi sesi, terjadi lebih awal di timeline sehubungan dengan garis putus-putus untuk tepi langsung. Periode waktu 30 menit antara waktu live-edge dan avail-suppression-value waktu mewakili periode penekanan yang tersedia. Jeda iklan sedang berlangsung dari waktu sebelum inisialisasi sesi ke waktu setelah periode penekanan yang berhasil. *Seperti yang ditunjukkan pada gambar, ketika mode penekanan avail disetel ke`AFTER_LIVE_EDGE`, nilai penekanan avail disetel ke `00:30:00` setelah live edge, kebijakan pengisian penekanan avail disetel ke, dan inisialisasi sesi terjadi sebelum live edge`PARTIAL_AVAIL`, MediaTailor mempersonalisasi setiap jeda iklan yang terjadi setelah periode penekanan avail.* *Untuk jeda iklan yang sedang berlangsung sebelum, selama, dan setelah periode penekanan avail, MediaTailor mempersonalisasi bagian jeda iklan yang terjadi *setelah* periode penekanan avail, tetapi tidak mempersonalisasi bagian jeda iklan yang terjadi *sebelum* atau selama periode penekanan yang berhasil.*  

![\[MediaTailor personalisasi jeda iklan dengan mode penekanan yang tersedia disetel keAFTER_LIVE_EDGE; nilai penekanan yang disetel ke00:30:00; memanfaatkan kebijakan pengisian penekanan yang disetel kePARTIAL_AVAIL; inisialisasi sesi yang terjadi sebelum tepi langsung; dan jeda iklan sedang berlangsung sebelum, selama, dan setelah periode penekanan yang berhasil.\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/images/ad_supp_after_ad_break_throughout.png)


**Example 7: penindasan `AFTER_LIVE_EDGE` iklan dengan jeda iklan yang sedang berlangsung pada awal periode penindasan yang berhasil**  
Ketika **mode penekanan avail** disetel ke `AFTER_LIVE_EDGE` dan **nilai penekanan avail** lebih besar dari nol, MediaTailor tidak mempersonalisasi jeda iklan apa pun hingga waktu sesi yang telah berlalu telah mencapai nilai tersebut.  
Pada gambar berikut, berbagai blok disusun secara horizontal sepanjang garis waktu yang berlangsung dari kiri ke kanan. Setiap blok mewakili sebagian waktu di mana konten streaming langsung atau jeda iklan yang tidak dipersonalisasi diputar. Garis putus-putus mewakili tepi langsung saat ini dari streaming langsung. Garis putus-putus lainnya, yang mewakili nilai penekanan yang disetel ke`00:30:00`, terjadi 30 menit kemudian di garis waktu sehubungan dengan garis putus-putus untuk tepi langsung. Garis putus-putus ketiga, mewakili inisialisasi sesi, terjadi lebih awal di timeline sehubungan dengan garis putus-putus untuk tepi langsung. Periode waktu 30 menit antara waktu live-edge dan avail-suppression-value waktu mewakili periode penekanan yang tersedia. Jeda iklan sedang berlangsung dari waktu sebelum inisialisasi sesi ke waktu dalam periode penekanan yang tersedia. Seperti yang ditunjukkan pada gambar, ketika mode penekanan avail disetel ke`AFTER_LIVE_EDGE`, nilai penekanan avail disetel ke `00:30:00` setelah live edge, dan inisialisasi sesi terjadi sebelum waktu live-edge tetapi setelah dimulainya jeda iklan, MediaTailor tidak mempersonalisasi jeda iklan tersebut.  

![\[MediaTailor personalisasi jeda iklan dengan mode penekanan yang tersedia disetel keAFTER_LIVE_EDGE; nilai penekanan yang disetel ke00:30:00; inisialisasi sesi terjadi sebelum tepi langsung; dan jeda iklan sedang berlangsung sebelum tetapi berakhir selama periode penekanan yang berhasil.\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/images/ad_supp_after_beginning_ad_break.png)


#### Mengonfigurasi parameter penekanan iklan — permintaan sesi pemutaran
<a name="configuring-ad-suppression-parameters-playback-session-request"></a>

Anda dapat mengonfigurasi setelan penekanan iklan melalui parameter dalam permintaan *sesi pemutaran awal* sisi server atau sisi klien. MediaTailor Jika Anda telah mengonfigurasi setelan penekanan iklan melalui MediaTailor Konsol atau AWS Elemental MediaTailor API, parameter ini akan mengganti setelan tersebut.

Baik mode penekanan avail dan nilai penekanan avail diperlukan agar penekanan iklan berfungsi. Parameter ini tidak dapat dikonfigurasi dari sumber yang berbeda. Misalnya, Anda tidak dapat mengonfigurasi satu parameter dengan MediaTailor konsol dan parameter lainnya dengan parameter kueri.

MediaTailor mendukung parameter penekanan iklan berikut.


| Nama | Deskripsi | Nilai yang Diterima | 
| --- | --- | --- | 
| availSuppressionMode |  Menetapkan mode untuk penekanan iklan. Secara default, penekanan iklan adalah`OFF`. Saat disetel ke`BEHIND_LIVE_EDGE`, MediaTailor tidak mengisi jeda iklan pada atau di belakang `aws.availSuppressionValue` waktu. Ketika disetel ke`AFTER_LIVE_EDGE`, MediaTailor tidak mengisi jeda iklan pada atau di belakang periode penekanan avail. Periode penekanan yang tersedia mencakup dari waktu tepi langsung ke waktu, ditambah waktu buffer `aws.availSuppressionValue` tambahan.  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/ad-rules.html)  | 
| availSuppressionValue | Waktu relatif terhadap tepi langsung dalam streaming langsung. | Kode waktu yang dikodekan URL UTF-8 di. HH:MM:SS Misalnya, 1 jam dan 30 menit akan menjadi01%3A30%3A00. | 
| availSuppressionFillPolicy | Mendefinisikan kebijakan yang akan diterapkan pada mode penekanan avail. BEHIND\$1LIVE\$1EDGEselalu menggunakan kebijakan penindasan yang berhasil sepenuhnya. AFTER\$1LIVE\$1EDGEdapat digunakan untuk memanggil pengisian jeda iklan sebagian saat sesi dimulai pertengahan istirahat. |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/ad-rules.html)  | 

##### Konfigurasi sisi server
<a name="server-side-query"></a>

Parameter kueri dasar adalah`aws.availSuppression`, yang diikuti oleh nama parameter opsional dan pasangan nilai. Untuk membuat kueri, tambahkan `aws.availSuppression=` ke akhir permintaan sesi pemutaran ke MediaTailor, diikuti dengan nama dan nilai parameter. Untuk informasi selengkapnya tentang cara membuat permintaan sesi pemutaran sisi server, lihat. [MediaTailor Pelacakan dan pelaporan iklan sisi server](ad-reporting-server-side.md)

**Contoh**: HLS

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

Sintaks query sisi server tercantum dalam tabel berikut.


| Komponen String Kueri | Deskripsi | 
| --- | --- | 
| ? | Karakter terbatas yang menandai awal kueri. | 
| aws. | Kueri dasar, yang diikuti oleh parameter yang dibangun dari pasangan nama dan nilai. Untuk daftar semua parameter yang tersedia, lihat[Mengonfigurasi parameter penekanan iklan — permintaan sesi pemutaran](#configuring-ad-suppression-parameters-playback-session-request).  | 
| = | Mengaitkan nama parameter dengan nilai. Misalnya, aws.availSuppressionMode=BEHIND\$1LIVE\$1EDGE. | 
| & | Menggabungan parameter kueri. Misalnya, aws.availSuppressionMode=BEHIND\$1LIVE\$1EDGE &aws.availSuppressionValue=00:30:00&aws.availSuppressionFillPolicy=FULL\$1AVAIL\$1ONLY>. | 

##### Konfigurasi sisi klien
<a name="client-side-configuration"></a>

Sertakan `availSuppression` parameter dalam permintaan POST klien Anda ke MediaTailor. Untuk informasi selengkapnya tentang cara membuat permintaan sesi pemutaran sisi klien, lihat. [Pelacakan iklan sisi klien](ad-reporting-client-side.md)

**Contoh**: HLS

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

# MediaTailor penyisipan iklan bumper
<a name="bumpers"></a>

Bumper adalah klip video atau audio pendek yang tidak dapat dilewati yang diputar di awal atau sebelum akhir jeda iklan. AWS Elemental MediaTailor

 Kondisi berikut berlaku untuk bumper: 
+ Bumper harus 10 detik atau kurang.
+ Bumper dapat dimasukkan pada awal jeda iklan, tepat sebelum akhir jeda iklan, atau keduanya.
+ Bumper diputar selama setiap jeda iklan dalam sesi pemutaran kecuali pra-putaran dikonfigurasi. Jika pre-roll dikonfigurasi, bumper tidak akan bermain selama pre-roll break. Sebaliknya, mereka akan bermain di setiap jeda berikutnya setelah pra-roll.
+ Untuk HLS, Anda harus menyertakan `duration` atribut dengan setiap tag `EXT-X-CUE-OUT` SCTE-35.
+ Bumper ditranskode untuk mencocokkan konten sumber.
+ Anda tidak dikenakan biaya untuk bumper.

## Mengkonfigurasi bumper
<a name="configuring-bumpers"></a>

Untuk menggunakan bumper, konfigurasikan bumper URLs dengan MediaTailor konsol, MediaTailor API, atau AWS Command Line Interface ()AWS CLI. Anda dapat mengonfigurasi bumper awal, bumper akhir, atau keduanya. Bumper disimpan di server, seperti Amazon Simple Storage Service (Amazon S3). Bumper URLs menunjukkan lokasi aset bumper yang disimpan.

Contoh bumper URLs mulai dan akhir:

Mulai URL bumper: `https://s3.amazonaws.com/startbumperad`

Akhiri URL bumper: `https://s3.amazonaws.com/endbumperad`

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

Berikut ini adalah contoh perilaku iklan bumper.

**Example Contoh 1: Mulai dan akhiri bumper**  
Dalam contoh ini, bumper start dan end diaktifkan. Server keputusan iklan memiliki 50 detik iklan yang dipersonalisasi untuk mengisi jeda iklan 70 detik. Bumper start 10 detik diputar di awal jeda iklan, 50 detik iklan diputar, lalu bumper akhir 10 detik.

![\[Ilustrasi ini menunjukkan jeda iklan yang diisi dengan bumper awal dan akhir serta iklan.\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/images/bumpers.png)


# MediaTailor penyisipan iklan pra-gulung
<a name="ad-behavior-preroll"></a>

**catatan**  
Iklan pra-putar yang dapat dikonfigurasi hanya tersedia untuk alur kerja langsung. Untuk detail tentang cara kerja penyisipan iklan (termasuk pra gulung) untuk VOD, lihat. [Perilaku menjahit iklan untuk VOD](ad-behavior.md#ad-behavior-vod)

AWS Elemental MediaTailor dapat menyisipkan iklan di awal sesi pemutaran, sebelum konten utama dimulai. Ini adalah iklan *pre-roll*.

Untuk menyisipkan iklan pra-putar, lengkapi **server keputusan iklan pra-putar** **langsung dan bidang durasi maksimum yang diizinkan pra-putar** langsung di Pengaturan **tambahan** pada konfigurasi Anda, seperti yang dijelaskan dalam. [Pengaturan konfigurasi opsional](configurations-create.md#configurations-create-addl) 

1. Saat MediaTailor menerima permintaan pemutaran, permintaan tersebut mengirimkan permintaan ke ADS untuk iklan pra-putar berdasarkan bidang berikut dalam konfigurasi MediaTailor pemutaran:
   + **Server keputusan iklan pra-putar langsung** adalah URL server keputusan iklan (ADS) tempat MediaTailor mengirimkan permintaan untuk iklan pra-putar. 
   + **Durasi maksimum pra-putar langsung yang diizinkan** adalah total panjang waktu maksimum untuk iklan pra-putar. MediaTailor mengambil tindakan berikut berdasarkan durasi maksimum yang diizinkan:
     + Jika total durasi iklan dalam respons ADS *kurang* dari nilai yang Anda berikan dalam **durasi maksimum yang diizinkan pra-putar Langsung**, MediaTailor sisipkan semua iklan. Ketika iklan terakhir selesai, MediaTailor segera kembali ke konten yang mendasarinya.
     + Jika total durasi iklan dalam respons ADS *lebih* dari nilai yang Anda berikan dalam **durasi maksimum yang diizinkan pra-putar Langsung**, MediaTailor pilih satu set iklan yang sesuai dengan durasi tanpa melampaui. MediaTailor menyisipkan iklan ini tanpa kliping atau pemotongan. MediaTailor kembali ke konten yang mendasari saat iklan yang dipilih terakhir selesai.

1. Saat MediaTailor menerima respons pra-putar dari ADS, respons tersebut memanipulasi manifes untuk menambahkan tautan ke iklan pra-putar. MediaTailor menghitung waktu mulai jeda iklan pra-putar sebagai berikut:
   + Untuk DASH, rumusnya adalah`(publishTime - availabilityStartTime) - max(suggestedPresentationDelay, minBufferTime)`.
   + Untuk HLS, rumusnya adalah`max(2*EXT-X-TARGETDURATION, EXT-X-START:TIMEOFFSET)`.

1. MediaTailor menentukan tindakan apa yang harus diambil pada jeda iklan apa pun yang bukan pra-gulung. Jika pra-roll tumpang tindih jeda iklan lainnya, MediaTailor tidak mempersonalisasi bagian jeda iklan yang tumpang tindih. 

# MediaTailor penyisipan iklan batu tulis
<a name="slate-management"></a>

**catatan**  
Slate hanya tersedia untuk live dan live-to-VOD alur kerja.

Dengan AWS Elemental MediaTailor, Anda dapat menunjuk *iklan batu tulis* untuk jeda iklan. Slate adalah MP4 aset default yang dimasukkan ke dalam aliran, seperti gambar diam atau video yang dilingkarkan, yang diputar alih-alih konten langsung.

AWS Elemental MediaTailor menampilkan batu tulis selama jeda iklan dalam situasi spesifik berikut:
+ Untuk mengisi waktu yang tersisa dalam jeda yang belum digantikan oleh iklan yang dipersonalisasi
+ Jika Server Keputusan Iklan (ADS) merespons dengan respons VAST atau VMAP kosong
+ Untuk kondisi kesalahan, seperti batas waktu ADS atau kesalahan HTTP 500 dari ADS
+ Jika iklan tidak tersedia untuk penyisipan oleh MediaTailor (seperti saat iklan belum selesai melakukan transcoding)

Jika Anda tidak mengonfigurasi batu tulis, MediaTailor default ke aliran konten yang mendasarinya saat salah satu kondisi di atas terpenuhi.

## Mengkonfigurasi batu tulis
<a name="configuring-the-slate"></a>

[Anda menunjuk batu tulis di panel **konfigurasi tambahan** di konsol. MediaTailor ](https://console.aws.amazon.com/console/home?nc2=h_ct&src=header-signin) MediaTailor mengunduh slate dari URL yang Anda tentukan, dan mentranskodekannya ke rendisi yang sama dengan konten Anda. Anda dapat mengontrol jumlah waktu maksimum batu tulis akan ditampilkan melalui konfigurasi **ambang personalisasi** opsional di MediaTailor konsol. Untuk informasi selengkapnya, lihat [Cara kerja ambang personalisasi](#personalization-threshold-scenarios).

Batu tulis harus berupa MP4 aset berkualitas tinggi yang berisi audio dan video. Mengkonfigurasi batu tulis adalah opsional untuk konfigurasi non-VPaid tetapi wajib untuk alur kerja VPAID.

**catatan**  
Jika server yang meng-host slate Anda menggunakan HTTPS, sertifikatnya harus dari otoritas sertifikat yang terkenal. Itu tidak bisa menjadi sertifikat yang ditandatangani sendiri. Jika Anda menggunakan sertifikat yang ditandatangani sendiri, maka tidak AWS Elemental MediaTailor dapat mengambil dan menjahit batu tulis ke dalam manifes dari asal konten.

## Cara kerja ambang personalisasi
<a name="personalization-threshold-scenarios"></a>

Ambang batas personalisasi menentukan durasi maksimum waktu iklan yang kurang terisi (dalam detik) yang diizinkan dalam jeda iklan. Fitur ini berlaku khusus untuk penggantian iklan di streaming Live dan VOD, bukan penyisipan iklan, karena fitur ini bergantung pada aliran konten yang mendasarinya.

Perilaku bervariasi berdasarkan tiga skenario:

1. **Saat personalisasi dinonaktifkan:**

   1. Slate akan dimasukkan untuk durasi penuh waktu yang tidak terisi

   1. Bumper Start/End akan dimasukkan saat dikonfigurasi (untuk informasi lebih lanjut, lihat) [MediaTailor penyisipan iklan bumper](bumpers.md)

   1. Iklan akan dimasukkan seperti biasa

1. **Saat personalisasi diaktifkan dan ambang batas kurang dari durasi istirahat:**

   1. Jika waktu yang tidak terisi melebihi ambang personalisasi:

      1. MediaTailor meninggalkan personalisasi jeda iklan

      1. Konten yang mendasarinya ditampilkan

      1. Tidak ada iklan, batu tulis, atau bumper yang dimasukkan

   1. Jika waktu yang tidak terisi kurang dari ambang personalisasi:

      1. Iklan dan batu tulis dimasukkan

      1. Bumper dimasukkan jika dikonfigurasi

1. **Saat personalisasi diaktifkan dan ambang batas lebih besar dari durasi istirahat:**

   1. Iklan akan disisipkan

   1. Slate akan dimasukkan untuk waktu yang tersisa dalam jeda iklan

   1. Bumper akan dimasukkan jika dikonfigurasi

Tabel berikut memberikan perilaku rinci untuk skenario tertentu di kedua protokol HLS dan DASH:


**Matriks perilaku terperinci**  

| Skenario | Personalisasi dinonaktifkan | Personalisasi diaktifkan kurang dari durasi istirahat | Personalisasi diaktifkan lebih besar dari durasi istirahat | 
| --- | --- | --- | --- | 
| Kosongkan VAST atau VMAP | Batu tulis dimasukkan | Tidak ada papan tulis yang dimasukkan | Batu tulis dimasukkan | 
| Batas waktu ADS | Batu tulis dimasukkan | Tidak ada papan tulis yang dimasukkan | Batu tulis dimasukkan | 
| Iklan tidak tersedia (Vast 404) | Batu tulis dimasukkan | Tidak ada papan tulis yang dimasukkan | Batu tulis dimasukkan | 
| Durasi iklan lebih lama dari jeda iklan | Iklan disisipkan | Tidak ada iklan yang disisipkan | Iklan disisipkan | 
| Isi waktu yang tidak sepenuhnya digunakan oleh pengganti iklan | Batu tulis dimasukkan | Jika ambang personalisasi lebih besar dari waktu yang tidak terisi: Tidak ads/slates disisipkan, lain: Iklan dan papan tulis dimasukkan | Batu tulis dimasukkan | 
| Preroll dengan VAST kosong | Batu tulis dimasukkan, tidak ada preroll yang dimasukkan | Tidak ada papan tulis yang dimasukkan, tidak ada preroll yang dimasukkan | Batu tulis dimasukkan, tidak ada preroll yang dimasukkan | 
| Preroll dengan batas waktu ADS | Batu tulis dimasukkan, tidak ada preroll yang dimasukkan | Tidak ada papan tulis yang dimasukkan, tidak ada preroll yang dimasukkan | Batu tulis dimasukkan, tidak ada preroll yang dimasukkan | 
| Preroll saat iklan tidak tersedia (Vast 404) | Batu tulis dimasukkan, tidak ada preroll yang dimasukkan | Tidak ada papan tulis yang dimasukkan, tidak ada preroll yang dimasukkan | Batu tulis dimasukkan, tidak ada preroll yang dimasukkan | 
| Bumper dengan VAST kosong | Batu tulis dimasukkan, bumper dimasukkan | Tidak ada papan tulis yang dimasukkan, tidak ada bumper yang dimasukkan | Batu tulis dimasukkan, bumper dimasukkan | 
| Bumper dengan batas waktu ADS | Batu tulis dimasukkan, bumper dimasukkan | Tidak ada papan tulis yang dimasukkan, tidak ada bumper yang dimasukkan | Batu tulis dimasukkan, bumper dimasukkan | 
| Bumper saat iklan tidak tersedia (Vast 404) | Batu tulis dimasukkan, bumper dimasukkan | Tidak ada papan tulis yang dimasukkan, tidak ada bumper yang dimasukkan | Batu tulis dimasukkan, bumper dimasukkan | 
| Bumper untuk mengisi waktu yang tidak sepenuhnya digunakan oleh penggantian iklan | Slate dimasukkan, bumper dimasukkan, iklan dimasukkan | Jika ambang personalisasi lebih besar dari waktu yang tidak terisi: Tidak dimasukkan bumpers/ads/slates inserted, else: No bumpers/ads/slates | Slate dimasukkan, bumper dimasukkan, iklan dimasukkan | 

**Pertimbangan penting**  
Ingat hal berikut ketika Anda bekerja dengan batu tulis dan ambang personalisasi.
+ Perilaku ini konsisten di protokol HLS dan DASH
+ Fitur ambang personalisasi hanya berlaku ketika batu tulis dikonfigurasi
+ Ketika batu tulis dikonfigurasi dan ambang personalisasi tidak dikonfigurasi, batu tulis akan diputar untuk durasi penggunaan asal penuh atau waktu apa pun yang tersisa setelah mengisi iklan
+ Untuk iklan VPAID, MediaTailor sisipkan slate selama durasi iklan VPAID untuk menampung ruang bagi iklan yang akan disisipkan pemutar video

## Konfigurasi batu tulis dan VPAID
<a name="vpaid-requirements"></a>

**penting**  
Konfigurasi batu tulis adalah wajib saat menggunakan iklan VPAID. MediaTailor menyisipkan batu tulis untuk menampung ruang untuk iklan VPAID yang akan disisipkan pemutar video. Durasi slate mungkin sedikit lebih lama dari durasi iklan VPAID untuk mengakomodasi interaktivitas pengguna.

Pemutar video kemudian menangani iklan VPAID berdasarkan metadata pelaporan sisi klien yang ditampilkan, seperti yang dijelaskan dalam MediaTailor . [Persyaratan VPAID](vast.md#vpaid) Untuk informasi tentang pelaporan sisi klien, lihat. [Pelacakan iklan sisi klien](ad-reporting-client-side.md)

# Prefetching iklan
<a name="prefetching-ads"></a>

Gunakan prefetching AWS Elemental MediaTailor iklan untuk streaming langsung untuk membantu mengurangi beban puncak pada server keputusan iklan (ADS) dan mengurangi latensi pengiriman manifes pada awal setiap jeda iklan. Saat Anda menentukan jadwal prefetch, MediaTailor ikuti jadwal untuk mengambil iklan dari ADS dan menyiapkannya untuk penyisipan iklan sebelum diperlukan untuk jeda iklan. Selama streaming langsung, prefetching dapat membantu mengurangi tingkat pengisian iklan yang menurun dan peluang monetisasi yang terlewat karena permintaan iklan dan batas waktu transcoding atau penundaan jaringan lainnya. 

**catatan**  
Pengambilan iklan tidak berfungsi dengan metode penyisipan iklan yang dipandu server (SGAI), termasuk pengantara tradisional yang dipandu server dan HLS. Metode SGAI tidak memerlukan prefetching karena pemain hanya mengambil iklan yang akan mereka mainkan, dan manifes dapat ditayangkan CDNs tanpa MediaTailor melihat permintaan sesi individual.

Untuk menyiapkan prefetching iklan, Anda membuat satu atau beberapa *jadwal prefetch* pada konfigurasi pemutaran Anda. Jadwal prefetch memberi tahu MediaTailor bagaimana dan kapan harus mengambil dan menyiapkan iklan untuk jeda iklan yang akan datang. 
+ Jika acara memiliki ketersediaan iklan yang sesuai dengan jadwal yang dapat diprediksi, gunakan *satu jadwal prefetch*. Setiap jadwal prefetch menentukan satu set iklan MediaTailor untuk ditempatkan dalam satu iklan yang tersedia. Untuk mengambil iklan untuk beberapa ketersediaan iklan saat Anda menggunakan jadwal prefetch tunggal, Anda harus membuat beberapa jadwal prefetch (hingga 24 jam sebelum iklan tersedia) yang berkorelasi dengan setiap iklan yang tersedia. 
+ Jika acara memiliki ketersediaan iklan yang tidak sesuai dengan jadwal yang dapat diprediksi, gunakan jadwal *prefetch berulang*. Jadwal prefetch berulang secara otomatis membuat jadwal dan mengambil iklan sebelum setiap jeda iklan dalam suatu acara. Jadwal prefetch berulang mengambil iklan untuk setiap iklan yang tersedia dalam jangka waktu tertentu (hingga 24 jam sebelum acara berakhir). Anda tidak perlu membuat jadwal untuk setiap iklan yang tersedia, tetapi Anda kehilangan beberapa kontrol waktu yang ditawarkan prefetch tunggal.

Topik berikut menjelaskan lebih lanjut tentang prefetching iklan.

**Topics**
+ [Cara kerja prefetching](understanding-prefetching.md)
+ [Membuat jadwal prefetch](creating-prefetch-schedules.md)
+ [Pembentukan lalu lintas berbasis TPS](tps-traffic-shaping.md)
+ [Menghapus jadwal prefetch](deleting-prefetch-schedules.md)

# Cara kerja prefetching
<a name="understanding-prefetching"></a>

Saat klien Anda membuat permintaan manifes MediaTailor, layanan akan mengevaluasi semua jadwal prefetch yang terkait dengan konfigurasi pemutaran. Jika MediaTailor tidak menemukan jadwal prefetch yang cocok, layanan akan kembali ke penyisipan iklan normal dan tidak mengambil iklan sebelumnya.

Jika MediaTailor menemukan jadwal prefetch yang cocok, layanan mengevaluasi jadwal berdasarkan dua komponen: pengambilan dan konsumsi. Konfigurasi setiap komponen bervariasi antara jadwal prefetch tunggal dan jadwal prefetch berulang, seperti yang dijelaskan di bagian berikut.

## Alur jadwal prefetch tunggal
<a name="understanding-prefetching-single"></a>

**Pengambilan**  
Ini menentukan *jendela pengambilan*, yang merupakan rentang waktu saat MediaTailor mengambil iklan dari ADS. Pastikan untuk menjadwalkan jendela ini untuk waktu yang sebelum jeda iklan. Berikut ini memberikan gambaran tentang bagaimana MediaTailor memproses jadwal prefetch tunggal.  
Untuk langkah-langkah untuk membuat jadwal prefetch tunggal di konsol, lihat. [Membuat jadwal prefetch](creating-prefetch-schedules.md) Untuk instruksi API, lihat [PrefetchSchedules](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_PrefetchSchedule.html)di *Referensi AWS Elemental MediaTailor API*.  
Selama *jendela pengambilan* yang ditentukan, MediaTailor mengirimkan permintaan ke ADS untuk mengambil dan menyiapkan iklan untuk penyisipan nanti dalam sesi pemutaran.  
+ MediaTailor opsional menggunakan pembentukan lalu lintas untuk membatasi jumlah permintaan ke ADS pada satu waktu. Anda dapat memilih di antara dua pendekatan:

  *Pembentukan lalu lintas jendela waktu* - MediaTailor menyebarkan permintaan di seluruh jumlah detik yang ditentukan alih-alih mengirim permintaan untuk semua sesi sekaligus. Distribusi lalu lintas yang tersebar ini membantu mencegah ADS menjadi kewalahan, mengakibatkan waktu habis dan tingkat pengisian iklan yang rendah.

  *Pembentukan lalu lintas berbasis TPS* - MediaTailor membatasi permintaan berdasarkan transaksi per detik (TPS) dan pengguna bersamaan. Pendekatan ini memberikan konfigurasi yang lebih intuitif berdasarkan batas kapasitas ADS Anda. Untuk informasi selengkapnya, lihat [Pembentukan lalu lintas berbasis TPS](tps-traffic-shaping.md).
+ Jika Anda menyiapkan *variabel dinamis*, MediaTailor sertakan variabel ini dalam permintaan ke ADS. MediaTailor menggunakan variabel ini untuk mencocokkan ketersediaan iklan dengan jadwal prefetch selama jendela konsumsi. Lihat bagian *Konsumsi* berikut untuk informasi lebih lanjut.

**Example**  
Acara langsung berlangsung dari pukul 7:45 pagi hingga 10 pagi, dengan jeda iklan pada pukul 8:15 pagi. Anda mengonfigurasi MediaTailor untuk mengambil iklan dari pukul 7:45 hingga 8 pagi, dengan jendela pembentuk lalu lintas 60 detik. Dengan 500.000 pengguna bersamaan, MediaTailor mendistribusikan permintaan ADS untuk mencapai tingkat rata-rata sekitar 8.333 transaksi per detik selama 60 detik (500.000 pengguna/60 detik = 8.333 permintaan per detik), alih-alih mengirim semua permintaan secara bersamaan.   
Konfigurasi pengambilan mencakup kunci variabel dinamis `scte.event` dan nilai`1234`. MediaTailor menyertakan variabel ini dalam permintaan ke ADS, yang kemudian dapat digunakan untuk menargetkan pengiklan tertentu ke ID peristiwa 1234. 

**Konsumsi**  
Saat MediaTailor menemukan penanda jeda iklan SCTE-35 selama jendela konsumsi, iklan tersebut menempatkan iklan yang telah diambil sebelumnya dalam jeda iklan.  
+ Jika Anda tidak menetapkan kriteria pencocokan yang berhasil, MediaTailor sisipkan iklan di jeda pertama di jendela konsumsi.
+ Jika Anda menetapkan *kunci variabel dinamis* untuk *memanfaatkan* *kriteria* *pencocokan*, MediaTailor evaluasi kriteria ini terhadap variabel dinamis yang Anda tetapkan di jendela pengambilan. Istirahat iklan memenuhi syarat untuk penyisipan iklan yang diambil sebelumnya hanya jika kriteria pencocokan avail terpenuhi. MediaTailor menyisipkan iklan di jeda pertama yang memenuhi kriteria.

  Untuk daftar kriteria pencocokan ketersediaan yang didukung, lihat kolom *Tersedia untuk prefetch iklan* di tabel. [MediaTailor variabel sesi untuk permintaan ADS](variables-session.md)

**Example dilanjutkan**  
Anda menetapkan waktu mulai untuk konsumsi sebagai 8:15 AM, dan waktu akhir sebagai 8:17 AM. Anda menyertakan `scte.event_id` kunci dalam kriteria pencocokan yang tersedia.   
Untuk setiap jeda iklan yang MediaTailor bertemu dari pukul 8:15 hingga 8:17 pagi, ini mengevaluasi ID SCTE acara untuk setiap jeda iklan. Di setiap sesi pemutaran, MediaTailor menyisipkan iklan yang telah diambil sebelumnya di jeda iklan pertama yang memiliki ID peristiwa 1234 (seperti yang ditentukan dalam variabel dinamis pengambilan). Untuk jeda iklan yang tidak berisi ID peristiwa yang benar, MediaTailor lakukan penyisipan iklan standar. 

## Alur jadwal prefetch berulang
<a name="understanding-prefetching-recurring"></a>

**Pengambilan**  
Ini menentukan *jendela pengambilan berulang*, yang merupakan rentang waktu saat MediaTailor mengambil dan menyisipkan iklan untuk acara langsung (hingga 24 jam). Berikut ini memberikan gambaran tentang bagaimana MediaTailor proses jadwal prefetch berulang.  
Untuk langkah-langkah untuk membuat jadwal prefetch berulang di konsol, lihat. [Membuat jadwal prefetch](creating-prefetch-schedules.md) Untuk instruksi API, lihat [PrefetchSchedules](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_PrefetchSchedule.html)di *Referensi AWS Elemental MediaTailor API*.  
Selama jendela prefetch berulang yang ditentukan, MediaTailor mengambil dan menyisipkan iklan untuk acara langsung yang berlangsung hingga 24 jam. Setelah setiap jeda iklan di jendela, MediaTailor secara otomatis mengambil iklan untuk jeda iklan berikutnya.   
+ Jika Anda menetapkan *penundaan setelah avail end*, MediaTailor tunggu waktu yang ditentukan sebelum mengambil kumpulan iklan berikutnya untuk jeda iklan berikutnya.
+ MediaTailor opsional menggunakan pembentukan lalu lintas untuk membatasi jumlah permintaan ke ADS pada satu waktu. Anda dapat memilih di antara dua pendekatan:

  *Pembentukan lalu lintas jendela waktu* - MediaTailor menyebarkan permintaan di seluruh jumlah detik yang ditentukan alih-alih mengirim permintaan untuk semua sesi sekaligus. Distribusi lalu lintas yang tersebar ini membantu mencegah ADS menjadi kewalahan, mengakibatkan waktu habis dan tingkat pengisian iklan yang rendah.

  *Pembentukan lalu lintas berbasis TPS* - MediaTailor membatasi permintaan berdasarkan transaksi per detik (TPS) dan pengguna bersamaan. Pendekatan ini memberikan konfigurasi yang lebih intuitif berdasarkan batas kapasitas ADS Anda. Untuk informasi selengkapnya, lihat [Pembentukan lalu lintas berbasis TPS](tps-traffic-shaping.md).
+ Jika Anda menyiapkan *variabel dinamis*, MediaTailor sertakan variabel ini dalam permintaan ke ADS. MediaTailor menggunakan variabel ini untuk mencocokkan ketersediaan iklan dengan jadwal prefetch selama jendela konsumsi. Lihat bagian *Konsumsi* berikut untuk informasi lebih lanjut.

**Example**  
Acara langsung berlangsung dari jam 7 malam hingga 20:45, dengan empat jeda iklan selama waktu itu. Jeda iklan tidak sesuai jadwal yang dapat diprediksi. Anda mengonfigurasi prefetch berulang dari jam 7 malam hingga 20:45, dengan penundaan 10 menit dan jendela pembentukan lalu lintas 60 detik. Setelah setiap berhasil, MediaTailor mengambil iklan untuk jeda iklan berikutnya. Sepuluh menit setelah avail berakhir, MediaTailor mulai mengirim permintaan pengambilan ke ADS. Dengan jendela pembentukan lalu lintas 60 detik dan 500.000 pengguna bersamaan, MediaTailor mendistribusikan permintaan ADS untuk mencapai tingkat rata-rata sekitar 8.333 transaksi per detik selama 60 detik (500.000 pengguna/60 detik = 8.333 permintaan per detik), alih-alih mengirim semua permintaan secara bersamaan.   
Konfigurasi pengambilan mencakup kunci variabel dinamis `scte.event` dan nilai`1234`. MediaTailor menyertakan variabel ini dalam permintaan ke ADS, yang kemudian dapat digunakan untuk menargetkan pengiklan tertentu ke ID peristiwa 1234.

**Konsumsi**  
Saat MediaTailor menemukan penanda jeda iklan SCTE-35, iklan tersebut menempatkan iklan yang telah diambil sebelumnya dalam jeda iklan.  
+ Jika Anda menetapkan *kedaluwarsa iklan yang diambil, iklan yang diambil sebelumnya akan tersedia untuk dimasukkan hingga kedaluwarsa* yang ditentukan.
+ Jika Anda tidak menetapkan kriteria pencocokan yang berhasil, MediaTailor sisipkan iklan di jeda pertama di jendela konsumsi.
+ Jika Anda menetapkan *kunci variabel dinamis* untuk *memanfaatkan* *kriteria* *pencocokan*, MediaTailor evaluasi kriteria ini terhadap variabel dinamis yang Anda tetapkan di jendela pengambilan. Istirahat iklan memenuhi syarat untuk penyisipan iklan yang diambil sebelumnya hanya jika kriteria pencocokan avail terpenuhi. MediaTailor menyisipkan iklan di jeda pertama yang memenuhi kriteria.

  Untuk daftar kriteria pencocokan ketersediaan yang didukung, lihat kolom *Tersedia untuk prefetch iklan* di tabel. [MediaTailor variabel sesi untuk permintaan ADS](variables-session.md)

**Example dilanjutkan**  
Dalam konsumsi, Anda memasukkan `scte.event_id` kunci dalam kriteria pencocokan ketersediaan.   
Untuk setiap jeda iklan yang MediaTailor ditemui, ini mengevaluasi ID SCTE peristiwa untuk setiap jeda iklan. Di setiap sesi pemutaran, MediaTailor menyisipkan iklan yang telah diambil sebelumnya di setiap jeda iklan yang memiliki ID peristiwa 1234 (seperti yang ditentukan dalam variabel dinamis pengambilan). Untuk jeda iklan yang tidak berisi ID peristiwa yang benar, MediaTailor lakukan penyisipan iklan standar.   
Anda menetapkan kedaluwarsa iklan menjadi 2700 detik sehingga iklan yang diambil tersedia untuk penyisipan selama 45 menit.
Grafik berikut mengilustrasikan contoh, dengan kotak kecil mewakili jeda iklan. Pengaturan jadwal prefetch berulang diilustrasikan di sepanjang timeline acara.  

![\[Ilustrasi grafis dari acara langsung termasuk konfigurasi jadwal prefetch berulang.\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/images/recurring_prefetch_timeline.png)


## Memahami biaya prefetching
<a name="billing"></a>

Tidak ada biaya untuk membuat permintaan pengambilan iklan. Namun, untuk pengambilan iklan prefetch, Anda akan dikenakan biaya pada tingkat transcoding standar untuk iklan prefetched yang melakukan transkode. MediaTailor Untuk konsumsi iklan prefetch, Anda akan dikenakan tarif standar untuk penyisipan iklan untuk iklan yang diambil sebelumnya yang ditempatkan dalam jeda iklan. MediaTailor [Untuk informasi tentang biaya transcoding dan penyisipan iklan, lihat AWS Elemental MediaTailor Harga.](https://aws.amazon.com/mediatailor/pricing/)

# Membuat jadwal prefetch
<a name="creating-prefetch-schedules"></a>

Prosedur berikut menjelaskan cara membuat jadwal prefetch dengan menggunakan konsol. MediaTailor *Untuk informasi tentang membuat dan mengelola jadwal prefetch secara terprogram menggunakan MediaTailor API, lihat [PrefetchSchedules](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_PrefetchSchedule.html)di Referensi API.AWS Elemental MediaTailor *

**catatan**  
Saat mengonfigurasi jadwal prefetch MediaTailor, penting untuk memahami bagaimana berbagai jenis variabel ditangani.  

**Tersedia kriteria pencocokan**  
Jika Anda ingin menggunakan kriteria pencocokan avail dalam jadwal, pastikan Anda mengonfigurasi templat URL ADS konfigurasi pemutaran terlebih dahulu dengan [variabel sesi dinamis](variables-session.md), jika tidak, kriteria pencocokan avail tidak akan berpengaruh. Untuk informasi tentang bekerja dengan variabel sesi dinamis, lihat [Langkah 3: Konfigurasikan URL permintaan ADS dan parameter kueri](getting-started-ad-insertion.md#getting-started-configure-request) di topik Memulai dengan penyisipan MediaTailor iklan.

**Variabel pemain dalam jadwal prefetch**  
Saat Anda membuat jadwal prefetch, jangan mendefinisikan variabel pemain sebagai variabel dinamis dalam konfigurasi prefetch Anda. Sebagai gantinya, berikan variabel pemain seperti biasa pada awal sesi. MediaTailor secara otomatis menyertakan variabel-variabel ini dalam permintaan iklan prefetch jika variabel dipetakan di URL template ADS.

**Untuk membuat jadwal prefetch baru menggunakan konsol**

1. Buka MediaTailor konsol di [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1. Di panel navigasi, pilih **Konfigurasi**. Pilih konfigurasi pemutaran yang ingin Anda buat jadwal prefetch.

1. Pada tab **Prefetch schedules**, pilih **Add** prefetch schedule.

1. Di bawah panel **Rincian jadwal Prefetch**, lakukan hal berikut:
   + Untuk **Nama**, masukkan pengenal untuk jadwal prefetch Anda, seperti. **my-prefetch-schedule**
   + Untuk **ID Stream**, masukkan ID unik secara opsional. Jika asal Anda berisi beberapa aliran pemutaran, Anda dapat menggunakan ID ini untuk menginstruksikan MediaTailor agar menempatkan iklan di aliran tertentu. Misalnya, jika konfigurasi pemutaran Anda memiliki aliran olahraga dan aliran acara TV, Anda dapat menggunakan ID streaming untuk membuat jadwal prefetch guna menyisipkan iklan yang ditargetkan untuk aliran olahraga. Anda meneruskan nilai ID aliran ke MediaTailor inisialisasi sesi klien atau permintaan manifes. Untuk informasi lebih lanjut lihat contoh berikut.
     + Untuk *pelacakan sisi server, sertakan* parameter `?aws.streamId` kueri dan nilai dalam `GET HTTP` permintaan klien Anda ke titik akhir Anda. MediaTailor Untuk informasi umum tentang pelacakan sisi server lihat. [MediaTailor Pelacakan dan pelaporan iklan sisi server](ad-reporting-server-side.md) Permintaan manifes ke titik akhir HLS yang menyertakan ID aliran terlihat seperti berikut, di `myStreamId` mana nama ID aliran Anda:

       ```
       GET <mediatailorURL>/v1/master/<hashed-account-id>/<origin-id>/<asset-id>?aws.streamId=myStreamId
       ```
     + Untuk *pelacakan sisi klien*, sertakan `streamId` kunci dan nilai dalam badan permintaan inisialisasi `POST HTTP` sesi klien Anda ke titik akhir. **MediaTailor/v1/session** Untuk informasi umum tentang pelacakan sisi klien, lihat. [Pelacakan iklan sisi klien](ad-reporting-client-side.md) Permintaan inisialisasi sesi yang menyertakan ID aliran terlihat seperti berikut, di `myStreamId` mana nama ID aliran Anda:

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

1. Untuk **tipe Prefetch**, buat pilihan Anda dan pilih bagian yang sesuai untuk bantuan dengan bidang tambahan:
   + Pilih **Single** jika Anda membuat satu jadwal prefetch untuk satu jeda iklan dalam suatu acara.
   + Pilih **Berulang** jika Anda membuat jadwal yang secara otomatis mengambil iklan sebelum setiap jeda iklan dalam suatu acara. 

## Jadwal prefetch tunggal
<a name="single-prefetch"></a>

Untuk membuat jadwal yang mengambil iklan sebelum satu iklan berhasil dalam suatu acara.

1. Pada panel **Retrieval**, tentukan pengaturan pengambilan yang ingin Anda gunakan. Pengaturan ini menentukan kapan MediaTailor prefetches iklan dari ADS. Mereka juga menentukan variabel sesi dinamis mana yang akan disertakan dalam permintaan ke ADS, jika ada.
   + Untuk **Waktu mulai**, masukkan waktu kapan MediaTailor dapat memulai pengambilan prefetch untuk jeda iklan ini. MediaTailor akan mencoba mengambil iklan sebelumnya untuk permintaan manifes yang dibuat oleh klien Anda pada atau setelah waktu ini. Nilai default adalah waktu ketika ini. Jika Anda tidak menentukan nilai, layanan akan memulai pengambilan prefetch sesegera mungkin.
   + Untuk **Waktu akhir**, masukkan waktu ketika Anda MediaTailor ingin berhenti mengambil iklan sebelumnya untuk jeda iklan ini. MediaTailor akan mencoba mengambil iklan sebelumnya untuk permintaan manifes yang terjadi pada atau sebelum waktu ini. Jendela pengambilan dapat tumpang tindih dengan jendela konsumsi.
   + Secara opsional, konfigurasikan pembentukan lalu lintas untuk membatasi jumlah permintaan ke ADS sekaligus. Pilih salah satu pendekatan berikut:

     *Pendekatan jendela waktu*: Untuk **durasi jendela pembentukan Lalu lintas**, masukkan jumlah detik yang MediaTailor seharusnya mendistribusikan permintaan ke ADS. Untuk informasi selengkapnya, lihat [Penjelasan pengambilan jadwal prefetch tunggal](understanding-prefetching.md#avail-matching-criteria-retr).

     *Pendekatan berbasis TPS*: Konfigurasikan **Peak TPS** dan **Peak pengguna bersamaan** untuk membatasi permintaan berdasarkan transaksi per detik dan pengguna bersamaan. Untuk informasi selengkapnya, lihat [Pembentukan lalu lintas berbasis TPS](tps-traffic-shaping.md).
   + Di bagian [**Variabel dinamis**](variables.md), masukkan sebanyak 100 variabel sesi dinamis. MediaTailor menggunakan variabel ini untuk substitusi dalam permintaan prefetch yang dikirim ke ADS. Jika Anda tidak memasukkan variabel sesi dinamis apa pun, MediaTailor lakukan upaya terbaik untuk menginterpolasi nilai untuk variabel dinamis yang terdapat dalam URL [ADS](configurations-create.md#configurations-create-main) Anda.
     + Pilih **Tambahkan variabel dinamis**. 
     + Untuk **Key**, masukkan kunci variabel sesi dinamis, seperti`scte.event_id`. Anda dapat menggunakan variabel dinamis apa pun yang MediaTailor mendukung. Untuk informasi tentang variabel sesi dinamis, lihat[MediaTailor variabel sesi untuk permintaan ADS](variables-session.md).
     + Untuk **Nilai**, masukkan nilai variabel dinamis, seperti*my-event*.
     + Untuk menambahkan variabel dinamis lain, pilih Pilih **Tambahkan variabel dinamis**. 

1. Pada panel **Konsumsi**, tentukan pengaturan yang ingin Anda gunakan untuk jendela konsumsi. Pengaturan ini menentukan kapan MediaTailor menempatkan iklan ke dalam jeda iklan. Mereka juga menentukan kriteria pencocokan yang berguna yang ingin Anda gunakan.
   + Untuk **Waktu mulai**, masukkan waktu ketika Anda MediaTailor ingin mulai menempatkan iklan yang telah diambil sebelumnya ke dalam jeda iklan. Nilai default adalah waktu saat ini. Jika Anda tidak menentukan waktu, layanan memulai konsumsi prefetch sesegera mungkin.
   + Untuk **Waktu akhir**, masukkan waktu ketika Anda MediaTailor ingin berhenti menempatkan iklan yang telah diambil sebelumnya ke dalam jeda iklan. MediaTailor akan mencoba mengambil iklan sebelumnya untuk permintaan manifes klien Anda yang terjadi pada atau sebelum waktu ini. Waktu akhir harus setelah waktu mulai, dan kurang dari satu hari dari sekarang. Jendela konsumsi dapat tumpang tindih dengan jendela pengambilan.
   + Di bagian [**kriteria pencocokan Avail**](variables.md), pilih **Tambahkan kriteria avail** dan tambahkan sebanyak lima kriteria pencocokan iklan ke jadwal Anda. Kemudian, di bawah **tombol variabel dinamis**, tambahkan kunci variabel dinamis, seperti`scte.event_id`. MediaTailor akan menempatkan iklan yang diambil sebelumnya ke dalam jeda iklan *hanya* jika memenuhi kriteria yang ditentukan oleh nilai variabel dinamis yang diteruskan klien Anda MediaTailor, atau yang MediaTailor menyimpulkan dari informasi seperti data sesi. Jika jeda iklan tidak memenuhi kriteria pencocokan yang ditentukan, MediaTailor lewati prefetch untuk jeda tersebut. Untuk selengkapnya, lihat penjelasan [konsumsi jadwal prefetch tunggal](understanding-prefetching.md#avail-matching-criteria).

1. Pilih **Tambahkan kriteria yang tersedia**.

Jadwal prefetch secara otomatis kedaluwarsa setelah waktu akhir jendela konsumsi. Untuk tujuan diagnostik, mereka tetap terlihat setidaknya selama 7 hari, setelah itu secara MediaTailor otomatis menghapusnya. Atau, Anda dapat menghapus jadwal prefetch secara manual kapan saja. Untuk informasi tentang cara menghapus jadwal prefetch secara manual, lihat bagian berikut[Menghapus jadwal prefetch](deleting-prefetch-schedules.md).

### Menentukan seberapa sering klien Anda harus memanggil CreatePrefetchSchedule API
<a name="how-often"></a>

Klien Anda dapat memanggil [CreatePrefetchSchedule](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_CreatePrefetchSchedule.html)API satu kali sehari secara terprogram untuk menyiapkan pengambilan dan konsumsi jika Anda mengetahui kapan jeda iklan akan terjadi. Atau, klien Anda dapat memanggil API berkali-kali sepanjang hari untuk menentukan pengambilan dan konsumsi. Saat memilih frekuensi panggilan API, pertimbangkan [jumlah maksimum jadwal prefetch aktif, dan kemungkinan apakah jadwal](quotas.md#prefetch-schedules-limit) jeda iklan Anda akan berubah setelah Anda membuat jadwal prefetch. Jika kemungkinan jadwal jeda iklan akan berubah setelah Anda membuat jadwal prefetch, Anda mungkin ingin memanggil API lebih sering.

## Jadwal prefetch berulang
<a name="recurring-prefetch"></a>

Untuk membuat jadwal yang mengambil iklan sebelum setiap iklan berhasil dalam suatu acara.

1. Di panel **Pengambilan berulang**, tentukan pengaturan pengambilan yang ingin Anda gunakan. Pengaturan ini menentukan kapan MediaTailor prefetches iklan dari ADS. Mereka juga menentukan variabel sesi dinamis mana yang akan disertakan dalam permintaan ke ADS, jika ada.
   + Untuk **jendela prefetch berulang**, masukkan waktu kapan MediaTailor dapat memulai pengambilan prefetch untuk jeda iklan ini. MediaTailor akan mencoba mengambil iklan sebelumnya untuk permintaan manifes yang dibuat oleh klien Anda pada atau setelah waktu ini. Nilai default adalah waktu ketika ini. Jika Anda tidak menentukan nilai, layanan akan memulai pengambilan prefetch sesegera mungkin.
   + Untuk **Penundaan setelah avail end**, masukkan jumlah detik yang MediaTailor harus menunggu setelah avail berakhir sebelum mengambil iklan untuk keuntungan berikutnya. Jika Anda tidak menentukan nilai, MediaTailor defaultnya tidak ada penundaan. 
   + Secara opsional, konfigurasikan pembentukan lalu lintas untuk membatasi jumlah permintaan ke ADS sekaligus. Pilih salah satu pendekatan berikut:

     *Pendekatan jendela waktu*: Untuk **durasi jendela pembentukan Lalu lintas**, masukkan jumlah detik yang MediaTailor seharusnya mendistribusikan permintaan ke ADS. Untuk informasi selengkapnya, lihat [Penjelasan pengambilan jadwal prefetch berulang](understanding-prefetching.md#avail-matching-criteria-recurring-retr)

     *Pendekatan berbasis TPS*: Konfigurasikan **Peak TPS** dan **Peak pengguna bersamaan** untuk membatasi permintaan berdasarkan transaksi per detik dan pengguna bersamaan. Untuk informasi selengkapnya, lihat [Pembentukan lalu lintas berbasis TPS](tps-traffic-shaping.md).
   + Di bagian [**Variabel dinamis**](variables.md), masukkan sebanyak 100 variabel sesi dinamis. MediaTailor menggunakan variabel ini untuk substitusi dalam permintaan prefetch yang dikirim ke ADS. Jika Anda tidak memasukkan variabel sesi dinamis apa pun, MediaTailor lakukan upaya terbaik untuk menginterpolasi nilai untuk variabel dinamis yang terdapat dalam URL [ADS](configurations-create.md#configurations-create-main) Anda.
     + Pilih **Tambahkan variabel dinamis**. 
     + Untuk **Key**, masukkan kunci variabel sesi dinamis, seperti`scte.event_id`. Anda dapat menggunakan variabel dinamis apa pun yang MediaTailor mendukung. Untuk informasi tentang variabel sesi dinamis, lihat[MediaTailor variabel sesi untuk permintaan ADS](variables-session.md).
     + Untuk **Nilai**, masukkan nilai variabel dinamis, seperti*my-event*.
     + Untuk menambahkan variabel dinamis lain, pilih Pilih **Tambahkan variabel dinamis**. 

1. Pada panel **Konsumsi**, tentukan pengaturan yang ingin Anda gunakan untuk jendela konsumsi. Pengaturan ini menentukan kapan MediaTailor menempatkan iklan ke dalam jeda iklan. Mereka juga menentukan kriteria pencocokan yang berguna yang ingin Anda gunakan.
   + Untuk **kedaluwarsa iklan yang Diambil**, tunjukkan berapa lama setelah iklan pengambilan tersedia untuk penyisipan.
   + Di bagian [**kriteria pencocokan Avail**](variables.md), pilih **Tambahkan kriteria avail** dan tambahkan sebanyak lima kriteria pencocokan iklan ke jadwal Anda. Kemudian, di bawah **tombol variabel dinamis**, tambahkan kunci variabel dinamis, seperti`scte.event_id`. MediaTailor akan menempatkan iklan yang diambil sebelumnya ke dalam jeda iklan *hanya* jika memenuhi kriteria yang ditentukan oleh nilai variabel dinamis yang diteruskan klien Anda MediaTailor, atau yang MediaTailor menyimpulkan dari informasi seperti data sesi. Jika jeda iklan tidak memenuhi kriteria pencocokan yang ditentukan, MediaTailor lewati prefetch untuk jeda tersebut. Untuk selengkapnya, lihat penjelasan konsumsi [jadwal prefetch berulang](understanding-prefetching.md#avail-matching-criteria-recur).

1. Pilih **Tambahkan kriteria yang tersedia**.

Jadwal prefetch secara otomatis kedaluwarsa setelah waktu akhir jendela konsumsi. Untuk tujuan diagnostik, mereka tetap terlihat setidaknya selama 7 hari, setelah itu secara MediaTailor otomatis menghapusnya. Atau, Anda dapat menghapus jadwal prefetch secara manual kapan saja. Untuk informasi tentang cara menghapus jadwal prefetch secara manual, lihat bagian berikut[Menghapus jadwal prefetch](deleting-prefetch-schedules.md).

# Pembentukan lalu lintas berbasis TPS
<a name="tps-traffic-shaping"></a>

AWS Elemental MediaTailor menyediakan dua pendekatan pembentukan lalu lintas opsional untuk membatasi jumlah permintaan ke ADS pada satu waktu. Pembentukan lalu lintas berbasis TPS menawarkan alternatif untuk pembentukan lalu lintas berbasis jendela waktu untuk jadwal prefetch. Pendekatan ini memberikan konfigurasi yang lebih intuitif dengan memungkinkan Anda menentukan kapasitas server keputusan iklan (ADS) Anda dalam hal transaksi per detik (TPS) dan pengguna bersamaan yang diharapkan, bukan perhitungan waktu.

## Cara kerja pembentukan lalu lintas berbasis TPS
<a name="tps-how-it-works"></a>

Alih-alih menentukan durasi jendela pengambilan, Anda memberikan parameter berikut:

Puncak TPS  
Jumlah maksimum permintaan per detik yang dapat ditangani ADS Anda. Parameter ini tidak memiliki nilai default.

Puncak pengguna bersamaan  
Jumlah puncak yang diharapkan dari pemirsa bersamaan untuk konten Anda. Parameter ini tidak memiliki nilai default.

MediaTailor secara otomatis mendistribusikan permintaan prefetch sepanjang waktu agar tetap dalam batas TPS yang Anda tentukan, terlepas dari jumlah sesi bersamaan.

**Example Contoh konfigurasi berbasis TPS**  
ADS Anda dapat menangani 500 TPS, dan Anda mengharapkan 100.000 pemirsa bersamaan selama waktu puncak. Anda mengkonfigurasi:  
+ Puncak TPS: 500
+ Puncak pengguna bersamaan: 100.000
MediaTailor secara otomatis mendistribusikan permintaan prefetch sepanjang waktu agar tetap dalam batas TPS yang Anda tentukan, terlepas dari jumlah sesi bersamaan.

# Menghapus jadwal prefetch
<a name="deleting-prefetch-schedules"></a>

Prosedur berikut menjelaskan cara menghapus jadwal prefetch dengan menggunakan konsol. MediaTailor *Untuk informasi tentang cara menghapus jadwal prefetch secara terprogram menggunakan MediaTailor API, lihat [DeletePrefetchSchedule](https://docs.aws.amazon.com/mediatailor/latest/apireference/API_DeletePrefetchSchedule.html)di Referensi API.AWS Elemental MediaTailor *

**catatan**  
Penghapusan tidak terjadi secara real time. Anda mungkin mengalami penundaan saat MediaTailor menghapus jadwal prefetch, selama pengambilan dan konsumsi prefetch waktu akan terus berjalan di latar belakang.

**Untuk menghapus jadwal prefetch menggunakan konsol**

1. Buka MediaTailor konsol di [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1. Di panel navigasi, pilih **Konfigurasi**. Pilih konfigurasi pemutaran yang berisi jadwal prefetch yang ingin Anda hapus.

1. Pada tab **Prefetch schedules**, pilih jadwal prefetch yang ingin Anda hapus. Lalu, pilih **Hapus**.

# Menggunakan iklan terkondisi dengan AWS Elemental MediaTailor
<a name="precondition-ads"></a>

Dalam [alur kerja penyisipan iklan biasa](what-is-flow.md), mentranskode iklan MediaTailor secara dinamis agar sesuai dengan aliran konten, menyimpannya, dan memasukkan iklan ke dalam streaming langsung. Karena proses ini terjadi hanya setelah MediaTailor menerima iklan dalam respons VAST dari server keputusan iklan (ADS), ada penundaan saat iklan tersedia untuk dijahit. Jika latensi tambahan diperkenalkan ke alur kerja jahitan iklan (baik karena batas waktu ADS atau masalah konten atau jaringan lainnya), sebagian MediaTailor dapat mengisi ketersediaan, atau melewatkan jeda iklan sama sekali. 

Untuk mengurangi waktu yang dibutuhkan untuk memasukkan iklan ke dalam konten Anda, Anda dapat menggunakan iklan yang telah dikondisikan sebelumnya. Iklan terkondisi adalah iklan yang Anda transkode sebelum menggunakannya dalam penyisipan MediaTailor iklan. Alih-alih menyediakan URLs iklan tanpa syarat ke ADS Anda, Anda menyediakan untuk iklan yang URLs telah dikondisikan sebelumnya. Dalam tanggapan VAST terhadap MediaTailor permintaan tersebut, ADS menyertakan tautan langsung ke iklan yang telah dikondisikan sebelumnya. Dengan menghapus bagian transcoding dari jahitan iklan, hanya MediaTailor perlu menyimpan iklan dan menjahitnya ke aliran konten. Proses penjahitan iklan dengan iklan terkondisi mengurangi waktu antara waktu disadarkan iklan melalui respons VAST dan saat iklan dijahit ke dalam konten. MediaTailor 

Atau, Anda juga dapat menggunakan prefetching iklan, yaitu saat Anda mengonfigurasi MediaTailor untuk melakukan proses jahitan iklan pada waktu yang dijadwalkan sebelum jeda iklan diperlukan. Untuk informasi selengkapnya tentang pengambilan iklan, lihat. [Prefetching iklan](prefetching-ads.md)

## Persyaratan iklan terkondisi
<a name="precondition-ads-req"></a>

Berikut ini adalah persyaratan yang perlu dipertimbangkan saat menyiapkan alur kerja jahitan iklan dengan iklan yang telah dikondisikan sebelumnya.

### Persyaratan `MediaFiles`
<a name="precondition-ads-req-vast"></a>

Respons VAST yang dikirim server iklan MediaTailor harus menyertakan `MediaFiles` yang memenuhi persyaratan ini:

Ad (`Creative`) harus memiliki varian yang sesuai dengan varian bitrate dari aliran konten. *Anda bertanggung jawab untuk memastikan bahwa respons VAST menggunakan varian iklan yang tepat untuk mencocokkan manifes templat.*

Meskipun menggunakan iklan terkondisi dapat membantu membuat penyisipan iklan lebih efisien, MediaTailor tidak memiliki kemampuan untuk mengelola proses transcoding untuk memastikan bahwa file media untuk iklan kompatibel dengan spesifikasi manifes konten. Jika iklan tidak cocok dengan aliran konten, MediaTailor mungkin melewatkan penyisipan atau ketidakcocokan dapat menyebabkan kesalahan perangkat pemutaran. 

Selain itu, untuk dijahit ke dalam aliran konten tanpa MediaTailor transcoding, `MediaFile` harus memenuhi persyaratan ini:
+ Itu harus dapat diakses di internet publik sehingga MediaTailor dapat mengunduhnya. 
+ Itu harus menggunakan pengiriman streaming, dilambangkan seperti `delivery="streaming"` dalam respons VAST.
+ Itu harus berupa file `.m3u8` (untuk HLS) atau `.mpd` (untuk DASH).

**Example Respon VAST**  
Dari contoh respon VAST berikut, MediaTailor menyisipkan `MediaFile` dengan berikut ini: URLs  
+ Untuk aliran HLS, MediaTailor gunakan`https://example-ad-origin.amazonaws.com/ad1/index_low.m3u8`. Ini adalah yang pertama `MediaFile` dengan pengiriman streaming dan ekstensi file yang didukung (. `m3u8`).
+ Untuk aliran DASH, MediaTailor gunakan`https://example-ad-origin.amazonaws.com/ad1/index.mpd`. Ini adalah yang pertama `MediaFile` dengan pengiriman streaming dan ekstensi file yang didukung (. `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>
```

### Persyaratan manifes iklan
<a name="precondition-ads-req-ads"></a>

Untuk menggunakan iklan terkondisi, manifes iklan induk dan anak Anda harus memenuhi persyaratan berikut:
+ Manifes yang ditautkan di `Creative` bagian respons VAST harus berupa manifes iklan induk.
+ Manifes iklan URLs untuk anak harus jalur relatif.
+ Manifes iklan anak harus berada di direktori yang sama dengan daftar putar multivarian induk, pada tingkat yang sama. Manifes anak tidak dapat berada di sub-direktori atau lokasi lain.

**Example daftar putar multivariant orang tua yang didukung**  
Daftar putar multivarian iklan induk berikut berisi relatif URLs untuk daftar putar media iklan anak. Daftar putar anak juga berada di direktori yang sama dengan daftar putar multivarian induk.  

```
#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 daftar putar multivarian induk yang tidak didukung: subdirektori**  
Daftar putar multivarian iklan induk berikut berisi daftar putar anak yang berada di sub-direktori relatif terhadap daftar putar multivarian induk. Ini bukan daftar putar yang didukung untuk iklan yang telah dikondisikan sebelumnya.  

```
#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 daftar putar multivarian orang tua yang tidak didukung: absolut URLs**  
Daftar putar multivarian iklan induk berikut berisi daftar putar anak dengan absolut. URLs Ini bukan daftar putar yang didukung untuk iklan yang telah dikondisikan sebelumnya.  

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

## Alur kerja iklan terkondisi
<a name="precondition-ads-setup"></a>

Berikut ini adalah deskripsi dasar tentang cara kerja iklan terkondisi dalam alur kerja jahitan iklan. MediaTailor Bagian pertama dari alur kerja adalah tindakan yang harus Anda ambil untuk menyiapkan penggunaan iklan yang telah dikondisikan sebelumnya. Bagian kedua menjelaskan bagaimana MediaTailor memproses iklan.

**Bagian 1: Pengaturan iklan terkondisi**  
Selesaikan langkah-langkah berikut untuk menyiapkan alur kerja yang menggunakan iklan terkondisi di. MediaTailor

1. Gunakan layanan transcoder, seperti AWS Elemental MediaConvert, untuk mengkondisikan materi iklan Anda menjadi varian yang mendukung bitrate, resolusi, dan codec yang berbeda dari manifes template Anda. 

1. Berikan file media pra-transkode ke ADS Anda, untuk digunakan dalam respons VAST. URLs 

1. [Buat konfigurasi pemutaran Anda](configurations-create.md) di MediaTailor. Untuk menggunakan iklan terkondisi, pilih **Tidak Ada** untuk pengaturan **pengkondisian file media streaming** dalam konfigurasi.

1. Lanjutkan dengan pengaturan pengiriman konten Anda seperti biasa.

**Bagian 2: pemrosesan MediaTailor iklan**  
MediaTailor jahitan iklan selesai seperti yang dijelaskan dalam. [Cara kerja penyisipan MediaTailor iklan](what-is-flow.md) Saat MediaTailor menerima respons VAST dari ADS, ia menggunakan logika berikut untuk menentukan tindakan apa yang harus diambil untuk iklan. Logika ini ditentukan oleh pengaturan **pengkondisian file media Streaming** pada konfigurasi pemutaran. 
+ Saat **pengkondisian file media Streaming** diatur ke **Transcode**, MediaTailor mentranskode file media dengan `progressive` pengiriman dan menjahitnya ke dalam manifes. Jika tidak ada cukup iklan dengan file media `progressive` pengiriman untuk mengisi ketersediaan, MediaTailor mentranskode, dan menggunakan iklan dengan `streaming` pengiriman.
+ Saat **pengkondisian file media Streaming** diatur ke **Tidak Ada**, MediaTailor jahit iklan dengan file media `streaming` pengiriman ke dalam manifes tanpa mentranskodekannya. Jika tidak ada cukup iklan dengan file media `streaming` pengiriman untuk mengisi ketersediaan, MediaTailor mentranskode, dan menggunakan iklan dengan `progressive` pengiriman. 

# MediaTailor variabel iklan dinamis untuk permintaan ADS
<a name="variables"></a>

AWS Elemental MediaTailor menggunakan variabel iklan dinamis untuk meneruskan informasi dari sesi penayangan Anda ke server keputusan iklan (ADS). Informasi ini membantu ADS memilih iklan yang paling relevan untuk pemirsa Anda.

Bagian ini memberikan ikhtisar variabel iklan dinamis dan tautan ke panduan implementasi tertentu. Untuk petunjuk step-by-step konfigurasi, lihat masing-masing topik di bawah ini.

**Jenis variabel dinamis**  
MediaTailor mendukung empat jenis variabel dinamis:
+ **Variabel sesi** - Nilai yang dihasilkan secara otomatis seperti ID sesi dan data SCTE-35. Lihat [MediaTailor variabel sesi untuk permintaan ADS](variables-session.md).
+ **Variabel pemain** - Parameter khusus yang dikirim oleh pemutar video Anda. Lihat [MediaTailor variabel pemain untuk permintaan ADS](variables-player.md).
+ **Variabel domain** dengan **alias Konfigurasi** — Domain URL dinamis untuk konfigurasi multi-asal. 
+ **Alias konfigurasi** - Pemetaan standar untuk penggantian variabel dinamis. Lihat [Alias konfigurasi](configuration-aliases-overview.md).

**Kasus penggunaan umum**  
Gunakan variabel iklan dinamis untuk:
+ Meneruskan demografi dan preferensi penampil ke ADS
+ Permintaan rute ke asal yang berbeda berdasarkan lokasi geografis
+ Aktifkan tampilan bergeser waktu dengan integrasi MediaPackage 
+ Menerapkan A/B skenario pengujian dan failover

Bagian berikut memberikan detail tambahan tentang penggunaan variabel iklan dinamis dengan MediaTailor.

**Topics**
+ [Variabel sesi](variables-session.md)
+ [Variabel pemain](variables-player.md)
+ [Variabel domain](variables-domains.md)
+ [Alias konfigurasi](configuration-aliases-overview.md)
+ [Melewati parameter ADS](passing-paramters-to-the-ads.md)
+ [Perutean parameter](parameter-routing-behavior.md)
+ [Integrasi MediaPackage](mediapackage-integration-param.md)
+ [Perilaku sesi](parameter-session-behavior.md)
+ [Referensi parameter](parameter-comprehensive-reference.md)
+ [Pemecahan masalah parameter](parameter-troubleshooting.md)
+ [Pemecahan masalah Alias](configuration-aliases-troubleshooting.md)

Untuk persyaratan pemformatan parameter dan pemecahan masalah, lihat dan. [MediaTailor referensi parameter dan batasan](parameter-comprehensive-reference.md) [MediaTailor panduan pemecahan masalah parameter](parameter-troubleshooting.md)

# MediaTailor variabel sesi untuk permintaan ADS
<a name="variables-session"></a>

AWS Elemental MediaTailor mengirimkan data sesi ke Server Keputusan Iklan (ADS) saat Anda mengonfigurasi AWS Elemental MediaTailor untuk menentukan satu atau beberapa variabel yang tercantum di bagian ini di URL ADS template. 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 detail tentang prefetch iklan](https://account.scte.org/standards/library/catalog/scte-35-digital-program-insertion-cueing-message/), lihat. [Prefetching iklan](prefetching-ads.md)


| 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\$1allowed\$1flag] | 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\$1num] | Ya | 9.7.2.1 | Nilai diuraikan oleh MediaTailor dari bidang SCTE-35avail\$1num, sebagai angka panjang. MediaTailor dapat menggunakan nilai ini untuk menunjuk nomor avail iklan linier.Nilai harus berupa bilangan bulat. | 
| [scte.avails\$1expected] | Ya | 9,7.2.1 | Nilai panjang opsional yang memberikan jumlah ketersediaan yang diharapkan dalam peristiwa saat ini. | 
| [scte.delivery\$1not\$1restricted\$1flag] | 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\$1restrictions] | 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\$1expected dalam spesifikasi SCTE-35. | 
| [scte.event\$1id] | Ya | 9.1 dan 9.7.2.1 | Nilai diuraikan oleh MediaTailor dari bidang SCTE-35splice\$1event\$1id, sebagai angka panjang. MediaTailor menggunakan nilai ini untuk menentukan nomor ketersediaan iklan linier atau untuk mengisi string kueri server iklan, seperti posisi pod iklan.Nilai harus berupa bilangan bulat. | 
| [scte.no\$1regional\$1blackout\$1flag] | 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\$1num] | Ya | 10.3.3.1 | Nilai integer opsional yang menghitung segmen dalam kumpulan segmen. Untuk informasi lebih lanjut tentang variabel ini, lihat deskripsi segment\$1num dalam spesifikasi SCTE-35. | 
| [scte.segmentation\$1event\$1id]  | Ya | 10.3.3.1 | MediaTailor mengekspos variabel ini sebagai[scte.event_id](#scte.event_id). | 
| [scte.segmentation\$1type\$1id] | Ya | 10.3.3.1 | Nilai integer 8-bit opsional yang menentukan jenis segmentasi. Untuk informasi selengkapnya tentang variabel ini, lihat deskripsi segmentation\$1type\$1id dalam spesifikasi SCTE-35. | 
| [scte.segmentation\$1upid] |  `segmentation_upid_type`: Ya `private_data`: Ya  |  **segmentasi\$1upid**: 10.3.3.1 UPID Pribadi Terkelola: 10.3.3.3  |  Sesuai dengan elemen SCTE-35`segmentation_upid`. `segmentation_upid`Elemen berisi `segmentation_upid_type` dan`segmentation_upid_length`. MediaTailor mendukung `segmentation_upid` jenis berikut: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/variables-session.html)  | 
| [scte.segmentation\$1upid.assetId] | Ya |  | Digunakan bersama dengan Managed Private UPID (0xC) segmentation\$1 upid\$1type untuk alur kerja podbuster. MediaTailormenurunkan nilai ini dari assetId parameter dalam struktur private\$1data JSON MPU. Untuk informasi selengkapnya, lihat [Managed Private UPID JSON structure for a podbuster workflow](#podbuster-workflow). | 
| [scte.segmentation\$1upid.cueData.key] | Ya |  | Digunakan bersama dengan Managed Private UPID (0xC) segmentation\$1 upid\$1type untuk alur kerja podbuster. MediaTailormenurunkan nilai ini dari cueData.key parameter dalam struktur private\$1data JSON MPU. Untuk informasi selengkapnya, lihat [Managed Private UPID JSON structure for a podbuster workflow](#podbuster-workflow). | 
| [scte.segmentation\$1upid.cueData.value] | Ya |  | Digunakan bersama dengan Managed Private UPID (0xC) segmentation\$1 upid\$1type untuk alur kerja podbuster. MediaTailormenurunkan nilai ini dari cueData.key parameter dalam struktur private\$1data JSON MPU. Untuk informasi selengkapnya, lihat [Managed Private UPID JSON structure for a podbuster workflow](#podbuster-workflow).Nilai bisa berupa string. | 
| [scte.segmentation\$1upid.private\$1data.\$1index\$1] | Ya |  | Digunakan bersama dengan Managed Private UPID (0xC) segmentation\$1upid\$1type untuk alur kerja iklan bertarget. MediaTailor membagi token UPID segmentasi yang dibatasi kolon dan membuat variabel sesi yang diindeks. Indeks sesuai dengan posisi dalam daftar yang dibatasi titik dua, mengabaikan spasi putih utama dari titik dua awal. Misalnya, jika`segmentation_upid = ":3213214:2313321/5:3943"`, maka: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/variables-session.html) Nilai bisa berupa string. | 
| [scte.segments\$1expected] | 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\$1expected dalam spesifikasi SCTE-35. | 
| [scte.sub\$1segment\$1num] | 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\$1segment\$1num dalam spesifikasi SCTE-35. | 
| [scte.sub\$1segments\$1expected] | 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\$1segments\$1expected dalam spesifikasi SCTE-35. | 
| [scte.unique\$1program\$1id] | Ya | 9.7.2.1 | Nilai integer diuraikan oleh MediaTailor dari bidang splice\$1insert SCTE-35. unique\$1program\$1id 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.Nilai harus berupa bilangan bulat. | 
| [session.avail\$1duration\$1ms] | Ya |  |  Durasi dalam milidetik slot ketersediaan iklan. Nilai defaultnya adalah 300.000 ms. AWS Elemental MediaTailor memperoleh nilai durasi dari manifes masukan sebagai berikut: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/variables-session.html)  | 
| [session.avail\$1duration\$1secs] | 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\$1duration\$1ms]. | 
| [session.client\$1ip] | Tidak |  | Alamat IP jarak jauh tempat MediaTailor permintaan berasal. Jika X-forwarded-for header diatur, maka nilai itulah yang MediaTailor digunakan untukclient\$1ip. | 
| [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\$1agent] | 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: <pre>e039fd39-09f0-46b2-aca9-9871cc116cde</pre>  | 
| [avail.source\$1content\$1time\$1epoch\$1ms] | Tidak |  |  Untuk HLS nilainya adalah PDT dari segmen asal yang memulai pemanfaatan. Untuk DASH nilainya adalah `<SupplementalProperty> urn:scte:dash:utc-time` dari `<Period>` yang berisi file`<EventStream>`. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/variables-session.html)  | 

**Example**  
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 MediaTailor secara otomatis menghasilkan pengenal unik untuk setiap aliran, dan memasukkan pengenal sebagai pengganti. `session.id` Jika pengenalnya`1234567`, 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 menggunakan`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
```
Contoh tag HLS berikut menunjukkan cara menggunakan`EXT-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 menggunakan`EXT-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
  }
}
```

# MediaTailor variabel pemain untuk permintaan ADS
<a name="variables-player"></a>

AWS Elemental MediaTailor mengirimkan data yang diterima dari pemain ke ADS saat Anda mengonfigurasi AWS Elemental MediaTailor untuk menentukan `player_params.<query_parameter_name>` variabel di URL ADS template. Misalnya, jika pemain mengirimkan parameter kueri yang disebutkan `user_id` dalam permintaannya ke MediaTailor, untuk meneruskan data tersebut dalam permintaan ADS, sertakan `[player_params.user_id]` dalam konfigurasi URL ADS. 

Ini memungkinkan Anda untuk mengontrol parameter kueri yang disertakan dalam permintaan ADS. Biasanya, Anda menambahkan parameter kueri khusus yang dikenali ADS ke URL permintaan ADS dan memberikan pasangan nilai kunci sebagai nilai parameter. 

Contoh yang digunakan dalam prosedur berikut menggunakan pasangan kunci-nilai berikut:
+ *param1* dengan nilai *nilai1*:
+ *param2* dengan nilai *nilai2*:

**Untuk menambahkan parameter kueri sebagai pasangan nilai kunci** 

1. Di AWS Elemental MediaTailor, konfigurasikan URL templat permintaan ADS untuk mereferensikan parameter. URL berikut menunjukkan penyertaan parameter contoh: 

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

1. (Opsional) Untuk pelaporan pelacakan iklan sisi server, url-encode pasangan nilai kunci pada pemutar. Saat MediaTailor menerima permintaan inisialisasi sesi, URL menerjemahkan nilai satu kali sebelum menggantinya ke URL permintaan ADS. 
**catatan**  
Jika ADS Anda memerlukan nilai yang disandikan URL, url-encode nilai dua kali pada pemutar. Dengan cara ini, decoding yang dilakukan dengan MediaTailor menghasilkan nilai yang pernah dikodekan untuk ADS. 

   Misalnya, jika representasi decoded dari nilai yang dikirim ke ADS adalah`param1=value1:&param2=value2:`, maka representasi yang disandikan URL adalah. `param1=value1%3A&param2=value2%3A`

1. Dalam panggilan inisialisasi sesi dari pemain, berikan pasangan kunci-nilai ke MediaTailor sebagai nilai parameter kueri tunggal. Contoh panggilan berikut memberikan contoh pasangan nilai kunci untuk pelaporan pelacakan iklan sisi server dan klien.
   + Contoh permintaan untuk pelaporan pelacakan iklan sisi server - menggunakan pasangan yang disandikan URL

     HLS:

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

     TANDA HUBUNG:

     ```
     <manifest>.mpd?ads.param1=value1%3A&ads.param2=value2%3A
     ```
   + Contoh permintaan untuk pelaporan pelacakan iklan sisi klien - tanpa pengkodean URL

     HLS:

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

     TANDA HUBUNG:

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

Untuk pelaporan sisi server, MediaTailor menerjemahkan parameter saat permintaan pemain diterima. Untuk pelaporan sisi klien, itu tidak mengubah parameter yang diterima di payload JSON. MediaTailor mengirimkan permintaan berikut ke ADS:

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

Dengan cara ini, pasangan `param2` nilai kunci `param1` dan kunci disertakan sebagai parameter kueri kelas satu dalam permintaan ADS.

# MediaTailor variabel domain untuk beberapa sumber konten
<a name="variables-domains"></a>

AWS Elemental MediaTailor variabel domain dinamis memungkinkan Anda untuk menggunakan beberapa domain, seperti **my-ads-serverbagian.com** dari URL http://my-ads-server.com, dengan parameter pemain dalam konfigurasi Anda. Hal ini memungkinkan Anda untuk menggunakan lebih dari satu sumber konten atau server keputusan iklan (ADS) dalam satu konfigurasi. 

 Anda dapat menggunakan variabel domain dengan parameter apa pun yang berisi URI: 
+ `AdDecisionServerUrl`
+ `AdSegmentUrlPrefix`
+ `ContentSegmentUrlPrefix`
+ `LivePreroll.AdDecisionServerUrl`
+ `VideoContentSourceUrl`

 Variabel domain digunakan bersama *alias konfigurasi* untuk melakukan penggantian variabel dinamis. Alias konfigurasi memetakan satu set alias dan nilai ke parameter pemain yang digunakan untuk konfigurasi domain dinamis. Untuk prosedur penyiapan, lihat[Membuat dan menggunakan alias konfigurasi dengan MediaTailor](creating-configuration-aliases.md). Untuk informasi referensi terperinci, lihat[MediaTailor ikhtisar alias konfigurasi](configuration-aliases-overview.md). 

# MediaTailor ikhtisar alias konfigurasi
<a name="configuration-aliases-overview"></a>

AWS Elemental MediaTailor alias konfigurasi memungkinkan penggantian variabel dinamis di domain URL dan bidang lain yang didukung. Gunakan fitur ini untuk menggunakan beberapa domain dan mengkonfigurasi secara dinamis URLs selama inisialisasi sesi.

## Kasus penggunaan
<a name="configuration-aliases-use-cases"></a>

Alias konfigurasi memungkinkan arsitektur multi-konfigurasi canggih untuk skenario berikut:
+ **Perutean geografis:** Permintaan rute ke berbagai asal atau server iklan berdasarkan lokasi penampil menggunakan alias khusus wilayah. Untuk panduan implementasi, lihat [CloudFront Origin Failover](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/high_availability_origin_failover.html).
+ **Perutean berbasis konten: Mengarahkan** jenis konten yang berbeda ke asal khusus atau saluran pemrosesan. Untuk konfigurasi perilaku routing, lihat[Siapkan perilaku perutean CDN untuk MediaTailor](cdn-routing-behaviors.md).
+ **Skenario failover:** Menerapkan asal cadangan dan server iklan dengan failover otomatis menggunakan alias switching. Untuk implementasi terperinci, lihat [Menerapkan ketahanan Multi-wilayah untuk dengan MQAR MediaTailor](media-quality-resiliency.md) dan[Rencanakan integrasi CDN Anda untuk AWS Elemental MediaTailor](planning-cdn-integration.md).
+ **Pengujian A/B:** Uji berbagai server iklan, asal, atau konfigurasi dengan merutekan lalu lintas berdasarkan parameter pemain. Untuk panduan pengujian beban, lihat [Mempersiapkan dan menjalankan pengujian kinerja untuk Amazon CloudFront dengan pemantauan pengguna nyata](https://aws.amazon.com/blogs/networking-and-content-delivery/prepare-and-run-performance-tests-for-amazon-cloudfront-with-real-user-monitoring/).
+ **Pengoptimalan khusus perangkat: Optimalkan** penayangan konten dan penayangan iklan untuk berbagai jenis atau kemampuan perangkat. Untuk panduan komprehensif, lihat[Siapkan pemfilteran manifes dengan MediaTailor, MediaPackage, dan CDN](cdn-emp-manifest-filtering.md).
+ **Load balancing:** Mendistribusikan beban di beberapa server asal atau iklan menggunakan perutean dinamis. Untuk panduan implementasi, lihat [Menerapkan ketahanan Multi-wilayah untuk dengan MQAR MediaTailor](media-quality-resiliency.md) dan[Rencanakan integrasi CDN Anda untuk AWS Elemental MediaTailor](planning-cdn-integration.md).

## Bidang yang didukung
<a name="configuration-aliases-supported"></a>

Anda dapat menggunakan variabel dinamis di bidang konfigurasi berikut:
+ `VideoContentSourceUrl`
+ `AdDecisionServerUrl`
+ `LivePreroll.AdDecisionServerUrl`
+ `AdSegmentUrlPrefix`
+ `ContentSegmentUrlPrefix`
+ `TranscodeProfileName`
+ `SlateAdUrl`
+ `StartUrl`
+ `EndUrl`

Bagian berikut menjelaskan cara menggunakan alias konfigurasi.

**Topics**
+ [Kasus penggunaan](#configuration-aliases-use-cases)
+ [Bidang yang didukung](#configuration-aliases-supported)
+ [Membuat dan menggunakan](creating-configuration-aliases.md)
+ [Contoh aliran](configuration-aliases-examples.md)

# Membuat dan menggunakan alias konfigurasi dengan MediaTailor
<a name="creating-configuration-aliases"></a>

Sebelum Anda mulai menggunakan variabel domain, Anda membuat alias konfigurasi untuk konfigurasi Anda. Anda menggunakan alias konfigurasi sebagai variabel pengganti domain pada waktu inisialisasi sesi.

**Pembatasan**  
Perhatikan batasan berikut saat menggunakan alias konfigurasi:
+ Semua variabel dinamis yang digunakan dalam domain harus didefinisikan sebagai variabel `ConfigurationAliases` dinamis.
+ Variabel parameter pemain harus diawali dengan`player_params.`. Misalnya, `player_params.origin_domain`.
+ Daftar nilai alias harus lengkap untuk variabel domain di critical URLs (`VideoContentSourceUrl`,,`AdSegmentUrlPrefix`). `ContentSegmentUrlPrefix`
+ Jika permintaan dibuat untuk variabel domain secara kritis URLs yang tidak menentukan variabel dinamis atau menggunakan alias yang tidak valid, permintaan akan gagal dengan kode status HTTP`400`. Bidang non-kritis (`SlateAdUrl`,`TranscodeProfileName`, bumper URLs) akan mencatat peringatan tetapi tidak gagal permintaan.

**Perilaku mundur untuk alias yang hilang**  
Ketika alias konfigurasi tidak ditemukan atau tidak valid, MediaTailor mengimplementasikan perilaku fallback berikut:
+ **Variabel domain:** Jika alias variabel domain hilang atau tidak valid, permintaan gagal dengan kode status HTTP 400. Semua variabel domain harus memiliki alias yang valid didefinisikan.
+ **Variabel non-domain:** Untuk variabel yang digunakan dalam bagian non-domain URLs (seperti elemen jalur atau parameter kueri), alias yang hilang menghasilkan penggantian string kosong.
+ **Validasi konfigurasi:** MediaTailor memvalidasi bahwa semua alias yang diperlukan ada selama pembuatan konfigurasi dan operasi pembaruan.

## Langkah 1: Buat alias konfigurasi
<a name="dynamic-domains-creating-configuration-alias"></a>

Untuk membuat alias konfigurasi yang akan digunakan untuk penggantian domain menggunakan MediaTailor konsol, lakukan prosedur berikut.

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

**Untuk membuat alias konfigurasi menggunakan konsol**

1. Buka MediaTailor konsol di [https://console.aws.amazon.com/mediatailor/](https://console.aws.amazon.com/mediatailor/).

1. Pada bagian **Configuration alias** pada halaman **Configurations**, pilih **Add player parameter**. 

1. Untuk **parameter Player**, masukkan nama parameter pemain yang ingin Anda gunakan sebagai variabel dinamis. Misalnya, `player_params.origin_domain`. 

1. Untuk **Alias**, masukkan alias dan nilainya yang ingin Anda gunakan untuk parameter pemain. 

1. Pilih **OK**. 

   AWS Elemental MediaTailor menampilkan parameter baru dalam tabel di bagian **Alias Konfigurasi**.

1. Ulangi langkah sebelumnya untuk menambahkan lebih banyak parameter pemain. 

1. Pilih **Simpan**. 

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

**Untuk membuat alias konfigurasi menggunakan API**  
Saat Anda membuat atau memperbarui MediaTailor konfigurasi, gunakan `ConfigurationAliases` parameter dengan struktur JSON berikut: 

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

------

## Langkah 2: Gunakan alias konfigurasi dalam inisialisasi sesi
<a name="dynamic-domains-using-configuration-alias"></a>

Setelah menyiapkan alias konfigurasi, Anda dapat menggunakannya sebagai variabel pengganti untuk domain dalam permintaan inisialisasi sesi Anda. Hal ini memungkinkan Anda untuk secara dinamis mengkonfigurasi domain untuk sesi Anda.

**Example Contoh alias konfigurasi dasar**  
Berikut adalah contoh dasar konfigurasi yang mencakup alias konfigurasi dan variabel domain dinamis:  

```
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 Inisialisasi sesi dengan alias**  
Menggunakan konfigurasi sebelumnya, permintaan inisialisasi sesi menggunakan variabel pemain dan alias akan terlihat mirip dengan yang berikut:  

```
POST index.m3u8
{
    "playerParams": {
        "origin_domain": "pdx",
        "region": "pdx",
        "endpoint_id": "pdx",
        "ad_type": "customized"
    }
}
```
MediaTailor menggantikan string alias dengan nilai yang dipetakan dalam konfigurasi alias konfigurasi.  
Permintaan ke ADS akan terlihat seperti berikut:  

```
https://abc.execute-api.us-west-2.amazonaws.com/ads?sid=[session.id]&ad_type=abc12345
```
Permintaan ke asal manifes akan terlihat seperti berikut:  

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

# Alias konfigurasi dengan contoh MediaTailor penggunaan
<a name="configuration-aliases-examples"></a>

Contoh berikut menunjukkan bagaimana MediaTailor konfigurasi lengkap dengan alias konfigurasi, permintaan inisialisasi sesi dengan alias, dan aliran pemrosesan untuk alias.

**Example Konfigurasi lengkap dengan alias**  
Contoh berikut menunjukkan konfigurasi lengkap yang mencakup alias konfigurasi dan variabel domain dinamis:   

```
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 Inisialisasi sesi dengan alias**  
Contoh berikut menunjukkan permintaan inisialisasi sesi yang menentukan variabel pemain dan alias:   

```
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 Aliran pemrosesan parameter**  
Dalam contoh berikut, MediaTailor mengganti string alias dengan nilai yang dipetakan dalam alias konfigurasi. Pemrosesan menghasilkan permintaan berikut:   
+ Permintaan ADS:

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

  ```
  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 meneruskan parameter ke ADS
<a name="passing-paramters-to-the-ads"></a>

AWS Elemental MediaTailor mendukung pengaturan variabel dinamis dalam MediaTailor permintaan ke ADS menggunakan langkah-langkah berikut. 
+ Untuk informasi tentang pemformatan yang didukung untuk parameter kueri, lihat[MediaTailor referensi parameter dan batasan](parameter-comprehensive-reference.md).
+ Untuk alias konfigurasi dan variabel domain, lihat[MediaTailor ikhtisar alias konfigurasi](configuration-aliases-overview.md).
+ Untuk penyesuaian tambahan pada permintaan ADS, lihat. [Penggunaan lanjutan](#variables-advanced-usage)

**Metode inisialisasi sesi**  
MediaTailor mendukung beberapa metode untuk inisialisasi sesi dan penerusan parameter: 

1. **POST dengan Badan Permintaan:**

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

1. **Parameter Kueri di URL:**

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

**penting**  
Anda hanya dapat menentukan parameter sekali, pada waktu inisialisasi. Alias konfigurasi diselesaikan ke nilai aktual sebelum meneruskan. 

**Untuk meneruskan informasi sesi dan pemain ke ADS**

1. Bekerja dengan ADS untuk menentukan informasi yang diperlukan untuk merespons kueri iklan AWS Elemental MediaTailor. 

1. Buat konfigurasi MediaTailor yang menggunakan URL permintaan ADS template yang memenuhi persyaratan ADS. Di URL, sertakan parameter statis dan sertakan placeholder untuk parameter dinamis. Masukkan URL templat Anda di bidang **server keputusan iklan** konfigurasi. 

   Dalam contoh URL template berikut, `correlation` menyediakan data sesi, dan `deviceType` menyediakan data pemain: 

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

1. Pada pemain, konfigurasikan permintaan inisiasi sesi AWS Elemental MediaTailor untuk memberikan parameter untuk data pemain. Sertakan parameter Anda dalam permintaan inisiasi sesi, dan hilangkan dari permintaan berikutnya untuk sesi tersebut. 

   Jenis panggilan yang dilakukan pemain untuk menginisialisasi sesi menentukan apakah pemain (klien) atau MediaTailor (server) menyediakan pelaporan pelacakan iklan untuk sesi tersebut. Untuk informasi tentang dua opsi ini, lihat[Melaporkan data pelacakan iklan](ad-reporting.md). 

   Lakukan salah satu jenis panggilan berikut, tergantung apakah Anda menginginkan pelaporan pelacakan iklan sisi server atau klien. Dalam kedua contoh panggilan, `userID` ditujukan untuk ADS dan `auth_token` ditujukan untuk asal:
   + (Opsi) Panggilan untuk pelaporan pelacakan iklan sisi server — Awali parameter yang ingin Anda kirim MediaTailor ke ADS. `ads` Biarkan awalan mati untuk parameter yang ingin Anda kirim MediaTailor ke server asal: 

     Contoh berikut menunjukkan permintaan masuk untuk HLS dan DASH ke. AWS Elemental MediaTailor MediaTailor menggunakan `deviceType` dalam permintaannya ke ADS dan `auth_token` dalam permintaannya ke server asal. 

     Contoh HLS:

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

     Contoh DASH:

     ```
     GET manifest.mpd?ads.deviceType=ipad&auth_token=kjhdsaf7gh
     ```
   + (Opsi) Panggilan untuk pelaporan pelacakan iklan sisi klien — Berikan parameter untuk ADS di dalam objek. `adsParams`

     Contoh HLS:

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

     Contoh DASH:

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

Saat pemain memulai sesi, AWS Elemental MediaTailor ganti variabel dalam URL permintaan ADS template dengan data sesi dan parameter pemain`ads`. Ini melewati parameter yang tersisa dari pemain ke server asal. 

**Example MediaTailor permintaan dengan variabel iklan**  
Contoh berikut menunjukkan panggilan ke ADS dan server asal AWS Elemental MediaTailor yang sesuai dengan contoh panggilan inisialisasi sesi pemain sebelumnya:   
+ MediaTailor memanggil ADS dengan data sesi dan jenis perangkat pemain: 

  ```
  https://my.ads.server.com/path?correlation=896976764&deviceType=ipad
  ```
+ MediaTailor memanggil server asal dengan token otorisasi pemain.
  + Contoh HLS:

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

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

## Penggunaan lanjutan
<a name="variables-advanced-usage"></a>

Anda dapat menyesuaikan permintaan ADS dengan berbagai cara dengan data pemain dan sesi. Anda hanya perlu menyertakan nama host ADS. 

Contoh berikut menunjukkan beberapa cara agar Anda dapat menyesuaikan permintaan Anda: 
+ Gabungkan parameter pemain dan parameter sesi untuk membuat parameter baru. Contoh: 

  ```
  https://my.ads.com?key1=[player_params.value1][session.id]
  ```
+ Gunakan parameter pemain sebagai bagian dari elemen jalur. Contoh:

  ```
  https://my.ads.com/[player_params.path]?key=value
  ```
+ Gunakan parameter pemain untuk melewati elemen jalur dan kunci itu sendiri, bukan hanya nilai. Contoh: 

  ```
  https://my.ads.com/[player_params.path]?[player_params.key1]=[player_params.value1]
  ```

# MediaTailor perutean parameter untuk ADS dan asal
<a name="parameter-routing-behavior"></a>

AWS Elemental MediaTailor merutekan parameter kueri ke tujuan yang berbeda berdasarkan awalan dan tujuannya. Memahami perutean parameter sangat penting untuk mengimplementasikan fungsionalitas khusus asal seperti tampilan bergeser waktu dengan. MediaPackage

**Aturan perutean parameter**  
MediaTailor menggunakan aturan routing berikut untuk parameter kueri:
+ **Parameter asal (tanpa awalan):** Parameter tanpa awalan tertentu diteruskan ke server asal untuk fungsionalitas khusus asal
+ **Parameter ADS (`ads.`awalan):** Parameter yang diawali dengan `ads.` dikirim ke Server Keputusan Iklan
+ **Parameter manifes (`manifest.`awalan):** Parameter yang diawali dengan `manifest.` digunakan untuk perutean dan otorisasi CDN

**Example Contoh perutean parameter**  
Inisialisasi sesi berikut menunjukkan parameter routing:  

```
POST /v1/session/123456789/originId/index.m3u8
{
    "adsParams": {
        "param1": "value1",
        "param2": "value2"
    },
    "manifestParams": {
        "auth_token": "abc123"
    }
}
```
Dalam contoh ini:  
+ `param1`dan `param2` dikirim ke ADS
+ `auth_token`digunakan untuk perutean dan otorisasi CDN
+ Parameter tanpa awalan akan diteruskan ke server asal

## Perilaku parameter server asal
<a name="origin-parameter-behavior"></a>

Parameter yang diteruskan ke server asal memungkinkan fungsionalitas khusus asal seperti tampilan bergeser waktu, pemfilteran konten, dan otentikasi.

**Kasus penggunaan parameter asal umum**  
Parameter asal biasanya digunakan untuk:
+ **Tampilan bergeser waktu:** `start` dan `end` parameter untuk MediaPackage konten yang bergeser waktu
+ **Otentikasi konten:** Token otentikasi yang diperlukan oleh server asal
+ **Pemfilteran konten:** Parameter yang mengontrol varian konten mana yang dikembalikan
+ **Fitur khusus asal:** Parameter apa pun yang digunakan server asal untuk pemrosesan konten

**penting**  
Parameter diproses pada inisialisasi sesi dan dipertahankan sepanjang sesi. Untuk memodifikasi parameter seperti jendela pergeseran waktu, Anda harus membuat sesi baru dengan nilai yang diperbarui.

# MediaTailor dan integrasi MediaPackage tampilan yang bergeser waktu
<a name="mediapackage-integration-param"></a>

AWS Elemental MediaTailor dapat meneruskan parameter tampilan yang digeser waktu ke MediaPackage asal untuk mengaktifkan fungsionalitas tampilan startover dan catch-up. Integrasi ini memungkinkan pemirsa untuk mulai menonton konten langsung dari titik waktu sebelumnya.

**MediaPackage parameter tampilan bergeser waktu**  
MediaPackage mendukung parameter tampilan bergeser waktu berikut yang dapat dilewatkan: MediaTailor
+ `start`: Stempel waktu Epoch atau ISO 8601 yang mendefinisikan awal manifes yang bergeser waktu
+ `end`: Stempel waktu Epoch atau ISO 8601 yang mendefinisikan akhir manifes yang bergeser waktu
+ `time_delay`: Tunda ketersediaan konten dengan detik tertentu
+ `manifest_window_seconds`: Minta manifes yang lebih pendek dari jendela yang dikonfigurasi

**Example MediaTailor inisialisasi sesi dengan parameter bergeser MediaPackage waktu**  
Contoh berikut menunjukkan cara menginisialisasi sesi dengan parameter tampilan bergeser waktu:  

```
GET /v1/master/123456789/originId/index.m3u8?start=2024-08-26T10:00:00Z&end=2024-08-26T11:00:00Z
```
Atau menggunakan inisialisasi sesi eksplisit:  

```
POST /v1/session/123456789/originId/index.m3u8
{
    "adsParams": {
        "param1": "value1"
    }
}
```
Dengan parameter kueri tambahan:  

```
?start=2024-08-26T10:00:00Z&end=2024-08-26T11:00:00Z
```

**Perilaku parameter selama sesi**  
Parameter tampilan bergeser waktu memiliki karakteristik perilaku tertentu:
+ **Inisialisasi sesi:** Parameter diproses saat sesi dibuat
+ **Persistensi parameter:** Parameter tetap terkait dengan sesi selama pemutaran
+ Tidak **dapat diubah setelah inisialisasi:** Parameter tidak dapat diubah selama sesi aktif
+ **Sesi baru diperlukan:** Untuk memodifikasi jendela pergeseran waktu, buat sesi baru dengan nilai parameter yang diperbarui

**MediaPackage persyaratan jendela startover**  
Agar tampilan bergeser waktu berfungsi MediaPackage, pastikan hal berikut:

1. Konfigurasikan jendela startover pada MediaPackage titik akhir Anda (hingga 24 jam)

1. Pastikan CDN Anda meneruskan parameter kueri yang diperlukan ke MediaPackage

1. Gunakan jendela pemutaran yang konsisten di seluruh sesi pemain untuk caching CDN yang lebih baik

1. Verifikasi bahwa waktu mulai dan akhir termasuk dalam jendela startover yang dikonfigurasi

**penting**  
Saat menggunakan tampilan bergeser waktu, gunakan jendela pemutaran yang konsisten di seluruh sesi pemain daripada menghasilkan waktu mulai atau akhir yang unik untuk setiap pemirsa. Ini menghasilkan caching yang lebih baik di CDN dan menghindari potensi pelambatan.

*Untuk informasi selengkapnya tentang konfigurasi dan parameter tampilan MediaPackage bergeser waktu, lihat [Tampilan bergeser waktu dengan AWS Elemental MediaPackage](https://docs.aws.amazon.com/mediapackage/latest/ug/time-shifted.html) di Panduan Pengguna.AWS Elemental MediaPackage *

# MediaTailor perilaku sesi parameter dan ketekunan
<a name="parameter-session-behavior"></a>

AWS Elemental MediaTailor memproses parameter pada inisialisasi sesi dan mempertahankannya sepanjang siklus hidup sesi. Memahami perilaku sesi sangat penting untuk menerapkan skenario parameter dinamis.

**Metode inisialisasi sesi**  
MediaTailor mendukung beberapa metode untuk inisialisasi sesi dengan parameter:

1. **Inisialisasi sesi implisit:** Parameter yang disertakan dalam permintaan manifes awal

   ```
   GET /v1/master/123456789/originId/index.m3u8?manifest.auth_token=abc123&start=2024-08-26T10:00:00Z
   ```

1. **Inisialisasi sesi eksplisit (POST):** Parameter yang disediakan di badan permintaan

   ```
   POST /v1/session/123456789/originId/index.m3u8
   {
       "adsParams": {"param1": "value1"},
       "manifestParams": {"auth_token": "abc123"}
   }
   ```

1. **Inisialisasi sesi eksplisit (GET):** Parameter disediakan sebagai parameter kueri

   ```
   GET /v1/session/123456789/originId/index.m3u8?ads.param1=value1&manifestParams.auth_token=abc123
   ```

**Parameter persistensi dan kekekalan**  
MediaTailor perilaku parameter mengikuti aturan ini:
+ **Spesifikasi satu kali:** Parameter hanya dapat ditentukan sekali, pada inisialisasi sesi
+ **Persistensi seluruh sesi:** Parameter dipertahankan sepanjang seluruh sesi
+ Tidak **dapat diubah setelah inisialisasi:** Parameter tidak dapat dimodifikasi setelah sesi dibuat
+ **Resolusi alias konfigurasi:** Alias diselesaikan ke nilai aktual sebelum diteruskan ke tujuan

**Skenario modifikasi parameter**  
Untuk memodifikasi parameter selama pemutaran:
+ **Buat sesi baru:** Inisialisasi sesi baru dengan nilai parameter yang diperbarui
+ **Transisi pemain:** Transisi pemain dengan mulus ke sesi baru
+ **Parameter pewarisan:** Meneruskan parameter yang tidak berubah untuk menjaga konsistensi

**Example Memodifikasi parameter pergeseran waktu**  
Untuk mengubah dari jendela 1 jam ke jendela 2 jam:  

1. Sesi saat ini: `start=2024-08-26T10:00:00Z&end=2024-08-26T11:00:00Z`

1. Buat sesi baru: `start=2024-08-26T10:00:00Z&end=2024-08-26T12:00:00Z`

1. Transisi pemain ke URL sesi baru

**penting**  
Beberapa permintaan daftar putar multivariant untuk satu sesi tidak memperbarui parameter setelah permintaan pertama. Parameter tetap tidak berubah selama durasi sesi.

# MediaTailor referensi parameter dan batasan
<a name="parameter-comprehensive-reference"></a>

Sebelum mengonfigurasi variabel iklan dinamis, pahami persyaratan dan batasan pemformatan parameter yang berlaku untuk semua MediaTailor konfigurasi.

AWS Elemental MediaTailor memberikan informasi komprehensif tentang batasan karakter parameter, batasan panjang, dan format yang didukung untuk parameter kueri manifes dan parameter ADS. 

## Pembatasan karakter parameter kueri manifes
<a name="manifest-parameter-character-restrictions"></a>

Parameter kueri manifes mendukung karakter tertentu dan memiliki batasan panjang yang ditentukan. 

**Karakter yang didukung (tanpa pengkodean URL)**  
Anda dapat menggunakan karakter berikut secara langsung dalam parameter kueri manifes: 
+ Karakter alfanumerik (A-Z, a-z, 0-9)
+ Periode (.)
+ Tanda hubung (-)
+ Garis bawah (\$1)
+ Garis miring terbalik (\$1)

**Karakter yang didukung dengan pengkodean URL**  
Karakter khusus berikut didukung saat dikodekan URL: 
+ periode (.) = %2E
+ tanda hubung (-) = %2D
+ garis bawah (\$1) = %5F
+ persen (%) =% 25
+ tilde (\$1) = %7E
+ garis miring ke depan (/) = %2F
+ tanda bintang (\$1) = %2A
+ sama dengan (=) = %3D
+ pertanyaan (?) = %3F

**Dukungan pengkodean URL**  
MediaTailor mendukung tanda persen (%) saat Anda menggunakannya dalam pengkodean URL (misalnya, hello%20world = hello world). Anda dapat menggunakan karakter yang dikodekan URL, selama mereka adalah pengkodean URL yang valid sesuai dengan spesifikasi HTTP. 

**Karakter yang tidak didukung**  
Anda tidak dapat menggunakan karakter berikut dalam parameter kueri manifes tanpa pengkodean URL:`:`,,, `?` `&` `=``%`, `/` (garis miring maju). 

**penting**  
MediaTailor tidak mendukung karakter ganda seperti%%% atau ==. Anda tidak dapat menggunakan full URLs sebagai nilai parameter kueri manifes karena pembatasan karakter. 

**Keterbatasan panjang**  
Panjang total semua parameter kueri manifes (kunci dan nilai digabungkan) tidak boleh melebihi 2000 karakter. 

## Batasan panjang parameter ADS
<a name="ads-parameter-limitations"></a>

Batasan panjang berikut berlaku untuk parameter yang digunakan dalam permintaan ke ADS: 
+ **Nama parameter ADS**: Maksimum 10.000 karakter
+ **Nilai parameter ADS**: Maksimum 25.000 karakter
+ **URL ADS**: Maksimal 25.000 karakter

# MediaTailor panduan pemecahan masalah parameter
<a name="parameter-troubleshooting"></a>

AWS Elemental MediaTailor memberikan panduan untuk memecahkan masalah umum terkait parameter di MediaTailor, termasuk pembatasan karakter, masalah pengkodean URL, dan kesalahan alias konfigurasi. 

## Kesalahan pembatasan karakter
<a name="parameter-character-restriction-errors"></a>

Nilai parameter yang berisi karakter yang tidak didukung dapat menyebabkan kesalahan atau perilaku tak terduga. 

**Gejala umum**  
Gejala-gejala berikut mungkin menunjukkan masalah pembatasan karakter: 
+ Parameter tidak muncul dalam manifes URLs
+ Kesalahan HTTP 400 selama inisialisasi sesi
+ Nilai parameter terpotong atau rusak
+ Permintaan ADS gagal karena cacat URLs

**Langkah resolusi**  
Untuk mengatasi kesalahan pembatasan karakter: 

1. Tinjau nilai parameter untuk karakter yang tidak didukung:`:`,`?`,`&`,`=`, `%` `/`

1. Terapkan pengkodean URL yang tepat untuk karakter khusus (lihat) [MediaTailor referensi parameter dan batasan](parameter-comprehensive-reference.md)

1. Hindari karakter ganda seperti `%%%` atau `==`

1. Pertimbangkan format parameter alternatif jika penuh URLs tidak dapat digunakan

**Example Contoh pengkodean URL**  
Alih-alih menggunakan:   

```
manifest.redirect_url=https://example.com/path?param=value
```
Gunakan format yang dikodekan URL:   

```
manifest.redirect_url=https%3A%2F%2Fexample.com%2Fpath%3Fparam%3Dvalue
```

## Kesalahan batasan panjang
<a name="parameter-length-limitation-errors"></a>

Parameter yang melebihi batas panjang dapat terpotong atau menyebabkan kesalahan. 

**Batas panjang**  
Batas panjang berikut berlaku (lihat [MediaTailor referensi parameter dan batasan](parameter-comprehensive-reference.md) untuk detail lengkapnya):
+ Parameter kueri manifes (total): 2000 karakter
+ Nama parameter ADS: 10.000 karakter
+ Nilai parameter ADS: 25.000 karakter
+ ADS URLs: 25.000 karakter

**Strategi resolusi**  
Untuk menangani keterbatasan panjang: 

1. Gunakan nama dan nilai parameter yang lebih pendek jika memungkinkan

1. Pisahkan nilai parameter besar menjadi beberapa parameter yang lebih kecil

1. Gunakan alias konfigurasi untuk memetakan alias pendek ke nilai yang lebih panjang (lihat) [MediaTailor ikhtisar alias konfigurasi](configuration-aliases-overview.md)

1. Pertimbangkan untuk menggunakan penyimpanan eksternal untuk data besar dengan referensi parameter

## Kesalahan alias konfigurasi
<a name="parameter-configuration-alias-errors"></a>

Masalah alias konfigurasi dapat mengakibatkan kesalahan HTTP 400 atau nilai parameter yang tidak terduga. 

**Kesalahan alias konfigurasi umum**  
Kesalahan berikut biasanya terjadi dengan alias konfigurasi: 
+ Kesalahan HTTP 400: Nilai alias hilang atau tidak valid
+ Variabel domain tidak menyelesaikan dengan benar
+ Parameter pemain tidak diganti dengan nilai alias

**Daftar periksa resolusi**  
Untuk mengatasi kesalahan alias konfigurasi: 

1. Verifikasi semua variabel domain didefinisikan sebagai `ConfigurationAliases`

1. Pastikan variabel parameter pemain menggunakan `player_params.` awalan

1. Konfirmasikan daftar nilai alias lengkap untuk variabel domain di critical URLs (`VideoContentSourceUrl`,,) `AdSegmentUrlPrefix` `ContentSegmentUrlPrefix`

1. Periksa apakah permintaan inisialisasi sesi menentukan nilai alias yang valid

1. Validasi struktur parameter JSON ConfigurationAliases 

Untuk panduan pemecahan masalah terperinci, lihat. [MediaTailor panduan pemecahan masalah alias konfigurasi](configuration-aliases-troubleshooting.md)

**Example Konfigurasi alias validasi**  
Pastikan konfigurasi Anda mencakup semua alias yang diperlukan:   

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

## Masalah aliran pemrosesan parameter
<a name="parameter-processing-flow-issues"></a>

Memahami alur pemrosesan parameter membantu memecahkan masalah dengan penerusan dan transformasi parameter. 

**Urutan pemrosesan parameter**  
MediaTailor memproses parameter dalam urutan sebagai berikut: 

1. Validasi parameter inisialisasi sesi

1. Resolusi alias konfigurasi (jika ada)

1. Pemfilteran parameter (ADS vs asal vs manifes)

1. Pengkodean dan pemformatan URL

1. Parameter aplikasi untuk URLs

**Aliran parameter debugging**  
Untuk men-debug masalah pemrosesan parameter: 

1. Verifikasi parameter ditentukan dengan benar dalam inisialisasi sesi

1. Periksa apakah alias konfigurasi diselesaikan ke nilai yang diharapkan

1. Konfirmasi parameter muncul di benar URLs (manifes, ADS, asal)

1. Validasi pengkodean URL diterapkan dengan benar

**Example Contoh aliran parameter**  
Inisialisasi sesi:   

```
POST master.m3u8
{
    "playerParams": {"origin_domain": "pdx"},
    "manifestParams": {"test": "123"}
}
```
Setelah resolusi dan pemrosesan alias:   
+ Permintaan asal: `https://abc.mediapackage.us-west-2.amazonaws.com/out/v1/abcd`
+ URL manifes: `/v1/master/.../index.m3u8?aws.sessionId=session&test=123`

## Pertimbangan keamanan dan praktik terbaik
<a name="parameter-security-considerations-troubleshooting"></a>

MediaTailor menerapkan langkah-langkah keamanan untuk penanganan parameter untuk mencegah masalah keamanan umum. 

**Langkah-langkah keamanan**  
MediaTailor menerapkan langkah-langkah keamanan berikut: 

1. Keterbatasan ukuran input untuk mencegah bongkahan basis data

1. Pengkodean dan sanitasi input pengguna yang tepat

1. Pengkodean URL input untuk mencegah korupsi respons

**Praktik terbaik**  
Ikuti praktik terbaik ini untuk penanganan parameter yang aman: 
+ Validasi nilai parameter di sisi klien sebelum mengirim
+ Gunakan alias konfigurasi untuk membatasi nilai parameter yang mungkin
+ Hindari memasukkan informasi sensitif dalam parameter
+ Memantau penggunaan parameter untuk pola yang tidak biasa
+ Simpan nilai parameter dalam batas panjang yang disarankan

# MediaTailor panduan pemecahan masalah alias konfigurasi
<a name="configuration-aliases-troubleshooting"></a>

AWS Elemental MediaTailor menyediakan panduan pemecahan masalah sistematis untuk masalah alias konfigurasi umum dan skenario kesalahan. 

## Kesalahan validasi alias konfigurasi
<a name="configuration-alias-validation-errors"></a>

Ketika alias konfigurasi hilang atau tidak valid, MediaTailor mengembalikan respons kesalahan tertentu untuk membantu mengidentifikasi masalah. 

**Skenario kesalahan umum**  
Tabel berikut menjelaskan kesalahan alias konfigurasi umum dan langkah-langkah resolusinya: 


| Kesalahan | Penyebab | Resolusi | 
| --- | --- | --- | 
| HTTP 400: Alias parameter pemain tidak valid | Nilai parameter pemain tidak ditemukan di ConfigurationAliases | Verifikasi bahwa nilai parameter pemain ada sebagai kunci dalam ConfigurationAliases pemetaan yang sesuai | 
| HTTP 400: Alias konfigurasi yang diperlukan tidak ada | Variabel domain yang digunakan tanpa ConfigurationAliases entri yang sesuai | Tambahkan parameter pemain yang hilang ConfigurationAliases dengan semua pemetaan alias yang diperlukan | 
| HTTP 400: Validasi konfigurasi gagal | ConfigurationAliases strukturnya cacat atau tidak lengkap | Validasi struktur JSON dan pastikan semua variabel domain memiliki alias yang sesuai | 
| Penggantian string kosong di URLs | Alias variabel non-domain tidak ditemukan | Tambahkan pemetaan alias yang hilang atau berikan nilai default di ConfigurationAliases | 

**Daftar periksa validasi**  
Gunakan daftar periksa berikut untuk memvalidasi pengaturan alias konfigurasi Anda: 

1. **Cakupan variabel domain:** Pastikan semua variabel yang digunakan dalam bagian domain URLs memiliki ConfigurationAliases entri yang sesuai

1. **Kelengkapan alias:** Verifikasi bahwa semua nilai parameter pemain yang mungkin disertakan sebagai kunci dalam pemetaan alias

1. **Struktur JSON:** Validasi bahwa ConfigurationAliases JSON diformat dan bersarang dengan benar

1. **Penamaan parameter:** Konfirmasikan bahwa semua parameter pemain menggunakan `player_params.` awalan

1. **Konsistensi nilai:** Pastikan nilai alias valid untuk tujuan penggunaannya (URLs, nama profil, dll.)

## Resolusi alias konfigurasi debugging
<a name="configuration-alias-debugging"></a>

Ikuti pendekatan sistematis ini untuk men-debug masalah resolusi alias konfigurasi. 

**Step-by-step metodologi debugging**  
Gunakan langkah-langkah berikut untuk mengidentifikasi dan menyelesaikan masalah alias konfigurasi: 

**Prosedur debugging alias konfigurasi**

1. **Verifikasi struktur konfigurasi:** Konfirmasikan bahwa konfigurasi pemutaran Anda termasuk diformat dengan benar ConfigurationAliases

   ```
   {
       "ConfigurationAliases": {
           "player_params.example_param": {
               "alias1": "value1",
               "alias2": "value2"
           }
       }
   }
   ```

1. **Periksa format parameter pemain:** Pastikan inisialisasi sesi mencakup parameter pemain yang diformat dengan benar

   ```
   {
       "playerParams": {
           "example_param": "alias1"
       }
   }
   ```

1. **Validasi pemetaan alias:** Konfirmasikan bahwa nilai parameter pemain (“alias1") ada sebagai kunci dalam pemetaan ConfigurationAliases 

1. **Uji dengan konfigurasi sederhana:** Mulailah dengan konfigurasi minimal untuk mengisolasi masalah

1. **Memantau tanggapan kesalahan:** Periksa respons MediaTailor kesalahan untuk pesan validasi tertentu

1. **Verifikasi diselesaikan URLs:** Konfirmasikan bahwa penyelesaian URLs akhir valid dan dapat diakses

## Praktik terbaik alias konfigurasi
<a name="configuration-alias-best-practices"></a>

Ikuti praktik terbaik ini untuk memastikan implementasi alias konfigurasi yang andal. 

**Pertimbangan keamanan**  
Terapkan langkah-langkah keamanan berikut saat Anda menggunakan alias konfigurasi: 
+ **Validasi input:** Validasi semua nilai parameter pemain sebelum menggunakannya dalam resolusi alias
+ **Sanitasi nilai alias:** Pastikan nilai alias hanya berisi karakter dan format yang diharapkan
+ **Pembatasan domain:** Batasi alias domain ke domain terkontrol yang tepercaya
+ **Kontrol akses: Batasi** modifikasi konfigurasi hanya untuk personel yang berwenang

**Optimalisasi kinerja**  
Optimalkan kinerja alias konfigurasi dengan rekomendasi ini: 
+ **Minimalkan jumlah alias:** Gunakan hanya alias yang diperlukan untuk mengurangi overhead pemrosesan
+ **Penamaan yang efisien:** Gunakan konvensi penamaan yang jelas dan konsisten untuk alias dan parameter
+ **Nilai default:** Berikan alias default yang masuk akal untuk kasus penggunaan umum
+ **Caching konfigurasi:** MediaTailor Caching konfigurasi leverage untuk meningkatkan kinerja

**Pemeliharaan dan pemantauan**  
Pertahankan operasi alias konfigurasi yang andal dengan praktik berikut: 
+ **Validasi reguler:** Validasi secara berkala bahwa semua pemetaan alias saat ini dan fungsional
+ **Pemantauan kesalahan:** Memantau kesalahan HTTP 400 yang terkait dengan alias yang hilang atau tidak valid
+ **Dokumentasi:** Menjaga dokumentasi yang jelas dari semua pemetaan alias dan tujuannya
+ **Prosedur pengujian:** Menerapkan pengujian komprehensif untuk semua kombinasi alias

# MediaTailor parameter kueri manifes
<a name="manifest-query-parameters"></a>

AWS Elemental MediaTailor menangani parameter kueri untuk tujuan yang berbeda: parameter kueri manifes untuk perutean dan otorisasi CDN, dan parameter kueri lainnya yang dapat digunakan untuk fungsionalitas khusus asal.

AWS Elemental MediaTailor mempertahankan parameter kueri dari inisialisasi sesi dan menambahkannya ke manifes yang dipersonalisasi URLs dan aset lainnya. Gunakan fungsi ini ketika Anda memiliki Jaringan Pengiriman Konten (CDN) antara MediaTailor dan pemutar klien.

Gunakan parameter kueri manifes saat CDN Anda membutuhkan parameter kueri untuk hal berikut:
+ Perutean dinamis ke titik akhir yang berbeda MediaTailor 
+ Otorisasi token

**Perilaku sisi klien vs CDN**  
MediaTailor menambahkan parameter kueri untuk titik akhir pelaporan sisi klien, tetapi tidak menambahkannya untuk segmen CDN. Fungsionalitas yang diperbarui memberikan dukungan yang lebih komprehensif untuk parameter kueri di berbagai MediaTailor aset, meningkatkan fleksibilitas untuk perutean CDN dan kasus penggunaan otorisasi.

MediaTailor menambahkan parameter kueri untuk titik akhir pelaporan sisi klien, tetapi tidak menambahkan parameter kueri untuk segmen CloudFront (atau CDN lainnya).

Untuk menggunakan pelestarian parameter, hubungi [AWS Support](https://aws.amazon.com/premiumsupport/) untuk meminta agar pass parameter kueri manifes diaktifkan. 

Perilaku bervariasi antara HLS dan DASH, dan antara inisialisasi sesi eksplisit dan implisit. Topik berikut menjelaskan cara mengonfigurasi permintaan inisialisasi sesi sehingga MediaTailor melewati parameter ke manifes:

# MediaTailor penanganan parameter kueri untuk asal
<a name="origin-query-parameters"></a>

AWS Elemental MediaTailor menangani parameter kueri secara berbeda tergantung pada tujuannya. Parameter kueri manifes (diawali dengan`manifest.`) digunakan untuk perutean dan otorisasi CDN, sementara parameter kueri lainnya dapat digunakan untuk fungsionalitas khusus asal.

**Tampilan bergeser waktu dengan MediaPackage**  
Untuk fungsionalitas tampilan bergeser waktu dengan MediaPackage, Anda dapat menyertakan `start` dan `end` parameter dalam permintaan Anda. Parameter ini menentukan jendela konten tertentu untuk tampilan startover dan catch-up.

**Example permintaan tampilan bergeser waktu**  
Sertakan parameter awal dan akhir dalam permintaan manifes Anda untuk tampilan bergeser waktu:  

```
GET /v1/master/111122223333/originId/index.m3u8?start=2024-08-26T10:00:00Z&end=2024-08-26T11:00:00Z
```

**Perilaku parameter selama sesi**  
Parameter kueri diproses pada inisialisasi sesi. Untuk tampilan bergeser waktu atau fitur khusus asal lainnya:
+ **Inisialisasi sesi:** Sertakan parameter yang diperlukan dengan permintaan manifes awal
+ **Persistensi parameter:** Parameter dikaitkan dengan sesi dan dipertahankan selama pemutaran
+ **Mengubah parameter:** Untuk memodifikasi jendela pergeseran waktu atau parameter lainnya, buat sesi baru dengan nilai yang diperbarui

**penting**  
Penanganan spesifik parameter kueri tergantung pada konfigurasi asal Anda dan parameter yang didukung oleh asal konten Anda. Untuk MediaPackage integrasi, pastikan CDN Anda dikonfigurasi untuk meneruskan parameter kueri yang diperlukan seperti yang dijelaskan dalam[Konfigurasikan parameter kueri penting](mediapackage-integration.md#mediapackage-query-strings).

# MediaTailor pembatasan karakter parameter dan pengkodean URL
<a name="manifest-query-parameters-character-restrictions"></a>

AWS Elemental MediaTailor mendukung karakter tertentu dalam parameter kueri manifes. Anda dapat menggunakan pengkodean URL untuk karakter khusus.

**Karakter yang didukung dengan pengkodean URL**  
Karakter khusus berikut didukung dengan pengkodean URL:
+ periode (.) = %2E
+ tanda hubung (-) = %2D
+ garis bawah (\$1) = %5F
+ persen (%) =% 25
+ tilde (\$1) = %7E
+ garis miring ke depan (/) = %2F
+ tanda bintang (\$1) = %2A
+ sama dengan (=) = %3D
+ pertanyaan (?) = %3F

**Dukungan pengkodean URL**  
MediaTailor mendukung tanda persen (%) saat Anda menggunakannya dalam pengkodean URL (misalnya, hello%20world = hello world). Anda dapat menggunakan karakter yang dikodekan URL, selama mereka adalah pengkodean URL yang valid sesuai dengan spesifikasi HTTP.

**penting**  
MediaTailor tidak mendukung karakter ganda seperti%%% atau ==.

**Pertimbangan keamanan**  
MediaTailor mengimplementasikan langkah-langkah keamanan berikut untuk penanganan parameter:

1. Keterbatasan ukuran input untuk mencegah bongkahan basis data

1. Pengkodean dan sanitasi input pengguna yang tepat

1. Pengkodean URL input untuk mencegah korupsi respons

**Topics**
+ [Parameter kueri asal](origin-query-parameters.md)
+ [MediaTailorpembatasan karakter](manifest-query-parameters-character-restrictions.md)
+ [MediaTailorSesi implisit HLS](manifest-query-parameters-hls-implicit-session-initialization.md)
+ [MediaTailor Sesi implisit DASH](manifest-query-parameters-dash-implicit-session-initialization.md)
+ [MediaTailor inisialisasi sesi eksplisit](manifest-query-parameters-hls-and-dash-explicit-session-initialization.md)
+ [MediaTailorperilaku khusus protokol](manifest-query-parameters-protocol-differences.md)
+ [MediaTailor Integrasi CDN](manifest-query-parameters-cdn-integration.md)

# MediaTailor Inisialisasi sesi implisit HLS
<a name="manifest-query-parameters-hls-implicit-session-initialization"></a>

AWS Elemental MediaTailor menyertakan parameter kueri dalam tautan ke MediaTailor sumber daya saat permintaan Anda menyertakan parameter kueri dengan kunci`manifest.*`. Contoh berikut menunjukkan format permintaan ini:

```
GET /v1/master/111122223333/originId/index.m3u8?manifest.test=123&other=456
```

Tautan tidak menyertakan `manifest.` awalan.

**Aplikasi parameter di HLS**  
Untuk sesi implisit HLS, MediaTailor terapkan parameter ke lokasi berikut dalam hierarki manifes:
+ Daftar putar multivariant URLs
+ Daftar putar media URLs
+ Segmen konten URLs
+ Segmen iklan URLs
+ Inisialisasi HLS URLs

**Example daftar putar multivarian**  
Contoh berikut menunjukkan bagaimana MediaTailor menyertakan parameter query dalam URL untuk playlist multivariant:  

```
#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 daftar putar media**  
Contoh berikut menunjukkan bagaimana MediaTailor menyertakan parameter query dalam URLs untuk segmen konten:  

```
#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 Inisialisasi sesi implisit DASH
<a name="manifest-query-parameters-dash-implicit-session-initialization"></a>

AWS Elemental MediaTailor membuat sesi untuk klien dan mengarahkannya dengan parameter kueri saat klien membuat permintaan manifes tanpa sesi. Contoh berikut menunjukkan format permintaan ini:

```
GET /v1/dash/111122223333/originId/index.mpd?manifest.test=123&other=456
```

MediaTailor membuat sesi untuk klien dan mengarahkannya dengan parameter kueri:

```
/v1/dash/111122223333/originId/index.mpd?sessionId=session&test=123
```

**Aplikasi parameter di DASH**  
Respons manifes DASH mencakup parameter kueri di berbagai lokasi, termasuk segmen konten, segmen iklan, dan inisialisasi URLs. MediaTailor menerapkan parameter sebagai berikut:
+ DASH manifes elemen Lokasi
+ SegmentTemplate atribut inisialisasi
+ SegmentTemplate atribut media
+ Segmen konten URLs
+ Segmen iklan URLs

Saat klien membuat permintaan, MediaTailor merespons dengan manifes DASH yang mirip dengan contoh berikut. Periode pertama adalah periode konten, jadi MediaTailor jangan masukkan parameter kueri manifes di sana. Pada periode kedua, yang merupakan periode iklan, MediaTailor menyisipkan parameter kueri manifes ke dalam `initialization` atribut dan `media` atribut `SegmentTemplate` elemen. `Location`Elemen ini juga memiliki parameter kueri manifes.

```
<?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 Inisialisasi sesi eksplisit HLS dan DASH
<a name="manifest-query-parameters-hls-and-dash-explicit-session-initialization"></a>

AWS Elemental MediaTailor menyertakan parameter kueri `manifestParams` as dalam daftar putar multivarian dan pelacakan URLs dalam respons saat klien membuat permintaan inisialisasi sesi eksplisit.

**Metode inisialisasi sesi**  
Untuk inisialisasi sesi eksplisit, Anda dapat menggunakan POST dengan badan permintaan atau GET dengan parameter kueri:

1. **POST dengan Badan Permintaan:**

   ```
   POST /v1/session/111122223333/originId/index.m3u8
   {
       "adsParams": {"param1": "value1", "param2": "value2", "param3": "value3"},
       "manifestParams": {"test": "123"}
   }
   ```

1. **DAPATKAN dengan Parameter Kueri:**

   ```
   GET /v1/session/111122223333/originId/index.m3u8?ads.param1=value1&ads.param2=value2&manifestParams.test=123
   ```

**Example permintaan inisialisasi sesi**  

```
POST /v1/session/111122223333/originId/index.m3u8
{
    "adsParams": {
        "param1": "value1",
        "param2": "value2",
        "param3": "value3"
    },
    "manifestParams": { 
        "test": "123"
    },
    "reportingMode": "client"
}
```

**Example memanifestasikan dan melacak respons**  

```
{
    "manifestUrl": "/v1/master/111122223333/originId/index.m3u8?aws.sessionId=session&test=123",
    "trackingUrl": "/v1/tracking/111122223333/originId/session?test=123"
}
```

Respons manifes untuk sesi memiliki spesifik `manifestParams` yang MediaTailor URLs mirip dengan alur kerja inisialisasi sesi implisit yang dijelaskan sebelumnya. Perbedaan utamanya adalah parameter manifes untuk inisialisasi sesi eksplisit tidak dimulai dengan. `manifest.`

Parameter kueri manifes tidak dapat diubah dan Anda hanya dapat mengaturnya pada inisialisasi sesi. Jika klien membuat beberapa permintaan daftar putar multivarian untuk satu sesi, parameter kueri manifes MediaTailor tidak akan diperbarui setelah permintaan pertama.

**Aliran pemrosesan parameter**  
Anda hanya dapat menentukan parameter sekali, pada waktu inisialisasi. Alias konfigurasi diselesaikan ke nilai aktual sebelum meneruskan. Misalnya: `player_params.ad_type=customized` menyelesaikan `ad_type=abc12345` berdasarkan konfigurasi. ConfigurationAliases

# MediaTailor perilaku parameter khusus protokol
<a name="manifest-query-parameters-protocol-differences"></a>

AWS Elemental MediaTailor menangani parameter kueri manifes secara berbeda untuk protokol HLS dan DASH. Setiap jenis protokol memiliki lokasi aplikasi dan metode pemrosesan tertentu.

**Perbandingan penanganan parameter HLS vs DASH**  
Tabel berikut membandingkan cara MediaTailor menangani parameter kueri manifes di seluruh protokol HLS dan DASH:


| Aspek | Perilaku HLS | Perilaku DASH | 
| --- | --- | --- | 
| Aplikasi parameter | Diterapkan langsung ke manifes URLs dan segmen URLs | Diterapkan ke elemen Lokasi, SegmentTemplate atribut, dan segmen URLs | 
| Hirarki manifes | Daftar putar multivariant → Daftar putar media→ Segmen | MPD → Periode → AdaptationSets → Representasi | 
| Inisialisasi URLs | Diterapkan ke HLS init URLs saat ada | Diterapkan pada SegmentTemplate atribut inisialisasi | 
| Penanganan sesi | Parameter dipertahankan di seluruh pembaruan daftar putar | Parameter termasuk dalam elemen Lokasi MPD untuk kontinuitas sesi | 
| Penanganan segmen iklan | Diterapkan ke segmen iklan URLs di daftar putar media | Diterapkan pada atribut SegmentTemplate media periode iklan | 

**Lokasi aplikasi parameter**  
MediaTailor menerapkan parameter kueri manifes ke lokasi berikut:

## Aplikasi parameter HLS
<a name="hls-parameter-application"></a>

Untuk aliran HLS, MediaTailor terapkan parameter kueri manifes ke:
+ **Daftar putar multivariant URLs: Parameter ditambahkan ke referensi daftar putar** media
+ **Daftar putar media URLs:** Parameter disertakan dalam segmen URLs dalam daftar putar media
+ **Segmen konten URLs:** Semua segmen konten menyertakan parameter kueri manifes
+ **Segmen iklan URLs: Segmen** iklan menerima parameter untuk perutean dan otorisasi CDN
+ **Inisialisasi HLS URLs:** Segmen init menyertakan parameter saat ada di aliran
+ **Segmen batu tulis URLs:** Konten batu tulis mencakup parameter untuk perilaku CDN yang konsisten

**Example Contoh aplikasi parameter HLS**  
Mengingat inisialisasi sesi:  

```
GET /v1/master/123456789/originId/index.m3u8?manifest.auth_token=abc123&manifest.region=us-west
```
Daftar putar multivarian mencakup parameter dalam referensi daftar putar media:  

```
#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
```
Daftar putar media mencakup parameter di segmen 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
```

## Aplikasi parameter DASH
<a name="dash-parameter-application"></a>

Untuk aliran DASH, MediaTailor terapkan parameter kueri manifes ke:
+ **Elemen Lokasi MPD: Elemen** Lokasi mencakup parameter untuk permintaan penyegaran manifes
+ **SegmentTemplate atribut inisialisasi:** Segmen Init URLs menyertakan parameter
+ **SegmentTemplate atribut media:** Templat URL segmen media mencakup parameter
+ **Segmen konten URLs:** Semua segmen konten yang dihasilkan dari templat menyertakan parameter
+ **Segmen iklan URLs: Segmen** periode iklan menyertakan parameter untuk integrasi CDN
+ Pengalihan **pelaporan sisi server: 302 pengalihan ke segmen** iklan mempertahankan parameter

**Example Contoh aplikasi parameter DASH**  
Mengingat inisialisasi sesi:  

```
GET /v1/dash/123456789/originId/index.mpd?manifest.auth_token=abc123&manifest.region=us-west
```
Manifes DASH mencakup parameter di beberapa lokasi:  

```
<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 Integrasi CDN dan perutean parameter
<a name="manifest-query-parameters-cdn-integration"></a>

AWS Elemental MediaTailor parameter kueri manifes memungkinkan skenario integrasi CDN yang canggih. Anda dapat menggunakannya untuk perutean dinamis, otorisasi, dan penyeimbangan beban.

**Kasus penggunaan perutean CDN**  
Skenario integrasi CDN umum yang mendapat manfaat dari parameter kueri manifes meliputi yang berikut:
+ **Perutean geografis:** Permintaan rute ke titik MediaTailor akhir khusus wilayah berdasarkan lokasi penampil
+ **Otorisasi berbasis token:** Lulus token otorisasi melalui CDN ke akses konten yang aman MediaTailor 
+ **Load balancing:** Mendistribusikan lalu lintas di beberapa MediaTailor titik akhir menggunakan logika perutean CDN
+ **Pengujian A/B:** Rutekan segmen pengguna yang berbeda ke MediaTailor konfigurasi yang berbeda untuk pengujian
+ **Pengoptimalan khusus perangkat:** Permintaan rute berdasarkan jenis atau kemampuan perangkat

**Pelestarian parameter di seluruh lapisan CDN**  
MediaTailor memastikan bahwa parameter kueri manifes dipertahankan di beberapa lapisan CDN dan jenis permintaan:

1. **Permintaan awal:** Parameter diekstraksi dari permintaan inisialisasi sesi

1. **Generasi manifes:** Parameter diterapkan ke semua yang relevan URLs dalam manifes

1. **Permintaan segmen:** Parameter disertakan di semua segmen URLs untuk perilaku CDN yang konsisten

1. **Penyisipan iklan:** Parameter dipertahankan selama penyisipan iklan dan penggantian segmen

**Example Aliran otorisasi CDN**  
Contoh berikut menunjukkan aliran otorisasi CDN lengkap menggunakan parameter kueri manifes:  

1. Permintaan klien manifes dengan token otorisasi:

   ```
   GET https://cdn.example.com/mediatailor/v1/master/123456789/originId/index.m3u8?manifest.auth_token=jwt_token_here&manifest.user_id=12345
   ```

1. CDN meneruskan permintaan ke MediaTailor dengan parameter:

   ```
   GET https://mediatailor.amazonaws.com/v1/master/123456789/originId/index.m3u8?manifest.auth_token=jwt_token_here&manifest.user_id=12345
   ```

1. MediaTailor menghasilkan manifes dengan parameter yang diterapkan ke semua URLs:

   ```
   #EXTM3U
   #EXT-X-STREAM-INF:BANDWIDTH=2665212
   ../../../manifest/123456789/originId/session/0.m3u8?auth_token=jwt_token_here&user_id=12345
   ```

1. Permintaan segmen selanjutnya mencakup parameter untuk otorisasi CDN:

   ```
   GET https://cdn.example.com/mediatailor/segment/123456789/originId/session/0/1?auth_token=jwt_token_here&user_id=12345
   ```

# Melaporkan data pelacakan iklan
<a name="ad-reporting"></a>

MediaTailor menyediakan dua opsi untuk melacak dan melaporkan berapa banyak iklan yang telah ditonton pemirsa. Dalam pendekatan pelaporan iklan sisi server, MediaTailor melacak iklan dan mengirimkan beacon (sinyal pelacakan) langsung ke server iklan. Atau, dalam pendekatan pelacakan sisi klien, pemutar klien (perangkat pengguna) melacak iklan dan mengirimkan suar ke server iklan. Jenis pelaporan iklan yang digunakan dalam sesi pemutaran tergantung pada permintaan spesifik yang dibuat pemain untuk memulai sesi. MediaTailor

Untuk informasi tentang meneruskan data sesi dan pemain ke server iklan menggunakan variabel dinamis, lihat[MediaTailor variabel iklan dinamis untuk permintaan ADS](variables.md). Untuk detail tentang parameter inisialisasi sesi, lihat[MediaTailor parameter kueri manifes](manifest-query-parameters.md).

**Topics**
+ [MediaTailor Pelacakan dan pelaporan iklan sisi server](ad-reporting-server-side.md)
+ [Pelacakan iklan sisi klien](ad-reporting-client-side.md)

# MediaTailor Pelacakan dan pelaporan iklan sisi server
<a name="ad-reporting-server-side"></a>

AWS Elemental MediaTailor default pelaporan sisi server untuk pelacakan dan pengukuran iklan yang komprehensif. Dengan pelaporan sisi server, saat pemain meminta URL iklan dari manifes, layanan melaporkan konsumsi iklan langsung ke URL pelacakan iklan. Setelah pemain menginisialisasi sesi pemutaran dengan MediaTailor, tidak ada input lebih lanjut yang diperlukan dari Anda atau pemain untuk melakukan pelaporan sisi server. Saat setiap iklan diputar ulang, MediaTailor kirimkan beacon ke server iklan untuk melaporkan berapa banyak iklan yang telah dilihat. MediaTailor mengirimkan suar untuk awal iklan dan untuk perkembangan iklan dalam kuartil: kuartil pertama, titik tengah, kuartil ketiga, dan penyelesaian iklan.

**Untuk melakukan pelaporan iklan sisi server**
+ Dari pemutar, inisialisasi sesi MediaTailor pemutaran baru menggunakan permintaan dalam salah satu format berikut, sesuai dengan protokol Anda:
  + Contoh: 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>
    ```
  + Contoh: 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>
    ```

  Pasangan nilai kunci adalah parameter penargetan dinamis untuk pelacakan iklan. Untuk informasi tentang menambahkan parameter ke permintaan, lihat[MediaTailor variabel iklan dinamis untuk permintaan ADS](variables.md).

AWS Elemental MediaTailor menanggapi permintaan dengan URL manifes. Manifes berisi URLs untuk manifes media. Manifes media berisi tautan yang disematkan untuk permintaan segmen iklan.

**catatan**  
Saat MediaTailor menemukan garis miring ganda (//) di URL pelacakan, itu menciutkan garis miring ke one (/).

Saat pemain meminta pemutaran dari URL segmen iklan (`/v1/segment`jalur), AWS Elemental MediaTailor kirimkan suar yang sesuai ke server iklan melalui pelacakan iklan. URLs Pada saat yang sama, layanan mengeluarkan pengalihan ke segmen `*.ts` iklan yang sebenarnya. Segmen iklan berada di CloudFront distribusi Amazon tempat MediaTailor menyimpan iklan yang ditranskode, atau di jaringan pengiriman konten (CDN) tempat Anda menyimpan iklan dalam cache. 

Bagian berikut memberikan informasi lebih lanjut tentang bekerja dengan pelacakan iklan sisi server dari. MediaTailor

**Topics**
+ [Pelacakan sisi server SGAI](ad-reporting-server-side-sgai.md)
+ [Glosarium Beacon](ad-reporting-server-side-beacon-glossary.md)
+ [Pengaturan waktu dan perilaku caching](ad-reporting-server-side-timing-behavior.md)
+ [Fitur pelacakan](ad-reporting-server-side-features.md)

# Pelacakan sisi server dengan penyisipan iklan yang dipandu server (SGAI)
<a name="ad-reporting-server-side-sgai"></a>

Saat Anda menggunakan penyisipan iklan yang dipandu server (SGAI), pelacakan sisi server menggunakan mekanisme beaconing *tanpa sesi yang berbeda dari pendekatan mode jahitan yang dijelaskan* di atas. Alih-alih memasukkan MediaTailor segmen iklan ke dalam manifes konten (tempat melacak `/v1/segment` permintaan), SGAI menampilkan referensi iklan sebagai daftar putar terpisah dalam respons daftar aset dengan metadata suar yang disematkan di iklan. URIs

## Cara kerja beaconing sisi server tanpa sesi
<a name="ad-reporting-server-side-sgai-how-it-works"></a>

Langkah-langkah berikut menjelaskan cara kerja beaconing sisi server untuk sesi SGAI:

1. **Inisialisasi sesi**: Pemain meminta daftar putar multivarian HLS dengan. `aws.insertionMode=GUIDED` Pelaporan sisi server adalah default (tidak diperlukan `aws.reportingMode` parameter). Tidak seperti mode jahitan, respons inisialisasi sesi *tidak* menyertakan a. `trackingUrl`

1. Manifes **cacheable: MediaTailor mengembalikan manifes** cacheable yang berisi `EXT-X-DATERANGE` tag dengan `CLASS="com.apple.hls.interstitial"` dan `X-ASSET-LIST` atribut yang menunjuk ke titik akhir daftar aset MediaTailor pengantara.

1. **Daftar aset dengan metadata suar**: Saat pemain menemukan jeda iklan, ia mengambil daftar aset. MediaTailormengembalikan respons JSON di mana setiap URI iklan menyertakan metadata suar terenkripsi:

   ```
   {
     "ASSETS": [
       {
         "DURATION": 30.0,
         "URI": "https://cdn.example.com/ad/master.m3u8?awsBeaconData=<encrypted>&awsBeaconDomain=<MediaTailor-endpoint>&awsConfigurationName=<config-name>"
       }
     ]
   }
   ```

   Saat pelaporan sisi server aktif, respons *tidak* menyertakan bagian. `TRACKING` Iklan URIs membawa semua data suar.

1. **Substitusi variabel HLS**: Pemain mengambil daftar putar multivarian iklan. Manifes iklan menggunakan `#EXT-X-DEFINE:QUERYPARAM` arahan untuk meneruskan parameter beacon dari string kueri URI ke segmen URLs melalui substitusi variabel 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
   ```

   Pemain menyelesaikan `{$awsConfigurationName}` variabel`{$awsBeaconData}`,`{$awsBeaconDomain}`, dan menggunakan nilai dari string kueri URI manifes iklan, lalu meminta setiap segmen iklan melalui. MediaTailor

1. **Penembakan suar pada permintaan segmen**: Saat pemain meminta setiap segmen iklan, permintaan akan dilalui. MediaTailor Layanan mendekripsi data suar, menentukan posisi segmen dalam iklan (tayangan, kuartil pertama, titik tengah, kuartil ketiga, atau lengkap), dan mengaktifkan suar pelacakan VAST yang sesuai ke server iklan. MediaTailor kemudian mengarahkan pemain ke segmen konten iklan yang sebenarnya.

## Persyaratan pemain untuk beaconing sisi server SGAI
<a name="ad-reporting-server-side-sgai-requirements"></a>

Untuk menggunakan beaconing sisi server dengan SGAI, pemain Anda harus memenuhi persyaratan berikut:
+ HLS versi 11 atau yang lebih baru
+ Support for `EXT-X-DATERANGE` with `CLASS` atribut untuk HLS Interstitials
+ Support untuk substitusi `#EXT-X-DEFINE:QUERYPARAM` variabel (RFC 8216bis). Pemain harus mendekode nilai parameter kueri sebelum menggantinya ke segmen. URLs

**catatan**  
SGAI server-side beaconing saat ini didukung untuk HLS saja. DASH belum didukung untuk beaconing sisi server SGAI.

## Perbandingan dengan pelacakan sisi server mode jahitan
<a name="ad-reporting-server-side-sgai-comparison"></a>

Tabel berikut merangkum perbedaan pelacakan sisi server antara penyisipan iklan yang dijahit dan yang dipandu server:


| Aspek | Dijahit (SSAI) | Dipandu server (SGAI) | 
| --- | --- | --- | 
| Manifestasi cacheability | Per-sesi, tidak dapat di-cache | Dapat di-cache, dibagikan di seluruh pemirsa | 
| Perutean segmen iklan | Melalui /v1/segment/ menggunakan ID sesi | Melalui /v1/segment/ menggunakan gumpalan data beacon terenkripsi | 
| Status sesi untuk beacon | Disimpan per sesi di MediaTailor | Sessionless — semua status dibawa dalam parameter terenkripsi awsBeaconData | 
| Melacak URL pada sesi init | Kembali dalam respon inisialisasi sesi | Tidak disediakan — data suar disematkan dalam iklan URIs di setiap respons daftar aset | 
| Dukungan DASH | Didukung | Belum didukung | 

**catatan**  
Untuk sesi SGAI langsung, Anda dapat mengaktifkan prefetching iklan berbasis manifes menggunakan. `aws.guidedPrefetchMode=MANIFEST` Ini terpisah dari API prefetch berbasis jadwal yang digunakan dengan sesi stitched (SSAI). Lihat perinciannya di [Prefetch terpandu dengan detak jantung yang nyata](sgai-guided-prefetch.md).

# Glosarium suar pelacakan sisi server
<a name="ad-reporting-server-side-beacon-glossary"></a>

MediaTailor Pelacakan sisi server menggunakan serangkaian suar standar untuk melaporkan kemajuan tampilan iklan ke server iklan dan layanan verifikasi. Beacon ini selaras dengan standar Interactive Advertising Bureau (IAB) untuk pengukuran iklan video dan memberikan pelaporan tayangan iklan dan tingkat penyelesaian yang akurat.


**Jenis suar pelacakan sisi server**  

| Jenis Beacon | Saat Dipecat | Tujuan | Detail Waktu | 
| --- | --- | --- | --- | 
| Kesan | Saat pemain meminta segmen iklan pertama | Menunjukkan bahwa konten iklan telah mulai dimuat dan akan ditampilkan ke pemirsa | Dipecat pada /v1/segment permintaan pertama untuk iklan. Sejajar dengan pedoman IAB yang mengharuskan konten iklan mulai dimuat sebelum menghitung tayangan. Lihat [Alur kerja pelacakan sisi server](ad-reporting-server-side-timing-behavior.md#ad-reporting-server-side-timing-behavior-workflow) untuk urutan lengkapnya. | 
| Mulai | Saat pemain mulai merender konten iklan | Mengonfirmasi bahwa pemutaran iklan sebenarnya telah dimulai | Biasanya diaktifkan secara bersamaan dengan suar tayangan pada permintaan segmen pertama, tetapi mewakili awal rendering iklan yang sebenarnya. Perbedaan ini penting untuk layanan verifikasi yang melacak tayangan dan memulai peristiwa secara terpisah. | 
| Kuartil Pertama | Ketika pemain mencapai 25% dari durasi iklan | Langkah-langkah melanjutkan penayangan iklan hingga kuartal pertama iklan | Diaktifkan saat pemain meminta segmen yang berisi 25% poin durasi iklan. Misalnya, dalam iklan 20 detik dengan segmen 2 detik, ini biasanya akan diaktifkan pada permintaan untuk segmen ke-3 (sekitar 4-6 detik ke dalam iklan). | 
| Titik tengah | Ketika pemain mencapai 50% dari durasi iklan | Langkah-langkah melanjutkan tampilan iklan melalui setengah dari iklan | Diaktifkan saat pemain meminta segmen yang berisi 50% titik durasi iklan. Misalnya, dalam iklan 20 detik dengan segmen 2 detik, ini biasanya akan diaktifkan pada permintaan untuk segmen ke-5 (sekitar 8-10 detik ke dalam iklan). | 
| Kuartil Ketiga | Saat pemain mencapai 75% dari durasi iklan | Langkah-langkah melanjutkan penayangan iklan melalui tiga perempat iklan | Diaktifkan saat pemain meminta segmen yang berisi 75% poin durasi iklan. Misalnya, dalam iklan 20 detik dengan segmen 2 detik, ini biasanya akan diaktifkan pada permintaan untuk segmen ke-8 (sekitar 14-16 detik ke dalam iklan). | 
| Selesai | Saat pemain mencapai akhir iklan | Mengonfirmasi bahwa seluruh iklan dikirimkan ke pemirsa | Dipecat saat pemain meminta segmen akhir iklan. Ini menunjukkan bahwa pemirsa berpotensi melihat seluruh konten iklan. Misalnya, dalam iklan 20 detik dengan segmen 2 detik, ini biasanya akan diaktifkan pada permintaan untuk segmen ke-10 (sekitar 18-20 detik ke dalam iklan). | 

**catatan**  
Waktu yang tepat dari penembakan suar tergantung pada durasi segmen dan panjang iklan. MediaTailor menghitung permintaan segmen yang sesuai yang sesuai dengan setiap posisi kuartil berdasarkan durasi iklan dan struktur segmen tertentu.

# Waktu pelacakan sisi server dan perilaku caching
<a name="ad-reporting-server-side-timing-behavior"></a>

Dalam pelaporan sisi server, MediaTailor mengaktifkan peristiwa pelacakan berdasarkan permintaan segmen aktual dari pemain, bukan pada aktivitas penguraian manifes atau pra-pemuatan. Pendekatan ini memastikan penghitungan tayangan akurat yang sejalan dengan standar industri untuk pengukuran iklan video.

## Prinsip pengaturan waktu utama
<a name="ad-reporting-server-side-timing-behavior-principles"></a>

MediaTailor pelacakan sisi server mengikuti prinsip-prinsip waktu dasar ini:
+ **Melacak peristiwa diaktifkan pada permintaan segmen aktual** - Beacon dikirim hanya ketika pemain membuat permintaan HTTP ke `/v1/segment` URLs, bukan selama penguraian manifes atau caching.
+ **Caching pemain dan pra-pemuatan manifes TIDAK memicu peristiwa** - Pemain dapat mengurai, menyimpan, atau memuat informasi manifes terlebih dahulu tanpa menghasilkan peristiwa pelacakan apa pun.
+ **Pra-pengambilan segmen *akan* memicu peristiwa** - Jika pemain mengambil segmen iklan yang sebenarnya sebelum pemutaran, ini mengikuti perilaku standar industri di mana permintaan segmen merupakan tayangan yang valid.
+ **Setiap permintaan /v1/segmen memicu suar yang sesuai - Peristiwa pelacakan** spesifik (tayangan, kuartil, penyelesaian) ditentukan oleh posisi iklan dan segmen yang diminta.
+ **Pengaturan waktu sesuai dengan standar IAB** - Pendekatan ini mengikuti pedoman Biro Periklanan Interaktif untuk pengukuran iklan video dan penghitungan tayangan.

## Alur kerja pelacakan sisi server
<a name="ad-reporting-server-side-timing-behavior-workflow"></a>

Diagram berikut mengilustrasikan alur kerja pelacakan sisi server yang lengkap, yang menunjukkan kapan peristiwa pelacakan diaktifkan sehubungan dengan permintaan pemain:

**Fase 1: Inisialisasi sesi**  
Pemain meminta manifes dari MediaTailor, yang menampilkan manifes yang dipersonalisasi yang berisi segmen iklan URLs:  

![\[Fase inisialisasi sesi menampilkan pemain yang meminta manifes dari MediaTailor dan menerima manifes yang dipersonalisasi dengan segmen iklan. URLs\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/images/ss-track-phase1.png)


**Tahap 2: Permintaan iklan dan pelacakan tayangan**  
Saat pemain meminta segmen iklan pertama, MediaTailor mengaktifkan tayangan dan memulai beacon ke Server Keputusan Iklan dan Layanan Verifikasi Iklan:  

![\[Fase pelacakan tayangan iklan yang menunjukkan MediaTailor pengiriman suar tayangan dan mulai ke Server Keputusan Iklan dan Layanan Verifikasi Iklan saat pemain meminta segmen iklan pertama.\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/images/ss-track-phase2.png)


**Fase 3: Pelacakan kuartil**  
MediaTailor menembakkan suar kuartil (kuartil pertama, titik tengah, kuartil ketiga, penyelesaian) berdasarkan permintaan segmen berikutnya:  

![\[Fase pelacakan kuartil yang menunjukkan MediaTailor penembakan suar kuartil ke Server Keputusan Iklan dan Layanan Verifikasi Iklan saat pemain meminta segmen iklan berikutnya.\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/images/ss-track-phase3.png)


**Fase 4: Pengiriman segmen**  
Setelah mengaktifkan suar pelacakan, MediaTailor alihkan ke segmen iklan aktual dari Amazon atau CDN Anda: CloudFront   

![\[Fase pengiriman segmen yang menunjukkan MediaTailor pengalihan pemain ke segmen iklan aktual dari CloudFront atau CDN setelah menembakkan suar pelacakan.\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/images/ss-track-phase4.png)


Alur kerja pelacakan sisi server mencakup perilaku pengaturan waktu utama berikut:

1. **Inisialisasi sesi** - Pemain meminta manifes dari MediaTailor. MediaTailor mengembalikan manifes yang dipersonalisasi yang berisi segmen iklan URLs dengan `/v1/segment` jalur.

1. **Manifest parsing dan caching** - Pemain mem-parsing manifes dan dapat memuat atau menyimpan informasi segmen cache. **Tidak ada peristiwa pelacakan yang diaktifkan selama fase ini**, terlepas dari perilaku caching pemain.

1. **Permintaan segmen iklan dan pelacakan tayangan** - Saat pemain benar-benar meminta segmen iklan pertama (biasanya untuk pemutaran), MediaTailor mengaktifkan suar tayangan dan mulai melacak peristiwa ke Server Keputusan Iklan dan Layanan Verifikasi Iklan. Ini terjadi pada permintaan HTTP aktual ke `/v1/segment` URL, bukan saat manifes diuraikan.

1. **Pelacakan kuartil berdasarkan permintaan segmen** - MediaTailor menembakkan suar kuartil (kuartil pertama, titik tengah, kuartil ketiga, penyelesaian) ke Server Keputusan Iklan dan Layanan Verifikasi Iklan berdasarkan permintaan segmen berikutnya yang sesuai dengan posisi kuartil yang dihitung dalam durasi iklan.

1. **Pengiriman segmen** - Setelah mengaktifkan suar pelacakan yang sesuai, MediaTailor keluarkan pengalihan HTTP ke segmen iklan yang sebenarnya (baik dari Amazon CloudFront atau CDN Anda).

## Pertimbangan caching dan pra-pemuatan pemain
<a name="ad-reporting-server-side-timing-behavior-caching-considerations"></a>

MediaTailor pelacakan sisi server dirancang agar kompatibel dengan berbagai strategi caching dan pra-pemuatan pemain sambil mempertahankan pengukuran kesan yang akurat:
+ **Manifest pre-loading** - Pemain yang melakukan pre-load atau menyimpan informasi manifes cache tidak memicu peristiwa pelacakan. Peristiwa pelacakan hanya diaktifkan saat permintaan segmen aktual dibuat.
+ **Pra-pengambilan segmen** - Jika pemain mengambil segmen iklan sebelum pemutaran, peristiwa pelacakan akan diaktifkan saat segmen tersebut diminta, berpotensi lebih awal dari waktu pemutaran sebenarnya. Perilaku ini sejalan dengan standar industri yang menganggap permintaan segmen sebagai tayangan yang valid.
+ **Buffering** pemain - Perilaku buffering pemain standar (meminta segmen sedikit sebelum pemutaran) akan memicu peristiwa pelacakan pada waktu yang tepat berdasarkan pola permintaan segmen.

## Memecahkan masalah melacak perbedaan
<a name="ad-reporting-server-side-timing-behavior-troubleshooting"></a>

Jika Anda melihat perbedaan antara pelacakan MediaTailor sisi server dan metrik pihak ketiga, pertimbangkan faktor-faktor berikut:
+ **Perbedaan perilaku pemain** - Pemain yang berbeda mungkin memiliki strategi pra-pengambilan dan buffering yang bervariasi yang memengaruhi saat permintaan segmen dibuat.
+ **Kondisi jaringan - Kondisi** jaringan yang buruk dapat menyebabkan pemain meminta segmen beberapa kali atau pada interval yang berbeda dari yang diharapkan.
+ **Konfigurasi CDN** - Caching `/v1/segment` permintaan CDN yang salah dapat menyebabkan peristiwa pelacakan yang terlewat atau duplikat.
+ **Manajemen sesi** - Pastikan bahwa setiap sesi pemutaran menggunakan pengenal sesi unik untuk mencegah melacak konflik peristiwa.

Untuk panduan pemecahan masalah terperinci, lihat. [Memecahkan masalah umum](monitoring-and-troubleshooting.md#troubleshooting-common-issues)

# MediaTailor fitur dan kemampuan pelacakan sisi server
<a name="ad-reporting-server-side-features"></a>

AWS Elemental MediaTailor secara otomatis menerapkan fitur pelacakan sisi server terintegrasi ini untuk mengoptimalkan akurasi dan keandalan pengukuran iklan. Sistem mencegah suar duplikat, mengelola lalu lintas selama periode volume tinggi, mempertahankan pengurutan peristiwa yang tepat, dan menyediakan pemantauan kinerja yang komprehensif tanpa memerlukan konfigurasi apa pun dari Anda. Anda hanya perlu memastikan server keputusan iklan (ADS) Anda menyediakan suar pelacakan dalam respons VAST.

**catatan**  
Fitur-fitur ini tersedia untuk pelanggan baru mulai 30 September 2025. Pelanggan yang sudah ada akan memiliki akses sepanjang tahun 2025 sebagai bagian dari peningkatan layanan yang sedang berlangsung. Jika Anda ingin akses langsung ke fitur-fitur ini, hubungi [AWS Support](https://aws.amazon.com/premiumsupport/).

**catatan**  
Fitur-fitur ini berlaku untuk metode penyisipan iklan stitched (SSAI) dan server-guided (SGAI). Jenis dan waktu suar sama di kedua mode. Mereka berbeda dalam cara MediaTailor memicu suar — lihat [Pelacakan sisi server dengan penyisipan iklan yang dipandu server (SGAI)](ad-reporting-server-side-sgai.md) untuk detail tentang suar sisi server SGAI.

## Deduplikasi suar
<a name="ad-reporting-server-side-beacon-deduplication"></a>

MediaTailor mencegah penembakan suar duplikat untuk acara iklan yang identik. Sistem pelacakan sisi server mengirimkan setiap tayangan, kuartil, dan suar penyelesaian hanya sekali per sesi penayangan iklan. Ketika pemutar video meminta segmen iklan yang sama beberapa kali karena kondisi jaringan, perubahan bitrate, atau strategi buffering, MediaTailor melacak beacon yang ditembakkan dan memblokir transmisi yang berlebihan.

Deduplikasi secara otomatis menyelesaikan skenario umum yang menyebabkan jumlah suar yang meningkat:
+ **Streaming bitrate adaptif** - Saat pemain mengunduh varian kualitas berbeda dari segmen iklan yang sama
+ **Skenario coba lagi jaringan** - Saat pemain meminta ulang segmen karena masalah jaringan atau batas waktu
+ **Strategi buffering pemain** - Saat pemain melakukan pre-fetch atau re-fetch segmen untuk tujuan buffering

Sistem ini dirancang untuk menembakkan suar tayangan hanya sekali, bahkan ketika pemain beralih di antara tingkat kualitas yang berbeda.

## Pelambatan adaptif dan percobaan ulang suar
<a name="ad-reporting-server-side-adaptive-throttling"></a>

MediaTailor secara otomatis mengelola tingkat lalu lintas suar berdasarkan indikator respons server. Sistem memonitor pola respons HTTP, batas waktu koneksi, dan kode kesalahan untuk mendeteksi kemacetan, kemudian menyesuaikan tingkat lalu lintas yang sesuai. Ketika sistem mengidentifikasi indikator stres server, itu mengurangi tingkat lalu lintas untuk domain yang terpengaruh dan secara otomatis meningkatkan tingkat ketika server menunjukkan peningkatan kapasitas.

Sistem memantau kesehatan server menggunakan indikator ini:
+ Batas **waktu koneksi HTTP** - Saat platform pengukuran tidak merespons dalam jangka waktu yang diharapkan
+ **Kode respons kesalahan** - respons 503, 504, dan 507 yang menunjukkan kelebihan server. Server iklan Anda juga harus mendukung kode kesalahan ini untuk kompatibilitas penuh.
+ **Pola respons** - Perubahan kinerja platform pengukuran yang menunjukkan masalah kapasitas

Perilaku coba lagi secara otomatis mencoba pengiriman hingga 1 jam dengan penundaan minimum 30 detik di antara upaya. Perilaku coba lagi ini tidak dapat dikonfigurasi. 

## Manajemen lalu lintas suar per detik
<a name="ad-reporting-server-side-tps-management"></a>

Anda dapat menetapkan batas TPS untuk mengontrol tarif pengiriman suar. Ini adalah satu-satunya pengaturan yang dapat dikonfigurasi untuk fitur pelacakan sisi server. Batas tingkat akun membatasi jumlah total permintaan pelacakan iklan yang dikirim ke semua mitra pengukuran. MediaTailor memberlakukan batas minimum TPS 10.000 untuk menyediakan kapasitas yang cukup untuk operasi skala perusahaan.

Kirim tiket AWS dukungan untuk menetapkan batas TPS dengan informasi berikut:
+ **AWS Account ID** - Pengenal akun spesifik Anda
+ **Wilayah target** - Wilayah AWS tempat Anda ingin batas TPS diterapkan
+ **Ambang TPS yang diinginkan** - Transaksi wajib Anda per detik batas (minimum 10.000)

Secara default, tidak ada batasan TPS. Anda dapat meminta batas TPS jika server keputusan iklan (ADS) memerlukannya, tetapi batasnya harus lebih besar dari 10.000 TPS. MediaTailor tidak akan melebihi batas yang Anda tentukan, tetapi tidak menjamin throughput yang konsisten hingga batas tersebut. Server keputusan iklan Anda akan memberi tahu Anda batasan TPS apa yang dapat didukungnya.

## Beaconing sesuai pesanan
<a name="ad-reporting-server-side-in-order-beaconing"></a>

MediaTailor secara otomatis mempertahankan pengiriman peristiwa pelacakan iklan secara berurutan. Sistem mempertahankan pemesanan suar bahkan ketika masalah jaringan, percobaan ulang, atau manajemen lalu lintas terjadi. Ini memastikan mitra pengukuran menerima peristiwa dalam urutan yang benar untuk analitik yang akurat.

Sistem mengikuti urutan suar industri standar:

1. **Mulai acara** - Api saat pemutaran iklan dimulai

1. **Acara kuartil pertama** - Api pada penyelesaian iklan 25%

1. **Acara titik tengah** - Kebakaran pada penyelesaian iklan 50%

1. **Acara kuartil ketiga** - Api pada penyelesaian iklan 75%

1. **Acara penyelesaian** - Api saat iklan selesai

Fitur-fitur ini bekerja sama secara otomatis:
+ Beacon ditahan selama throttling untuk menjaga ketertiban yang benar
+ Setiap domain mitra pengukuran memiliki antrian acara terpisah untuk mencegah gangguan selama penyesuaian tarif
+ Deduplikasi melacak jenis peristiwa dan posisi garis waktu sambil mempertahankan urutan kronologis

# Pelacakan iklan sisi klien
<a name="ad-reporting-client-side"></a>

Menggunakan API pelacakan AWS Elemental MediaTailor sisi klien, Anda dapat menggabungkan kontrol pemutar selama jeda iklan dalam alur kerja streaming. Dalam pelacakan sisi klien, pemain atau klien memancarkan peristiwa pelacakan, seperti tayangan dan suar iklan kuartil, ke Server Keputusan Iklan (ADS) dan entitas verifikasi iklan lainnya. Peristiwa ini melacak status jeda iklan secara keseluruhan dan masing-masing iklan yang tersedia dalam setiap jeda. Untuk informasi selengkapnya tentang tayangan dan kuartil (ADS) dan entitas verifikasi iklan lainnya. Untuk informasi selengkapnya tentang tayangan dan suar iklan kuartil, lihat. [Beaconing sisi klien](ad-reporting-client-side-beaconing.md) Untuk informasi selengkapnya tentang ADS dan entitas verifikasi iklan lainnya, lihat[Integrasi pelacakan iklan sisi klien](ad-reporting-client-side-ad-tracking-integrations.md).

Untuk informasi tentang meneruskan parameter pemain dan data sesi ke ADS untuk pelacakan sisi klien, lihat [MediaTailor variabel pemain untuk permintaan ADS](variables-player.md) dan. [MediaTailor variabel sesi untuk permintaan ADS](variables-session.md)

Pelacakan sisi klien memungkinkan fungsionalitas seperti berikut: 
+ Penghitung waktu mundur jeda iklan - Untuk informasi lebih lanjut, lihat. [Penghitung waktu mundur iklan](ad-reporting-client-side-ad-tracking-schema-player-controls.md#ad-reporting-client-side-ad-tracking-schema-player-controls-ad-countdown-timer)
+ Klik iklan - Untuk informasi lebih lanjut, lihat. [Klik-tayang iklan](ad-reporting-client-side-ad-tracking-schema-player-controls.md#ad-reporting-client-side-ad-tracking-schema-player-controls-ad-clickthrough)
+ Tampilan iklan pendamping - Untuk informasi selengkapnya, lihat[Iklan pendamping](ad-reporting-client-side-ad-tracking-schema-player-controls.md#ad-reporting-client-side-ad-tracking-schema-player-controls-companion-ads).
+ Iklan yang dapat dilewati - Untuk informasi lebih lanjut, lihat. [Iklan yang dapat dilewati](ad-reporting-client-side-ad-tracking-schema-player-controls.md#ad-reporting-client-side-ad-tracking-schema-player-controls-skippable-ads)
+ Tampilan ikon VAST untuk kepatuhan privasi - Untuk informasi selengkapnya, lihat[Ikon untuk Google Mengapa Iklan Ini (WTA)](ad-reporting-client-side-ad-tracking-schema-player-controls.md#ad-reporting-client-side-ad-tracking-schema-player-controls-google-wta).
+ Kontrol penggosokan pemain selama iklan - Untuk informasi selengkapnya, lihat[Menggosok](ad-reporting-client-side-ad-tracking-schema-player-controls.md#ad-reporting-client-side-ad-tracking-schema-player-controls-scrubbing).

Dengan menggunakan API pelacakan MediaTailor sisi klien, Anda dapat mengirim metadata ke perangkat pemutaran yang memungkinkan fungsionalitas selain pelacakan sisi klien:

## Alur kerja pelaporan sisi klien
<a name="ad-reporting-client-side-workflow"></a>

Diagram berikut menunjukkan alur kerja pelaporan sisi klien yang lengkap dari inisialisasi sesi melalui pemutaran iklan dan beaconing:

![\[MediaTailor Diagram urutan pelaporan sisi klien yang menunjukkan interaksi antara pemutar video, Server Keputusan Iklan MediaTailor, asal konten, dan layanan verifikasi iklan selama alur kerja lengkap dari inisialisasi sesi melalui pemutaran iklan dan beaconing.\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/images/tracking_flow.png)


Alur kerja pelaporan sisi klien mencakup langkah-langkah berikut:

1. **Inisialisasi sesi** - Pemutar video mengirimkan permintaan POST ke titik akhir MediaTailor sesi dengan metadata JSON termasuk`adsParams`, token asal, dan fitur sesi. MediaTailor merespons dengan `manifestUrl` dan `trackingUrl` untuk sesi tersebut.

1. **Permintaan manifes dan keputusan iklan** - Pemain meminta manifes yang dipersonalisasi dari MediaTailor. MediaTailor meminta manifes konten asli dari asal, membuat permintaan iklan ke Server Keputusan Iklan (ADS) menggunakan parameter pemutar, menerima respons VAST dengan metadata iklan, dan mengirimkan manifes yang dipersonalisasi dengan penanda iklan ke pemutar.

1. **Melacak pengambilan data** - Pemain melakukan polling URL pelacakan secara berkala (durasi target yang cocok untuk HLS atau periode pembaruan minimum untuk DASH). MediaTailor mengembalikan metadata pelacakan JSON yang berisi avails, iklan, peristiwa pelacakan, suar URLs, dan data verifikasi iklan.

1. **Pemutaran iklan dan beaconing** - Selama jeda iklan, pemain mem-parsing metadata pelacakan, menyalakan suar tayangan saat iklan mulai dirender, menyalakan suar kuartil (mulai, FirstQuartile, titik tengah, ThirdQuartile, complete) pada waktu yang tepat, memuat dan mengeksekusi verifikasi iklan jika diperlukan, dan mengirimkan acara ke layanan verifikasi pihak ketiga. JavaScript viewability/verification 

1. **Polling berkelanjutan** - Pemain terus melakukan polling URL pelacakan sepanjang sesi untuk menerima metadata terbaru untuk jeda iklan yang akan datang dan konten dinamis.

Alur kerja ini memungkinkan fitur-fitur canggih seperti penghitung waktu mundur iklan, fungsionalitas klik-tayang, iklan pendamping, iklan yang dapat dilewati, dan tampilan ikon VAST untuk kepatuhan privasi.

**Topics**
+ [Alur kerja pelaporan sisi klien](#ad-reporting-client-side-workflow)
+ [Mengaktifkan pelacakan sisi klien](#ad-reporting-client-side-enabling)
+ [Parameter server iklan](#ad-reporting-client-side-ad-server-parameters)
+ [Parameter kueri interaksi asal](#ad-reporting-client-side-origin-interaction-query-parameters)
+ [Fitur yang dikonfigurasi sesi](#ad-reporting-client-side-session-configured-features)
+ [Praktik terbaik untuk pelacakan sisi klien](#ad-reporting-client-side-best-practices)
+ [Skema dan properti pelacakan iklan sisi klien](ad-reporting-client-side-ad-tracking-schema.md)
+ [Waktu aktivitas pelacakan iklan](ad-reporting-client-side-ad-tracking-schema-activity-timing.md)
+ [Kontrol dan fungsionalitas pemain untuk pelacakan iklan sisi klien](ad-reporting-client-side-ad-tracking-schema-player-controls.md)
+ [Beaconing sisi klien](ad-reporting-client-side-beaconing.md)
+ [Mode hybrid dengan suar iklan sisi server](ad-reporting-hybrid-mode.md)
+ [Integrasi pelacakan iklan sisi klien](ad-reporting-client-side-ad-tracking-integrations.md)
+ [Paging melalui suar iklan dengan GetTracking](#gettracking)

## Mengaktifkan pelacakan sisi klien
<a name="ad-reporting-client-side-enabling"></a>

Anda mengaktifkan pelacakan sisi klien untuk setiap sesi. Pemain membuat HTTP `POST` ke titik akhir awalan sesi inisialisasi MediaTailor konfigurasi. Secara opsional, pemain dapat mengirim metadata tambahan MediaTailor untuk digunakan saat melakukan panggilan iklan, memanggil asal untuk manifes, dan memanggil atau menonaktifkan MediaTailor fitur di tingkat sesi.

Contoh berikut menunjukkan struktur metadata 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.
}
```

Gunakan MediaTailor konsol atau API untuk mengonfigurasi URL templat permintaan ADS untuk mereferensikan parameter ini. Dalam contoh berikut, `player_params.param1` adalah parameter pemain untuk`param1`, dan `player_params.param2` merupakan parameter pemain untuk`param2`.

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

## Parameter server iklan
<a name="ad-reporting-client-side-ad-server-parameters"></a>

Pada tingkat paling atas dari struktur JSON adalah objek `adsParams` JSON. Di dalam objek ini adalah key/value pasangan yang MediaTailor dapat membaca dan mengirim ke server iklan di semua permintaan sesi. MediaTailor mendukung server iklan berikut:
+ Pengelola Iklan Google 
+ SpringServe 
+ FreeWheel 
+ Publica 

## Parameter kueri interaksi asal
<a name="ad-reporting-client-side-origin-interaction-query-parameters"></a>

Setiap key/value pasangan cadangan dalam tingkat paling atas struktur JSON, seperti,`adsParams`, dan `availSuppression``overlayAvails`, tidak ditambahkan ke URL permintaan asal dalam bentuk parameter kueri. Setiap permintaan manifes sesi yang MediaTailor dibuat ke asal berisi parameter kueri ini. Asal mengabaikan parameter kueri asing. Misalnya, MediaTailor dapat menggunakan key/value pasangan untuk mengirim token akses ke asal.

## Fitur yang dikonfigurasi sesi
<a name="ad-reporting-client-side-session-configured-features"></a>

Gunakan struktur JSON inisialisasi sesi untuk mengaktifkan, menonaktifkan, atau mengganti MediaTailor fitur seperti,, dan. `overlayAvails` `availSuppression` `adSignaling` Konfigurasi fitur apa pun yang diteruskan selama inisialisasi sesi mengesampingkan pengaturan pada tingkat konfigurasi. MediaTailor 

**catatan**  
Metadata yang dikirimkan MediaTailor pada saat inisialisasi sesi tidak dapat diubah, dan metadata tambahan tidak dapat ditambahkan selama sesi berlangsung. Gunakan penanda SCTE-35 untuk membawa data yang berubah selama sesi berlangsung. Untuk informasi selengkapnya, lihat [MediaTailor variabel sesi untuk permintaan ADS](variables-session.md).

**Example : Melakukan pelacakan iklan sisi klien untuk 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 : Melakukan pelacakan iklan sisi klien untuk DASH**  

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

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

### Parameter mode pelaporan
<a name="session-initialization-reporting-mode"></a>

Anda dapat menentukan mode pelaporan saat menginisialisasi sesi dengan menyertakan `reportingMode` parameter di badan permintaan. Parameter ini mengontrol apakah MediaTailor melakukan pelacakan iklan sisi klien atau sisi server untuk sesi tersebut.
+ `client`- Pemain melakukan pelacakan iklan dan mengirim suar ke server iklan. Ini adalah mode default jika tidak `reportingMode` ditentukan.
+ `server`- MediaTailor melakukan pelacakan iklan sisi server dan mengirim suar langsung ke server iklan.

**Example Inisialisasi sesi dengan mode pelaporan sisi server**  

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

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

**Example Inisialisasi sesi dengan mode pelaporan sisi klien (eksplisit)**  

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

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

**catatan**  
`reportingMode`Parameter diatur pada inisialisasi sesi dan tidak dapat diubah selama sesi. Jika no `reportingMode` ditentukan, MediaTailor default pelaporan sisi klien untuk mempertahankan kompatibilitas mundur.

Respons yang berhasil adalah HTTP `200` dengan badan respons. Tubuh berisi objek JSON dengan `trackingUrl` kunci `manifestUrl` dan. Nilainya relatif URLs yang dapat digunakan pemain untuk tujuan pemutaran dan pelacakan acara iklan.

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

Untuk informasi selengkapnya tentang skema pelacakan sisi klien, lihat. [Skema dan properti pelacakan iklan sisi klien](ad-reporting-client-side-ad-tracking-schema.md)

## Praktik terbaik untuk pelacakan sisi klien
<a name="ad-reporting-client-side-best-practices"></a>

Bagian ini menguraikan praktik terbaik untuk pelacakan sisi klien MediaTailor untuk alur kerja langsung dan VOD.

### Alur kerja langsung
<a name="ad-reporting-client-side-best-practices-live"></a>

Polling titik akhir pelacakan pada interval yang cocok dengan setiap durasi target untuk HLS, atau periode pembaruan minimum untuk DASH, agar selalu memiliki metadata pelacakan iklan terbaru. Pencocokan interval ini sangat penting dalam alur kerja di mana materi iklan mungkin memiliki komponen interaktif atau overlay. 

**catatan**  
Beberapa pemain mendukung pendengar acara, yang dapat digunakan sebagai alternatif untuk polling. Misalnya, fitur dekorasi ID MediaTailor iklan harus diaktifkan untuk setiap sesi. Untuk informasi selengkapnya, lihat [Dekorasi ID Iklan](ad-id-decoration.md). Menggunakan fitur ini menempatkan pengenal rentang tanggal (HLS) atau elemen peristiwa (DASH) di atas setiap iklan yang tersedia. Pemain dapat menggunakan tag manifes ini sebagai prompt untuk memanggil titik akhir MediaTailor pelacakan untuk sesi tersebut.

### Alur kerja VOD
<a name="ad-reporting-client-side-best-practices-vod"></a>

Setelah inisialisasi sesi berhasil, dan setelah MediaTailor menerima manifes pertama yang berisi media, Anda hanya perlu memanggil titik akhir pelacakan sekali.

![\[Alur panggilan untuk alur kerja VOD. Panggil titik akhir pelacakan sisi klien setelah sesi diinisialisasi dan MediaTailor menerima manifes pertama yang berisi media.\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/images/vod-workflow-best-practice.png)


### Penyisipan iklan yang dipandu server
<a name="ad-reporting-client-side-best-practices-sgai"></a>

Sesi penyisipan iklan (SGAI) yang dipandu server tidak menggunakan API. `GetTracking` Sebagai gantinya, saat Anda menggunakan`aws.reportingMode=CLIENT`, MediaTailor berikan informasi pelacakan di `TRACKING` bagian setiap respons daftar aset saat pemain meminta konten iklan. Respons inisialisasi sesi tidak termasuk a`trackingUrl`.

Respons daftar aset untuk sesi SGAI yang dilacak sisi klien memiliki struktur berikut:

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

Saat menerapkan pelacakan sisi klien untuk metode SGAI:
+ Parse `TRACKING` bagian dari tanggapan daftar aset daripada menelepon `GetTracking`
+ Menggunakan pelacakan URLs yang disediakan dalam daftar aset untuk pelaporan peristiwa iklan
+ Beacon pelacak kebakaran berdasarkan peristiwa pemutaran iklan aktual di pemutar
+ Menangani pelacakan untuk setiap jeda iklan secara independen saat daftar aset diambil

**penting**  
`TRACKING`Bagian ini hanya disertakan dalam daftar aset saat `aws.reportingMode=CLIENT` disetel. Saat pelaporan sisi server digunakan (default untuk SGAI), MediaTailor hilangkan `TRACKING` bagian tersebut dan sematkan data suar di iklan sebagai gantinya. URIs Lihat perinciannya di [Pelacakan sisi server dengan penyisipan iklan yang dipandu server (SGAI)](ad-reporting-server-side-sgai.md).

# Skema dan properti pelacakan iklan sisi klien
<a name="ad-reporting-client-side-ad-tracking-schema"></a>

Dengan fitur pelacakan iklan MediaTailor sisi klien, Anda dapat mengintegrasikan data pelacakan iklan sisi klien yang mendetail ke dalam lingkungan pemutar Anda. Bagian berikut mencakup skema pelacakan iklan secara keseluruhan, serta properti dan nilai spesifik yang membentuk skema.

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

Struktur JSON berikut menunjukkan skema pelacakan iklan MediaTailor sisi klien. Representasi ini menggambarkan struktur bersarang skema untuk membantu Anda memahami hubungan antara bagian yang berbeda.

Untuk informasi rinci tentang setiap properti, lihat[Sifat-sifat](#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": {}
}
```

## Sifat-sifat
<a name="ad-reporting-client-side-ad-tracking-schema-properties"></a>

Tabel berikut mencantumkan properti di API pelacakan sisi klien, definisi, jenis nilai, dan contohnya.


****  

| Properti | Definisi | Tipe nilai | Contoh | 
| --- | --- | --- | --- | 
|   adID  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/ad-reporting-client-side-ad-tracking-schema.html) Jalan: `/avails/ads/adId` Pemetaan VAST: Tidak ada  | String | 10 | 
|   adBreakTrackingEvents  |  Array yang membawa peristiwa pelacakan VMAP dari respons VAST. Untuk informasi lebih lanjut, lihat bagian 2.3.3 dari spesifikasi [VMAP 1.0](https://www.iab.com/guidelines/vmap/). Jalan: `/avails/ads/adBreakTrackingEvents`  | Array |  []  | 
|   adMarkerDuration  |  Durasi avail yang diamati dari penanda iklan dalam manifes.  | String |  30  | 
|   adParameters  |  Serangkaian parameter iklan, dari VAST VPAID, yang MediaTailor lolos ke pemain. Jalan: `/avails/ads/adParameters` Pemetaan VAST: `VAST/Ad/InLine/Creatives/Creative/Linear/AdParameters`  | String |  | 
|   adProgramDateTime  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/ad-reporting-client-side-ad-tracking-schema.html)  | String |  | 
|   ads  |  Array yang berisi objek iklan yang membentuk avail. Iklan tercantum dalam urutan mereka muncul dalam manifes. Jalan: `/avails/ads`  | Array |  []  | 
|   adSystem  |  Nama sistem yang melayani iklan.  Pastikan untuk memberikan nilai. Jika Anda tidak memberikan nilai, masalah dapat muncul.   | String |  myADS  | 
|   adTitle  |  Judul iklan.  | String |  ad1  | 
|   adVerifications  |  Berisi sumber daya dan metadata yang diperlukan untuk mengeksekusi kode pengukuran pihak ketiga untuk memverifikasi pemutaran kreatif. Untuk informasi lebih lanjut tentang properti ini, lihat bagian 3.16 dari [spesifikasi VAST 4.2](https://iabtechlab.com/standards/vast/). MediaTailor mendukung `adVerifications` sebagai VAST 3 node ekstensi. Jalan: `/avails/ads/adVerifications` Pemetaan VAST: `VAST/Ad/InLine/AdVerifications`  | Array |  []  | 
|   altText  |  Teks alternatif untuk gambar iklan pendamping. Teks ini memungkinkan pemain dengan dukungan deskriptif-audio untuk tunanetra untuk membaca kembali deskripsi gambar. Jalan: `/avails/ads/companionAds/altText`  | String |  video sequence advertising sneakers  | 
|   apiFramework  |  Setel `VPAID` untuk memberi tahu pemain bahwa iklan ini adalah iklan VPAID. Dapat muncul di beberapa lokasi dalam skema.  | String |  VPAID  | 
|   availID  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/ad-reporting-client-side-ad-tracking-schema.html) Jalan: `/avails/availID`  | String |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/ad-reporting-client-side-ad-tracking-schema.html)  | 
|   avails  |  Array yang berisi objek pemecah iklan, atau *avails*, yang disajikan di jendela manifes aktif. Ketersediaan tercantum dalam urutan mereka muncul dalam manifes. Jalan: `/avails`  | Array |  []  | 
|   adType  |  Jenis iklan. Jalan: `/avails/adType` dan `/avails/ads/adType`  | String |  | 
|   dateTime  |  Waktu tanggal program, dalam format ISO 8601 detik, untuk memulai iklan atau iklan. Jalan: `/avails/dateTime` dan `/avails/ads/dateTime`  | String |  | 
|   duration  |  Panjangnya, dalam format ISO 8601 detik. Respons mencakup durasi untuk seluruh iklan yang tersedia dan untuk setiap iklan dan suar, meskipun durasi suar selalu nol. Jalan: `/avails/duration` dan `/avails/ads/duration`  | String | 15.015 | 
|   durationInSeconds  |  Panjangnya, dalam format detik. Jalan: `/avails/durationInSeconds` dan `/avails/ads/durationInSeconds`  | Bilangan |  | 
|   extensions  |  Ekstensi khusus VAST yang digunakan server iklan. Untuk informasi selengkapnya tentang ekstensi, lihat bagian 3.18 dari [spesifikasi VAST 4.2](https://iabtechlab.com/standards/vast/). Jalan: `/avails/ads/extensions` Pemetaan VAST: `VAST/Ad/InLine/Extensions`  | Array | [] | 
|   icons  |  Elemen ikon untuk iklan. Jalan: `/avails/ads/icons` Pemetaan VAST: `VAST/Ad/InLine/Creatives/Creative/Linear/Icons`  | Array |  | 
|   mediaFiles  |  Video dan aset lain yang dibutuhkan pemain untuk iklan. Jalan: `/avails/ads/mediaFiles`  | Objek |  | 
|   nonLinearAvails  |  Array objek yang memanfaatkan iklan non-linier. Jalan: `/nonLinearAvails`  | Array |  | 
|   executableResource  |  Sumber daya yang dapat dieksekusi untuk verifikasi. Jalan: `/avails/ads/adVerifications/executableResource` Pemetaan VAST: `VAST/Ad/InLine/AdVerifications/Verification/ExecutableResource`  | Array |  | 
|   javaScriptResource  |  JavaScript sumber daya untuk verifikasi. Jalan: `/avails/ads/adVerifications/javaScriptResource` Pemetaan VAST: `VAST/Ad/InLine/AdVerifications/Verification/JavaScriptResource`  | Array |  | 
|   trackingEvents  |  Melacak acara untuk verifikasi atau iklan pendamping. Jalur: `/avails/ads/adVerifications/trackingEvents` atau `/avails/ads/companionAds/trackingEvents`  | Array |  | 
|   vendor  |  Vendor verifikasi. Jalan: `/avails/ads/adVerifications/vendor` Pemetaan VAST: `VAST/Ad/InLine/AdVerifications/Verification/@vendor`  | String |  | 
|   uri  |  URI yang menunjuk ke aset yang dapat dieksekusi, aset video, atau titik akhir pelacakan. Path: Berbagai lokasi dalam skema Pemetaan VAST: Berbagai elemen CDATA di VAST  | String | https://tracking.example.com/impression | 
|   verificationParameters  |  Parameter verifikasi. Jalan: `/avails/ads/adVerifications/verificationParameters` Pemetaan VAST: `VAST/Ad/InLine/AdVerifications/Verification/VerificationParameters`  | String |  | 
|   attributes  |  Atribut iklan pendamping seperti dimensi dan mode rendering. Jalan: `/avails/ads/companionAds/attributes`  | Objek |  | 
|   companionClickThrough  |  URL ke halaman pengiklan yang dibuka pemutar media saat pemirsa mengklik iklan pendamping. Jalan: `/avails/ads/companionAds/companionClickThrough` Pemetaan VAST: `VAST/Ad/InLine/Creatives/Creative/CompanionAds/Companion/CompanionClickThrough`  | String | https://aws.amazon.com/ | 
|   companionClickTracking  |  URL pelacakan untuk `companionClickThrough` properti. Jalan: `/avails/ads/companionAds/companionClickTracking` Pemetaan VAST: `VAST/Ad/InLine/Creatives/Creative/CompanionAds/Companion/CompanionClickTracking`  | String | https://myads.com/beaconing/event=clicktracking | 
|   htmlResource  |  HTML yang dikodekan CData yang dimasukkan langsung ke dalam halaman HTML penyedia streaming. Jalan: `/avails/ads/companionAds/htmlResource` Pemetaan 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 ke file sumber daya HTML yang dimuat penyedia streaming ke dalam iframe. Jalan: `/avails/ads/companionAds/iFrameResource` Pemetaan VAST: `VAST/Ad/InLine/Creatives/Creative/CompanionAds/Companion/iFrameResource`  | String |  | 
|   sequence  |  Nilai urutan yang ditentukan untuk kreatif dalam respons VAST. Jalan: `/avails/ads/companionAds/sequence`  | String | 1 | 
|   startTime  |  Posisi waktu, dalam format ISO 8601 detik. Untuk HLS, ini relatif terhadap awal sesi pemutaran. Untuk DASH, ini relatif terhadap AST manifes (Waktu Mulai Ketersediaan). Responsnya mencakup waktu mulai untuk seluruh iklan yang tersedia dan untuk setiap iklan dan suar. Jalan: `/avails/startTime` dan `/avails/ads/startTime`  | String | PT18.581355S | 
|   startTimeInSeconds  |  Posisi waktu, dalam format detik. Untuk HLS, ini relatif terhadap awal sesi pemutaran. Untuk DASH, ini relatif terhadap AST manifes (Waktu Mulai Ketersediaan). Responsnya mencakup waktu mulai untuk seluruh iklan yang tersedia dan untuk setiap iklan dan suar. Jalan: `/avails/startTimeInSeconds` dan `/avails/ads/startTimeInSeconds`  | Bilangan | 18.581 | 
|   eventId  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/ad-reporting-client-side-ad-tracking-schema.html)  | String |  | 
|   event  |  Nama acara pelacakan. Jalur: `/avails/ads/adVerifications/trackingEvents/event` atau `/avails/ads/companionAds/trackingEvents/event`  | String | impression, start, firstQuartile, midpoint, thirdQuartile, complete | 
|   beaconUrls  |  URL tempat MediaTailor mengirim suar iklan. Jalan: `/avails/ads/mediaFiles/trackingEvents/beaconUrls`  | Array |  | 
|   bitrate  |  Bitrate dari aset video. Properti ini biasanya tidak termasuk untuk aset yang dapat dieksekusi.  | String | 2048 | 
|   companionAds  |  Satu atau beberapa spesifikasi konten iklan pendamping, yang masing-masing menentukan file sumber daya untuk digunakan. Iklan pendamping menyertai iklan yang tersedia dan menyediakan konten, seperti bingkai di sekitar iklan atau spanduk, untuk ditampilkan di dekat video. Jalan: `/avails/ads/companionAds`  | Array | [] | 
|   creativeId  |  Nilai `Id` atribut `Creative` tag untuk iklan.  | String | creative-1 | 
|   creativeSequence  |  Urutan di mana iklan harus diputar, sesuai dengan `Ad@id` nilai dalam respons VAST.  | String | 1 | 
|   dashAvailabilityStartTime  |  Untuk live/dynamic DASH, manifes asal. `MPD@availabilityStartTime`  | String | 2022-10-05T19:38:39.263Z | 
|   delivery  |  Menunjukkan apakah `streaming` protokol `progressive` atau sedang digunakan.  | String | progressive | 
|   eventType  |  Jenis suar. Jalan: `/avails/ads/mediaFiles/trackingEvents/eventType`  | String | impression | 
|   height  |  Ketinggian, dalam piksel, dari aset video.  | String | 360 | 
|   hlsAnchorMediaSequenceNumber  |  Nomor urutan media dari urutan first/oldest media yang terlihat dalam manifes asal HLS.  | String | 77 | 
|   maintainAspectRatio  |  Menunjukkan apakah akan mempertahankan rasio aspek video saat melakukan penskalaan.  | Boolean | true | 
|   mediaFilesList  |  Menentukan video dan aset lain yang dibutuhkan pemain untuk iklan yang tersedia. Jalan: `/avails/ads/mediaFiles/mediaFilesList`  | Array | [] | 
|   mediaFileUri  |  URI yang menunjuk ke aset yang dapat dieksekusi atau aset video.  | String | https://myad.com/ad/ad134/vpaid.js | 
|   mediaType  |  Jenis MIME dari aset kreatif atau pendamping.  | String | video/mp4 | 
|   meta  |  Metadata tambahan untuk iklan.  | Objek |  | 
|   mezzanine  |  URL MP4 aset mezzanine, ditentukan jika iklan VPAID menyertakan satu. Jalan: `/avails/ads/mediaFiles/mezzanine`  | String | https://gcdn.2mdn.net/videoplayback/id/itag/ck2/file/file.mp4 | 
|   nextToken  |  Nilai token yang menunjuk ke halaman hasil berikutnya, ketika nilai seperti itu ada.  | String | UFQzOS44NzNTXzIwMjMtMDctMzFUMTY6NTA6MDYuMzUwNjI2ODQ1Wl8x | 
|   nonLinearAds  |  Iklan non-linear yang muncul di samping konten video.  | Array | [] | 
|   nonLinearAdsList  |  Daftar iklan non-linier.  | Array | [] | 
|   scalable  |  Menunjukkan apakah akan menskalakan video ke dimensi lain.  | Boolean | true | 
|   skipOffset  |  Nilai waktu yang mengidentifikasi kapan pemain membuat kontrol lewati tersedia bagi pengguna.  | String | 00:00:05 | 
|   staticResource  |  URL ke file kreatif statis yang digunakan untuk komponen iklan. Jalan: `/avails/ads/companionAds/staticResource`  | String | https://very-interactive-ads.com/campaign1/file.json?c=1019113602 | 
|   vastAdId  |  Nilai `Id` atribut `Ad` tag.  | String | ad1 | 
|   width  |  Lebar, dalam piksel, dari aset video.  | String | 640 | 
|   xPosition  |  Posisi horizontal ikon dalam pemutar video. Bisa berupa nilai piksel tertentu atau posisi seperti “kiri” atau “kanan”. Jalan: `/avails/ads/icons/attributes/xPosition`  | String | left atau 10 | 
|   yPosition  |  Posisi vertikal ikon dalam pemutar video. Dapat berupa nilai piksel tertentu atau posisi seperti “atas” atau “bawah”. Jalan: `/avails/ads/icons/attributes/yPosition`  | String | top atau 10 | 
|   iconClicks  |  Berisi informasi klik-tayang dan pelacakan untuk sebuah ikon. Jalan: `/avails/ads/icons/iconClicks`  | Objek |  | 
|   iconClickThrough  |  URL ke halaman pengiklan yang dibuka pemutar media saat pemirsa mengklik ikon. Jalan: `/avails/ads/icons/iconClicks/iconClickThrough`  | String | https://advertiser.com/landing-page | 
|   iconClickTracking  |  URL pelacakan untuk `iconClickThrough` properti. Jalan: `/avails/ads/icons/iconClicks/iconClickTracking`  | Objek |  | 
|   iconClickFallbackImages  |  Array gambar fallback untuk ditampilkan jika ikon tidak dapat ditampilkan. Jalan: `/avails/ads/icons/iconClicks/iconClickFallbackImages`  | Array |  | 
|   iconViewTracking  |  URL untuk melacak saat ikon dilihat. Jalan: `/avails/ads/icons/iconViewTracking`  | String | https://tracking.example.com/icon-view | 
|   offset  |  Waktu mengimbangi kapan ikon akan muncul selama pemutaran iklan. Jalan: `/avails/ads/icons/attributes/offset`  | String | 00:00:05 | 
|   program  |  Program atau inisiatif yang terkait dengan ikon, seperti "AdChoices”. Jalan: `/avails/ads/icons/attributes/program`  | String | AdChoices | 
|   pxratio  |  Rasio piksel untuk ikon atau iklan pendamping, digunakan untuk tampilan DPI tinggi. Jalur: `/avails/ads/icons/attributes/pxratio` atau `/avails/ads/companionAds/attributes/pxratio`  | String | 1 atau 2 | 
|   type  |  Jenis sumber daya atau ekstensi. Jalur: `/avails/ads/extensions/type` atau `/avails/ads/adVerifications/executableResource/type`  | String | text/javascript | 
|   content  |  Isi ekstensi. Jalan: `/avails/ads/extensions/content`  | String |  | 
|   language  |  Bahasa pemrograman dari sumber daya yang dapat dieksekusi. Jalan: `/avails/ads/adVerifications/executableResource/language`  | String | javascript | 
|   browserOptional  |  Menunjukkan apakah dukungan browser diperlukan untuk JavaScript sumber daya. Jalan: `/avails/ads/adVerifications/javaScriptResource/browserOptional`  | String | true atau false | 
|   id  |  Pengidentifikasi untuk berbagai elemen dalam skema. Jalur: `/avails/ads/companionAds/attributes/id` atau `/avails/ads/icons/iconClicks/iconClickTracking/id`  | String | companion-1 | 
|   assetHeight  |  Ketinggian aset iklan pendamping. Jalan: `/avails/ads/companionAds/attributes/assetHeight`  | String | 250 | 
|   assetWidth  |  Lebar aset iklan pendamping. Jalan: `/avails/ads/companionAds/attributes/assetWidth`  | String | 300 | 
|   expandedHeight  |  Ketinggian iklan pendamping saat diperluas. Jalan: `/avails/ads/companionAds/attributes/expandedHeight`  | String | 600 | 
|   expandedWidth  |  Lebar iklan pendamping saat diperluas. Jalan: `/avails/ads/companionAds/attributes/expandedWidth`  | String | 600 | 
|   renderingMode  |  Mode rendering untuk iklan pendamping. Jalan: `/avails/ads/companionAds/attributes/renderingMode`  | String | default atau transparent | 
|   adSlotId  |  ID slot iklan tempat iklan pendamping harus ditampilkan. Jalan: `/avails/ads/companionAds/attributes/adSlotId`  | String | banner-1 | 
|   creativeType  |  Jenis MIME dari aset kreatif. Jalan: `/avails/ads/icons/staticResource/creativeType`  | String | image/png | 

# Waktu aktivitas pelacakan iklan
<a name="ad-reporting-client-side-ad-tracking-schema-activity-timing"></a>

Dengan pelaporan sisi klien, pemain harus memancarkan peristiwa pelacakan (beacon) dengan tingkat presisi. Dengan menggunakan skema pelacakan MediaTailor sisi klien, Anda dapat memastikan bahwa, untuk setiap keuntungan, iklan, pendamping, hamparan, dan peristiwa pelacakan, informasi waktu dan durasi hadir, dan dalam berbagai bentuk.

Gunakan pasangan MediaTailor kunci/nilai berikut agar pemain dapat secara akurat merekonsiliasi aktivitas acara iklan, seperti melacak peristiwa, dengan posisi pemutaran:
+ [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 dan DASH menerapkan nilai `startTime` dan `startTimeInSeconds` berbeda:
+ HLS - `startTime` Nilainya relatif terhadap awal sesi pemutaran. Awal sesi pemutaran didefinisikan sebagai waktu nol. Iklan `startTime` adalah jumlah nilai kumulatif dari semua durasi `EXT-INF` segmen yang mengarah ke pemanfaatan. Nomor urutan media segmen tempat iklan atau peristiwa pelacakan jatuh juga sesuai dengan `adId` atau `eventId` dalam respons pelacakan sisi klien.
+ TANDA HUBUNG:
  + Manifestasi hidup/dinamis - `startTime` Nilainya relatif terhadap manifes `MPD@availabilityStartTime` DASH. `MPD@avaibilityStartTime`Ini adalah jangkar waktu untuk semua MediaTailor sesi yang menggunakan aliran.
  + Manifestasi VOD/statis - `startTime` Nilainya relatif terhadap awal sesi pemutaran. Awal sesi pemutaran didefinisikan sebagai waktu nol. Setiap iklan di dalam avail terkandung di dalam `Period` elemennya sendiri. `Period`Elemen memiliki `@start` atribut dengan nilai yang sama dengan `startTime` nilai di payload pelacakan sisi klien. `PeriodId`Juga sesuai dengan `adId` atau `eventId` dalam respons pelacakan sisi klien.

**Example : HLS**  
Dalam contoh berikut, MediaTailor sesi dimulai, dan manifes berikut adalah yang pertama disajikan kepada klien:  

```
#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
```
Di sisi klien melacak payload JSON, nilai berikut berlaku:  
+  `startTime`: `"PT18.581355S"` 
+  `startTimeInSeconds`: `18.581` 
+  `availProgramDateTime`: `"2023-05-03T21:24:41.453Z"` 
+  `adId`: `4603269` 

**Example : DASBOR**  
Dalam contoh berikut, MediaTailor sesi mendapat midroll dalam manifes. Perhatikan bahwa nilai `@start` atribut periode kedua, yang merupakan periode iklan, memiliki nilai yang relatif terhadap `MPD@availabilityStartTime` nilai. Nilai ini adalah nilai yang MediaTailor menulis ke `startTime` bidang respons pelacakan sisi klien, untuk semua sesi.  

```
<?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>
```
Di sisi klien melacak payload JSON, nilai berikut berlaku:  
+  `startTime`: `"PT5042H27M59.931S"` 
+  `startTimeInSeconds`: `18152879.931` 
+  `availProgramDateTime`: *null* 
+  `adId`: `1683151599194_1_1` 

# Kontrol dan fungsionalitas pemain untuk pelacakan iklan sisi klien
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls"></a>

MediaTailor metadata pelacakan sisi klien mendukung berbagai kontrol dan fungsionalitas pemain. Daftar berikut menjelaskan kontrol pemain populer.

**Topics**
+ [Menggosok](#ad-reporting-client-side-ad-tracking-schema-player-controls-scrubbing)
+ [Penghitung waktu mundur iklan](#ad-reporting-client-side-ad-tracking-schema-player-controls-ad-countdown-timer)
+ [Iklan yang dapat dilewati](#ad-reporting-client-side-ad-tracking-schema-player-controls-skippable-ads)
+ [Klik-tayang iklan](#ad-reporting-client-side-ad-tracking-schema-player-controls-ad-clickthrough)
+ [Iklan pendamping](#ad-reporting-client-side-ad-tracking-schema-player-controls-companion-ads)
+ [Iklan interaktif (SIMID)](#ad-reporting-client-side-ad-tracking-schema-player-controls-simid-ads)
+ [Iklan interaktif (VPAID)](#ad-reporting-client-side-ad-tracking-schema-player-controls-vpaid-ads)
+ [Ikon untuk Google Mengapa Iklan Ini (WTA)](#ad-reporting-client-side-ad-tracking-schema-player-controls-google-wta)

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

Untuk meningkatkan pengalaman pemutaran, pemain dapat menampilkan posisi iklan di timeline pemutaran. MediaTailor membuat posisi iklan ini tersedia dalam bentuk `startTimeInSeconds` nilai dalam respons pelacakan sisi klien.

**catatan**  
Beberapa penyedia streaming mencegah menggosok melewati posisi iklan.

![\[Tangkapan layar yang menunjukkan posisi MediaTailor penandaan di timeline video tempat iklan diputar.\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/images/scrubbing.png)


Respons JSON payload pelacakan sisi klien berikut menunjukkan waktu mulai avail (jeda iklan) di dalam objek root JSON dari array avails. Pemain menggunakan data ini untuk menunjukkan lokasi jeda iklan pada timeline pemain, pada 28 detik.

```
{
  "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": []
}
```

## Penghitung waktu mundur iklan
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-ad-countdown-timer"></a>

Dengan MediaTailor Anda dapat menggunakan penghitung waktu mundur iklan untuk membantu menjaga audiens Anda tetap terlibat selama penayangan jeda iklan. Audiens dapat menggunakan timer untuk memahami kapan jeda iklan berakhir dan program mereka dilanjutkan.

![\[Tangkapan layar yang MediaTailor menampilkan penghitung waktu mundur iklan, yang memberi tahu audiens waktu yang tersisa hingga program mereka dilanjutkan.\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/images/ad-countdown-timer.png)


Elemen dalam metadata pelacakan sisi klien yang berperan dalam penghitung waktu mundur iklan adalah,,, dan. `startTime` `startTimeInSeconds` `duration` `durationInSeconds` Pemain menggunakan metadata ini, bersama dengan waktu berlalu sesi yang dilacaknya secara terpisah, untuk menentukan kapan harus menampilkan timer dan nilai yang harus dihitung mundur.

Respons JSON payload pelacakan sisi klien berikut menunjukkan informasi yang diperlukan untuk menampilkan penghitung waktu mundur iklan.

```
{
  "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": []
}
```

Ketika waktu berlalu sesi mencapai waktu mulai avail, pemain menampilkan penghitung waktu mundur dengan nilai yang sesuai dengan durasi avail. Nilai penghitung waktu mundur menurun seiring berjalannya waktu yang telah berlalu melampaui waktu mulai yang tersedia.

**Example rumus: Penghitung waktu mundur untuk HLS (live dan VOD) dan DASH (VOD)**  
+ `session_start_time`= jumlah semua nilai `EXT-INF` durasi - nilai durasi dari tiga urutan `EXT-INF` media terbaru
+ nilai timer = `duration` - (`session_elapsed_time`-`startTime`)

![\[Diagram yang menunjukkan perhitungan penghitung waktu mundur iklan, berdasarkan waktu mulai sesi dan waktu mulai avail, untuk manifes HLS (live dan VOD) dan DASH (VOD).\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/images/ad-countdown-timer-hls-dash-vod.png)


**Example rumus: Penghitung waktu mundur untuk DASH (langsung)**  
+ `session_start_time`= (segmen terbaru `startTime` \$1`duration`)/`timescale`- `MPD@suggestedPresentationDelay`
+ nilai timer = `duration` - (`session_elapsed_time`-`startTime`)

![\[Diagram yang menunjukkan perhitungan penghitung waktu mundur iklan, berdasarkan waktu mulai sesi dan waktu mulai yang tersedia, untuk manifes DASH langsung.\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/images/ad-countdown-timer-dash-live.png)


## Iklan yang dapat dilewati
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-skippable-ads"></a>

*Iklan yang dapat dilewati* adalah tempat iklan yang memungkinkan pemirsa melewati beberapa iklan untuk melanjutkan melihat program. Di VAST, `Linear@skipOffset` atribut mengidentifikasi iklan yang dapat dilewati. 

Respons VAST berikut menunjukkan cara menggunakan iklan yang dapat dilewati:

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

Respons JSON payload pelacakan sisi klien berikut menunjukkan metadata iklan di dalam array. `ads` Array berisi `skipOffset` nilai yang MediaTailor diperoleh dari respon 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": []
}
```

## Klik-tayang iklan
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-ad-clickthrough"></a>

Klik-tayang URIs memungkinkan pengiklan mengukur seberapa sukses iklan dalam menarik perhatian pemirsa. Setelah pemirsa mengklik bingkai video aktif iklan yang sedang berlangsung, browser web akan membuka URI untuk beranda pengiklan atau halaman arahan kampanye. Pengembang pemutar menentukan perilaku klik, seperti melapisi tombol atau label pada video iklan, dengan pesan untuk diklik untuk mempelajari lebih lanjut. Pengembang pemutar sering menjeda video iklan setelah pemirsa mengklik bingkai video aktif.

![\[Tangkapan layar dari klik-tayang iklan di pemutar video. Pemirsa mengklik bingkai video. Pemain menjeda video, lalu membuka browser web untuk membawa pemirsa ke beranda pengiklan atau halaman arahan kampanye.\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/images/ad-clickthrough.png)


MediaTailor dapat mengurai dan menyediakan acara klik-tayang video linier yang URLs dikembalikan dalam respons VAST. Respons VAST berikut menampilkan contoh klik-tayang iklan.

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

Respons JSON payload pelacakan sisi klien berikut menunjukkan cara MediaTailor menampilkan click-through dan click-tracking di dalam array. URLs `trackingEvents` Jenis `clickThrough` peristiwa mewakili iklan klik-tayang, dan jenis `clickTracking` acara mewakili URL pelacakan klik.

```
{
  "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": []
}
```

## Iklan pendamping
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-companion-ads"></a>

*Iklan pendamping* muncul di samping kreatif linier. Gunakan iklan pendamping untuk meningkatkan efektivitas tempat iklan dengan menampilkan informasi produk, logo, dan merek. Iklan bergambar dapat menampilkan kode Quick Response (QR) dan area yang dapat diklik untuk mempromosikan keterlibatan audiens.

MediaTailor mendukung iklan pendamping dalam respons VAST. Hal ini dapat melewati metadata dari`StaticResource`,, dan `HTMLResource` node`iFrameResource`, masing-masing.

Respons VAST berikut menunjukkan contoh lokasi dan format iklan linier dan iklan pendamping.

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

Data muncul di respons pelacakan sisi klien dalam daftar. `/avail/x/ads/y/companionAds` Setiap kreatif linier dapat berisi hingga 6 iklan pendamping. Seperti yang ditunjukkan pada contoh di bawah ini, iklan pendamping muncul dalam daftar

**catatan**  
Sebagai praktik terbaik, pengembang aplikasi harus menerapkan logika untuk secara eksplisit menghapus atau membongkar iklan pendamping di akhir materi iklan.

```
{
  "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": []
}
```

## Iklan interaktif (SIMID)
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-simid-ads"></a>

*SecureInteractive Media Interface Definition* (SIMID) adalah standar untuk iklan interaktif yang diperkenalkan dalam standar VAST 4.x dari Interactive Advertising Bureau (IAB). SIMID memisahkan pemuatan elemen interaktif dari kreatif linier utama pada pemain, merujuk keduanya dalam respons VAST. MediaTailor menjahit materi kreatif utama untuk mempertahankan pengalaman pemutaran, dan menempatkan metadata untuk komponen interaktif dalam respons pelacakan sisi klien.

Dalam contoh berikut VAST 4 respon, payload SIMID berada di dalam node. `InteractiveCreativeFile`

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

Dalam respons VAST 3 berikut, payload SIMID ada di dalam node. `Extensions`

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

Dalam respons pelacakan sisi klien berikut, data SIMID muncul dalam daftar. `/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": []
}
```

## Iklan interaktif (VPAID)
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-vpaid-ads"></a>

*Definisi Antarmuka Iklan Pemutar Video* (VPAID) menentukan protokol antara iklan dan pemutar video yang memungkinkan interaktivitas iklan dan fungsionalitas lainnya. Untuk streaming langsung, MediaTailor mendukung format VPAID dengan menjahit segmen batu tulis selama durasi penggunaan, dan menempatkan metadata untuk materi iklan VPAID dalam respons pelacakan sisi klien yang dikonsumsi pemutar video. Pemain mengunduh file VPAID dan memainkan kreatif linier dan menjalankan skrip klien. Pemain seharusnya *tidak* pernah memainkan segmen batu tulis.

**catatan**  
VPAID tidak digunakan lagi pada VAST 4.1.

![\[Diagram pemutaran iklan VPAID. MediaTailor menjahit segmen batu tulis untuk durasi yang tersedia di timeline konten. Pemain beralih ke aset VPAID untuk durasi avail.\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/images/interactive-ads-vpaid.png)


Contoh berikut menunjukkan konten VPAID dalam respons 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>
```

Contoh berikut menunjukkan informasi pelacakan.

```
{
  "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": []
}
```

## Ikon untuk Google Mengapa Iklan Ini (WTA)
<a name="ad-reporting-client-side-ad-tracking-schema-player-controls-google-wta"></a>

*AdChoices*adalah standar industri yang memberi pemirsa informasi tentang iklan yang mereka lihat, termasuk bagaimana iklan tersebut ditargetkan kepada mereka.

![\[Google Mengapa Logo Iklan Ini (WTA). WTA menginformasikan pemirsa tentang iklan yang mereka lihat, termasuk bagaimana iklan tersebut ditargetkan kepada mereka.\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/images/google-wta.png)


API pelacakan MediaTailor sisi klien mendukung metadata ikon yang dibawa di node ekstensi VAST dari respons VAST. Untuk informasi selengkapnya tentang WTA dalam respons VAST, lihat [contoh respons XMLVAST ini](https://storage.googleapis.com/interactive-media-ads/ad-tags/ima_wta_sample_vast_3.xml).

**catatan**  
MediaTailor saat ini mendukung VAST versi 3 saja.

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

Contoh berikut menunjukkan respons pelacakan sisi klien dalam daftar. `/avails/x/ads/y/extensions`

```
{
  "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": []
}
```

# Beaconing sisi klien
<a name="ad-reporting-client-side-beaconing"></a>

Dengan `startTimeInSeconds` elemen pelacakan sisi klien, Anda dapat menggunakan MediaTailor untuk mendukung pengaturan waktu suar.

Respons JSON berikut menunjukkan jenis suar utama: tayangan, mulai, kuartil, dan penyelesaian.

**catatan**  
Pedoman Pengukuran Tayangan Video Interactive Advertising Bureau (IAB) menyatakan bahwa tayangan mengharuskan konten iklan memuat sisi klien dan, setidaknya, waktu mulai merender ke pemutar. Untuk informasi selengkapnya, lihat [Templat Penyajian Iklan Video Digital (VAST)](https://www.iab.com/guidelines/vast/) di situs web 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 hybrid dengan suar iklan sisi server
<a name="ad-reporting-hybrid-mode"></a>

MediaTailor mendukung mode hybrid untuk pelacakan sesi. Dalam mode ini, layanan memancarkan peristiwa pelacakan iklan terkait pemutaran, tetapi membuat payload pelacakan sisi klien lengkap tersedia untuk sesi tersebut

Untuk mengaktifkan pelacakan hibrida menggunakan awalan pemutaran, dari pemutar menginisialisasi sesi MediaTailor pemutaran baru menggunakan permintaan dalam salah satu format berikut, sesuai dengan protokol Anda:

**Example : Format HLS**  

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

**Example : Format DASH**  

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

MediaTailor mempertahankan peristiwa pelacakan berikut dalam mode hybrid:
+ Kesan
+ Mulai
+ Kuartil pertama
+ Titik tengah
+ Kuartil ketiga
+ Selesai
+ `breakStart`(vmap)
+ `breakEnd`(vmap)

# Integrasi pelacakan iklan sisi klien
<a name="ad-reporting-client-side-ad-tracking-integrations"></a>

Bagian ini menjelaskan integrasi antara MediaTailor dan berbagai server pelacakan iklan sisi klien.

**Topics**
+ [Buka SDK Pengukuran](#ad-reporting-client-side-ad-tracking-integrations-open-measurement-sdk)
+ [Datazoom pemain gratis SDKs](#ad-reporting-client-side-ad-tracking-integrations-dz)
+ [Kerangka Periklanan 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)

## Buka SDK Pengukuran
<a name="ad-reporting-client-side-ad-tracking-integrations-open-measurement-sdk"></a>

Interactive Advertising Bureau (IAB) Open Measurement SDK (OM SDK) memfasilitasi keterlihatan pihak ketiga dan pengukuran verifikasi untuk iklan yang ditayangkan ke lingkungan web-video dan aplikasi asli.

Untuk dokumen VAST versi 3 yang lebih lama, kode verifikasi harus dimuat dengan simpul Ekstensi, dengan jenis ekstensi`AdVerifications`. Akar node ekstensi adalah `AdVerifications` simpul dengan skema yang sama dengan elemen VAST 4.1.

Untuk memfasilitasi adopsi SDK OM yang lebih mudah, MediaTailor telah bermitra dengan Datazoom untuk menyediakan pemutar gratis SDKs yang dikonfigurasi dan diverifikasi untuk Pengukuran Terbuka. Untuk informasi selengkapnya, lihat [Datazoom pemain gratis SDKs](#ad-reporting-client-side-ad-tracking-integrations-dz).

**catatan**  
MediaTailor saat ini mendukung VAST versi 3 saja.

**Example : Node verifikasi di VAST 3, sebelum Versi 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 mengekstrak `AdVerifications` data dari `<Extensions>` node dan menempatkannya ke dalam `adVerifications` array dalam respons pelacakan sisi klien.

**Example : Array AdVerifications dalam respons pelacakan sisi klien**  

```
{
  "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": []
}
```

**catatan**  
Terlibat dengan IAB Tech Lab untuk memastikan bahwa aplikasi disertifikasi setiap tahun untuk memastikan kepatuhan.

Untuk informasi selengkapnya tentang OM SDK, lihat [Open Measurement SDK di situs web](https://iabtechlab.com/standards/open-measurement-sdk/) IAB Tech Lab.

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

Untuk memfasilitasi adopsi pemain yang lebih mudah SDKs, MediaTailor telah bermitra dengan Datazoom untuk menyediakan pemain gratis SDKs yang dikonfigurasi dan diuji dengan dan IAB [AWS Elemental MediaTailor Integrasi sisi klien dengan Google Ad Manager](gam-integration-pal.md) Tech. [Buka SDK Pengukuran](#ad-reporting-client-side-ad-tracking-integrations-open-measurement-sdk)

SDK pemutar Datazoom mendukung fitur-fitur ini:
+ Daftar putar langsung dan VOD
+ Spesifikasi DASH dan HLS
+ Dukungan vendor pemain untuk Bitmovin, exoplayer, pemutar media Android, Apple AVPlayer, Brightcove, Chromecast Receiver, Dash.js, hls.js,, Shaka player, THEO player, Video.js JWPlayer, Roku dan banyak lagi
+ Sertifikasi Pengukuran Terbuka Lab Teknologi IAB, jika tersedia di perangkat tertentu
+ Penanganan acara klik-tayang
+ Dispatcher ad-event, seperti penghitung waktu penghitung mundur iklan, overlay iklan, dan peristiwa non-linier, awal jeda iklan, akhir jeda iklan
+ Beaconing iklan sisi klien
+ SDK Google Programmatic Access Library (PAL), sebagai pengaturan konfigurasi opsional

Datazoom juga menawarkan layanan analitik dan telemetri berbayar yang didukung pemain. SDKs Pelanggan dapat memilih dan mengontrol telemetri SDK pemutar dari konsol manajemen Datazoom. [Untuk mengakses pemutar Datazoom SDKs dan mempelajari lebih lanjut tentang layanan telemetri dan analitik bernilai tambah, gunakan informasi kontak di situs Datazoom.](https://www.datazoom.io/partner-aws) 

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

Roku Ad Framework (RAF) mempertahankan pengalaman iklan yang konsisten di seluruh platform Roku. Semua saluran, termasuk iklan video, harus memenuhi persyaratan sertifikasi Roku untuk RAF. Khususnya, aplikasi harus selalu menggunakan penembakan peristiwa sisi klien melalui RAF. MediaTailor, sebagai penyedia penyisipan iklan sisi server (SSAI), mendukung pengaktifan peristiwa sisi klien. Adaptor SSAI RAFX menyediakan antarmuka ke server manifes SSAI, atau stitcher, dan RAF. Antarmuka ini meliputi:
+ Mengurai `masterURL` respons dan mengekstraksi`playURL`,`AdURL`, dan metadata iklan.
+ Mengubah metadata iklan MediaTailor SSAI menjadi metadata iklan yang dapat digunakan RAF, dan mengonfigurasi RAF untuk pemutaran.
+ Mengamati peristiwa aliran dan metadata berjangka waktu.
+ Mencocokkan peristiwa streaming, metadata iklan, dan piksel peristiwa penembakan tepat waktu.
+ Pinging/polling`AdURL`, seperti yang dipersyaratkan oleh server manifes MediaTailor SSAI, kemudian mengurai dan mengonfigurasi ulang RAF.

Untuk informasi selengkapnya tentang adaptor SSAI untuk RAF, lihat [Menerapkan Penyisipan Iklan Sisi Server Menggunakan Adaptor Roku di situs web 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 integrasi dengan MediaTailor melakukan hal berikut:
+ Menyediakan fungsionalitas untuk mendukung pelacakan MediaTailor peristiwa sisi klien untuk HLS dan DASH untuk VOD dan alur kerja langsung.
+ Mendukung pengiriman suar pelacakan hanya untuk iklan linier.
+ Menonaktifkan pencarian selama iklan. Namun, tidak ada logika untuk memutar iklan saat pengguna mencari melewati jeda iklan.

Untuk informasi lebih lanjut tentang SSAI di TheoPlayer, dan untuk meninjau web, Android, iOS, dan tvOS SDKs MediaTailor, lihat [MediaTailor](https://docs.theoplayer.com/how-to-guides/01-ads/12-mediatailor.md)di situs web. TheoPlayer 

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

AWS Elemental memelihara kit pengembangan perangkat lunak JavaScript berbasis (SDK). AWS Elemental menyediakan SDK apa adanya, tanpa garansi tersirat. Gunakan SDK sebagai demonstrasi referensi untuk merampingkan orientasi Anda untuk menggunakan. MediaTailor SDK menunjukkan cara berinteraksi dengan API pelacakan MediaTailor sisi klien. SDK mengimplementasikan pelacakan dan pelaporan iklan sisi klien untuk pemain berbasis. HTML5 SDK menginisialisasi sesi pelaporan MediaTailor sisi klien, lalu meminta informasi pelacakan iklan secara berkala. Selama pemutaran, SDK memancarkan peristiwa pelacakan iklan saat peristiwa iklan baru terdeteksi.

 MediaTailor SDK mendukung fitur-fitur ini:
+ Daftar putar langsung dan VOD
+ Spesifikasi DASH dan HLS
+ Penanganan acara klik-tayang
+ Dispatcher Ad-Event
+ Kait acara khusus
+ Beaconing iklan sisi klien. Untuk informasi selengkapnya tentang mengirim suar iklan, lihat. [Beaconing sisi klien](ad-reporting-client-side-beaconing.md)

**catatan**  
Kirim tiket AWS Support untuk menerima contoh JavaScript SDK untuk MediaTailor. Anda akan menerima tautan unduhan untuk paket dan file-filenya.

## Paging melalui suar iklan dengan GetTracking
<a name="gettracking"></a>

Gunakan `GetTracking` titik akhir untuk mempersempit jumlah iklan yang dikembalikan ke pemain. Misalnya, jika jendela manifes lebar, mencakup banyak waktu, jumlah suar iklan yang dikembalikan dapat memengaruhi kinerja pemain. 

`GetTracking`mengembalikan `NextToken` nilai yang dapat Anda gunakan untuk mempersempit jumlah suar yang dikembalikan dengan paging melalui daftar suar yang dikembalikan. Anda dapat menelusuri `NextToken` nilai untuk menemukan nilai yang diinginkan dari bidang suar iklan. `StartTimeInSeconds` 
+ Pada panggilan pertama`GetTracking`, semua iklan yang mungkin jatuh di jendela manifes dikembalikan, termasuk nilai `NextToken` dan masing-masing. 
+ Jika `GetTracking` permintaan *tidak* menyertakan`NextToken`, semua iklan di jendela manifes akan dikembalikan.
+ Jika `GetTracking` permintaan berisi `NextToken` tetapi tidak ada beacon baru untuk dikembalikan, MediaTailor mengembalikan nilai yang sama untuk `NextToken` yang Anda kirim pada permintaan asli.
+ Jika tidak ada lagi suar yang sesuai dengan iklan, `GetTracking` hapus iklan dari responsnya.
+ Token dari `GetTracking` kedaluwarsa setelah 24 jam. Jika `NextToken` nilai lebih besar dari 24 jam, panggilan berikutnya untuk `GetTracking` mengembalikan nilai nol`NextToken`.

### Urutan panggilan umum dari GetTracking dari pemain
<a name="gettracking.generalsequence"></a>

Dari pemutar klien, `GetTracking` permintaan adalah POST dengan badan permintaan yang berisi `NextToken` dan iklan dan suar yang terkait dengan token.

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

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

Urutan umum untuk menggunakan `GetTracking` dengan `NextToken` adalah sebagai berikut:

1. Buat panggilan pertama ke`GetTracking`.

   Semua iklan dan suar dan yang pertama `NextToken` untuk panggilan berikutnya dikembalikan. 

1. Jika nilai `NextToken` adalah null, MediaTailor mengembalikan semua suar iklan.

1. Jika kedaluwarsa, MediaTailor mengembalikan pesan kesalahan kode pengembalian HTTP 400. `NextToken`

   Buat panggilan baru `GetTracking` untuk mengambil `NextToken` s yang valid.

1. Pindai seluruh respons untuk menemukan suar iklan yang berada dalam kisaran yang diinginkan. `StartTimeInSeconds`

1. Buat panggilan baru `GetTracking` dengan nilai yang `NextToken` terkait dengan yang diinginkan`StartTimeInSeconds`. 

1. Jika perlu, putar lagi melalui iklan yang dikembalikan sampai Anda menemukan yang tepat yang ingin Anda mainkan.

#### Contoh yang diperluas
<a name="gettracking.extendedexample"></a>

Contoh ini menunjukkan cara menggunakan `GetTracking`'s `NextToken` untuk membatasi jumlah suar iklan yang dikembalikan ke pemain.

MediaTailor menerima `GetTracking` permintaan. Respons berisi iklan dengan ID 9935407 dan dua beacon dengan `StartTimeInSeconds` nilai 52.286 dan 48,332 detik. 

MediaTailor mengirimkan respons JSON dengan `NextToken` sebagai berikut:

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

Pada `GetTracking` permintaan berikutnya, MediaTailor merespons dengan `NextToken` nilai,: JF57 ITe48t1441mv7 Tm LKu ZLrox DzfIslp SNL1 IJmz PVMDN0lqr BYycg 6Bi Mb. KEb

MediaTailor merespons dengan iklan dan beacon yang cocok dengan `StartTimeInSeconds` yang ditetapkan dalam panggilan `NextToken` sebelumnya.

Asumsikan bahwa sekarang respons menyertakan iklan lain dengan ID 9235407 selain iklan sebelumnya dengan ID 9935407. Suar iklan ID 9235407 memiliki s 132,41 dan 70,339. `StartTimeInSeconds`

MediaTailor mengulangi semua beacon dalam sesi untuk memilih yang `StartTimeInSeconds` lebih besar dari 52.286 detik, yaitu beacon 3 dan beacon 4 dari iklan dengan 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
    }
  ]
}
```

# Iklan overlay
<a name="overlay-ads"></a>

Untuk alur kerja streaming langsung di mana Anda ingin meningkatkan monetisasi tanpa mengganggu pengalaman menonton dengan iklan mid-roll, Anda dapat memanfaatkan AWS Elemental MediaTailor integrasi Anda saat ini untuk memandu format iklan yang diberikan sisi klien. Jenis iklan ini dikenal sebagai *iklan overlay*. Iklan overlay adalah iklan video non-linear yang muncul dalam bentuk 'iklan L-band, ''iklan video non-linear,' 'iklan,' 'motion overlays', picture-in-picture 'in-content advertising', atau 'frame ads. '

MediaTailor mendeteksi penanda SCTE-35 dengan tipe segmentasi `id=0x38` sebagai sinyal in-band untuk peluang penyisipan iklan overlay. Penanda SCTE-35 menyebabkan pengiriman permintaan MediaTailor ke Server Keputusan Iklan (ADS), yang kemudian merespons dengan muatan iklan non-linier dalam respons VAST. MediaTailor mem-parsing respons VAST untuk mendukung penyisipan iklan overlay. MediaTailor tidak melakukan jahitan iklan linier, melainkan memberi sinyal kepada pemain bahwa ada iklan overlay non-linier yang tersedia untuk diputar. Pensinyalan ini memungkinkan pemain untuk mengambil dan mengkorelasikan iklan non-linier untuk diputar dari titik akhir pelacakan sisi klien. Pemain kemudian menangani tampilan, pelaporan, dan tugas lain yang terkait dengan iklan tersebut. Misalnya, pengembang pemain dapat menggunakan SDK perangkat dari vendor yang mendukung format overlay-ad. Untuk informasi selengkapnya tentang integrasi pelacakan sisi klien, lihat. [Integrasi pelacakan iklan sisi klien](ad-reporting-client-side-ad-tracking-integrations.md)

![\[Gambar menggambarkan garis waktu berbagai jenis iklan yang ditampilkan bersama video konten. Iklan linier diputar sebelum dan sesudah video konten. Iklan sebelum video konten disebut iklan pra-putar. Iklan setelah video konten disebut iklan pasca-roll. Iklan non-linear tumpang tindih dengan sebagian video konten itu sendiri. Iklan non-linear disebut iklan overlay.\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/images/client-side-overlays.png)


**Topics**
+ [Prasyarat untuk menggunakan iklan overlay dengan MediaTailor](overlay-ads-prerequisites.md)
+ [Memulai menggunakan iklan overlay dengan MediaTailor](overlay-ads-getting-started.md)
+ [Pencatatan dan metrik untuk iklan overlay di MediaTailor](overlay-ads-logging-and-metrics.md)
+ [Penagihan untuk iklan overlay di MediaTailor](overlay-ads-billing.md)

# Prasyarat untuk menggunakan iklan overlay dengan MediaTailor
<a name="overlay-ads-prerequisites"></a>

Prasyarat berikut berlaku saat menggunakan iklan overlay dengan: MediaTailor
+ Alur kerja harus live, bukan video on demand (VOD).
+ Respons Ad Decision Server (ADS) harus dikonfigurasi agar hanya menampilkan iklan non-linear dalam respons VAST. MediaTailor mengabaikan iklan linier apa pun untuk tujuan jahitan iklan.
+ Manifes harus menggunakan pesan sinyal waktu SCTE-35 dengan tipe segmentasi `id=0x38` untuk menjalankan fitur overlay-ad.
+ Penyedia streaming harus memiliki kendali atas aplikasi perangkat klien dan terintegrasi dengan API pelacakan sisi MediaTailor klien.

# Memulai menggunakan iklan overlay dengan MediaTailor
<a name="overlay-ads-getting-started"></a>

Bagian ini menjelaskan cara memulai menggunakan fitur overlay-ads dari. MediaTailor Anda akan menyiapkan pensinyalan SCTE-35, mengonfigurasi respons Server Keputusan Iklan (ADS), dan mengatur kontrol tingkat sesi.

**Topics**
+ [Mengaktifkan iklan overlay](overlay-ads-getting-started-enabling.md)
+ [Melacak iklan overlay dengan metadata sisi klien](overlay-ads-client-side-tracking-metadata.md)

# Mengaktifkan iklan overlay
<a name="overlay-ads-getting-started-enabling"></a>

MediaTailor dukungan untuk iklan overlay diaktifkan secara default. Jenis penanda iklan SCTE-35 tertentu dalam manifes memicu penyisipan iklan overlay. Karena beberapa pemain mungkin tidak mendukung rendering sisi klien dari iklan overlay, Anda dapat menonaktifkan fitur di tingkat sesi.

**Untuk menonaktifkan dukungan overlay-ad menggunakan awalan pemutaran HLS atau DASH:**
+ Dari pemutar, inisialisasi sesi MediaTailor pemutaran baru menggunakan permintaan dalam salah satu format berikut, sesuai dengan protokol Anda:
  + Contoh: format HLS

    ```
    GET mediatailorURL/v1/master/hashed-account-id/origin-id/asset-id?aws.overlayAvails=off
    ```
  + Contoh: format DASH

    ```
    GET mediatailorURL/v1/master/hashed-account-id/origin-id/asset-id?aws.overlayAvails=off
    ```

**Untuk menonaktifkan dukungan overlay-ad menggunakan awalan inisialisasi sesi:**
+ Pada pemain, buat badan pesan JSON untuk permintaan inisialisasi sesi ke: MediaTailor
  + Untuk menonaktifkan dukungan ad-overlay, tambahkan `overlays` objek sebagai kunci tingkat atas dengan nilai. `off` `overlays`Nilai defaultnya adalah`on`.
  + (Opsional) Berikan parameter apa pun yang MediaTailor kemudian diteruskan ke ADS di dalam `adsParams` objek. Parameter ini sesuai dengan `[player_params.param]` pengaturan di URL templat ADS MediaTailor konfigurasi.

**Example : HLS**  

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

**Example : DASBOR**  

```
POST manifest.mpd
    {
        "adsParams": {
           "deviceType": "androidmobile"
       },
       "overlayAvails": "off"
    }
```

# Pensinyalan manifes
<a name="overlay-ads-manifest-signaling"></a>

MediaTailor memicu dukungan overlay-ads saat melihat penanda SCTE-35 tertentu dalam manifes. Sinyal yang diperlukan adalah perintah sambatan tipe 6, atau sinyal waktu, yaitu sinyal Mulai Iklan Overlay Penyedia. Sinyal ini memiliki id tipe segmentasi `0x38`

Contoh berikut menunjukkan penanda `0x38` SCTE-35 dalam objek 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
}
```

Contoh berikut menunjukkan sinyal SCTE-35 direpresentasikan sebagai nilai biner (basis 32/heksadesimal):

```
0xfc303500000000000000fff00506fe001b78c8001f021d435545490970d4717fdf00000dbba009076f7665726c6179380100000084226c4f
```

Contoh berikut menunjukkan penanda SCTE-35 dalam manifes HLS dan DASH.

**Example : Manifes 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 : Manifes 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>
```

# Tanggapan Server Keputusan Iklan (ADS)
<a name="overlay-ads-ads-response"></a>

Respons ADS harus berisi satu peristiwa pelacakan yang valid. Minimal, acara pelacakan bisa menjadi acara `Impression` pelacakan. Acara pelacakan harus berisi setidaknya satu `NonLinear` iklan. Iklan ini adalah iklan overlay, mengambil bentuk sumber daya statis, HTML, atau iFrame.

```
<vmap AdBreak breaktype="linear" breakId="csoverlay"
```

Jika respons VAST adalah VMAP dengan `breakType` of`nonlinear`, metadata yang tersedia ada di dalam objek root. `nonLinearAvails` Jika respons VAST adalah VMAP dengan `breakType` of`linear`, atau merupakan respons VAST biasa tanpa VMAP, metadata yang tersedia ada di dalam objek root. `avails`

Respons VAST berikut adalah respons VMAP yang dibungkus dengan `breakType` nilai. `linear`

Selain respons VMAP yang dibungkus, MediaTailor juga mendukung respons VMAP yang dibungkus dengan `breakType` nilai`nonlinear`, dan respons VAST biasa.

```
<?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: Sumber manifes DASH ke 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: manifes DASH yang MediaTailor dipersonalisasi yang berisi dekorasi ID iklan**  

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

# Melacak iklan overlay dengan metadata sisi klien
<a name="overlay-ads-client-side-tracking-metadata"></a>

MediaTailor menempatkan iklan overlay di `nonLinearAdsList` avail. API pelacakan MediaTailor sisi klien memiliki dua objek root, dipanggil `avails` dan. `nonLinearAvails` Jika respons VAST adalah VMAP dengan `breakType` of`nonlinear`, metadata yang tersedia ada di dalam objek root. `nonLinearAvails` Jika respons VAST adalah VMAP dengan `breakType` of`linear`, atau merupakan respons VAST biasa tanpa VMAP, metadata yang tersedia ada di dalam objek root. `avails`

Untuk informasi selengkapnya tentang pelacakan sisi klien, lihat. [Pelacakan iklan sisi klien](ad-reporting-client-side.md)

Contoh berikut menunjukkan respons VAST biasa atau respons VMAP dengan `breakType` nilai. `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": []
}
```

Contoh berikut menunjukkan respons VMAP biasa dengan `breakType` nilai. `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
    }
  ]
}
```

# Pencatatan dan metrik untuk iklan overlay di MediaTailor
<a name="overlay-ads-logging-and-metrics"></a>

Bagian ini menjelaskan pencatatan dan metrik untuk iklan overlay di. MediaTailor Untuk informasi selengkapnya tentang pengaturan logging, lihat[Memantau dan menandai sumber daya AWS Elemental MediaTailor](monitoring.md).

**Topics**
+ [CloudWatch log](#overlay-ads-logging-and-metrics-cloudwatch)
+ [CloudWatch metrik](#overlay-ads-logging-and-metrics-cloudwatch-metrics)

## CloudWatch log
<a name="overlay-ads-logging-and-metrics-cloudwatch"></a>

CloudWatch mengumpulkan informasi log berikut tentang iklan overlay:
+ `VAST_RESPONSE`- Menampilkan informasi tentang daftar iklan non-linear.
+ `FILLED_PROVIDER_OVERLAY`- Menampilkan informasi tentang iklan non-linear.

**catatan**  
`RAW_ADS_RESPONSE`Ini adalah acara opsional yang menampilkan respons asli dari ADS. Menggunakan acara ini sangat membantu dalam lingkungan pementasan dan pengujian. Untuk mengaktifkan acara ini pada konfigurasi atau akun, kirimkan tiket ke AWS Support.

## CloudWatch metrik
<a name="overlay-ads-logging-and-metrics-cloudwatch-metrics"></a>

MediaTailor mengumpulkan metrik iklan overlay secara terpisah dari metrik ADS lainnya. MediaTailormengumpulkan metrik ini setelah berhasil mengambil iklan dari ADS. Anda tidak perlu melakukan polling `GetTracking` API untuk mengumpulkan metrik.

Tabel berikut menjelaskan CloudWatch metrik untuk iklan overlay:


| Metrik | Deskripsi | 
| --- | --- | 
| AdDecisionServer.OverlayAds |  Jumlah iklan overlay yang disertakan dalam respons ADS dalam jangka CloudWatch waktu yang Anda tentukan.  | 
| AdDecisionServer.OverlayErrors |  Jumlah respons kode `200` status non-HTTP, respons kosong, dan respons waktu habis yang MediaTailor diterima dari ADS dalam jangka CloudWatch waktu yang Anda tentukan.  | 
| AdDecisionServer.OverlayFilled |  Jumlah avails yang berhasil diisi dengan setidaknya satu iklan overlay: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/mediatailor/latest/ug/overlay-ads-logging-and-metrics.html) `SampleCount`melacak jumlah avails yang diisi. `Sum`melacak jumlah avails overlay yang berhasil diisi.  | 
| AdDecisionServer.OverlayMinSuggestedDuration |  Jumlah `minSuggestedDuration` durasi, dalam milidetik, dari semua iklan yang MediaTailor diterima dari ADS dalam jangka CloudWatch waktu yang Anda tentukan. Jika `minSuggestedDuration` tidak ditentukan, durasi yang ditampilkan adalah durasi yang direncanakan.  | 
| AdDecisionServer.OverlayLatency |  Waktu respons, dalam milidetik, untuk permintaan yang MediaTailor dibuat ke ADS.  | 
| AdDecisionServer.OverlayTimeouts |  Jumlah permintaan waktu habis ke ADS dalam periode CloudWatch waktu yang Anda tentukan.  | 
| AdsBilled |  Untuk informasi selengkapnya tentang iklan yang ditagih, lihat[Penagihan untuk iklan overlay di MediaTailor](overlay-ads-billing.md).  | 
| Avail.\$1 |  Karena MediaTailor tidak melakukan perencanaan untuk iklan overlay, CloudWatch tidak menampilkan `Avail.X` metrik apa pun.  | 
| SkippedReason.\$1 |  Karena MediaTailor tidak melakukan perencanaan untuk iklan overlay, CloudWatch tidak menampilkan `SkippedReason.X` metrik apa pun.  | 

# Penagihan untuk iklan overlay di MediaTailor
<a name="overlay-ads-billing"></a>

MediaTailor menagih pelanggan berdasarkan jumlah iklan non-linier dalam respons ADS. Nomor ini mencakup iklan non-linier yang melampaui durasi jeda. Setelah MediaTailor mengisi keuntungan, ia menagih untuk iklan yang diisi.

Untuk alur kerja prefetch, MediaTailor tidak menagih iklan saat mengambil prefetch, melainkan ketika melihat iklan yang kompatibel tersedia di jendela konsumsi untuk sesi tersebut.

Untuk informasi penagihan tambahan, lihat[https://aws.amazon.com/mediatailor/pricing/](https://aws.amazon.com/mediatailor/pricing/).

# Dekorasi ID Iklan
<a name="ad-id-decoration"></a>

AWS Elemental MediaTailor melakukan jahitan iklan sisi server saat beralih dari konten ke jeda iklan. MediaTailor dapat mengkondisikan manifes dengan metadata yang terkait dengan iklan yang telah dijahit. Melakukannya dapat memberikan manfaat berikut:

**penting**  
Dekorasi Ad-ID tidak kompatibel dengan metode penyisipan iklan yang dipandu server (SGAI) karena bidang yang mengisi `X-AD-CREATIVE-SIGNALING ` header hanya diketahui saat daftar aset diambil selama pemutaran iklan, bukan saat manifes cacheable awalnya ditulis.
+ *Waktu mulai video* (VST) meningkat
+ MediaTailor dapat mendukung model hibrida penyisipan iklan sisi server dan penyisipan iklan yang dipandu server
+ Sesi sisi server dapat membuat jadwal pemutaran dengan penanda posisi iklan
+ Untuk sesi sisi klien yang sudah membangun timeline pemutaran dengan MediaTailor API, sesi VST meningkat, karena sesi tidak bergantung pada pemanggilan API pelacakan untuk membangun timeline
+ Dimungkinkan MediaTailor untuk memanfaatkan penyisipan iklan sisi server serta iklan yang dirender sisi klien yang ditampilkan dalam adegan. Dengan cara ini, kit pengembangan perangkat lunak (SDK) pemain tidak perlu memiliki integrasi terpisah untuk memanggil entitas penayangan iklan secara langsung untuk iklan sisi klien. MediaTailor dapat menjual iklan melalui manifes dan API pelacakan sisi klien.

Ada standar untuk mengaitkan setiap aset iklan kreatif dengan pengenal unik. Asosiasi ini memungkinkan pengiklan, agensi, vendor, dan penayang untuk menghubungkan aset iklan kreatif di seluruh alur kerja independen mereka. Karena metrik dan pemantauan aliran terus meningkat dan lebih banyak distributor menggunakan arsitektur penyisipan berbasis server, kebutuhan muncul untuk secara akurat mengkomunikasikan pengidentifikasi yang ditugaskan ke aset kreatif individu dalam presentasi, seperti dalam manifes yang interleaved/stitched dipersonalisasi.

**Topics**
+ [Mengaktifkan pensinyalan ID iklan untuk sesi](ad-id-session-state.md)
+ [Manifestasi dan penyisipan metadata iklan](ad-id-manifest.md)
+ [Interaksi Ad Decision Server (ADS)](ad-id-ads-interactions.md)
+ [API pelacakan sisi klien](ad-id-client-side-tracking-api.md)

# Mengaktifkan pensinyalan ID iklan untuk sesi
<a name="ad-id-session-state"></a>

Fitur pensinyalan ID iklan harus diaktifkan selama inisialisasi sesi. Proses untuk mengaktifkan fitur berbeda dari membuat sesi menggunakan awalan HLS/DASH pemutaran (inisialisasi sesi implisit), versus awalan inisialisasi sesi (inisialisasi sesi eksplisit).

**Untuk mengaktifkan ID iklan untuk sesi menggunakan awalan HLS/DASH pemutaran**
+ Dari pemutar, inisialisasi sesi MediaTailor pemutaran baru menggunakan permintaan dalam salah satu format berikut, sesuai dengan protokol Anda:
  + Contoh: format HLS

    ```
    GET <mediatailorURL>/v1/master/<hashed-account-id>/<origin-id>/<asset-id>?aws.adSignalingEnabled=true
    ```
  + Contoh: format DASH

    ```
    GET <mediatailorURL>/v1/dash/<hashed-account-id>/<origin-id>/<asset-id>?aws.adSignalingEnabled=true
    ```

**Untuk mengaktifkan ID iklan untuk sesi menggunakan awalan inisialisasi sesi**
+ Pada pemain, buat badan pesan JSON untuk permintaan inisialisasi sesi ke: MediaTailor 
  + Di dalam `adsParams` objek, berikan parameter apa pun yang MediaTailor harus diteruskan ke ADS. Parameter ini sesuai dengan `[player_params.param]` pengaturan di URL templat ADS MediaTailor konfigurasi. 
  + Untuk mengaktifkan pensinyalan ID iklan, tambahkan `adSignaling` objek sebagai objek tingkat atas, dan di dalamnya, tambahkan parameter yang disebut `enabled` dan nilai dari`true`. `adSignaling`Nilai defaultnya adalah`disabled`.
  + Contoh: format HLS

    ```
    POST master.m3u8
        {
           "adsParams": {
               "deviceType": "ipad"
           },
           "adSignaling": {
               "enabled": "true"
           },
           "reportingMode": "client"
        }
    ```
  + Contoh: format DASH

    ```
    POST manifest.mpd
        {
            "adsParams": {
               "deviceType": "ipad"
           },
           "adSignaling": {
                "enabled": "true"
            },
            "reportingMode": "client"
        }
    ```

# Manifestasi dan penyisipan metadata iklan
<a name="ad-id-manifest"></a>

Selama proses jahitan iklan, MediaTailor tambahkan ke manifes ID unik yang terkait dengan setiap materi iklan yang dijahit. MediaTailor memperoleh ID unik kreatif dari nilai `id` atribut kreatif tersebut dalam respons VAST. Jika kreatif tidak memiliki nilai atribut ID, MediaTailor akan menerbitkan nilai kosong (`id=""`).

MediaTailor menggunakan sinyal metadata dalam manifes untuk memisahkan dependensi antara API pelacakan klien untuk metadata kreatif iklan dan dalam garis waktu keseluruhan. timing/positioning Decoupling ini mengurangi latensi pemutaran (terutama dalam skenario VOD), di mana antarmuka pengguna (UI) pemain membuat posisi jeda iklan di timeline sebelum menginisialisasi pemutaran.

Metadata yang ditambahkan mengambil bentuk berikut:
+ Untuk manifes HLS, metadata yang ditambahkan berbentuk `DATERANGE` tag untuk setiap iklan dalam periode avail.
+ Untuk manifes DASH, metadata yang ditambahkan berbentuk `Event` elemen dalam setiap periode iklan.

Badan pesan JSON berikut menunjukkan contoh respons 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"
    }
  ]
}
```

Dalam contoh sebelumnya:
+ *creativeId*adalah nilai `Id` atribut `Creative` elemen untuk iklan
+ *adId*adalah nomor urut HLS yang terkait dengan awal iklan, atau ID periode DASH iklan
+ *adType*adalah salah satu `avail` atau`overlay`, berdasarkan respons VAST
+ *trackingUri*adalah titik akhir pelacakan relatif untuk MediaTailor sesi, dalam format `../../../../tracking/hashed-account-id/origin-id/session-id`
+ *customVastData*adalah nilai yang MediaTailor mengekstrak dari ekstensi `creative_signaling` VAST. MediaTailor menggunakan isi node CDATA, jika ada. Lihat [Interaksi Ad Decision Server (ADS)](ad-id-ads-interactions.md) bagian untuk detail selengkapnya dan contoh respons VAST.

# Personalisasi manifes HLS dengan metadata iklan
<a name="ad-id-manifest-hls"></a>

Untuk streaming HLS langsung, MediaTailor hanya menambahkan metadata saat aliran berisi `PROGRAM-DATA-TIME` tag, setidaknya sekali per durasi manifes. Untuk streaming video on demand (VOD), MediaTailor tambahkan `PROGRAM-DATE-TIME` setidaknya satu segmen dalam manifes yang dipersonalisasi, di mana waktu mulai untuk setiap aset VOD adalah epoch zero (). `1970-01-01T00:00:00Z` Jika manifes asal memiliki `PROGRAM-DATE-TIME` konten yang ada, maka MediaTailor pertahankan konten tersebut.

MediaTailor mempersonalisasi manifes dengan materi iklan yang ditampilkan oleh Server Keputusan Iklan (ADS). Untuk setiap iklan, sertakan MediaTailor juga `DATERANGE` tag yang mencakup durasi iklan. Format `DATERANGE` tag mirip dengan yang dijelaskan di bagian [Pensinyalan kreatif iklan di DASH dan HLS](https://www.svta.org/document/draft-ad-creative-signaling-in-dash-and-hls/) dalam publikasi teknis *SVA* versi 2023.

`DATERANGE`Yang MediaTailor menghasilkan memiliki nilai ID unik. Untuk memastikan keunikan (mengingat pedoman yang ditentukan dalam [Pemetaan SCTE-35 ke dalam EXT-X-DATERANGE](https://datatracker.ietf.org/doc/html/draft-pantos-http-live-streaming-23#section-4.3.2.7.1) MediaTailor ), pasangkan `MEDIA-SEQUENCE` jumlah segmen iklan *pertama* yang tersedia dengan nomor urut iklan yang tersedia.

Untuk jeda iklan yang kurang terisi pada konfigurasi yang mengaktifkan batu tulis, MediaTailor tambahkan segmen batu tulis ke akhir avail, dipisahkan oleh `DISCONTINUITY` tag, tetapi tanpa metadata apa pun. `DATERANGE`

Untuk setiap iklan yang dijahit ke manifes yang dipersonalisasi, MediaTailor tambahkan metadata kreatif, yang direpresentasikan sebagai data yang disandikan base64 dalam tag kustom. `DATERANGE`

**Example Asal HLS linier (`#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 Asal HLS linier (`#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 Manifes yang dipersonalisasi HLS linier (dengan pensinyalan iklan kreatif):**  
`DATERANGE`Yang MediaTailor menghasilkan memiliki nilai ID unik. Untuk memastikan keunikan (mengingat pedoman yang ditentukan dalam [Pemetaan SCTE-35 ke dalam EXT-X-DATERANGE](https://datatracker.ietf.org/doc/html/draft-pantos-http-live-streaming-23#section-4.3.2.7.1) MediaTailor ), pasangkan `MEDIA-SEQUENCE` jumlah segmen iklan *pertama* yang tersedia dengan nomor urut iklan yang tersedia.  
Dalam contoh berikut, MediaTailor menggabungkan `MEDIA-SEQUENCE` 421 dengan nomor posisi iklan.  

```
#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 Asal VOD HLS (dengan sinyal 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 VOD HLS asal:**  

```
#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 Manifes pribadi VOD HLS:**  
MediaTailor menambahkan `PROGRAM-DATE-TIME` manifes VOD untuk menggunakannya sebagai jangkar untuk `DATERANGE` elemen HLS yang menunjukkan posisi iklan.  
`DATERANGE`Yang MediaTailor menghasilkan memiliki nilai ID unik. Untuk memastikan keunikan (mengingat pedoman yang ditentukan dalam [Pemetaan SCTE-35 ke dalam EXT-X-DATERANGE](https://datatracker.ietf.org/doc/html/draft-pantos-http-live-streaming-23#section-4.3.2.7.1) MediaTailor ), pasangkan `MEDIA-SEQUENCE` jumlah segmen iklan *pertama* yang tersedia dengan nomor urut iklan yang tersedia.  
Dalam contoh berikut, MediaTailor menggabungkan `MEDIA-SEQUENCE` 421 dengan nomor posisi iklan.  

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

# Personalisasi manifes DASH dengan metadata iklan
<a name="ad-id-manifest-dash"></a>

MediaTailor mempersonalisasi manifes dengan materi iklan yang ditampilkan oleh Server Keputusan Iklan (ADS). Untuk setiap iklan, sertakan MediaTailor juga `EventStream` elemen yang mencakup durasi iklan. Format `Event` elemen mirip dengan yang dijelaskan di bagian [Pensinyalan kreatif iklan di DASH dan HLS](https://www.svta.org/document/draft-ad-creative-signaling-in-dash-and-hls/) dalam publikasi teknis *SVA* versi 2023.

Untuk jeda iklan yang kurang terisi pada konfigurasi yang mengaktifkan batu tulis, MediaTailor tambahkan periode batu tulis ke akhir periode avail, tetapi tanpa metadata apa pun `EventStream`

Untuk setiap iklan yang dijahit ke manifes yang dipersonalisasi, MediaTailor tambahkan metadata kreatif, yang direpresentasikan sebagai `CDATA` elemen dalam suatu elemen. `Event`

**Example Asal DASH linier (atribut SCTE sebaris):**  

```
<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 Manifes yang dipersonalisasi Linear DASH (dengan pensinyalan iklan kreatif):**  

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

# Interaksi Ad Decision Server (ADS)
<a name="ad-id-ads-interactions"></a>

MediaTailor menggunakan nilai `id` atribut kreatif dari respons VAST sebagai nilai dalam pensinyalan ID iklan. Jika nilai `id` atribut kosong atau tidak ada dalam respons VAST, MediaTailor menempatkan nilai kosong dalam pensinyalan ID iklan.

**Example Tanggapan yang luas:**  
Contoh respons VAST berikut mencakup nilai `id` atribut untuk linier `Creative` sebaris. MediaTailor mengekstrak nilai dari `Extension` elemen VAST khusus dan menempatkan nilai itu dalam metadata kreatif manifes.  

```
<?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 pelacakan sisi klien
<a name="ad-id-client-side-tracking-api"></a>

Contoh berikut menunjukkan cara SDK pemain menautkan metadata iklan dalam manifes dengan data peristiwa pelacakan lengkap di payload respons pelacakan sisi klien dengan dan. `creativeId` `adId`

**Example Pesan 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": []
}
```