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

IMA SDK'ları, multimedya reklamlarını web sitelerinize ve uygulamalarınıza entegre etmenizi kolaylaştırır. IMA SDK'ları, VAST uyumlu herhangi bir reklam sunucusundan reklam isteyebilir ve uygulamalarınızda reklam oynatmayı yönetebilir. IMA DAI SDK'larıyla uygulamalar, reklam ve içerik videosu (VOD veya canlı içerik) için akış isteğinde bulunur. Daha sonra SDK, uygulamanızın içinde reklam ve içerik videosu arasında geçişi yönetmek zorunda kalmamanız için birleştirilmiş video akışı döndürür.

İlgilendiğiniz DAI çözümünü seçme

Kapsül yayınlama DAI

IMA SDK'ları, multimedya reklamlarını web sitelerinize ve uygulamalarınıza entegre etmenizi kolaylaştırır. IMA SDK'ları, VAST uyumlu herhangi bir reklam sunucusundan reklam isteyebilir ve uygulamalarınızda reklam oynatmayı yönetebilir. IMA DAI SDK'larıyla uygulamalar, reklam ve içerik videosu (VOD veya canlı içerik) için akış isteğinde bulunur. Daha sonra SDK, uygulamanızın içinde reklam ve içerik videosu arasında geçişi yönetmek zorunda kalmamanız için birleştirilmiş video akışı döndürür.

Bu kılavuzda, canlı ve VOD yayın oynatma için basit bir video oynatıcıyla IMA DAI SDK'sını kullanarak DAI Kapsül Yayınlama akışının nasıl oynatılacağı gösterilmektedir. Tamamlanmış bir örnek entegrasyonu görüntülemek veya takip etmek isterseniz kapsül sunma örneğini indirin.

IMA DAI Kapsül Yayınlamaya genel bakış

  • StreamRequest: Google'ın reklamcılık sunucularına yapılan akış isteğini tanımlayan bir nesnedir. Kapsül sunmayı etkinleştirmek için ImaSdkFactory.createPodStreamRequest() veya ImaSdkFactory.createPodVodStreamRequest() kullanılarak oluşturulmalıdır. Bu yöntemler için Ağ Kodu gerekir. createPodStreamRequest ayrıca bir Özel Öğe Anahtarı ve isteğe bağlı bir API anahtarı gerektirir. Her ikisi de isteğe bağlı başka parametreler içerir.

  • StreamManager: Video akışı ile IMA DAI SDK'sı arasındaki iletişimi (ör. izleme ping'lerini tetikleme ve akış etkinliklerini yayıncıya yönlendirme) yöneten bir nesnedir.

Ön koşullar

Kapsül sunma değişkenlerinizi ayarlama

Kapsül yayınlama için gereken tüm değişiklikler SampleAdsWrapper.java içinde yapılır. İlk adım, sabit değişkenleri güncellemektir.

Eklenecek reklam kapsülü akış isteği sabit değerleri aşağıda verilmiştir:

  • STREAM_URL: Yalnızca canlı yayınlar için kullanılır: Kapsül yayınlama özelliğini kullanan manifest düzenleyiciniz veya üçüncü taraf iş ortağı tarafından sağlanan video akışı URL'si. İstekte bulunmadan önce IMA DAI SDK'sı tarafından sağlanan akış kimliğini girmeniz gerekir. Bu durumda akış URL'si, istekte bulunmadan önce akış kimliğiyle değiştirilen bir yer tutucu ("[[STREAMID]]") içerir.

  • NETWORK_CODE: Ad Manager 360 hesabınızın ağ kodu.

  • CUSTOM_ASSET_KEY: Yalnızca canlı yayınlar için kullanılır: Ad Manager 360'ta kapsül yayınlama etkinliğinizi tanımlayan özel öğe anahtarı. Bu, manifest düzenleyiciniz veya üçüncü taraf kapsül sunma iş ortağınız tarafından oluşturulabilir.

  • API_KEY: Yalnızca canlı yayınlar için kullanılır: IMA DAI SDK'sından akış kimliği almak için gerekli olabilecek isteğe bağlı bir API anahtarıdır.

Android DAI Temel Örneği, çeşitli farklı akış türlerini oynatmak üzere tasarlanmıştır ancak kapsül yayınlama için yalnızca tek bir akış oynatacak şekilde ayarlanmıştır. Örneğin değişken bölümünü aşağıdakiyle eşleşecek şekilde değiştirin:

