

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

# Pemecahan masalah dan pemantauan
<a name="yield-optimization-troubleshooting"></a>

Halaman ini membantu Anda memantau kinerja Pengoptimalan Hasil, mendiagnosis masalah umum, dan memvalidasi bahwa konfigurasi Anda berfungsi dengan benar.

## Metrik-metrik
<a name="yield-optimization-troubleshooting-metrics"></a>

MediaTailor menerbitkan CloudWatch metrik berikut untuk Pengoptimalan Hasil. Semua metrik dipancarkan dengan `configurationName` dimensi kecuali dinyatakan sebaliknya.

### Metrik permintaan tawaran
<a name="yield-optimization-troubleshooting-metrics-bidrequest"></a>


| Metrik | Deskripsi | 
| --- | --- | 
| YieldOptimization.BidRequest | Dikeluarkan sebagai 1 ketika peluang permintaan tawaran diidentifikasi. | 
| YieldOptimization.BidResponse | Diterbitkan sebagai 1 saat respons tawaran yang berhasil diterima. | 
| YieldOptimization.BidDuration | Durasi jeda (detik) yang diminta dalam tawaran, dihitung dari durasi tersedia dikurangi durasi iklan utama. | 
| YieldOptimization.Latency | Round-trip latensi ke APS dalam milidetik. | 
| YieldOptimization.NoBid | Dipancarkan sebagai 1 saat APS mengembalikan HTTP 204 (tidak ada permintaan yang cocok). Permintaan itu sendiri valid. | 
| YieldOptimization.BidRequestThrottled | Dipancarkan sebagai 1 saat APS mengembalikan HTTP 429 (dibatasi). APS menerapkan tekanan balik. Mundur sebelum mencoba lagi. | 

### Metrik penyisipan iklan
<a name="yield-optimization-troubleshooting-metrics-adinsertion"></a>


| Metrik | Deskripsi | 
| --- | --- | 
| YieldOptimization.AdsInserted | Jumlah iklan YO yang dimasukkan ke dalam tersedia. | 
| YieldOptimization.AdsReturned | Jumlah iklan yang dikembalikan di BidResponse (sebelum pemfilteran). Hanya dipancarkan ketika lebih besar dari 0. | 
| YieldOptimization.FilledDuration | Durasi (ms) diisi oleh iklan YO. | 
| YieldOptimization.UnfilledDuration | Durasi (ms) dikirim ke APS dalam permintaan tawaran (kesenjangan peluang). | 
| YieldOptimization.FillRate | Per-avail tingkat pengisian: durasi YO yang ditranskode dibagi dengan durasi pra-YO yang belum terisi. Pembilangnya ditranskode dan penyebutnya adalah VAST-based (tidak mengurangi bumper), sehingga nilainya bisa melebihi 1,0. | 

### Metrik pendapatan dan harga
<a name="yield-optimization-troubleshooting-metrics-revenue"></a>


| Metrik | Deskripsi | 
| --- | --- | 
| YieldOptimization.Revenue | Total pendapatan untuk pelanggan, bersumber dari price atribut respon tawaran OrtB. Jumlah harga di seluruh iklan yang disisipkan. | 
| YieldOptimization.IndicativeBidRevenue | Nilai indikatif per tayangan yang dijumlahkan dari semua tawaran YANG DIKEMBALIKAN (harga tawaran per tayangan, bukan per penyisipan). Dual-emitted di samping Revenue selama jendela penghentian dan akan dihapus setelah dasbor dipotong. Gunakan Revenue untuk dasbor baru. | 
| YieldOptimization.BidPriceAdsInserted | Harga CPM dari setiap iklan disisipkan oleh Yield Optimization. Dimensi oleh atribut respons tawaran cur (mata uang). Tidak dipancarkan per pelanggan, jadi ini berlaku untuk seluruh akun. | 
| YieldOptimization.BidPriceAdsReturned | Harga CPM dari setiap tawaran dikembalikan di BidResponse (sebelum memfilter ke penyisipan). Dimensi olehcur. Tidak dipancarkan per pelanggan, jadi ini berlaku untuk seluruh akun. | 

