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. 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"
}

VOD

{
  "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.