Einleitung
Mit den Player-Erweiterungen für Live-SSAI von Brightcove können Sie die Werbeunterbrechungen in Live-Streams mit Anzeigenzählungen, Anzeigen-Countdown-Timern, Click-through-Anzeigen und Companion-Anzeigen verbessern.
Ihre Anzeigeninformationen werden mithilfe einer Anzeigenkonfiguration angegeben, die VAST-Antworten abruft, um zu identifizieren, welche Anzeigen angezeigt werden sollen. Die VAST-Datei enthält auch Informationen zu Begleitanzeigen und Beacon-URLs.
Arbeitsablauf
Gehen Sie folgendermaßen vor, um einen Live-Stream mit SSAI- und Player-Verbesserungen zu erstellen:
- Bitten Sie Ihren Account Manager, Ihr Konto für Live-Streams, die serverseitige Anzeigeneinfügung (SSAI) und die Player-Verbesserungen für Live-SSAI zu aktivieren.
- Erstellen Sie eine Anzeigenkonfiguration
- Optional: Erstellen Sie Slate-Assets, um nicht genutzte Anzeigenzeit zu füllen
- Erstellen Sie einen Live-Job
- Erstellen Sie das Wiedergabetoken
- Konfigurieren Sie den Player
- Starten Sie das Streaming
- Lösen Sie Anzeigen mithilfe von Cue-Points aus (Dies kann vor oder während des Live-Events erfolgen)
- Aufräumen
Erstellen Sie eine Anzeigenkonfiguration
Eine Anzeigenkonfiguration definiert die Informationen, die erforderlich sind, um serverseitige Anzeigen in einen Live-Stream aufzunehmen. Dies umfasst die URL des Anzeigenanbieters, den erwarteten Antworttyp der Anzeige und die Frage, ob Beacons gesendet werden sollen.
Um eine neue Anzeigenkonfiguration zu erstellen, senden Sie eine POST
wie folgt anfordern:
Methode | POST |
---|---|
URL | https://api.bcovlive.io/v1/ssai/applications |
Header | X-API-KEY: your API KEY |
Inhaltstyp: application/json |
Alle Anforderungen werden mithilfe eines API-Schlüssels authentifiziert, der Ihnen bei der Einrichtung Ihres Kontos zur Verfügung gestellt wird. Der Schlüssel wird in der übergeben X-API-KEY
Header.
Anfragetext
Einzelheiten zu den Feldern des Anforderungshauptteils finden Sie in der Live API-Referenz Dokument.
Mit Player Enhancements für Live SSAI können die hervorgehobenen Felder innerhalb von festgelegt werden application_ad_configuration
Objekt.
Beispiel-Anfragetext:
{
"application_ad_configuration": {
"ad_configuration_description": "your ad config description",
"ad_configuration_expected_response_type": "Vast",
"ad_configuration_headers_for_impressions": false,
"ad_configuration_strategy": "SingleAdResponse",
"ad_configuration_transforms": [],
"ad_configuration_url_format": "your ad server",
"ad_configuration_client_sdk_enabled": true,
"client_options": {
"show_ad_break_remaining_time": true / false,
"show_ad_remaining_time": true / false,
"show_number_of_remaining_ads": true / false,
"client_only_tracking": true / false
}
},
"application_description": "your application description"
}
Hier sind die Anzeigenkonfigurationsfelder im Zusammenhang mit Player-Verbesserungen mit Live SSAI:
Feld | Typ | Erforderlich | Beschreibung |
---|---|---|---|
ad_configuration_expected_response_type |
String | Ja | Für diese Funktion MÜSSEN Anzeigenkonfigurationen einen Wert von haben Vast |
ad_configuration_client_sdk_enabled |
Boolescher Wert | Ja | Um diese Funktion zu aktivieren, muss dieses Feld den Wert von haben true |
client_options |
Objekt | Ein Objekt von Feldern, die sich auf Player-Verbesserungen beziehen | |
client_options. |
Boolescher Wert | Zeige verbleibende Zeit für eine Werbeunterbrechung an Werte: true /.false
|
|
client_options. |
Boolescher Wert | Zeige verbleibende Zeit für eine Anzeige an Werte: true /.false
|
|
client_options. |
Boolescher Wert | Zeigen Sie die Anzahl der Anzeigen an, die in der Werbeunterbrechung verbleiben Werte: true /.false
|
|
client_options. |
Boolescher Wert | Deaktivieren Sie serverseitige Tracking-Ereignisse (Impressionen / Quartile). Werte: true /.false Standard: false |
Antwort
Beispielantwort:
{
"application": {
"application_description": "Test ad configuration",
"application_ad_configuration": {
"ad_configuration_description": "Ad config description",
"ad_configuration_expected_response_type": "Vast",
"ad_configuration_strategy": "SingleAdResponse",
"ad_configuration_transforms": [],
"ad_configuration_url_format": "https://solutions.brightcove.com/bcls/ads/simple-vast.xml",
"ad_configuration_headers_for_impressions": false,
"ad_configuration_client_sdk_enabled": true,
"client_options": {
"show_ad_break_remaining_time": true,
"show_ad_remaining_time": true,
"show_number_of_remaining_ads": true,
"client_only_tracking": true
}
},
"application_id": "1234567890abcdefghijkl",
"application_type": "ads",
"account_id": "001122334455aabbccddee"
},
"action": "inserted"
}
Nachdem Sie eine Anzeigenkonfiguration erfolgreich erstellt haben, kopieren Sie die application_id
(Anzeigenkonfigurations-ID), die generiert wurde. Sie benötigen dies später, um die SSAI-Wiedergabe-URL zu finden.
Informationen zum Auflisten, Aktualisieren und Löschen von Anzeigenkonfigurationen finden Sie unter Anzeigenkonfigurationen verwalten Dokument
Erstellen Sie einen Live-Job
Senden Sie a, um einen Live-Job zu erstellen POST
Anfrage wie folgt:
Methode | POST |
---|---|
URL | https://api.bcovlive.io/v1/jobs |
Header | X-API-KEY: your API KEY |
Inhaltstyp: application/json |
Anfragetext
Einzelheiten zu den Feldern des Anforderungshauptteils finden Sie in der Live API-Referenz Dokument.
Legen Sie für einen Live-Job mit aktivierter SSAI fest ad_insertion: true
in Ihrem HTTP-Anforderungshauptteil.
Beispielanfrage (Video Cloud Video)
Um ein Video Cloud-Video zu erstellen, das für Ihren Live-Stream verwendet werden soll, und um VoD-Clips aus dem Live-Stream zu erstellen, schließen Sie Folgendes ein: videocloud
Objekt im Anforderungshauptteil. Einzelheiten finden Sie im Live-API: VOD-Clips erstellen Dokument.
Das hervorgehobene Feld unten wird für die serverseitige Anzeigeneinfügung (SSAI) benötigt.
{
"live_stream": true,
"ad_insertion": true,
"region": "us-west-2",
"reconnect_time": 1800,
"outputs": [{
"label": "hls720p",
"live_stream": true,
"width": 1280,
"height": 720,
"video_codec": "h264",
"h264_profile": "high",
"video_bitrate": 2100,
"segment_seconds": 4,
"keyframe_interval": 60
},
{
"label": "hls540p",
"live_stream": true,
"width": 960,
"height": 540,
"video_codec": "h264",
"h264_profile": "main",
"video_bitrate": 1500,
"segment_seconds": 4,
"keyframe_interval": 60
},
{
"label": "hls360p",
"live_stream": true,
"width": 640,
"height": 360,
"video_codec": "h264",
"h264_profile": "main",
"video_bitrate": 800,
"segment_seconds": 4,
"keyframe_interval": 60
}
],
"videocloud": {
"video": {
"name": "Live SSAI VideoCloud Asset",
"description": "",
"long_description": "",
"tags": [],
"reference_id": "live_ssai_vc_asset",
"link": {
"url": "",
"text": ""
},
"schedule": {
"starts_at": null,
"ends_at": null
},
"custom_fields": {}
}
}
}
Beispielanforderung (Remote-Video)
Um ein Remote-Video für Ihren Live-Stream zu verwenden, sollte Ihr Anfragetext ähnlich aussehen.
Das hervorgehobene Feld unten wird für die serverseitige Anzeigeneinfügung (SSAI) benötigt.
{
"live_stream":true,
"ad_insertion":true,
"region":"us-west-2",
"reconnect_time":1800,
"outputs":[
{
"label": "hls720p",
"live_stream": true,
"width": 1280,
"height": 720,
"video_codec": "h264",
"h264_profile": "high",
"video_bitrate": 2100,
"segment_seconds": 4,
"keyframe_interval": 60
},
{
"label": "hls540p",
"live_stream": true,
"width": 960,
"height": 540,
"video_codec": "h264",
"h264_profile": "main",
"video_bitrate": 1500,
"segment_seconds": 4,
"keyframe_interval": 60
},
{
"label": "hls360p",
"live_stream": true,
"width": 640,
"height": 360,
"video_codec": "h264",
"h264_profile": "main",
"video_bitrate": 800,
"segment_seconds": 4,
"keyframe_interval": 60
}
]
}
Weitere hilfreiche Ressourcen:
- Überblick: Brightcove Live-API
- Schnellstart: Erstellen Sie einen Live-Stream mit der Brightcove Live-API
Antwort
Beispielantwort (Video Cloud Video)
{
"id": "227356abcdefghijklmno12345",
"outputs": [
{
"id": "0-2273561a201ec18",
"playback_url": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/profile_0/chunklist.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/profile_0/chunklist_dvr.m3u8",
"playback_url_vod": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/profile_0/chunklist_vod.m3u8",
"playback_added_cdns": [],
"label": "hls720p"
},
{
"id": "1-2273561a201e8c18",
"playback_url": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/profile_1/chunklist.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/profile_1/chunklist_dvr.m3u8",
"playback_url_vod": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/profile_1/chunklist_vod.m3u8",
"playback_added_cdns": [],
"label": "hls540p"
},
{
"id": "2-2273561a201ec18",
"playback_url": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/profile_2/chunklist.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/profile_2/chunklist_dvr.m3u8",
"playback_url_vod": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/profile_2/chunklist_vod.m3u8",
"playback_added_cdns": [],
"label": "hls360p"
},
{
"id": "3-2273561a201ec18",
"playlist_type": "defaultS3",
"type": "playlist",
"filename": "playlist.m3u8",
"dvr_filename": "playlist_dvr.m3u8",
"playback_url": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/playlist.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/playlist_dvr.m3u8",
"ssai_playback_urls": {
"b907ac7935e2": {
"playback_url": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/b907ac7935e2/playlist_ssaiM.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/b907ac7935e2/playlist_dvr_ssaiM.m3u8",
"playback_added_cdns": [],
"description": "Test ad configuration for SLS",
"type": "ads"
},
"dc9aa8ee3520f2": {
"playback_url": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/dc9aa8ee3520f2/playlist_ssaiM.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/dc9aa8ee3520f2/playlist_dvr_ssaiM.m3u8",
"playback_added_cdns": [],
"description": "Test live ad config for SLS",
"type": "ads"
}
},
"playback_added_cdns": []
}
],
"stream_url": "rtmp://ec2-54-184-149-60.us-west-2.compute.amazonaws.com:1935/2273561a201ec18",
"stream_name": "alive",
"static": false,
"job_videocloud_asset_id": "6227380655001",
"encryption": {},
"playback_url": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/playlist.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/playlist_dvr.m3u8",
"ssai_playback_urls": {
"b907ac7935e2": {
"playback_url": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/b907ac7935e2/playlist_ssaiM.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/b907ac7935e2/playlist_dvr_ssaiM.m3u8",
"playback_added_cdns": [],
"description": "Test ad configuration for SLS",
"type": "ads"
},
"dc9aa8ee3520f2": {
"playback_url": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/dc9aa8ee3520f2/playlist_ssaiM.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/2273561a201ec18/us-west-2/NA/dc9aa8ee3520f2/playlist_dvr_ssaiM.m3u8",
"playback_added_cdns": [],
"description": "Test live ad config for SLS",
"type": "ads"
}
},
"playback_added_cdns": []
}
Beispielantwort (Remote-Video)
{
"id": "bbccddeeffgghhiijjkk0011223344",
"outputs": [
{
"id": "0-bbccddeeffgghhiijjkk0011223344",
"playback_url": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/profile_0/chunklist.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/profile_0/chunklist_dvr.m3u8",
"playback_url_vod": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/profile_0/chunklist_vod.m3u8",
"playback_added_cdns": [],
"label": "hls720p"
},
{
"id": "1-bbccddeeffgghhiijjkk0011223344",
"playback_url": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/profile_1/chunklist.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/profile_1/chunklist_dvr.m3u8",
"playback_url_vod": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/profile_1/chunklist_vod.m3u8",
"playback_added_cdns": [],
"label": "hls540p"
},
{
"id": "2-bbccddeeffgghhiijjkk0011223344",
"playback_url": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/profile_2/chunklist.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/profile_2/chunklist_dvr.m3u8",
"playback_url_vod": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/profile_2/chunklist_vod.m3u8",
"playback_added_cdns": [],
"label": "hls360p"
},
{
"id": "3-bbccddeeffgghhiijjkk0011223344",
"playlist_type": "defaultS3",
"type": "playlist",
"filename": "playlist.m3u8",
"dvr_filename": "playlist_dvr.m3u8",
"playback_url": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/playlist.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/playlist_dvr.m3u8",
"ssai_playback_urls": {
"91bc2d5ff4a4441db34c2457c751c3ca": {
"playback_url": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/91bc2d5ff4a4441db34c2457c751c3ca/playlist_ssaiM.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/91bc2d5ff4a4441db34c2457c751c3ca/playlist_dvr_ssaiM.m3u8",
"playback_added_cdns": [],
"description": "Test ad configuration",
"type": "ads"
},
"e7f6e9a3022a45e1b0b322ba57399150": {
"playback_url": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/e7f6e9a3022a45e1b0b322ba57399150/playlist_ssaiM.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/e7f6e9a3022a45e1b0b322ba57399150/playlist_dvr_ssaiM.m3u8",
"playback_added_cdns": [],
"description": "House Ads - 0077db20eb444b5daa7487438c90a271",
"type": "ads"
}
}
}
],
"stream_url": "rtmp://ep4-usw2.bcovlive.io:1935/bbccddeeffgghhiijjkk0011223344",
"stream_name": "alive",
"static": false,
"encryption": {},
"playback_url": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/playlist.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/playlist_dvr.m3u8",
"ssai_playback_urls": {
"91bc2d5ff4a4441db34c2457c751c3ca": {
"playback_url": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/91bc2d5ff4a4441db34c2457c751c3ca/playlist_ssaiM.m3u8",
"playback_url_dvr": "https://bcovlive-a.akamaihd.net/bbccddeeffgghhiijjkk0011223344/us-west-2/NA/91bc2d5ff4a4441db34c2457c751c3ca/playlist_dvr_ssaiM.m3u8",
"playback_added_cdns": [],
"description": "Test ad configuration",
"type": "ads"
}
}
}
Notieren Sie sich in der API-Antwort die folgenden Feldwerte für den nächsten Schritt:
id
- Ihre Live-Job-IDstream_url
,stream_name
- Eingänge für Ihren Live-Stream-Encoderjob_videocloud_asset_id
- Video Cloud-Video-ID
Erstellen Sie das Wiedergabetoken
Sie benötigen den Wiedergabetoken mit Ihrem Player.
Senden Sie a, um das Wiedergabetoken zu erstellen POST
Anfrage wie folgt:
Methode | POST |
---|---|
URL | https://api.bcovlive.io/v1/jobs/your live job id/playback-token |
Header | X-API-KEY: your API KEY |
Inhaltstyp: application/json |
Anfragetext
Beispiel-Anfragetext:
{
"dvr":true / false,
"application_id":"your ad config id"
}
Antwort
Beispielantwort:
{
"playback_token": "live.JhQabcdefghijkl000000000abcdefghi"
}
Der Antworttext enthält ein generiertes Wiedergabetoken. Verwenden Sie diese Option, wenn Sie mit Ihrem Player einen Playback-API-Aufruf durchführen.
Konfigurieren Sie den Player
Die Wiedergabe Ihres Live-Streams über die Wiedergabe-API unterscheidet sich geringfügig von der Wiedergabe eines normalen Video Cloud-Videos. Zusätzlich zur Angabe der Video-ID (Referenz-ID) müssen Sie ein Wiedergabe-Token einfügen, das die Anzeigenkonfiguration angibt, die Sie verwenden möchten. Sie müssen auch angeben, ob Sie eine DVR-Wiedergabe wünschen.
Internet Spieler
Ausführliche Informationen zum Konfigurieren des Brightcove-Players finden Sie in der Verwenden von Player-Verbesserungen für Live-SSAI mit Brightcove Player Dokument.
Nativer Android-Player
Weitere Informationen zum Konfigurieren des Native Player für Android finden Sie in der Verwenden von Player-Verbesserungen für Live-SSAI mit den nativen SDKs Dokument.
Nativer iOS-Player
Weitere Informationen zum Konfigurieren des Native Player für iOS finden Sie in der Verwenden von Player-Verbesserungen für Live-SSAI mit den nativen SDKs Dokument.
Starten Sie das Streaming
Es gibt viele Tools zum Erstellen eines Live-Streaming-Ereignisses. Hier sind einige Encoder, mit denen Sie einen von einem CDN gelieferten Live-Stream erzeugen können:
Aufräumen
Wenn Ihr Live-Stream fertig ist, können Sie die Artefakte für Ihren Stream wie folgt bereinigen:
- Stoppen Sie Ihren Streaming-Encoder
-
Kündigen Sie den Live-Job.
Um einen Live-Job abzubrechen, senden Sie a
PUT
Anfrage wie folgt:Methode PUT
URL https://api.bcovlive.io/v1/jobs/your live job id/cancel
Header X-API-KEY: your API KEY
Inhaltstyp: application/json
Einzelheiten finden Sie in der Live API-Referenz Dokument.
-
Löschen Sie Ihre Anzeigenkonfiguration
Um eine Anzeigenkonfiguration zu löschen, senden Sie a
DELETE
wie folgt anfordern:Methode PUT
URL https://api.bcovlive.io/v1/ssai/applications/application/your ad config id
Header X-API-KEY: your API KEY
Inhaltstyp: application/json
Einzelheiten finden Sie in der Live API-Referenz Dokument.