Pelacakan iklan sisi klien - AWS Elemental MediaTailor

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

Pelacakan iklan sisi klien

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 Untuk informasi selengkapnya tentang ADS dan entitas verifikasi iklan lainnya, lihatIntegrasi pelacakan iklan sisi klien.

Untuk informasi tentang meneruskan parameter pemain dan data sesi ke ADS untuk pelacakan sisi klien, lihat MediaTailor variabel pemain dan. MediaTailor variabel sesi

Pelacakan sisi klien memungkinkan fungsionalitas seperti berikut:

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

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.

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 termasukadsParams, token asal, dan fitur sesi. MediaTailor merespons dengan manifestUrl dan trackingUrl untuk sesi tersebut.

  2. 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 pemain, menerima respons VAST dengan metadata iklan, dan mengirimkan manifes yang dipersonalisasi dengan penanda iklan ke pemutar.

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

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

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

Mengaktifkan pelacakan sisi klien

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 untukparam1, dan player_params.param2 merupakan parameter pemain untukparam2.

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

Parameter server iklan

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

Setiap key/value pasangan cadangan dalam tingkat paling atas struktur JSON, seperti,adsParams, dan availSuppressionoverlayAvails, 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

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.

contoh : 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" } }
contoh : 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

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 mengirimkan beacon langsung ke server iklan.

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

reportingModeParameter 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

Praktik terbaik untuk pelacakan sisi klien

Bagian ini menguraikan praktik terbaik untuk pelacakan sisi klien MediaTailor untuk alur kerja langsung dan VOD.

Alur kerja langsung

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

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.

Paging melalui suar iklan dengan GetTracking

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.

GetTrackingmengembalikan 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 pertamaGetTracking, semua iklan yang mungkin jatuh di jendela manifes dikembalikan, termasuk nilai NextToken dan masing-masing.

  • Jika GetTracking permintaan tidak menyertakanNextToken, 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 nolNextToken.

Urutan panggilan umum dari GetTracking dari pemain

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

    Semua iklan dan suar dan yang pertama NextToken untuk panggilan berikutnya dikembalikan.

  2. Jika nilai NextToken adalah null, MediaTailor mengembalikan semua beacon iklan.

  3. Jika kedaluwarsa, MediaTailor mengembalikan pesan kesalahan kode pengembalian HTTP 400. NextToken

    Buat panggilan baru GetTracking untuk mengambil NextToken s yang valid.

  4. Pindai seluruh respons untuk menemukan suar iklan yang berada dalam kisaran yang diinginkan. StartTimeInSeconds

  5. Buat panggilan baru GetTracking dengan nilai yang NextToken terkait dengan yang diinginkanStartTimeInSeconds.

  6. Jika perlu, putar lagi melalui iklan yang dikembalikan sampai Anda menemukan yang tepat yang ingin Anda mainkan.

Contoh yang diperluas

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 6Bi SNL1 IJmz PVMDN0lqr Mb. BYycg 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 } ] }