### Kesalahan dan lewati metrik
<a name="yield-optimization-troubleshooting-metrics-error"></a>


| Metrik | Deskripsi | 
| --- | --- | 
| YieldOptimization.Errors | Dikeluarkan sebagai 1 untuk kesalahan koneksi, kesalahan pemrosesan respons, atau pengecualian tak terduga. Juga dipancarkan sebagai 0 saat berhasil (gunakan Sum, bukan SampleCount). | 
| YieldOptimization.Timeouts | Dipancarkan sebagai 1 saat permintaan APS habis waktu. Juga dipancarkan sebagai 0 saat berhasil (gunakan Sum, bukan SampleCount). | 
| YieldOptimization.BidRequestConfigurationError | Dipancarkan sebagai 1 saat template atau konstruksi tawaran gagal (bidang yang hilang, JSON tidak valid). | 
| YieldOptimization.SkipMinUnfilledDurationNotExceeded | Dipancarkan sebagai 1 saat YO dilewati karena durasi yang tidak terisi berada di bawah ambang batas. | 
| YieldOptimization.SkipPersonalizationTimeoutExceeded | Dipancarkan sebagai 1 ketika YO dilewati karena waktu personalisasi yang tersisa tidak mencukupi. | 

**penting**  
`YieldOptimization.Errors`dan `YieldOptimization.Timeouts` dipancarkan sebagai 0 pada setiap permintaan yang berhasil. Gunakan ** Sum ** (not SampleCount) CloudWatch untuk mendapatkan kesalahan aktual atau jumlah batas waktu. `NoBid`dan `BidRequestThrottled` tidak dihitung`Errors`. Mereka adalah sinyal terpisah untuk kondisi tanpa permintaan dan tekanan balik yang sah.

## Log acara
<a name="yield-optimization-troubleshooting-log-events"></a>

Pengoptimalan Hasil menghasilkan peristiwa dalam grup `MidasMMSService/ads_interaction_log` log:


| Tipe peristiwa | Deskripsi | 
| --- | --- | 
| RAW\_BID\_REQUEST | JSON permintaan tawaran OpenRTB lengkap dikirim ke APS. Gunakan ini untuk memverifikasi interpolasi template. | 
| RAW\_BID\_RESPONSE | Respons tawaran OpenRTB mentah dari APS, termasuk harga tawaran dan XML VAST. | 
| FILLED\_AVAIL | Manfaat lengkap dengan semua iklan. Iklan YO memiliki fillMode: "YIELD\_OPTIMIZATION" dan termasukbidId,bidPrice,currency,impressionId, danseatId. | 

Peristiwa kesalahan dipancarkan `MidasMMSService/application.log` dengan logger seperti`YieldOptimizationSupport`,, `OrtbBidRequestBuilder``HttpOrtbRequestSubmitter`, dan`OrtbResponseProcessor`.

## Contoh kueri CloudWatch Wawasan
<a name="yield-optimization-troubleshooting-insights"></a>

### Periksa kesalahan YO
<a name="yield-optimization-troubleshooting-insights-errors"></a>

```
fields @timestamp, message.sessionId, message.message, log.logger, log.level
| filter message.awsAccountId = 'YOUR_ACCOUNT_ID'
  and (log.level = 'ERROR' or log.level = 'WARN')
  and (log.logger like /YieldOptimization/
    or log.logger like /OrtbResponseProcessor/
    or log.logger like /HttpOrtbRequestSubmitter/
    or log.logger like /OrtbBidRequestBuilder/)
| sort @timestamp desc
| limit 100
```

**Grup log: ** `MidasMMSService/application.log`

