Iniziare a utilizzare l'SDK IMA DAI

Seleziona la soluzione DAI che ti interessa

DAI servizio completo

Questa guida illustra come riprodurre uno stream DAI con l'SDK IMA CAF DAI. Se che vuoi visualizzare o seguire con un'integrazione di esempio completata, scarica l'esempio.

Prima di utilizzare questa guida, assicurati di acquisire familiarità con Chromecast protocollo Web ricevitore di Application Framework. Questo la guida presuppone un livello base di familiarità con i concetti di base dei ricevitori CAF, quali messaggio intercettori e mediaInformation oggetti, nonché familiarità con l'uso del comando Trasmetti per emulare un mittente CAF.

Per utilizzare l'IMA DAI, devi disporre di un Ad Manager 360. Se hai un annuncio Per ulteriori dettagli, contatta il tuo account manager. Per informazioni su come registrarti ad Ad Manager, visita la Guida di Ad Manager assistenza.

Per informazioni sull'integrazione con altre piattaforme o sull'utilizzo dell'IMA SDK lato client, consulta gli SDK Interactive Media Ads.

Panoramica del DAI CAF

L'implementazione del DAI utilizzando l'SDK IMA CAF DAI prevede due componenti principali: come mostrato in questa guida:

  • StreamRequest: Un oggetto che definisce una richiesta di flusso ai server pubblicitari di Google. Le richieste di stream possono essere di due tipi principali:

    • LiveStreamRequest: specifica una chiave risorsa, una chiave API facoltativa, nonché altre parametri facoltativi.
    • VODStreamRequest: Specifica un ID origine di contenuto, un ID video e un'API facoltativa chiave, oltre ad altri parametri facoltativi.
  • StreamManager: Un oggetto che gestisce la comunicazione tra il video stream e l'IMA DAI l'SDK, come l'attivazione di ping di monitoraggio e l'inoltro di eventi di streaming al publisher.

Prerequisiti

configura gli oggetti MediaInfo del mittente

Innanzitutto, configura le informazioni MediaInfo dell'app del mittente da includere nei seguenti campi:

contentId Un identificatore univoco per questo elemento multimediale
contentUrl L'URL dello stream di riserva da caricare se la richiesta di streaming DAI non va a buon fine motivo
streamType Per i live streaming, questo valore deve essere impostato su "LIVE". Per gli stream VOD, questo valore deve essere impostato su "BUFFERED"
customData assetKey Solo live streaming. Identifica il live streaming da caricare
contentSourceId Solo stream VOD. Identifica il feed multimediale che contiene flusso richiesto.
videoId Solo stream VOD. Identifica lo stream richiesto all'interno feed multimediale specificato.
ApiKey Una chiave API facoltativa che può essere richiesta per recuperare l'URL dello stream da l'SDK IMA DAI
senderCanSkip Un valore booleano che indica al destinatario se il dispositivo di invio ha possibilità di mostrare un pulsante Salta, abilitando il supporto degli annunci ignorabili

Per configurare questi valori nello strumento di comando e controllo Cast, fai clic sul pulsante Carica Media e impostare il tipo di richiesta di caricamento personalizzato su LOAD. Quindi sostituisci Dati JSON nell'area di testo con uno dei seguenti oggetti JSON:

IN DIRETTA

{
  "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"
}

Questo oggetto di richiesta di carico personalizzato può essere inviato al destinatario per testare i seguenti passaggi.

Crea un ricevitore CAF di base

Segui la guida per il ricevitore dell'SDK CAF di base, crea un ricevitore web di base.

Il codice del destinatario dovrebbe avere l'aspetto seguente:

<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>

Importa l'SDK IMA DAI e scarica Player Manager

Aggiungi un tag script per importare l'SDK IMA DAI per CAF nel ricevitore web, dopo il caricamento del CAF dello script. L'SDK DAI CAF è evergreen, quindi non è necessario per impostare una versione specifica. Quindi, nel tag script che segue, memorizza il contesto del ricevitore e il gestore del player come costanti prima di avviare il ricevitore.

<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>

Inizializza IMA Stream Manager

Inizializza lo stream dell'SDK DAI CAF Gestore.

<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>

Crea l'intercettatore dei messaggi di caricamento

L'SDK DAI CAF utilizza il messaggio di caricamento CAF intercettore per effettuare richieste di streaming e sostituire l'URL dei contenuti con lo streaming DAI finale. L'intercettatore dei messaggi chiama streamManager.requestStream() che gestisce impostare le interruzioni pubblicitarie, richiedere lo streaming e sostituire quelle esistenti contentURL.

Può esserci un solo intercettatore dei messaggi di caricamento, quindi se la tua app richiede l'uso devi incorporare tutte le funzioni personalizzate di Google.

<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>

Crea la richiesta di flusso

Per completare l'integrazione del DAI CAF, devi creare il tuo stream richiesta utilizzando i dati inclusi nell'oggetto mediaInfo del mittente.

<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>

Ora puoi richiedere e riprodurre stream DAI con l'SDK CAF DAI di Google. Per scoprire di più sulle funzioni avanzate dell'SDK, consulta le altre guide o scarica il nostro ricevitore di esempio applicazioni.