/** This class adds ad-serving support to Sample HlsVideoPlayer */
public class SampleAdsWrapper
        implements AdEvent.AdEventListener, AdErrorEvent.AdErrorListener, AdsLoader.AdsLoadedListener {

  // Podserving Stream Constants.
  private static final String STREAM_URL =
          "https://encodersim.sandbox.google.com/masterPlaylist/9c654d63-5373-4673-8c8d-6d92b66b9d46/" +
          "master.m3u8?gen-seg-redirect=true&network=51636543&event=google-sample" +
          "&pids=devrel4628000,devrel896000,devrel3528000,devrel1428000,devrel2628000,devrel1928000" +
          "&seg-host=dai.google.com&stream_id=[[STREAMID]]";
  private static final String NETWORK_CODE = "51636543";
  private static final String CUSTOM_ASSET_KEY = "google-sample";
  private static final String API_KEY = "";

  private static final String PLAYER_TYPE = "DAISamplePlayer";

  /** Log interface, so we can output the log commands to the UI or similar. */
  public interface Logger {

...

Kapsül yayınını etkinleştirmek için canlı veya VOD kapsül akış isteği oluşturun

Canlı yayın kapsülü yayınlama

Çeşitli akış türleri oluşturmak arasında geçiş yapmak için kullanılan buildStreamRequest() yöntemini kaldırın. Ardından, Live Kapsül yayınlama reklam isteği oluşturmak için requestAndPlayAds() değerini ImaSdkFactory.createPodStreamRequest() çağrısıyla değiştirin. Son olarak, AdsLoader.requestStream() kullanarak akış isteğinde bulunun.

public void requestAndPlayAds() {
  StreamRequest request =
      sdkFactory.createPodStreamRequest(NETWORK_CODE, CUSTOM_ASSET_KEY, API_KEY);
  request.setFormat(StreamFormat.HLS);

  adsLoader.addAdErrorListener(this);
  adsLoader.addAdsLoadedListener(this);
  adsLoader.requestStream(request);
}

VOD akış kapsülü yayınlama

Çeşitli akış türleri oluşturmak arasında geçiş yapmak için kullanılan buildStreamRequest() yöntemini kaldırın. Ardından, VOD kapsül yayınlama reklam isteği oluşturmak için requestAndPlayAds() değerini ImaSdkFactory.createPodVodStreamRequest() çağrısıyla değiştirin. Son olarak, AdsLoader.requestStream() kullanarak akış isteğinde bulunun.

public void requestAndPlayAds() {
  StreamRequest request =
      sdkFactory.createPodVodStreamRequest(NETWORK_CODE);
  request.setFormat(StreamFormat.HLS);

  adsLoader.addAdErrorListener(this);
  adsLoader.addAdsLoadedListener(this);
  adsLoader.requestStream(request);
}

Akış URL'sini düzenleme ve ayarlama

Canlı yayın kapsülü yayınlama

Akış kimliğini almak için StreamManager.getStreamId() öğesini çağırın. Daha sonra bunun, "[[STREAMID]]" yerine STEAM_URL bölümüne eklenmesi gerekir. Bu değişiklik yapıldıktan sonra yeni yayın URL'si, videoPlayer.setStreamUrl() kullanılarak ayarlanabilir.

@Override
public void onAdsManagerLoaded(AdsManagerLoadedEvent event) {
  streamManager = event.getStreamManager();
  streamManager.addAdErrorListener(this);
  streamManager.addAdEventListener(this);

  // To enable streams
  String streamID = streamManager.getStreamId();
  String streamUrl = STREAM_URL.replace("[[STREAMID]]", streamID);

  streamManager.init();

  videoPlayer.setStreamUrl(streamUrl);
  videoPlayer.play();
}

VOD akış kapsülü yayınlama

Akış kimliğini almak için StreamManager.getStreamId() öğesini çağırın. Ardından, video teknolojisi iş ortağınızdan (VTP) bir akış URL'si isteyin. Ardından, IMA'nın yayın URL'sini ve TVP'niz tarafından döndürülen altyazıları yüklemesini sağlamak için StreamManager.loadThirdPartyStream() çağrısı yapın.

@Override
public void onAdsManagerLoaded(AdsManagerLoadedEvent event) {
  streamManager = event.getStreamManager();
  streamManager.addAdErrorListener(this);
  streamManager.addAdEventListener(this);

  // To enable streams
  String streamID = streamManager.getStreamId();
  // 'vtpInterface' is a place holder for your own video technology partner
  // (VTP) API calls.
  String streamUrl = vtpInterface.requestStreamURL(streamID);

  streamManager.init();

  // Pass any subtitles returned by your VTP in this step as well.
  streamManager.loadThirdPartyStream(streamUrl, subtitles);
}

Kapsül yayınlama etkinleştirildiğinde, IMA VideoStreamPlayer.loadUrl() için çağrı yapmaz. Böylece videoPlayer.setStreamUrl() ve videoPlayer.play() için yapılan çağrıları buradan kaldırabilirsiniz.

İşte bu kadar. Artık IMA DAI SDK ile kapsül yayınlama akışında reklam istiyor ve bu reklamları gösteriyorsunuz. Kullanılan Android SDK'nın diğer örneklerini görmek için GitHub'daki örneklere bakın.