Pierwsze kroki z pakietem IMA DAI SDK

Wybierz rozwiązanie DAI, które Cię interesuje

DAI z pełną obsługą

Ten przewodnik pokazuje, jak odtwarzać strumień DAI za pomocą pakietu IMA CAF DAI SDK. Jeśli chcesz obejrzeć lub przeanalizować ukończoną przykładową integrację, pobierz przykład.

Przed skorzystaniem z tego przewodnika zapoznaj się z Chromecastem protokołu Web Receiver na platformie Application Framework. Ten zakłada znajomość podstawowych zagadnień związanych z odbiornikami CAF, takich jak wiadomość urządzenia przechwytujące oraz mediaInformation. oraz znajomość funkcji poleceń i sterowania przesyłaniem do emulacji nadawcy CAF.

Aby korzystać z IMA DAI, musisz mieć Ad Managera 360. Jeśli masz reklamę konta menedżera. Aby uzyskać więcej informacji, skontaktuj się z menedżerem konta. Informacje na temat o rejestracji w usłudze Ad Manager znajdziesz w Centrum pomocy Ad Managera pomocy.

Informacje na temat integracji z innymi platformami i korzystania z IMA po stronie klienta przeczytaj artykuł Pakiety SDK do interaktywnych reklam medialnych.

Omówienie funkcji DAI CAF

Implementacja DAI za pomocą pakietu IMA CAF DAI SDK obejmuje 2 główne komponenty: w tym przewodniku:

  • StreamRequest: Obiekt definiujący żądanie strumienia do serwerów reklamowych Google. Żądania strumieni dzielą się na 2 główne:

    • LiveStreamRequest: określa Klucz zasobu i opcjonalny klucz interfejsu API, a także inny parametrów opcjonalnych.
    • VODStreamRequest: Określa identyfikator źródła treści, identyfikator filmu i opcjonalny interfejs API klucz oraz inne opcjonalne parametry.
  • StreamManager: Obiekt obsługujący komunikację między strumieniem wideo a IMA DAI SDK, np. uruchamianie pingów śledzących i przekazywanie zdarzeń strumienia do wydawcy.

Wymagania wstępne

Konfigurowanie obiektów MediaInfo nadawcy

Najpierw skonfiguruj MediaInfo aplikacji nadawcy , aby uwzględnić tych polach:

contentId Unikalny identyfikator tego elementu multimedialnego
contentUrl Zastępczy adres URL strumienia, który ma zostać wczytany, gdy żądanie StreamRequest DAI nie powiedzie się powód
streamType W przypadku transmisji na żywo ta wartość powinna być ustawiona na „LIVE”. W przypadku strumieni VOD: ta wartość powinna być ustawiona na „BUFFERED”
customData assetKey Tylko transmisje na żywo. Identyfikuje transmisję na żywo, która ma zostać wczytana
contentSourceId Tylko strumienie VOD. Identyfikuje kanał multimedialny, który zawiera żądany strumień.
videoId Tylko strumienie VOD. Identyfikuje żądany strumień w wybranego pliku danych multimedialnych.
ApiKey Opcjonalny klucz interfejsu API, który może być wymagany do pobrania adresu URL strumienia z: pakiet IMA DAI SDK
senderCanSkip Wartość logiczna wskazująca odbiorcy, czy urządzenie wysyłające ma wyświetlanie przycisku pominięcia, co umożliwia obsługę reklam możliwych do pominięcia.

Aby skonfigurować te wartości w narzędziu poleceń i sterowania przesyłaniem, kliknij przycisk Wczytaj Media i ustaw typ niestandardowego żądania wczytywania na LOAD. Następnie zastąp Dane JSON w obszarze tekstowym z jednym z tych obiektów JSON:

NA ŻYWO

{
  "media": {
    "contentId": "bbb",
    "contentUrl": "https://storage.googleapis.com/interactive-media-ads/media/bbb.m3u8",
    "streamType": "LIVE",
    "customData": {
      "assetKey": "sN_IYUG8STe1ZzhIIE_ksA",
      "ApiKey": "",
      "senderCanSkip": true
    }
  },
  "credentials": "testCredentials"
}

VOD

{
  "media": {
    "contentId": "tos",
    "contentUrl": "https://storage.googleapis.com/interactive-media-ads/media/tos.m3u8",
    "streamType": "BUFFERED",
    "customData": {
      "contentSourceId": "2548831",
      "videoId": "tears-of-steel",
      "ApiKey": "",
      "senderCanSkip": true
    }
  },
  "credentials": "testCredentials"
}

Ten niestandardowy obiekt żądania obciążenia można wysłać do odbiorcy, aby przetestować kolejnych czynności.

Tworzenie podstawowego odbiornika CAF

Postępując zgodnie z przewodnikiem po podstawowych odbiornikach SDK CAF, utwórz podstawowy odbiornik internetowy.

Kod Twojego odbiornika powinien wyglądać tak:

<html>
<head>
  <script type="text/javascript"
      src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js">
  </script>
</head>
<body>
  <cast-media-player></cast-media-player>
  <script>
    cast.framework.CastReceiverContext.getInstance().start();
  </script>
</body>
</html>

Zaimportuj pakiet IMA DAI SDK i pobierz Menedżera odtwarzaczy.

