İlgilendiğiniz DAI çözümünü seçme
Tam hizmet DAI
Bu kılavuzda, IMA CAF DAI SDK'sı kullanılarak DAI akışı oynatma hakkında bilgi verilmektedir. Eğer tamamlanmış bir örnek entegrasyonu görüntülemek veya izlemek istediğinizde, örneği indirin.
Bu kılavuzu kullanmadan önce Chromecast hakkında bilgi sahibi olduğunuzdan emin olun.
Uygulama Çerçevesi'nin Web Alıcısı protokolü. Bu
rehberde yer alan, CAF alıcısı kavramları,
mesaj
kesiciler
ve
mediaInformation
ve Cast Komutu ve Denetimini kullanma
aracını kullanın.
IMA DAI'yı kullanmak için Ad Manager 360 hesabınızla oturum açın. Reklamınız varsa yönetici hesabı varsa daha fazla bilgi için hesap yöneticinize başvurun. Daha fazla bilgi için Ad Manager'e kaydolma hakkında daha fazla bilgi için Ad Manager Yardım Merkezi.
Diğer platformlarla entegrasyon veya IMA'yı kullanma hakkında bilgi için istemci tarafı SDK'lar için Interactive Media Ads SDK'ları konusuna bakın.
CAF DAI'ya genel bakış
IMA CAF DAI SDK'sı kullanarak DAI uygulamak için iki ana bileşen bulunur: görebilirsiniz:
StreamRequest
: Google'ın reklam sunucularına yapılan akış isteğini tanımlayan bir nesne. Akış istekleri iki türde sunulur:LiveStreamRequest
: Öğe Anahtarı ve isteğe bağlı bir API anahtarı ve isteğe bağlı parametrelerdir.VODStreamRequest
: İçerik Kaynağı Kimliği, Video Kimliği ve isteğe bağlı API'yi belirtir. anahtarı ile birlikte başka isteğe bağlı parametreler de bulunur.
StreamManager
: Video akışı ile IMA DAI arasındaki iletişimi işleyen nesne izleme ping'lerini tetikleme ve akış etkinliklerini yayıncısına ait.
Ön koşullar
- Şuradaki Cast Developer Console hesabı: test cihazı kullanın.
- Barındırılan bir web alıcısı Cast Developer Console'unuza kayıtlıdır ve barındırmak için değiştirilebilir kodu kullanın.
- Web alıcı uygulamanızı kullanacak şekilde yapılandırılan bir gönderme uygulama. Bu örnek Cast Komut ve Denetim aracını kullanır. gönderir.
Gönderenin MediaInfo nesnelerini yapılandırma
Öncelikle gönderen uygulamanızın MediaInfo nesne ekleyin aşağıdaki alanları doldurun:
contentId
|
Bu medya öğesinin benzersiz tanımlayıcısı | |
contentUrl
|
DAI StreamRequest herhangi bir için başarısız olursa yüklenecek yedek akış URL'si neden | |
streamType
|
Canlı yayınlar için bu değer "LIVE" (CANLI) olarak ayarlanmalıdır. VOD yayınlarda bu değer "BUFFERED" olarak ayarlanmalıdır | |
customData
|
assetKey
|
Yalnızca canlı yayınlarda. Yüklenecek canlı yayını tanımlar |
contentSourceId
|
Yalnızca VOD yayınlar. Şunları içeren medya feed'ini tanımlar: akış isteğinde bulunuldu. | |
videoId
|
Yalnızca VOD yayınlar. Şurada istenen akışı tanımlar: belirtilen medya feed'i. | |
ApiKey
|
Akış URL'sini şuradan almak için gerekli olabilecek isteğe bağlı bir API anahtarı: IMA DAI SDK'sı | |
senderCanSkip
|
Alıcıya, gönderen cihazda şu durumların geçerli olup olmadığını bildiren boole değeridir: bir atlama düğmesi gösterme özelliği sayesinde atlanabilir reklamlar için destek |
Bu değerleri yayınlama komut ve kontrol aracında yapılandırmak için Yükle"yi tıklayın ve
Medya sekmesini seçin ve özel yükleme isteği türünü LOAD
olarak ayarlayın. Ardından,
Aşağıdaki JSON nesnelerinden biriyle metin alanında JSON verileri:
CANLI
{
"media": {
"contentId": "bbb",
"contentUrl": "https://storage.googleapis.com/interactive-media-ads/media/bbb.m3u8",
"streamType": "LIVE",
"customData": {
"assetKey": "sN_IYUG8STe1ZzhIIE_ksA",
"ApiKey": "",
"senderCanSkip": true
}
},
"credentials": "testCredentials"
}
Seç-izle
{
"media": {
"contentId": "tos",
"contentUrl": "https://storage.googleapis.com/interactive-media-ads/media/tos.m3u8",
"streamType": "BUFFERED",
"customData": {
"contentSourceId": "2548831",
"videoId": "tears-of-steel",
"ApiKey": "",
"senderCanSkip": true
}
},
"credentials": "testCredentials"
}
Bu özel yükleme isteği nesnesi, test amacıyla alıcıya gönderilebilir. adımları uygulayın.
Temel CAF alıcısı oluşturma
CAF SDK'sı Temel Alıcı Kılavuzu'nu izleyerek temel bir web alıcısı oluşturun.
Alıcınızın kodu şu şekilde görünmelidir:
<html>
<head>
<script type="text/javascript"
src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js">
</script>
</head>
<body>
<cast-media-player></cast-media-player>
<script>
cast.framework.CastReceiverContext.getInstance().start();
</script>
</body>
</html>
IMA DAI SDK'sını içe aktarın ve Oynatıcı Yöneticisi'ni edinme
CAF için IMA DAI SDK'sını web alıcınıza aktarmak üzere bir komut dosyası etiketi ekleyin. yükleyin. CAF DAI SDK'sı geçerliliğini yitirmez, bu nedenle veya belirli bir sürüm seçin. Daha sonra, gelen komut dosyası etiketinde alıcı bağlamını ve oynatıcı yöneticisini sabit olarak ayarlar.
<html>
<head>
<script type="text/javascript"
src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
<script src="//imasdk.googleapis.com/js/sdkloader/cast_dai.js"></script>
</head>
<body>
<cast-media-player></cast-media-player>
<script>
const castContext = cast.framework.CastReceiverContext.getInstance();
const playerManager = castContext.getPlayerManager();
castContext.start();
</script>
</body>
</html>
IMA Stream Manager'ı başlatma
CAF DAI SDK'sının Akışını başlatın Yönetici.
<html>
<head>
<script type="text/javascript"
src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
<script src="//imasdk.googleapis.com/js/sdkloader/cast_dai.js"></script>
</head>
<body>
<cast-media-player></cast-media-player>
<script>
const castContext = cast.framework.CastReceiverContext.getInstance();
const playerManager = castContext.getPlayerManager();
const streamManager = new google.ima.cast.dai.api.StreamManager();
castContext.start();
</script>
</body>
</html>
Yükleme mesajı önleyicisini oluşturma
CAF DAI SDK'sı, CAF yükleme mesajını kullanır.
müdahale aracı
kullanarak akış isteklerinde bulunun ve içerik URL'sini nihai DAI akışıyla değiştirin.
Mesaj engelleyicisi, aynı işlemi gerçekleştiren streamManager.requestStream()
reklam aralarını ayarlama, akışı isteme ve mevcut
contentURL
.
Yalnızca bir tane yükleme mesajı önleyicisi olabilir. Dolayısıyla, uygulamanız gerekiyorsa yoksa, tüm özel işlevleri de aynı izleme URL'sine dahil etmeniz gerekir. geri arama.
<html>
<head>
<script type="text/javascript"
src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
<script src="//imasdk.googleapis.com/js/sdkloader/cast_dai.js"></script>
</head>
<body>
<cast-media-player></cast-media-player>
<script>
const castContext = cast.framework.CastReceiverContext.getInstance();
const playerManager = castContext.getPlayerManager();
const streamManager = new google.ima.cast.dai.api.StreamManager();
const getStreamRequest = (request) => null;
playerManager.setMessageInterceptor(
cast.framework.messages.MessageType.LOAD, (request) => {
return streamManager.requestStream(request, getStreamRequest(request))
.then((request) => {
this.broadcast('Stream request successful.');
return Promise.resolve(request);
})
.catch((error) => {
this.broadcast('Stream request failed.');
return Promise.resolve(request);
});
});
castContext.start();
</script>
</body>
</html>
Akış isteğini oluşturma
CAF DAI entegrasyonunuzu tamamlamak için akışınızı oluşturmanız gerekir
talep edin
(gönderenden mediaInfo
nesnesinde bulunan veriler kullanılır).
<html>
<head>
<script type="text/javascript"
src="//www.gstatic.com/cast/sdk/libs/caf_receiver/v3/cast_receiver_framework.js"></script>
<script src="//imasdk.googleapis.com/js/sdkloader/cast_dai.js"></script>
</head>
<body>
<cast-media-player></cast-media-player>
<script>
const castContext = cast.framework.CastReceiverContext.getInstance();
const playerManager = castContext.getPlayerManager();
const streamManager = new google.ima.cast.dai.api.StreamManager();
const getStreamRequest = (request) => {
const imaRequestData = request.media.customData;
let streamRequest = null;
if (imaRequestData.assetKey) {
// Live stream
streamRequest = new google.ima.cast.dai.api.LiveStreamRequest();
streamRequest.assetKey = imaRequestData.assetKey;
} else if (imaRequestData.contentSourceId) {
// VOD stream
streamRequest = new google.ima.cast.dai.api.VODStreamRequest();
streamRequest.contentSourceId = imaRequestData.contentSourceId;
streamRequest.videoId = imaRequestData.videoId;
}
if (streamRequest && imaRequestData.ApiKey) {
streamRequest.ApiKey = imaRequestData.ApiKey;
}
if (streamRequest && imaRequestData.senderCanSkip) {
streamRequest.senderCanSkip = imaRequestData.senderCanSkip;
}
return streamRequest;
};
playerManager.setMessageInterceptor(
cast.framework.messages.MessageType.LOAD, (request) => {
return streamManager.requestStream(request, getStreamRequest(request))
.then((request) => {
return Promise.resolve(request);
})
.catch((error) => {
this.broadcast('Stream request failed.');
return Promise.resolve(request);
});
});
castContext.start();
</script>
</body>
</html>
Artık Google'ın CAF DAI SDK'sı ile DAI akışları isteyebilir ve oynatabilirsiniz. Daha gelişmiş SDK özellikleri hakkında bilgi edinmek için örnek alıcımızı indirin uygulamalar.