Menangani pelacakan iklan klien langsung

Jika pelacakan iklan klien diaktifkan, pemutar bertanggung jawab untuk memicu peristiwa pelacakan iklan. Metadata iklan yang disediakan oleh Video Stitcher API mencakup informasi pelacakan iklan dan iklan pengiring. Video Stitcher API mengurai informasi ini dari respons tag iklan.

Sebelum memulai

Pastikan Anda mengetahui langkah-langkah untuk membuat sesi live menggunakan Video Stitcher API. Untuk mendapatkan informasi selengkapnya, lihat panduan cara kerja.

Mendapatkan URI metadata iklan HLS dari manifes

Dalam manifes rendisi HLS, AdMetadataURI dienkode dalam atribut X-VAST-META dari tag #EXT-X-DATERANGE. Tag #EXT-X-DATERANGE dapat ditemukan sebelum segmen digabungkan pertama di setiap iklan.

Berikut adalah contoh tag metadata dengan waktu HLS:

#EXT-X-DATERANGE:ID="id123",START-DATE=2014-03-05T11:15:00Z,DURATION=15,X-VAST-META="eyJBZE1ldGFkYXRhVXJpIjogImh0dHBzOi8vZXhhbXBsZS5jb20vdjFhbHBoYS9wcm9qZWN0cy8xMjMvbG9jYXRpb25zL3VzLWNlbnRyYWwxL2xpdmVTZXNzaW9ucy9hYmMzMjEvYWRNZXRhZGF0YS9pZDEyMyJ9"

Nilai atribut X-VAST-META adalah string JSON berenkode base64. Setelah mendekode, Anda dapat mengekstrak AdMetadataURI dari JSON.

Contoh berikut menunjukkan X-VAST-META yang didekode:

{
  "AdMetadataUri": "https://example.com/v1/projects/123/locations/us-central1/liveSessions/abc321/adMetadata/id123"
}

Mendapatkan URI metadata iklan DASH dari manifes

Dalam manifes DASH, setiap periode iklan yang digabungkan berisi satu iklan VAST, dan URI metadata iklannya dapat diekstrak dari dalam tag EventStream. AdMetadataURI dienkode dalam atribut messageData dari elemen Event. Event adalah elemen di dalam tag EventStream dengan schemeIdUri dari urn:videostitcher:admetadata:202008.

Berikut adalah contoh tag streaming peristiwa DASH:

<EventStream schemeIdUri="urn:videostitcher:admetadata:202008" timescale="1000">
  <Event duration="5000" messageData="eyJBZE1ldGFkYXRhVXJpIjogImh0dHBzOi8vZXhhbXBsZS5jb20vdjFhbHBoYS9wcm9qZWN0cy8xMjMvbG9jYXRpb25zL3VzLWNlbnRyYWwxL2xpdmVTZXNzaW9ucy9hYmMzMjEvYWRNZXRhZGF0YS9pZDEyMyJ9"></Event>
</EventStream>

Gunakan base64 untuk mendekode messageData ke JSON.

Contoh berikut menunjukkan messageData yang didekode:

{
  "AdMetadataUri": "https://example.com/v1/projects/123/locations/us-central1/liveSessions/abc321/adMetadata/id123"
}

Mengambil dan memproses peristiwa pelacakan iklan

Setelah mendapatkan AdMetadataURI, Anda dapat mengambil metadata iklan.

Contoh berikut menampilkan metadata iklan:

{
  "activityEvents": [
    {
      "type": "PAUSE",
      "uri": "https://example.com/pause"
    }
  ],
  "progressiveEvents": [
    {
      "timeOffset": "0s",
      "events": [
        {
          "type": "IMPRESSION",
          "uri": "https://example.com/impression"
        },
        {
          "type": "START",
          "uri": "https://example.com/start"
        }
      ]
    },
    {
      "timeOffset": "2.500s",
      "events": [
        {
          "type": "FIRST_QUARTILE",
          "uri": "https://example.com/firstquartile"
        }
      ]
    }
  ],
  "adDuration": "10s"
}

Pada contoh sebelumnya, klien harus melakukan hal berikut:

  • Meminta https://example.com/start di awal video iklan.
  • Meminta https://example.com/impression di awal video iklan.
  • Meminta https://example.com/pause setiap kali penonton menjeda video iklan.
  • Meminta https://example.com/firstQuartile durasi 2,5 detik sebelum menonton video iklan.