### Hitung permintaan tawaran vs tanggapan
<a name="yield-optimization-troubleshooting-insights-count"></a>

```
fields @timestamp, sessionId, eventType
| filter awsAccountId = 'YOUR_ACCOUNT_ID'
  and (eventType = 'RAW_BID_REQUEST' or eventType = 'RAW_BID_RESPONSE')
| stats count(*) by eventType
```

**Grup log: ** `MidasMMSService/ads_interaction_log`

### Temukan iklan YO dalam ketersediaan yang diisi
<a name="yield-optimization-troubleshooting-insights-filled"></a>

Setiap `FILLED_AVAIL` acara berisi `creativeAds` array. Iklan YO dalam array itu membawa `fillMode: "YIELD_OPTIMIZATION"` metadata tawaran tambahan:`bidId`,`impressionId`,`bidPrice`,`seatId`, dan`currency`. Gunakan ini untuk melihat ketersediaan mana yang diisi oleh YO, berapa banyak iklan YO yang disisipkan per keuntungan, dan atribusi pendapatan per tawaran.

```
fields @timestamp, sessionId, avail.availId, avail.numAds, avail.fillRate, avail.filledDuration
| filter awsAccountId = 'YOUR_ACCOUNT_ID'
  and eventType = 'FILLED_AVAIL'
  and @message like /YIELD_OPTIMIZATION/
| sort @timestamp desc
| limit 50
```

Untuk menarik entri iklan YO individual (id bid dan harga) untuk sesi tertentu:

```
fields @timestamp, sessionId, avail.availId, avail.creativeAds
| filter awsAccountId = 'YOUR_ACCOUNT_ID'
  and eventType = 'FILLED_AVAIL'
  and sessionId = 'YOUR_SESSION_ID'
| sort @timestamp desc
| limit 20
```

Filter sisi klien `creativeAds` array yang dihasilkan untuk entri di mana. `fillMode == "YIELD_OPTIMIZATION"`

**Grup log: ** `MidasMMSService/ads_interaction_log`

### Periksa variabel template yang belum terselesaikan
<a name="yield-optimization-troubleshooting-insights-unresolved"></a>

```
fields @timestamp, sessionId, @message
| filter awsAccountId = 'YOUR_ACCOUNT_ID'
  and eventType = 'RAW_BID_REQUEST'
  and @message like /\{[A-Z_]+\}/
| sort @timestamp desc
| limit 20
```

**Grup log: ** `MidasMMSService/ads_interaction_log`

### Mengukur latensi YO dan tingkat keberhasilan
<a name="yield-optimization-troubleshooting-insights-latency"></a>

```
fields @timestamp, @message
| filter customerId = 'YOUR_ACCOUNT_ID'
  and (@message like /YieldOptimization/ or @message like /ortb_/)
| limit 10000
```

**Grup log: ** `MidasMMSService/service_log`

**catatan**  
`service_log`menggunakan `customerId` (not`awsAccountId`) untuk bidang ID akun.

## Menghitung kenaikan hasil
<a name="yield-optimization-troubleshooting-yield-lift"></a>

Untuk mengukur dampak pendapatan dari Yield Optimization, buat CloudWatch dasbor dengan:

1. **Tingkat pengisian tambahan: ** `Sum(YieldOptimization.AdsInserted) / Sum(YieldOptimization.BidRequest)` menunjukkan berapa persentase peluang YO yang menghasilkan iklan yang disisipkan. Atau, gunakan `Average(YieldOptimization.FillRate)` untuk metrik native per-available.

1. **Pendapatan per jam: ** `Sum(YieldOptimization.Revenue)` dari waktu ke waktu menunjukkan total pendapatan per pelanggan dari YO. `Sum(YieldOptimization.BidPriceAdsInserted)`memberikan CPM rata-rata di seluruh akun.

