La specifica HLS Interstitials introduce un modo flessibile per pianificare e
inserire pubblicità in uno stream video o audio. Con l'approccio lato client, la tua applicazione assume il controllo completo su quando richiedere e riprodurre le interruzioni pubblicitarie creando la classe AVPlayerInterstitialEvent. Questo approccio non richiede i tag EXT-X-DATERANGE nei manifest dei flussi di contenuti. Gli interstitial HLS lato client consentono di inserire dinamicamente annunci
in qualsiasi contenuto, senza dover modificare il manifest dello stream o i file multimediali.
Questa guida illustra l'integrazione dell'SDK Interactive Media Ads (IMA) in un'app video player che crea una sessione di live streaming con inserimento di annunci guidato dal server (SGAI) e pianifica gli interstitial lato client. Per ulteriori informazioni, vedi DAI guidata dal server.
Prerequisiti
Prima di iniziare, devi disporre di quanto segue:
Un nuovo progetto Xcode, che utilizza
Storyboardper l'interfaccia utente. Per ulteriori informazioni, vedi Creazione di un progetto Xcode per un'app.SDK IMA di Google. Per ulteriori informazioni, consulta Configurare l'SDK IMA per DAI.
I seguenti parametri per la richiesta di live streaming DAI:
NETWORK_CODE: il codice di rete Google Ad Manager.CUSTOM_ASSET_KEY: la stringa personalizzata che identifica l'evento live streaming DAI. L'evento in live streaming deve avere il tipo DAI manifest pubblicazione pod.
Configurare uno storyboard
Nel file iPhone.storyboard:
- Crea un oggetto
UIViewcome contenitore per il video player e l'interfaccia utente dell'annuncio. - Crea una proprietà
adUIViewdella classeViewControllerper connetterti all'oggettoUIView. - Nell'oggetto
adUIView, crea unUIButtonche funga da pulsante di riproduzione. - Crea una proprietà
playButtondella classeViewControllerper connetterti all'oggettoUIButtone a una funzioneonPlayButtonTouchper gestire i tocchi dell'utente.
Inizializza un caricatore di annunci
Nell'evento viewDidLoad del controller di visualizzazione principale, procedi nel seguente modo:
- Configura un video player utilizzando le classi
AVPlayereAVPlayerLayer. - Crea oggetti
IMAAdDisplayContainereIMAAVPlayerVideoDisplay. Il contenitore di visualizzazione dell'annuncio specifica iladUIViewper l'SDK IMA DAI per inserire le sottoviste dell'interfaccia utente dell'annuncio. L'oggetto di visualizzazione video funge da ponte tra la logica degli annunci dell'SDK IMA DAI e il sistema di riproduzione AVFoundation, monitorando la riproduzione degli annunci video. - Inizializza l'oggetto
IMAAdsLoadercon le impostazioni di riproduzione degli annunci e di localizzazione dell'interfaccia utente degli annunci.
L'esempio seguente inizializza un caricatore di annunci con un oggetto
IMASettings
vuoto:
Effettuare una richiesta di stream
Per richiedere annunci per un flusso di contenuti, crea un oggetto
IMAPodStreamRequest e passalo all'istanza
IMAAdsLoader. (Facoltativo) Imposta la proprietà adTagParameters per fornire opzioni DAI
e parametri di targeting per lo stream.
Questo esempio chiama il metodo loadAdStream nell'evento viewDidAppear:
Nella tua app di produzione, chiama il metodo loadAdStream dopo che l'utente seleziona un
flusso di contenuti.
Gestire gli eventi di caricamento dello stream
Implementa il protocollo
IMAAdsLoaderDelegate
per gestire l'esito positivo o negativo della richiesta di stream:
- In caso di esito positivo, ricevi un oggetto
IMAAdsLoadedDatacontenenteIMAStreamManager. Memorizza il valorestreamManager.streamIdper la sessione DAI corrente. - In caso di errore, registra l'errore.
L'esempio seguente gestisce l'evento di caricamento dello stream e registra l'evento di caricamento dello stream non riuscito:
Pianificare gli inserimenti di annunci
Per pianificare un'interruzione pubblicitaria, crea un oggetto
AVPlayerInterstitialEvent. Imposta la proprietà templateItems dell'oggetto evento su un array di oggetti
AVPlayerItem, in cui ogni oggetto elemento contiene un URL manifest del pod di annunci.
Per creare un URL manifest di un pod pubblicitario, segui la documentazione relativa al metodo: manifest del pod HLS.
A scopo dimostrativo, l'esempio seguente genera una stringa identificatore del pod utilizzando l'ora corrente del live streaming dei contenuti. La funzione generatePodIdentifier
restituisce l'identificatore del pod come ad_break_id/mid-roll-{minute}.
Nella tua app di produzione, recupera l'identificatore del pod da una sorgente che fornisce valori univoci per ogni interruzione pubblicitaria, sincronizzati per tutti gli spettatori della live streaming.
L'esempio seguente pianifica l'inizio di un'interruzione pubblicitaria entro i due minuti successivi al clic dell'utente sul pulsante di riproduzione:
Il metodo scheduleAdInsertion
calcola l'ora di inizio dell'interruzione pubblicitaria e crea un URL manifest del pod di annunci. Utilizza
questo URL per creare un oggetto AVPlayerInterstitialEvent.
Se vuoi, utilizza la struttura AVPlayerInterstitialEvent.Restrictions per impedire all'utente
di saltare o riavvolgere la riproduzione dell'annuncio.
Gestire gli eventi degli annunci
Per gestire gli eventi degli annunci, implementa il protocollo
IMAStreamManagerDelegate. Questo approccio ti consente di monitorare l'inizio e la fine delle interruzioni pubblicitarie e di ottenere
informazioni sui singoli annunci.
Esegui l'app. Se l'operazione va a buon fine, puoi richiedere e riprodurre interstitial utilizzando un flusso di manifest di pubblicazione di pod.