Possibilità di ignorare

Richiedere e visualizzare gli annunci ignorabili con l'SDK DAI di CAF è un'attività complessa, perché richiede di capire se la combinazione di mittenti e destinatari in uso è in grado di mostrare e interagire con un pulsante Salta.

L'SDK farà automaticamente il possibile per rilevare se l'attuale ricevente è in grado di visualizzare e interagire direttamente con un pulsante Salta. Tuttavia, il publisher deve determinare se i mittenti allegati possono mostrare annunci ignorabili attivando/disattivando l'attributo imaRequestData.senderCanSkip.

In tutti gli esempi relativi all'SDK CAF DAI, la funzione mittenteCanSkip viene trasmessa direttamente dal mittente come parte dell'oggetto multimediale. Si tratta di un'implementazione intenzionalmente semplificata che funziona bene per un singolo mittente, ma nelle applicazioni reali è possibile collegare un ricevitore CAF a più applicazioni di invio e il mittente che accoda un file multimediale potrebbe non essere più collegato quando l'oggetto multimediale viene caricato e viene effettuata la richiesta di streaming.

Un destinatario più avanzato potrebbe tenere traccia dei tipi di mittenti affiliati che ignorano i messaggi e quali no, e controllare al momento del caricamento se ci sono eventuali mittenti che supportano questa funzionalità al momento.

Esempio (mittente singolo):

...

    let 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;
    };
...

Esempio (assistenza a più mittenti):

...

    let 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;
      }

      let senders = castContext.getSenders();
      let senderCanSkip = (sender) => {
        const skippableUserAgents = [
          "iOS CastSDK",
          "Android CastSDK"
        ];
        // trim user agent to just include device
        let userAgent = sender.userAgent.explode(',')[0];
        return skippableUserAgents.includes(userAgent);
      };
      if (streamRequest && senders.some(senderCanSkip)) {
        streamRequest.senderCanSkip = imarequestdata.senderCanSkip;
      }
      return streamRequest;
    };

...

In definitiva, i publisher sono responsabili dell'esperienza dei propri utenti e, poiché è possibile che tutti i mittenti ignorabili vengano disconnessi tra il momento in cui viene effettuata la richiesta di streaming e quello in cui viene riprodotto l'annuncio, potresti voler collegare un gestore all'evento STARTED che controllerà se un annuncio è ignorabile e sia i mittenti che il destinatario non possono supportare la possibilità di ignorare. Questo gestore potrebbe ignorare automaticamente questi annunci, se pubblicati. Tuttavia, questa implementazione avanzata non rientra nell'ambito del supporto del DAI del CAF.

Per impostazione predefinita, in tal caso, l'utente è ancora tecnicamente in grado di avviare un'operazione di salto, collegando prima un mittente che supporti la possibilità di ignorare e quindi facendo clic sul pulsante Salta visualizzato.