Dodaj tag skryptu, by zaimportować pakiet IMA DAI SDK dla CAF do swojego odbiornika internetowego. po wczytaniu skryptu. Pakiet SDK CAF DAI jest zawsze aktualny, żeby ustawić konkretną wersję. Następnie w kolejnym tagu skryptu zapisz parametr kontekstu odbiorcy i menedżera odtwarzacza jako wartości stałych.

<html>
<head>
  <script type="text/javascript"
      src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
  <script src="//imasdk.googleapis.com/js/sdkloader/cast_dai.js"></script>
</head>
<body>
  <cast-media-player></cast-media-player>
  <script>
    const castContext = cast.framework.CastReceiverContext.getInstance();
    const playerManager = castContext.getPlayerManager();

    castContext.start();
  </script>
</body>
</html>

Inicjowanie Menedżera strumieni IMA

Zainicjuj strumień danych z pakietu SDK CAF DAI Menedżer.

<html>
<head>
  <script type="text/javascript"
      src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
  <script src="//imasdk.googleapis.com/js/sdkloader/cast_dai.js"></script>
</head>
<body>
  <cast-media-player></cast-media-player>
  <script>
    const castContext = cast.framework.CastReceiverContext.getInstance();
    const playerManager = castContext.getPlayerManager();
    const streamManager = new google.ima.cast.dai.api.StreamManager();

    castContext.start();
  </script>
</body>
</html>

Utwórz element przechwytujący wiadomości

Pakiet SDK CAF DAI używa komunikatu wczytywania CAF przechwytujący , by wysyłać żądania strumieni i zastępować adres URL treści końcowym strumieniem z dynamicznym wstawianiem reklam. Funkcja przechwytująca wiadomości wywołuje metodę streamManager.requestStream(), która obsługuje ustawianie przerw na reklamę, wysyłanie żądań transmisji i zastępowanie istniejących contentURL

Może być tylko jeden przechwytujący wiadomości, jeśli więc aplikacja wymaga użycia wszelkie niestandardowe funkcje w tej samej ramce oddzwanianie.

<html>
<head>
  <script type="text/javascript"
      src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
  <script src="//imasdk.googleapis.com/js/sdkloader/cast_dai.js"></script>
</head>
<body>
  <cast-media-player></cast-media-player>
  <script>
    const castContext = cast.framework.CastReceiverContext.getInstance();
    const playerManager = castContext.getPlayerManager();
    const streamManager = new google.ima.cast.dai.api.StreamManager();

    const getStreamRequest = (request) => null;

    playerManager.setMessageInterceptor(
        cast.framework.messages.MessageType.LOAD, (request) => {
          return streamManager.requestStream(request, getStreamRequest(request))
              .then((request) => {
                this.broadcast('Stream request successful.');
                return Promise.resolve(request);
              })
              .catch((error) => {
                this.broadcast('Stream request failed.');
                return Promise.resolve(request);
              });
        });

    castContext.start();
  </script>
</body>
</html>

Tworzenie żądania strumienia

Aby zakończyć integrację DAI CAF, musisz utworzyć strumień danych prośba używając danych zawartych w obiekcie mediaInfo od nadawcy.

<html>
<head>
  <script type="text/javascript"
      src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
  <script src="//imasdk.googleapis.com/js/sdkloader/cast_dai.js"></script>
</head>
<body>
  <cast-media-player></cast-media-player>
  <script>
    const castContext = cast.framework.CastReceiverContext.getInstance();
    const playerManager = castContext.getPlayerManager();
    const streamManager = new google.ima.cast.dai.api.StreamManager();

    const getStreamRequest = (request) => {
      const imaRequestData = request.media.customData;
      let streamRequest = null;
      if (imaRequestData.assetKey) {
        // Live stream
        streamRequest = new google.ima.cast.dai.api.LiveStreamRequest();
        streamRequest.assetKey = imaRequestData.assetKey;
      } else if (imaRequestData.contentSourceId) {
        // VOD stream
        streamRequest = new google.ima.cast.dai.api.VODStreamRequest();
        streamRequest.contentSourceId = imaRequestData.contentSourceId;
        streamRequest.videoId = imaRequestData.videoId;
      }
      if (streamRequest && imaRequestData.ApiKey) {
        streamRequest.ApiKey = imaRequestData.ApiKey;
      }
      if (streamRequest && imaRequestData.senderCanSkip) {
        streamRequest.senderCanSkip = imaRequestData.senderCanSkip;
      }
      return streamRequest;
    };

    playerManager.setMessageInterceptor(
        cast.framework.messages.MessageType.LOAD, (request) => {
          return streamManager.requestStream(request, getStreamRequest(request))
              .then((request) => {
                return Promise.resolve(request);
              })
              .catch((error) => {
                this.broadcast('Stream request failed.');
                return Promise.resolve(request);
              });
        });

    castContext.start();
  </script>
</body>
</html>

Możesz teraz wysyłać żądania strumieni DAI i je odtwarzać za pomocą pakietu Google SDK CAF DAI. Aby dowiedzieć się więcej o bardziej zaawansowanych funkcjach pakietu SDK, zapoznaj się z innymi przewodnikami lub pobierz nasz odbiornik próbki aplikacji.