Gli SDK IMA semplificano l'integrazione degli annunci multimediali nei siti web e nelle app. Gli SDK IMA possono richiedi annunci da qualsiasi ad server compatibile con VAST e gestire la riproduzione degli annunci nelle tue app. Con gli SDK IMA DAI, le app richiesta di streaming per annunci e contenuti video, sia VOD che contenuti dal vivo. L'SDK restituisce quindi video stream combinati, in modo che non sia necessario gestire il passaggio dall'annuncio ai video di contenuti e viceversa all'interno dell'app.
Seleziona la soluzione DAI che ti interessa
DAI pubblicazione pod
Questa guida illustra come riprodurre una pubblicazione di pod DAI dal vivo o VOD, utilizzando l'SDK IMA DAI per iOS con un semplice video player. Se vuoi seguire insieme a un campione completato, scarica esempio di pubblicazione di pod.
Panoramica della pubblicazione di pod IMA DAI
L'implementazione della pubblicazione dei pod con l'SDK IMA DAI per iOS prevede due componenti:
StreamRequest
: un oggetto che definisce una richiesta di streaming per server pubblicitari di Google. Deve essere creato utilizzandoIMAPodStreamRequest
oppureIMAPodVODStreamRequest
per abilitare la pubblicazione dei pod. Entrambi i metodi richiedono un codice di rete eIMAPodStreamRequest
richiede anche una chiave asset personalizzata. Una chiave API è facoltativo.IMAStreamManager
: un oggetto che gestisce la comunicazione tra lo stream video e l'SDK IMA DAI, come l'attivazione dei ping di monitoraggio e inoltrare gli eventi di streaming al publisher.
Prerequisiti
Prima di iniziare, è necessario quanto segue:
- Xcode 13 o versioni successive.
- CocoaPods (opzione preferita), Swift Package Manager o una copia scaricata SDK IMA DAI per iOS.
- Un'app per iOS già configurata con l'SDK IMA DAI per riprodurre gli stream video con Annunci DAI. Se non disponi già di un'app di questo tipo, ti consigliamo di utilizzare la DAI iOS BasicExample come punto di partenza. L'elemento BasicExample ha il codebase a cui viene fatto riferimento in guida. Per ulteriori informazioni su come implementare l'SDK IMA DAI, consulta la Guida rapida.
Configura le variabili di pubblicazione dei pod
Tutte le modifiche necessarie per la pubblicazione dei pod vengono eseguite in ViewController.swift in swift o ViewController.m in Objective-C. Gli snippet in questa guida per impostazione predefinita la lingua Swift. Il primo passaggio consiste nell'aggiornare variabili costanti.
Ecco le costanti di richiesta dello stream del pod di annunci da aggiungere:
STREAM_URL
(utilizzato solo per i live streaming). L'URL dello stream video fornito da manipolatore del manifest o partner di terze parti utilizzando la pubblicazione dei pod. Dovrebbe è necessario inserire l'ID stream fornito dall'SDK IMA DAI prima di invia una richiesta. In questo caso, l'URL dello stream include un segnaposto,"[[STREAMID]]"
, che viene sostituito con l'ID stream prima di creare una richiesta.NETWORK_CODE
: il codice di rete del tuo account Ad Manager 360.CUSTOM_ASSET_KEY
(utilizzata solo per i live streaming): la chiave asset personalizzata che identifica l'evento di pubblicazione dei pod in Ad Manager 360. Può essere creato il manipolatore del manifest o il partner per la pubblicazione di pod di terze parti.API_KEY
(utilizzata solo per i live streaming): una chiave API facoltativa che può essere necessaria per recuperare un ID stream dall'SDK IMA DAI.
Modifica la sezione delle variabili dell'esempio in modo che corrisponda a quanto segue:
...
class ViewController:
UIViewController,
IMAAdsLoaderDelegate,
IMAStreamManagerDelegate,
AVPlayerViewControllerDelegate
{
static let streamUrl =
"https://encodersim.sandbox.google.com/masterPlaylist/9c654d63-5373-4673-8c8d-6d92b66b9d46/master.m3u8?gen-seg-redirect=true&network=51636543&event=google-sample&pids=devrel4628000,devrel896000,devrel3528000,devrel1428000,devrel2628000,devrel1928000&seg-host=dai.google.com&stream_id=[[STREAMID]]"
static let networkCode = "51636543"
static let customAssetKey = "google-sample"
static let APIKey = ""
static let backupStreamURLString =
"http://googleimadev-vh.akamaihd.net/i/big_buck_bunny/bbb-,480p,720p,1080p,.mov.csmil/master.m3u8"
var adsLoader: IMAAdsLoader?
...
Crea una richiesta di streaming di pod dal vivo o VOD
Pubblicazione di pod in live streaming
Modifica il metodo requestStream
per creare una richiesta live di pod Stream
creazione dell'istanza di IMAPodStreamRequest
.
...
func requestStream() {
guard let playerViewController = self.playerViewController else return
guard let adContainerView = self.adContainerView else return
guard let adsLoader = self.adsLoader else return
self.videoDisplay = IMAAVPlayerVideoDisplay(avPlayer: playerViewController.player)
adDisplayContainer = IMAAdDisplayContainer(
adContainer: adContainerView, viewController: self)
// Create a podserving stream request.
request = IMAPodStreamRequest(
networkCode: self.networkCode,
customAssetKey: self.customAssetKey,
adDisplayContainer: adDisplayContainer,
videoDisplay: self.videoDisplay,
userContext: nil)
adsLoader.requestStream(with: request)
}
...
Pubblicazione di pod di streaming VOD
Modifica il metodo requestStream
per creare una richiesta di flusso di pod VOD
creazione dell'istanza di IMAPodVODStreamRequest
.
...
func requestStream() {
guard let playerViewController = self.playerViewController else return
guard let adContainerView = self.adContainerView else return
guard let adsLoader = self.adsLoader else return
self.videoDisplay = IMAAVPlayerVideoDisplay(avPlayer: playerViewController.player)
adDisplayContainer = IMAAdDisplayContainer(
adContainer: adContainerView, viewController: self)
// Create a podserving stream request.
request = IMAPodVODStreamRequest(
networkCode: self.networkCode,
adDisplayContainer: adDisplayContainer,
videoDisplay: self.videoDisplay,
userContext: nil)
adsLoader.requestStream(with: request)
}
...
Modificare e impostare l'URL dello stream
Pubblicazione di pod in live streaming
Modifica i metodi IMAAdsLoaderDelegate
utilizzando streamManager.streamId
per
recupera l'ID stream. Quindi inserisci l'ID stream in STREAM_URL
, sostituendo
"[[STREAMID]]"
. Una volta apportata la modifica, è possibile
impostato con videoDisplay.loadStream()
.
...
// MARK: - IMAAdsLoaderDelegate
func adsLoader(_ loader: IMAAdsLoader!, adsLoadedWith adsLoadedData: IMAAdsLoadedData!) {
let streamManager = adsLoadedData.streamManager
let streamId = streamManager.streamId
let urlString = streamUrl.replacingOccurrences(of: "[[STREAMID]]", with: streamId)
let loadedStreamUrl = URL(string:urlString)
self.videoDisplay.loadStream(loadedStreamUrl, subtitles:@[])
self.videoDisplay.play()
streamManager.delegate = self
streamManager.initialize(with: nil)
self.streamManager = streamManager
}
...
Pubblicazione di pod di streaming VOD
Modifica i metodi IMAAdsLoaderDelegate
utilizzando streamManager.streamId
per
recupera l'ID stream. Quindi, richiedi l'URL dello stream dalla tua tecnologia video.
partner (VTP). Poi chiama IMAStreamManager.loadThirdPartyStream()
per avere IMA
carica l'URL dello stream e gli eventuali sottotitoli restituiti dal tuo TVP.
...
// MARK: - IMAAdsLoaderDelegate
func adsLoader(_ loader: IMAAdsLoader!, adsLoadedWith adsLoadedData: IMAAdsLoadedData!) {
let streamManager = adsLoadedData.streamManager
let streamId = streamManager.streamId
// 'vtpInterface' is a place holder for your own video technology partner
// (VTP) API calls.
let streamUrl = vtpInterface.requestStreamURL(streamID)
self.streamManager.loadThirdPartyStream(streamUrl, streamSubtitles:@[])
streamManager.delegate = self
streamManager.initialize(with: nil)
self.streamManager = streamManager
}
È tutto. Ora stai richiedendo e visualizzando gli annunci in un pod che pubblica lo stream con l'SDK IMA DAI per iOS. Per vedere altri esempi di utilizzo dell'SDK IMA DAI, consulta gli esempi su GitHub.