İlgilendiğiniz DAI çözümünü seçin
Tam kapsamlı DAI
Bu kılavuzda, IMA CAF DAI SDK'sını kullanarak bir DAI akışının nasıl oynatılacağı gösterilmektedir. Tamamlanmış bir örnek entegrasyonu görüntülemek veya takip etmek istiyorsanız örneği indirin.
Bu kılavuzu kullanmadan önce Chromecast Uygulama Çerçevesi'nin Web Alıcısı protokolü hakkında bilgi edinin. Bu kılavuzda, mesaj kesiciler ve mediaInformation
nesneleri gibi CAF alıcı kavramlarına dair temel düzeyde bilgi sahibi olduğunuz ve CAF gönderenini taklit etmek için Cast Command and Control aracını kullanmayı bildiğiniz varsayılmaktadır.
IMA DAI'yi kullanmak için Ad Manager 360 hesabınız olmalıdır. Ad Manager hesabınız varsa daha fazla bilgi için hesap yöneticinizle iletişime geçin. Ad Manager'a kaydolma hakkında bilgi edinmek için Ad Manager Yardım Merkezi'ni ziyaret edin.
Diğer platformlarla entegrasyon veya IMA istemci tarafı SDK'larını kullanma hakkında bilgi edinmek için Interactive Media Ads SDK'ları başlıklı makaleyi inceleyin.
CAF DAI'ye genel bakış
IMA CAF DAI SDK'yı kullanarak DAI'yi uygulama işlemi, bu kılavuzda gösterildiği gibi iki ana bileşenden oluşur:
StreamRequest
: Google'ın reklam sunucularına yönelik bir akış isteğini tanımlayan nesne. Yayın istekleri iki ana türde gelir:LiveStreamRequest
: Öğe anahtarının yanı sıra diğer isteğe bağlı parametreleri belirtir.VODStreamRequest
: İçerik kaynağı kimliği, video kimliği ve diğer isteğe bağlı parametreleri belirtir.- Her iki istek türü de isteğe bağlı olarak, belirtilen akışlara erişmek için gereken bir API anahtarı ve IMA SDK'nın reklam tanımlayıcılarını Google Ad Manager ayarlarında belirtildiği şekilde işlemesi için bir Google Ad Manager ağ kodu içerebilir.
StreamManager
: İzleme ping'lerini tetikleme ve akış etkinliklerini yayıncıya yönlendirme gibi video akışı ile IMA DAI SDK arasındaki iletişimi yöneten bir nesne.
Ön koşullar
- Kayıtlı bir test cihazının bulunduğu Cast Geliştirici Konsolu hesabı.
- Cast Geliştirici Konsolu'na kaydedilmiş ve bu kılavuzda sağlanan kodu barındıracak şekilde değiştirilebilen, barındırılan bir web alıcı uygulaması.
- Web alıcı uygulamanızı kullanacak şekilde yapılandırılmış bir gönderen uygulama. Bu örnekte, gönderen olarak Yayınlama Komut ve Kontrol Aracı kullanılır.
Gönderenin MediaInfo nesnelerini yapılandırma
Öncelikle, gönderen uygulamanızın MediaInfo nesnesini aşağıdaki alanları içerecek şekilde yapılandırın:
contentId
|
Bu medya öğesinin benzersiz tanımlayıcısı | |
contentUrl
|
DAI StreamRequest herhangi bir nedenle başarısız olursa yüklenecek yedek yayın URL'si | |
streamType
|
Canlı yayınlar için bu değer "LIVE" olarak ayarlanmalıdır. VOD akışları için bu değer "BUFFERED" olarak ayarlanmalıdır. | |
customData
|
assetKey
|
Yalnızca canlı yayınlar. Yüklenecek canlı yayını tanımlar. |
contentSourceId
|
Yalnızca VOD akışları. İstenen akışı içeren medya feed'ini tanımlar. | |
videoId
|
Yalnızca VOD akışları. Belirtilen medya feed'inde istenen akışı tanımlar. | |
networkCode
|
(İsteğe bağlı) Google Ad Manager ağ kodunuz. | |
ApiKey
|
Akış URL'sini IMA DAI SDK'sından almak için isteğe bağlı olarak API anahtarı gerekebilir. | |
senderCanSkip
|
Gönderen cihazın, atlanabilir reklamları desteklemek için atla düğmesi görüntüleme özelliğine sahip olup olmadığını alıcıya bildiren bir boole değeri. |
Bu değerleri yayın komutu ve kontrol aracında yapılandırmak için Load
Media (Medya Yükle) sekmesini tıklayın ve özel yükleme isteği türünü LOAD
olarak ayarlayın. Ardından, metin alanındaki JSON verilerini aşağıdaki JSON nesnelerinden biriyle değiştirin:
LIVE
{
"media": {
"contentId": "bbb",
"contentUrl": "https://storage.googleapis.com/interactive-media-ads/media/bbb.m3u8",
"streamType": "LIVE",
"customData": {
"assetKey": "c-rArva4ShKVIAkNfy6HUQ",
"networkCode": "21775744923",
"ApiKey": "",
"senderCanSkip": true
}
},
"credentials": "testCredentials"
}
VOD
{
"media": {
"contentId": "tos",
"contentUrl": "https://storage.googleapis.com/interactive-media-ads/media/tos.m3u8",
"streamType": "BUFFERED",
"customData": {
"contentSourceId": "2548831",
"videoId": "tears-of-steel",
"networkCode": "21775744923",
"ApiKey": "",
"senderCanSkip": true
}
},
"credentials": "testCredentials"
}
Bu özel yükleme isteği nesnesi, aşağıdaki adımları test etmek için alıcıya gönderilebilir.
Temel bir CAF alıcısı oluşturma
CAF SDK Basic Receiver Guide'ı (CAF SDK Temel Alıcı Kılavuzu) 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 Player Manager'ı alın
CAF için IMA DAI SDK'sını web alıcınıza aktarmak üzere CAF'yi yükleyen komut dosyasından hemen sonra bir komut dosyası etiketi ekleyin. CAF DAI SDK, her zaman günceldir. Bu nedenle, belirli bir sürüm ayarlamanıza gerek yoktur. Ardından, alıcıyı başlatmadan önce alıcı bağlamını ve oynatıcı yöneticisini sabitler olarak depolayın.
<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 Stream Manager'ını başlatın.
<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ük mesajı yakalayıcısı oluşturma
CAF DAI SDK, akış istekleri göndermek ve içerik URL'sini nihai DAI akışıyla değiştirmek için CAF yükleme mesajı
yakalayıcısını kullanır.
Mesaj yakalayıcı, streamManager.requestStream() işlevini çağırır. Bu işlev, reklam aralarının ayarlanması, akışın istenmesi ve mevcut contentURL
öğesinin değiştirilmesi işlemlerini gerçekleştirir.
Yalnızca bir yükleme mesajı engelleyici olabilir. Bu nedenle, uygulamanızın engelleyici kullanması gerekiyorsa tüm özel işlevleri aynı geri çağırmaya dahil etmeniz gerekir.
<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 gönderenden gelen mediaInfo
nesnesinde yer alan verileri kullanarak stream
request'inizi oluşturmanız gerekir.
<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.networkCode) {
streamRequest.networkCode = imaRequestData.networkCode;
}
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ını isteyebilir ve oynatabilirsiniz. Daha gelişmiş SDK özellikleri hakkında bilgi edinmek için diğer kılavuzlara göz atın veya örnek alıcı uygulamalarımızı indirin.