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

IMA SDK'ları, multimedya reklamları 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ı sayesinde uygulamalar, reklam ve içerik videosu (VOD veya canlı içerik) için akış isteğinde bulunur. SDK, daha sonra birleştirilmiş bir video akışı döndürür. Böylece, uygulamanız içinde reklam ve içerik videosu arasında geçişi yönetmeniz gerekmez.

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

DAI yayınlayan kapsül

IMA SDK'ları, multimedya reklamları 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ı sayesinde uygulamalar, reklam ve içerik videosu (VOD veya canlı içerik) için akış isteğinde bulunur. SDK, daha sonra birleştirilmiş bir video akışı döndürür. Böylece, uygulamanız içinde reklam ve içerik videosu arasında geçişi yönetmeniz gerekmez.

Bu kılavuzda, canlı ve VOD akışı oynatma için basit bir video oynatıcıyla IMA Android DAI SDK'sı 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 akış isteğini tanımlayan bir nesnedir. Kapsül sunumunu etkinleştirmek için ImaSdkFactory.createPodStreamRequest() veya ImaSdkFactory.createPodVodStreamRequest() kullanılarak oluşturulmalıdır. Bu yöntemler için bir Ağ Kodu gerekir. createPodStreamRequest ayrıca bir Özel Öğe Anahtarı ve isteğe bağlı bir API anahtarı gerektirir. Her ikisi de diğer isteğe bağlı parametreleri içerir.

  • StreamManager: Video akışı ile IMA DAI SDK'sı arasındaki iletişimi (izleme ping'lerini etkinleştirme ve akış etkinliklerini yayıncıya iletme gibi) işleyen bir nesnedir.

Ön koşullar

Kapsül yayınlama değişkenlerinizi ayarlayın

Kapsül yayını 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 sabitleri şunlardır:

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

  • 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 gerekebilecek isteğe bağlı bir API anahtarı.

Android DAI Temel Örneği, çeşitli farklı akış türlerini oynatacak şekilde tasarlanmıştır ancak kapsül yayını 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şturma arasında geçiş yapmak için kullanılan buildStreamRequest() yöntemini kaldırın. Ardından, Canlı 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şturma arasında geçiş yapmak için kullanılan buildStreamRequest() yöntemini kaldırın. Ardından, reklam isteği yayınlayan bir VOD kapsülü oluşturmak için requestAndPlayAds() değerini ImaSdkFactory.createPodVodStreamRequest() çağrısı olarak 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 öğrenmek için StreamManager.getStreamId() numaralı telefonu arayın. Daha sonra, "[[STREAMID]]" yerine STEAM_URL içine eklenmesi gerekir. Bu değişiklik yapıldıktan sonra yeni akış 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 öğrenmek için StreamManager.getStreamId() numaralı telefonu arayın. Ardından, video teknolojisi iş ortağınızdan (VTP) bir yayın URL'si isteyin. Ardından, IMA'nın akış URL'sini ve TVP'niz tarafından döndürülen altyazıları yüklemesi için StreamManager.loadThirdPartyStream() yöntemini çağırı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ını etkinleştirildiğinde IMA, VideoStreamPlayer.loadUrl() öğesine çağrı yapmaz. Bu nedenle videoPlayer.setStreamUrl() ve videoPlayer.play() için yapılan tüm çağrıları buradan kaldırabilirsiniz.

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