1. **Durasi diisi: ** `Sum(YieldOptimization.FilledDuration)` terhadap `Sum(YieldOptimization.BidDuration)` menunjukkan berapa banyak durasi yang diminta benar-benar diisi.

## Masalah umum
<a name="yield-optimization-troubleshooting-common-issues"></a>

### Pengoptimalan Hasil tidak memicu
<a name="yield-optimization-troubleshooting-not-triggering"></a>


| Gejala | Periksa | Resolusi | 
| --- | --- | --- | 
| Tidak ada metrik YO sama sekali | Apakah YO dikonfigurasi pada konfigurasi pemutaran? | Aktifkan YO di konsol atau API. | 
| SkipMinUnfilledDurationNotExceededmemancarkan | ADS utama mengisi sebagian besar istirahat | Turunkan MinimumUnfilledDuration atau terima bahwa pengisian utama sudah cukup. | 
| SkipPersonalizationTimeoutExceededmemancarkan | ADS primer terlalu lambat, tidak menyisakan waktu untuk YO | Optimalkan latensi ADS primer atau periksa konfigurasi SDC batas waktu personalisasi. | 

### Permintaan tawaran gagal
<a name="yield-optimization-troubleshooting-bidrequests-failing"></a>


| Gejala | Periksa | Resolusi | 
| --- | --- | --- | 
| Metrik BidRequestConfigurationError | Template memiliki bidang wajib yang hilang atau kosong | Per application.log iksa kesalahan spesifik (misalnya,app.bundle is required). Perbaiki template atau pastikan parameter pemain dikirim. | 
| HTTP 204 dari APS | YieldOptimization.NoBidbertambah | APS mengembalikan no-bid. Bukan kesalahan. Per RAW\_BID\_REQUEST iksa nilai placeholder ({UPPER\_CASE}pola), verifikasi bundel dan storeurl adalah real, bidfloor lebih rendah. | 
| HTTP 429 dari APS | YieldOptimization.BidRequestThrottledbertambah | APS melambatkan. Mundur dari tarif permintaan. Jika persisten, hubungi dukungan APS untuk menaikkan batas TPS. | 
| HTTP 400 dari APS | Permintaan JSON tidak valid | Periksa pesan kesalahan APS diRAW\_BID\_RESPONSE. Verifikasi struktur JSON cocok dengan spesifikasi OpenRTB. | 
| HTTP 500/503 dari APS | Kesalahan server APS atau kelebihan beban | Masalah sementara. MemantauYieldOptimization.Errors. Jika persisten, hubungi dukungan APS. | 

### Iklan dikembalikan tetapi tidak dimasukkan
<a name="yield-optimization-troubleshooting-not-inserted"></a>


| Gejala | Periksa | Resolusi | 
| --- | --- | --- | 
| AdsReturned> 0 tetapi AdsInserted = 0 | Iklan difilter selama penyisipan | Periksa FILLED\_AVAIL log untuk alasan melewatkan: iklan duplikat, ambang batas sisa terlampaui, atau varian iklan tidak ditemukan (transcoding tidak selesai). | 

## Referensi kode kesalahan APS
<a name="yield-optimization-troubleshooting-error-codes"></a>


| Kode | Arti | Penyebab umum | 
| --- | --- | --- | 
| 200 | Sukses dengan tawaran | Bekerja dengan benar. | 
| 204 | Tidak ada tawaran | Permintaan ini valid tetapi tidak ada tawaran yang tersedia. Ini tidak menunjukkan kesalahan dalam template Anda. | 
| 400 | Permintaan buruk | JSON tidak valid, tidak ada bidang wajib per spesifikasi OpenRTB. | 
| 500 | Kesalahan server | Masalah internal APS, layanan dibatasi, batas waktu. | 
| 503 | Layanan kelebihan beban | Tekanan balik APS. Jangan mencoba lagi secara agresif. | 
| 429 | Di-throttling | APS secara manual mulai membatasi permintaan. Hubungi dukungan APS jika gigih. | 