Les SDK IMA facilitent l'intégration d'annonces multimédias dans vos sites Web et applications. Les SDK IMA demander des annonces <ph type="x-smartling-placeholder"></ph> compatible avec la norme VAST et gérer la lecture des annonces dans vos applications. Avec les SDK IMA DAI, les applications demande de flux pour une annonce et du contenu vidéo (VOD ou en direct). Le SDK renvoie ensuite un flux vidéo combiné, pour vous éviter d'avoir à gérer le basculement entre l'annonce et la vidéo de contenu. dans votre application.
Sélectionnez la solution d'insertion dynamique d'annonce qui vous intéresse
Insertion dynamique de séries d'annonces
Ce guide explique comment lire un flux en direct ou de vidéo à la demande avec diffusion de séries d'annonces pour l'insertion dynamique de séries d'annonces à l'aide de le SDK IMA DAI pour iOS avec un simple lecteur vidéo. Si vous souhaitez suivre ainsi qu'un exemple terminé, téléchargez le exemple de diffusion de séries d'annonces.
Présentation de l'insertion dynamique de séries d'annonces d'IMA
L'implémentation de la diffusion de séries d'annonces à l'aide du SDK IMA DAI pour iOS implique composants:
StreamRequest
: objet qui définit une requête de flux à serveurs publicitaires de Google. Doit être créé à l'aide de l'une des méthodes suivantes :IMAPodStreamRequest
ouIMAPodVODStreamRequest
pour activer la diffusion de pods. Les deux méthodes nécessitent un code de réseau etIMAPodStreamRequest
a également besoin d'une clé d'élément personnalisée. Une clé API est (facultatif).IMAStreamManager
: objet qui gère la communication entre le flux vidéo et le SDK IMA DAI, comme le déclenchement de pings de suivi le transfert des événements de flux à l'éditeur.
Prérequis
Avant de commencer, vous avez besoin des éléments suivants :
- Xcode 13 ou version ultérieure.
- CocoaPods (recommandé), Swift Package Manager ou un de la copie SDK IMA pour l'insertion dynamique d'annonce pour iOS
- Une application iOS déjà configurée avec le SDK IMA DAI pour lire des flux vidéo avec pour l'insertion dynamique d'annonces. Si ce n'est pas déjà fait, nous vous conseillons d'utiliser Insertion dynamique d'annonces iOS BasicExample en tant que point de départ. L'exemple de base contient le codebase référencé . Pour en savoir plus sur la mise en œuvre du SDK IMA DAI, consultez le Guide de démarrage rapide
Configurer les variables de diffusion de pods
Toutes les modifications nécessaires à la diffusion des pods sont effectuées dans ViewController.swift dans swift ou ViewController.m dans Objective-C. Extraits de ce guide utilise par défaut le Swift. La première étape consiste à mettre à jour des variables constantes.
Voici les constantes des demandes de flux de séries d'annonces à ajouter:
STREAM_URL
(utilisé uniquement pour les diffusions en direct): URL du flux vidéo fournie par votre outil de manipulation du fichier manifeste ou votre partenaire tiers à l'aide de la diffusion de séries d'annonces. Il doit vous devez insérer l'ID de flux fourni par le SDK IMA DAI avant faire une demande. Dans ce cas, l'URL de flux comprend un espace réservé,"[[STREAMID]]"
, qui est remplacé par l'ID de flux, avant d'effectuer une requête.NETWORK_CODE
: code de réseau de votre compte Ad Manager 360.CUSTOM_ASSET_KEY
(uniquement pour les diffusions en direct): clé d'élément personnalisée qui identifie l'événement de diffusion de séries d'annonces dans Ad Manager 360. Il peut être créé par votre outil de manipulation du fichier manifeste ou votre partenaire tiers de diffusion de séries d'annonces.API_KEY
(utilisée uniquement pour les diffusions en direct): clé API facultative pouvant être pour récupérer un ID de flux à partir du SDK IMA DAI.
Modifiez la section des variables de l'exemple pour qu'elle corresponde à ce qui suit:
...
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?
...
Créez une demande de flux de séries d'annonces en direct ou à la demande.
Diffusion de séries d'annonces en direct
Modifiez la méthode requestStream
pour créer une requête de flux de pods en direct en exécutant les commandes suivantes :
instanciation de 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)
}
...
Diffusion de séries d'annonces de flux de vidéo à la demande
Modifiez la méthode requestStream
pour créer une requête de flux de pods VOD en procédant comme suit :
instanciation de 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)
}
...
Modifier et définir l'URL du flux
Diffusion de séries d'annonces en direct
Modifiez les méthodes IMAAdsLoaderDelegate
en utilisant streamManager.streamId
pour
obtenir l'ID du flux. Insérez ensuite l'ID de flux dans STREAM_URL
, en remplaçant
"[[STREAMID]]"
Une fois cette modification effectuée, la nouvelle URL de flux pourra être
défini à l'aide de 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
}
...
Diffusion de séries d'annonces de flux de vidéo à la demande
Modifiez les méthodes IMAAdsLoaderDelegate
en utilisant streamManager.streamId
pour
pour obtenir l'ID du flux. Demandez ensuite une URL de flux à votre technologie vidéo
partenaire tiers (VTP). Appelez ensuite IMAStreamManager.loadThirdPartyStream()
pour obtenir le SDK IMA
charger l'URL du flux et les sous-titres renvoyés par le téléviseur ;
...
// 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
}
Et voilà ! Vous demandez et affichez à présent des annonces dans un flux de diffusion de séries d'annonces avec le SDK IMA DAI pour iOS. Pour voir d'autres exemples d'utilisation du SDK IMA DAI, consultez les exemples sur GitHub.