IMA DAI SDK'sını kullanmaya başlama

İ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. Tamamlanmış bir örnek entegrasyonu görüntülemek veya takip etmek isterseniz örneği indirin.

Bu kılavuzu kullanmadan önce Chromecast Uygulama Çerçevesi'nin Web Alıcısı protokolü hakkında bilgi sahibi olduğunuzdan emin olun. Bu kılavuzda mesaj engelleyiciler ve mediaInformation nesneleri gibi CAF alıcısı kavramlarına dair temel düzeyde bilgi sahibi olmanız ve CAF göndereni emüle etmek için Cast Komut ve Denetim aracını kullanma hakkında bilgi sahibi olmanız varsayılır.

IMA DAI'yı kullanmak için Ad Manager 360 hesabınızın olması gerekir. Ad Manager hesabınız varsa daha fazla ayrıntı için hesap yöneticinizle iletişime geçin. Ad Manager'a kaydolma hakkında bilgi 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ı bölümüne bakın.

CAF DAI'ya genel bakış

IMA CAF DAI SDK'sını kullanarak DAI uygulaması, bu kılavuzda gösterildiği gibi iki ana bileşen içerir:

  • StreamRequest: Google'ın reklamcılık sunucularına yapılan akış isteğini tanımlayan bir nesne. Akış istekleri iki türde sunulur:

    • LiveStreamRequest: Öğe Anahtarı, isteğe bağlı API anahtarı ve diğer isteğe bağlı parametreleri belirtir.
    • VODStreamRequest: Bir İçerik Kaynağı Kimliği, Video Kimliği ve isteğe bağlı API anahtarı ile diğer isteğe bağlı parametreleri belirtir.
  • StreamManager: İzleme ping'lerini tetikleme ve akış etkinliklerini yayıncıya yönlendirme gibi, video akışı ile IMA DAI SDK'sı arasındaki iletişimi işleyen bir nesne.

Ön koşullar

  • Kayıtlı bir test cihazına sahip Cast Developer Console hesabı.
  • Cast Developer Console'unuza kayıtlı olan ve bu kılavuzda sağlanan kodu barındırmak için değiştirilebilecek, barındırılan bir web alıcı uygulaması.
  • Web alıcı uygulamanızı kullanacak şekilde yapılandırılan bir gönderme uygulama. Bu örnekte, gönderen olarak Cast Komut ve Denetim aracı kullanılmaktadı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 akış URL'si
streamType Canlı yayınlar için bu değer "LIVE" (CANLI) olarak ayarlanmalıdır. VOD yayınlar için 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. İstenen akışı içeren medya feed'ini tanımlar.
videoId Yalnızca VOD yayınlar. Belirtilen medya feed'inde istenen akışı tanımlar.
ApiKey Akış URL'sini IMA DAI SDK'sından almak için gerekli olabilecek isteğe bağlı bir API anahtarı
senderCanSkip Alıcı cihazda "atla" düğmesi gösterip göstermediğini öğrenerek atlanabilir reklam desteği sunmasını sağlayan boole değeridir.

Yayın komut ve kontrol aracında bu değerleri yapılandırmak için Medya Yükle sekmesini tıklayıp özel yükleme isteği türünü LOAD olarak ayarlayın. Daha sonra metin alanındaki JSON verilerini aşağıdaki JSON nesnelerinden biriyle değiştirin:

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, aşağıdaki adımları test etmek için alıcıya gönderilebilir.

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

Komut dosyası CAF'yi yükledikten hemen sonra, CAF için IMA DAI SDK'sını web alıcınıza aktarmak üzere bir komut dosyası etiketi ekleyin. CAF DAI SDK'sı kalıcıdır. Bu nedenle, belirli bir sürüm ayarlamaya gerek yoktur. Daha sonra, izleyen komut dosyası etiketinde, alıcı bağlamını ve oynatıcı yöneticisini, alıcıyı başlatmadan önce sabit değerler 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 Akış Yöneticisi'ni 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ükleme mesajı önleyicisini oluşturma

CAF DAI SDK'sı, akış istekleri yapmak ve içerik URL'sini nihai DAI akışıyla değiştirmek için CAF yükleme mesaj engelleyicisini kullanır. Mesaj engelleyici, reklam aralarını ayarlama, akışı isteme ve mevcut contentURL öğesini değiştirme işlemlerini yürüten streamManager.requestStream() yöntemini çağırır.

Yalnızca bir yükleme mesajı önleyicisi olabilir. Bu nedenle, uygulamanız müdahalecinin kullanılmasını gerektiriyorsa 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 bulunan verileri kullanarak akış isteğ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.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 diğer kılavuzları inceleyin veya örnek alıcı uygulamalarımızı indirin.