Livestreams wiedergeben, die bei der Google Cloud Video Stitcher API registriert sind
In diesem Leitfaden erfahren Sie, wie Sie das IMA DAI SDK für iOS, um eine Livestream für ein Ereignis, das für Google Cloud Video Stitcher registriert ist API und erklärt, wie Sie während der Wiedergabe eine Werbeunterbrechung einfügen.
Dieser Leitfaden erweitert das grundlegende Beispiel aus dem Abschnitt Erste Schritte Leitfaden für die dynamische Anzeigenbereitstellung mit IMA-Werten.
Informationen zur Integration mit anderen Plattformen oder zur Verwendung des IMA clientseitige SDKs siehe Interactive Media Ads SDKs.
Google Cloud-Projekt einrichten
Geben Sie die folgenden Variablen zur Verwendung im IMA SDK ein:
- Standort
- Die Google Cloud-Region, in der Ihre Livekonfiguration erstellt wurde:
LOCATION
- Projektnummer
- Die Google Cloud-Projektnummer, für die die Video Stitcher API verwendet wird:
PROJECT_NUMBER
- OAuth-Token
Das kurzlebige OAuth-Token eines Dienstkontos mit dem Video Stitcher-Nutzer Rolle:
OAUTH_TOKEN
Weitere Informationen zu Erstellen kurzlebiger Anmeldedaten für einen Dienst Konten Das OAuth-Token kann für mehrere Anfragen wiederverwendet werden, solange abgelaufen.
- Netzwerkcode
Ad Manager-Netzwerkcode für die Anzeigenanfrage:
NETWORK_CODE
- ID der Live-Konfiguration
- Die Live-Konfigurations-ID, die Sie beim Erstellen Ihrer Livestream-Veranstaltung angegeben haben:
LIVE_CONFIG_ID
- Benutzerdefinierter Asset-Schlüssel
- Der benutzerdefinierte Asset-Schlüssel für Ad Manager, der beim Erstellen eines
Konfiguration für eine Livestream-Veranstaltung
mit der Video Stitcher API:
CUSTOM_ASSET_KEY
- Nutzerkontext
- Der Nutzerkontext zum Verfolgen von Anfragen. Kann
nil
sein. Die Standardeinstellung in diesem Leitfaden istnil
.
Grundlegendes Beispiel herunterladen und vorbereiten
Laden Sie die Beispiele für die dynamische Anzeigenbereitstellung mit IMA für iOS herunter und extrahieren Sie das Beispiel „Basic“ in einen neuen Ordner. Dieses Beispiel ist ein Xcode- bei dem das IMA SDK von CocoaPods geladen wird.
Um das Beispiel für die Ausführung vorzubereiten, prüfen Sie, ob CocoaPods installiert haben, und öffnen Sie dann im Terminal und führen Sie den folgenden Befehl aus:
pod install --repo-update
Sobald der Befehl ausgeführt wurde, sehen Sie eine Datei mit dem Namen BasicExample.xcworkspace
in
im Projektordner. Öffnen Sie diese Datei in Xcode und führen Sie das Beispiel aus, um sicherzustellen,
das Testvideo und die Anzeigen
wie erwartet wiedergegeben werden.
Livestream anfordern
Wenn du den Beispielstream durch deinen Livestream ersetzen möchtest, musst du die
IMAVideoStitcherLiveStreamRequest
-Klasse, mit der automatisch eine Anzeige erstellt wird
mit Google Ad Manager. Auf der Google Ad Manager-Benutzeroberfläche können Sie nach
die generierten Sitzungen für die dynamische Anzeigenbereitstellung für
zu Monitoring- und Debugging-Zwecken.
Das vorhandene Beispiel enthält Beispiele für die Anforderung eines VOD-Streams oder eines
von den Google-Servern für die dynamische Anzeigenbereitstellung. Damit das Beispiel mit der Google
Cloud Video Stitcher API verwenden möchten, müssen Sie die aktuelle requestStream
ersetzen.
-Funktion mit einer aus, die die Klasse IMAVideoStitcherLiveStreamRequest
verwendet:
ViewController.m
#import <GoogleInteractiveMediaAds/GoogleInteractiveMediaAds.h>
/// Fallback URL in case something goes wrong in loading the stream. If all goes well,
/// this will not be used.
static NSString *const kTestAppContentUrl_M3U8 =
@"//devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8";
static NSString *const kLiveConfigId = @"LIVE_CONFIG_ID";
static NSString *const kLocation = @"LOCATION";
static NSString *const kProjectNumber = @"PROJECT_NUMBER";
static NSString *const kOAuthToken = @"OAUTH_TOKEN";
static NSString *const kNetworkCode = @"NETWORK_CODE";
static NSString *const kCustomAssetKey = @"CUSTOM_ASSET_KEY";
@interface ViewController () <IMAAdsLoaderDelegate, IMAStreamManagerDelegate>
...
- (void)requestStream {
// Create an ad display container for ad rendering.
IMAAdDisplayContainer *adDisplayContainer =
[[IMAAdDisplayContainer alloc] initWithAdContainer:self.videoView
viewController:self
companionSlots:nil];
// Create an IMAAVPlayerVideoDisplay to give the SDK access to your video player.
IMAAVPlayerVideoDisplay *imaVideoDisplay =
[[IMAAVPlayerVideoDisplay alloc] initWithAVPlayer:self.contentPlayer];
IMAVideoStitcherLiveStreamRequest *request =
[[IMAVideoStitcherLiveStreamRequest alloc] initWithLiveStreamEventID:kLiveConfigId
region:kLocation
projectNumber:kProjectNumber
OAuthToken:kOAuthToken
networkCode:kNetworkCode
customAssetKey:kCustomAssetKey
adDisplayContainer:adDisplayContainer
videoDisplay:imaVideoDisplay
userContext:nil
videoStitcherSessionOptions:nil];
[self.adsLoader requestStreamWithRequest:request];
}
Optional: Optionen für Streamingsitzungen hinzufügen
Passe deine Streamanfrage an, indem du Sitzungsoptionen hinzufügst, um die Standardeinstellung zu überschreiben
Cloud Video Stitcher API konfigurieren, indem Sie die
videoStitcherSessionOptions
in Ihrem
IMAVideoStitcherLiveStreamRequest.
Wenn Sie eine unbekannte Option angeben,
In der Video Stitcher API wird ein HTTP 400-Fehler zurückgegeben. Informationen dazu finden Sie in der
Anleitung zur Fehlerbehebung
um Unterstützung zu erhalten.
Beispielsweise können Sie den Parameter Manifestoptionen durch das folgende Code-Snippet, das zwei Streammanifeste mit Wiedergaben werden von der niedrigsten zur höchsten Bitrate sortiert.
Objective-C
// Define session options JSON string.
// The following session options are examples. Use session options
// that are compatible with your video stream.
NSString *sessionOptionsStr =
@"{"
" \"manifestOptions\": {"
" \"includeRenditions\":["
" {\"bitrateBps\": 3000, \"codecs\": \"hvc1.1.4.L126.B0, mp4a.40.2\"},"
" {\"bitrateBps\": 2000, \"codecs\": \"avc1.64001f, mp4a.40.2\"},"
" ]"
" }"
"}";
// convert JSON NSString to NSDictionary
NSData *sessionOptionsData = [sessionOptionsStr dataUsingEncoding:NSUTF8StringEncoding];
NSError *error = nil;
NSDictionary *sessionOptions = [NSJSONSerialization
JSONObjectWithData:sessionOptionsData
options:0
error:&error];
// make stream request
IMAVideoStitcherLiveStreamRequest *request =
[[IMAVideoStitcherLiveStreamRequest alloc] initWithLiveStreamEventID:kLiveConfigId
region:kRegion
projectNumber:kProjectNumber
OAuthToken:kOAuthToken
networkCode:kNetworkCode
customAssetKey:kCustomAssetKey
adDisplayContainer:adDisplayContainer
videoDisplay:imaVideoDisplay
userContext:nil
videoStitcherSessionOptions:sessionOptions];
[self.adsLoader requestStreamWithRequest:request];
Swift
// Define session options JSON string.
// The following session options are examples. Use session options
// that are compatible with your video stream.
let sessionOptionsStr = """
{
"manifestOptions": {
"includeRenditions": [
{"bitrateBps": 3000, "codecs": "hvc1.1.4.L126.B0, mp4a.40.2"},
{"bitrateBps": 2000, "codecs": "avc1.64001f, mp4a.40.2"},
],
"bitrateOrder": "ascending"
}
}
"""
// convert JSON string to dictionary
guard let sessionOptionsData = sessionOptionsStr.data(using: .utf8, allowLossyConversion: false) else { return nil }
let sessionOptions = try? JSONSerialization.jsonObject(with: sessionOptionsData, options: .mutableContainers)
// make stream request
let request = IMAVideoStitcherLiveStreamRequest(
liveStreamEventID:ViewController.liveConfigId
region:ViewController.region
projectNumber:ViewController.projectNumber
OAuthToken:ViewController.oAuthToken
networkCode:ViewController.networkCode
customAssetKey:ViewController.customAssetKey
adDisplayContainer:adDisplayContainer
videoDisplay:imaVideoDisplay
userContext:nil
videoStitcherSessionOptions:sessionOptions)
adsLoader?.requestStream(with: request)
Führen Sie das Projekt aus. Anschließend können Sie Ihren benutzerdefinierten Livestream anfordern und abspielen.
Werbeunterbrechung einfügen
Die Google Cloud Video Stitcher API fügt für jede Werbeunterbrechung Anzeigen ein, die aus dem Anzeigen-Tag abgerufen wurden. Werbeunterbrechungen werden im Manifest durch Anzeigenmarkierungen gekennzeichnet. Anzeigenmarkierungen sind die vom Livestreamencoder eingefügt wurden.
Wenn Sie Ihren eigenen Livestream verwenden, müssen Sie die Anzeigenmarkierung einfügen. Weitere Informationen zu den unterstützten HLS- und DASH-Anzeigenmarkierungen findest du in der Dokumentation zu Anzeigenmarkierungen.
Wenn Sie einen Livestream mit der Google Cloud Livestream API erstellt haben, ein Kanalereignis für eine Werbeunterbrechung einfügen.
Die Anzeige wird sofort nach dem Einfügen der Werbeunterbrechung wiedergegeben.
Bereinigen
Du hast jetzt erfolgreich einen Livestream über die Google Cloud Video Stitcher API und über das IMA DAI SDK angefordert. für iOS-Geräte sollten alle bereitgestellten Ressourcen.
Folgen Sie Livestream bereinigen um nicht benötigte Ressourcen und Assets zu entfernen.