Z tego przewodnika dowiesz się, jak skonfigurować manipulator plików manifestu, aby wysyłać żądania dotyczące segmentów reklam lub segmentów z przerwą na reklamę za pomocą metody podsegmentu reklamy.
Wybierz protokół przesyłania strumieniowego:
Wymagania wstępne
Zanim przejdziesz dalej, musisz skonfigurować wydarzenie na żywo dla typu dynamicznego wstawiania reklam (DAI) Blok reklamowy z przekierowaniem i profile kodowania. Aby skonfigurować wydarzenie na żywo, wybierz jedną z tych metod:
- Interfejs Ad Managera: konfigurowanie transmisji na żywo na potrzeby DAI
- Interfejs Ad Manager API: użyj biblioteki klienta, aby wywołać metodę
LiveStreamEventService.createLiveStreamEvents
. Ustaw parametrLiveStreamEvent.dynamicAdInsertionType
naPOD_SERVING_REDIRECT
.
Po skonfigurowaniu transmisji na żywo pobierz profile kodowania wydarzenia z interfejsu Ad Managera lub interfejsu API, wywołując metodę DaiEncodingProfileService.getDaiEncodingProfilesByStatement
.
Pobieranie strumienia treści
Gdy użytkownik wybierze wydarzenie transmitowane na żywo, aplikacja kliencka wyśle do Google Ad Managera żądanie transmisji. W odpowiedzi strumieniowej aplikacja wyodrębnia identyfikator sesji Google DAI i metadane, aby uwzględnić je w żądaniu pliku manifestu strumienia.
W tym przykładzie identyfikator sesji Google DAI jest przekazywany do manipulatora pliku manifestu:
https://MANIFEST_MANIPULATOR_URL/manifest.m3u8?DAI_stream_ID=SESSION_ID&network_code=NETWORK_CODE&DAI_custom_asset_key=CUSTOM_ASSET_KEY
Podczas przetwarzania żądania odtworzenia treści wideo zapisz identyfikator sesji DAI Google i CUSTOM_ASSET_KEY z żądania, aby przygotować się do wstawiania reklam.
Określanie segmentów przerw na reklamy i wstawianie nieciągłości
Podczas przetwarzania każdego pliku manifestu odmiany zidentyfikuj w strumieniu tagi EXT-X-CUE-IN
i EXT-X-CUE-OUT
, które wskazują początek i koniec bloku reklamowego.
Zastąp tagi EXT-X-CUE-IN
i EXT-X-CUE-OUT
elementami EXT-X-DISCONTINUITY
, aby odtwarzacz wideo klienta mógł przełączać się między treściami a reklamami.
W przykładzie poniżej tagi EXT-X-CUE-IN
i EXT-X-CUE-OUT
zostały zastąpione:
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.000,
contentorigin.com/1.ts
#EXTINF:5.000,
contentorigin.com/2.ts
#EXT-X-CUE-OUT:15.000
#EXTINF:5.000,
contentorigin.com/3.ts
#EXTINF:5.000,
contentorigin.com/4.ts
#EXTINF:5.000,
contentorigin.com/5.ts
#EXT-X-CUE-IN
#EXTINF:5.000,
contentorigin.com/6.ts
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4
Poniższy przykład przedstawia zastąpiony plik manifestu:
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.000,
contentorigin.com/1.ts
#EXTINF:5.000,
contentorigin.com/2.ts
#EXTINF:5.000,
#EXT-X-DISCONTINUITY
{... Insert ad segments here ...}
#EXT-X-DISCONTINUITY
#EXTINF:5.000,
contentorigin.com/6.mp4
#EXTINF:5.000,
contentorigin.com/7.mp4
#EXTINF:5.000,
contentorigin.com/8.mp4
Segmenty reklam DAI w Google nie są szyfrowane. Jeśli Twoje treści są zaszyfrowane, usuń szyfrowanie, wstawiając element EXT-X-KEY:METHOD=NONE
przed pierwszym segmentem reklamy w każdej przerwie na reklamę. Po zakończeniu przerwy na reklamę przywróć szyfrowanie, wstawiając odpowiedni tag EXT-X-KEY
.
Śledź czas rozpoczęcia, czas trwania i indeks nadchodzącej przerwy na reklamę.
Generowanie tokena HMAC
Każde żądanie segmentu wysyłane przy użyciu wyświetlania bloku reklamowego z przekierowaniem segmentu musi zawierać token podpisany za pomocą HMAC na potrzeby uwierzytelniania.
Oblicz ten token raz na przerwę na reklamę i udostępnij go we wszystkich sesjach strumieniowania.
Zbieranie parametrów tokena
Aby wypełnić treść tokena, zbierz z bieżącej przerwy na reklamę te informacje:
Parametry tokena | ||
---|---|---|
custom_asset_key
|
Wymagane | Niestandardowy klucz pliku transmisji na żywo z Google Ad Managera. |
cust_params
|
Opcjonalny | Parametry kierowania niestandardowego. Zobacz cust_params .
|
exp
|
Wymagane | Sygnatura czasowa wygaśnięcia bieżącego tokena w sekundach. |
network_code
|
Wymagane | Kod sieci Ad Managera 360. |
pod_id
|
Wymagane | Identyfikator przerwy na reklamę. Liczba całkowita zaczynająca się od 1 . W przypadku każdej przerwy na reklamę ten identyfikator zwiększa się o 1.
Ta wartość musi być taka sama dla wszystkich użytkowników oglądających tę samą przerwę na reklamę w bieżącym wydarzeniu. |
pd
|
Wymagany, z wyjątkiem zdarzeń z włączonymi przerwami na reklamę bez określonego czasu trwania. | Czas trwania przerwy na reklamę w milisekundach. Nawiązania
ad_pod_duration .
|
scte35
|
Opcjonalny | Sygnał SCTE-35 zakodowany w formacie Base64. Google DAI zawsze kopiuje sygnał do utworzonego bloku reklamowego, nawet jeśli jest on nieprawidłowy.
Jeśli jest nieprawidłowy, w odpowiedzi otrzymasz komunikat w X-Ad-Manager-Dai-Warning nagłówku HTTPX-Ad-Manager-Dai-Warning , a sygnał nadal będzie tworzyć przerwę na reklamę. Szczegółowe informacje o tym, jak DAI wykorzystuje sygnał SCTE-35, znajdziesz w sekcji Obsługiwane znaczniki reklam.
|
Tworzenie ciągu tokena
Aby utworzyć ciąg tokena, wypisz wszystkie parametry w kolejności alfabetycznej w formacie NAME=VALUE
, a każdą parę nazwa-wartość oddziel znakiem tyldy ~
.
W przypadku nieużywanych parametrów opcjonalnych użyj pustego ciągu znaków jako wartości lub całkowicie usuń parametr.
Poniższy przykład formatuje ciąg tokena:
custom_asset_key=CUSTOM_ASSET_STRING~exp=EXPIRATION~network_code=NETWORK_CODE~pd=POD_DURATION~pod_id=AD_POD_INDEX~scte35=SCTE35_MESSAGE
Generowanie podpisu HMAC
Podpis HMAC to skrót SHA-256 ciągu tokena w formacie szesnastkowym. Klucz tajny to klucz uwierzytelniania HMAC powiązany z wydarzeniem transmisji na żywo w Google Ad Managerze.
Ciąg tokena podpisu
Po wygenerowaniu podpisu HMAC dołącz go do ciągu tokena w tym formacie:
~hmac=HMAC_SIGNATURE
Kodowanie ciągu tokena
Aby przekazać token jako parametr adresu URL, zakoduj adres URL, aby zapewnić bezpieczeństwo.
W tym przykładzie generowany jest podpisany i zakodowany token HMAC, w którym nieużywane parametry opcjonalne są pustymi ciągami znaków:
custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~cust_params=~exp=1489680000~network_code=6062~pd=180000~pod_id=5~scte35=
Secret key:
A7490591290583E4B93189DEE7E287C299FC686872ABC7ADC9F9F536443505F
HMAC signature:
86d7e5f8c96fe4c83141d764df376ae14a0e2066f2e6b2ccfb9e1e2d3c869a88
Signed token:
custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~cust_params=~exp=1489680000~network_code=6062~pd=180000~pod_id=5~scte35=~hmac=86d7e5f8c96fe4c83141d764df376ae14a0e2066f2e6b2ccfb9e1e2d3c869a88
URL-encoded signed token:
custom_asset_key%3DiYdOkYZdQ1KFULXSN0Gi7g~cust_params%3D~exp%3D1489680000~network_code%3D6062~pd%3D180000~pod_id%3D5~scte35%3D~hmac%3D86d7e5f8c96fe4c83141d764df376ae14a0e2066f2e6b2ccfb9e1e2d3c869a88
Ten przykład generuje podpisany i zakodowany token HMAC bez nieużywanych parametrów opcjonalnych:
custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g3~exp=1489680000~network_code=6062~pd=180000~pod_id=5
Secret key:
A7490591290583E4B93189DEE7E287C299FC686872ABC7ADC9F9F536443505F
HMAC signature:
6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9
Signed token:
custom_asset_key=iYdOkYZdQ1KFULXSN0Gi7g~exp=1489680000~network_code=6062~pd=180000~pod_id=5~hmac=6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9
URL-encoded signed token:
custom_asset_key%3DiYdOkYZdQ1KFULXSN0Gi7g~exp%3D1489680000~network_code%3D6062~pd%3D180000~pod_id%3D5~hmac%3D6a8c44c72e4718ff63ad2284edf2a8b9e319600b430349d31195c99b505858c9
Tworzenie adresów URL segmentów reklam
Zastąp każdy segment treści między tagami EXT-X-DISCONTINUITY
adresem URL wskazującym metodę segmentu bloku reklamowego.
W tym przykładzie tworzymy segment bloku reklamowego. Pamiętaj, że segmenty reklam korzystają z indeksu opartego na zerze:
https://dai.google.com/linear/pods/v1/seg/network/NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/0.ts?sd=AD_SEGMENT_DURATION&pd=AD_BREAK_DURATION&stream_id=SESSION_ID&auth-token=HMAC
Poniższy przykład pokazuje, jak wstawić segmenty bloku reklamowego do pliku manifestu:
#EXTM3U
#EXT-X-VERSION:6
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:5.00,
contentorigin.com/1.ts
#EXTINF:5.00,
contentorigin.com/2.ts
#EXT-X-DISCONTINUITY
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/0.ts?sd=5000&so=0&pd=15000&stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/1.ts?sd=5000&so=5000&pd=15000&stream_id=SESSION_ID
#EXTINF:5.00,
https://dai.google.com/linear/pods/v1/seg/network/
NETWORK_CODE/custom_asset/CUSTOM_ASSET_KEY/ad_break_id/AD_BREAK_ID/profile/ENCODING_PROFILE/2.ts?sd=5000&so=10000&pd=15000&stream_id=SESSION_ID
#EXT-X-DISCONTINUITY
#EXTINF:5.00,
contentorigin.com/6.mp4
#EXTINF:5.00,
contentorigin.com/7.mp4
#EXTINF:5.00,
contentorigin.com/8.mp4
Opcjonalnie: zaplanuj przerwę na reklamę
Aby zwiększyć współczynnik wypełnienia, wyślij powiadomienie o wczesnej przerwie na reklamę (EABN) z czasem trwania bloku reklamowego, niestandardowymi parametrami kierowania i danymi sygnału SCTE-35. Więcej informacji znajdziesz w artykule Wysyłanie powiadomień o wcześniejszej przerwie na reklamy.