Pakiety IMA SDK ułatwiają integrację reklam multimedialnych z witrynami i aplikacjami. Pakiety IMA SDK mogą żądać reklam z dowolnego serwera reklam zgodnego ze specyfikacją VAST i zarządzać odtwarzaniem reklam w aplikacjach. Dzięki pakietom IMA DAI SDK aplikacje wysyłają żądanie strumienia dotyczące reklam i treści wideo – VOD lub treści na żywo. Następnie pakiet SDK zwraca połączony strumień wideo, dzięki czemu nie musisz zarządzać przełączaniem się między reklamą a filmem w aplikacji.
Wybierz preferowane rozwiązanie DAI:
- Konfiguracja z pełną obsługą dynamicznego wstawiania reklam: Google Ad Manager wybiera i wstawia reklamy bezpośrednio do strumienia treści.
- Konfigurowanie z DAI z wyświetlaniem bloków reklamowych: Google Ad Manager udostępnia bloki reklamowe, które można połączyć lub wczytać do odtwarzacza.
Odtwarzanie strumieni VOD zarejestrowanych za pomocą interfejsu Google Cloud Video Stitcher API
Z tego przewodnika dowiesz się, jak używać pakietu IMA DAI SDK dla HTML5 do wysyłania żądań i odtwarzania sesji strumienia VOD w Google Cloud.
Ten przewodnik rozwija podstawowy przykład z przewodnika dla początkujących dotyczącego IMA DAI.
Informacje o integracji z innymi platformami lub o korzystaniu z pakietów IMA SDK po stronie klienta znajdziesz w artykule Pakiety Interactive Media Ads SDK.
Aby wyświetlić lub prześledzić ukończoną przykładową integrację, pobierz przykład narzędzia do łączenia plików wideo w Cloud dla HLS lub DASH.
Konfigurowanie projektu Google Cloud
Skonfiguruj projekt Google Cloud i konta usługi, aby uzyskać dostęp do projektu.
Wpisz te zmienne do użycia w pakiecie IMA SDK:- Lokalizacja
- Region Google Cloud, w którym utworzono konfigurację VOD:
LOCATION - Numer projektu
- Numer projektu Google Cloud, który korzysta z interfejsu Video Stitcher API:
PROJECT_NUMBER - Token OAuth
Krótkotrwały token OAuth konta usługi z rolą użytkownika Video Stitcher:
OAUTH_TOKEN
Dowiedz się więcej o tworzeniu krótkotrwałych tokenów OAuth. Token OAuth może być używany w wielu żądaniach, dopóki nie wygaśnie.
- Kod sieci
Kod sieci Ad Managera do żądania reklam:
NETWORK_CODE
- Identyfikator konfiguracji VOD
Identyfikator konfiguracji VOD dla strumienia VOD:
VOD_CONFIG_IDWięcej informacji o tworzeniu identyfikatora konfiguracji VOD znajdziesz w przewodniku po tworzeniu konfiguracji VOD w Cloud Stitching.
Konfigurowanie środowiska programistycznego
Przykładowe aplikacje IMA pokazują tylko żądania transmisji HLS. Podczas tworzenia klasy VideoStitcherVodStreamRequest nadal możesz używać strumieni DASH. Podczas konfigurowania odtwarzacza zgodnego z DASH musisz skonfigurować detektor zdarzeń postępu odtwarzacza, który może dostarczać metadane filmu do StreamManager.processMetadata().
Ta funkcja przyjmuje 3 parametry:
type: ciąg znaków, który musi być ustawiony na'ID3'w przypadku strumieni HLS i'urn:google:dai:2018'w przypadku strumieni DASH.data: w przypadku komunikatów o zdarzeniach DASH jest to ciąg danych komunikatu.timestamp: liczba, która jest czasem rozpoczęcia wiadomości o zdarzeniu w przypadku strumieni DASH.
Wysyłaj metadane tak szybko i tak często, jak to możliwe, na podstawie zdarzeń odtwarzacza. Jeśli brakuje metadanych lub są one nieprawidłowe, pakiet IMA DAI SDK może nie wywoływać zdarzeń reklamowych, co prowadzi do nieprawidłowego raportowania zdarzeń reklamowych.
Pobierz przykłady IMA DAI dla HTML5 i wyodrębnij przykładowy plik ZIP hls_js/simple do nowego folderu. Ten przykład to aplikacja internetowa, którą możesz hostować lokalnie na potrzeby testów.
Aby hostować przykład lokalnie, przejdź do nowego folderu i uruchom to polecenie Pythona, aby uruchomić serwer WWW:
python3 -m http.server 8000http.server jest dostępny tylko w Pythonie 3.x. Możesz użyć dowolnego innego serwera WWW, takiego jak Apache HTTP Server lub Node JS.
Otwórz przeglądarkę i wejdź na stronę localhost:8000, aby zobaczyć odtwarzacz.
Przeglądarka musi obsługiwać bibliotekę HLS.js.
Jeśli wszystko działa prawidłowo, kliknięcie przycisku odtwarzania w odtwarzaczu rozpocznie odtwarzanie krótkiego filmu „Tears of Steel” z przerwami na reklamę co 30 sekund.
Żądanie strumienia VOD
Aby zastąpić przykładowy strumień strumieniem VOD z połączonymi reklamami, użyj klasy VideoStitcherVodStreamRequest, która automatycznie utworzy sesję reklamową w usłudze Google Ad Manager. W interfejsie Google Ad Managera możesz znaleźć wygenerowane sesje DAI, aby je monitorować i debugować.
W istniejącym przykładzie znajdują się funkcje do wysyłania żądań strumienia VOD lub transmisji na żywo. Aby działał on z interfejsem Google Cloud Video Stitcher API, musisz dodać nową funkcję, która zwraca obiekt VideoStitcherVodStreamRequest.
Oto przykład:
// StreamManager which will be used to request DAI streams.
let streamManager;
...
function initPlayer() {
videoElement = document.getElementById('video');
adUiElement = document.getElementById('adUi');
streamManager = new google.ima.dai.api.StreamManager(
videoElement,
adUiElement
);
streamManager.addEventListener(
[
google.ima.dai.api.StreamEvent.Type.LOADED,
google.ima.dai.api.StreamEvent.Type.ERROR,
google.ima.dai.api.StreamEvent.Type.AD_BREAK_STARTED,
google.ima.dai.api.StreamEvent.Type.AD_BREAK_ENDED
],
onStreamEvent, false);
hls.on(Hls.Events.FRAG_PARSING_METADATA, function(event, data) {
if (streamManager && data) {
// For each ID3 tag in our metadata, we pass in the type - ID3, the
// tag data (a byte array), and the presentation timestamp (PTS).
data.samples.forEach(function(sample) {
streamManager.processMetadata('ID3', sample.data, sample.pts);
});
}
});
videoElement.addEventListener('pause', () => {
playButton.style.display = "block";
});
playButton.addEventListener('click', initiatePlayback);
}
function initiatePlayback() {
requestVodVideoStitcherStream();
playButton.style.display = "none";
playButton.removeEventListener('click', initiatePlayback);
playButton.addEventListener('click', resumePlayback);
}
...
function requestVodVideoStitcherStream() {
const streamRequest = new google.ima.dai.api.VideoStitcherVodStreamRequest();
streamRequest.vodConfigId = 'VOD_CONFIG_ID';
streamRequest.region = 'LOCATION';
streamRequest.projectNumber = 'PROJECT_NUMBER';
streamRequest.oAuthToken = 'OAUTH_TOKEN';
streamRequest.networkCode = 'NETWORK_CODE';
streamManager.requestStream(streamRequest);
}
Odśwież stronę. Następnie możesz poprosić o niestandardowy strumień VOD i go odtworzyć.
(Opcjonalnie) Dodawanie opcji sesji strumieniowania
Dostosuj żądanie strumienia, dodając opcje sesji, aby zastąpić domyślną konfigurację interfejsu Cloud Video Stitcher API za pomocą VideoStitcherVodStreamRequest.videoStitcherSessionOptions.
Jeśli podasz nierozpoznaną opcję, interfejs Cloud Video Stitcher API zwróci błąd HTTP 400. Więcej informacji znajdziesz w przewodniku po rozwiązywaniu problemów.
Możesz na przykład zastąpić opcje pliku manifestu tym fragmentem kodu, który żąda 2 plików manifestu strumienia z wersjami uporządkowanymi od najniższej do najwyższej szybkości transmisji bitów.
...
// The following session options are examples. Use session options
// that are compatible with your video stream.
streamRequest.videoStitcherSessionOptions = {
"manifestOptions": {
"bitrateOrder": "ascending"
}
};
streamManager.requestStream(streamRequest);
Czyszczenie danych
Udało Ci się utworzyć strumień VOD za pomocą interfejsu Google Cloud Video Stitcher API i wysłać do niego żądanie za pomocą pakietu IMA DAI SDK dla HTML5. Teraz musisz wyczyścić wszystkie zasoby wyświetlania.
Postępuj zgodnie z instrukcjami w przewodniku po czyszczeniu VOD, aby usunąć niepotrzebne zasoby i komponenty.
Na koniec w oknie terminala, w którym uruchomiono serwer WWW w Pythonie 3, użyj polecenia ctrl+C, aby zakończyć działanie serwera lokalnego.