Wstawianie reklam za pomocą przekierowania segmentu

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:

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-INEXT-X-CUE-OUT, które wskazują początek i koniec bloku reklamowego.

Zastąp tagi EXT-X-CUE-INEXT-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-INEXT-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-Warningnagłó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.