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 ile uyumlu herhangi bir reklam sunucusundan reklam isteyebilir ve uygulamalarınızda reklam oynatmayı yönetebilir. IMA DAI SDK'ları ile uygulamalar, reklam ve içerik videosu (VOD veya canlı içerik) için bir yayın isteği gönderir. Ardından SDK, birleştirilmiş bir video akışı döndürür. Böylece uygulamanızda reklam ve içerik videosu arasında geçiş yapmanız gerekmez.

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

Kapsül Yayınlama DAI

IMA SDK'ları, multimedya reklamları web sitelerinize ve uygulamalarınıza entegre etmenizi kolaylaştırır. IMA SDK'ları, VAST ile uyumlu herhangi bir reklam sunucusundan reklam isteyebilir ve uygulamalarınızda reklam oynatmayı yönetebilir. IMA DAI SDK'ları ile uygulamalar, reklam ve içerik videosu (VOD veya canlı içerik) için bir yayın isteği gönderir. Ardından SDK, birleştirilmiş bir video akışı döndürür. Böylece uygulamanızda reklam ve içerik videosu arasında geçiş yapmanız gerekmez.

Bu kılavuzda, canlı ve seç-izle yayın oynatma için video oynatıcıyla birlikte IMA DAI SDK'sı kullanılarak 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 için Kapsül Yayınlama örneğini indirin.

IMA DAI Kapsül Yayınlama'ya genel bakış

  • StreamRequest: Google'ın reklam sunucularına bir akış isteği tanımlayan nesne. Kapsül yayınlamayı etkinleştirmek için ImaSdkFactory.createPodStreamRequest() veya ImaSdkFactory.createPodVodStreamRequest() kullanılarak oluşturulmalıdır. Bu yöntemler için ağ kodu gerekir. createPodStreamRequest için ayrıca özel öğe anahtarı ve isteğe bağlı API anahtarı gerekir. Her ikisi de diğer isteğe bağlı parametreleri içerir.

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

Ön koşullar

Kapsül yayınlama değişkenlerinizi ayarlama

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

Eklenecek reklam kapsülü veri akışı istek sabitleri 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ğınız 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, yayın URL'sinde istekte bulunmadan önce yayın kimliğiyle değiştirilen bir yer tutucu ("[[STREAMID]]") bulunur.

  • 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 yayınlama 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 bir yayın kimliği almak için gerekli olabilecek isteğe bağlı bir API anahtarı.

Android DAI BasicExample, çeşitli farklı akış türlerini oynatmak için 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ınlamayı etkinleştirmek için canlı veya VOD kapsül yayın isteği oluşturma

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

Çeşitli akış türleri oluşturmak 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() olarak değiştirin. Son olarak, AdsLoader.requestStream() kullanarak aktarma 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);
}

Seç-izle video akışı kapsülü yayınlama

Çeşitli akış türleri oluşturmak için kullanılan buildStreamRequest() yöntemini kaldırın. Ardından, VOD Pod Yayınlama reklam isteği oluşturmak için requestAndPlayAds() değerini ImaSdkFactory.createPodVodStreamRequest() olarak değiştirin. Son olarak, AdsLoader.requestStream() kullanarak aktarma 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() numaralı telefonu arayın. Ardından bu, "[[STREAMID]]" yerine STEAM_URL içine yerleştirilmelidir. 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();
}

Seç-izle video akışı kapsülü yayınlama

Akış kimliğini almak 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 tüm altyazılar yüklemesi için StreamManager.loadThirdPartyStream() işlevini ç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 sunumu etkinleştirildiğinde IMA, VideoStreamPlayer.loadUrl()'e çağrı yapmaz. Bu nedenle, videoPlayer.setStreamUrl() ve videoPlayer.play()'ye yapılan tüm çağrıları kaldırabilirsiniz.

IMA DAI öğelerini temizleme

IMA DAI SDK'sını kullanarak bir Pod Yayınlama akışında reklam isteğinde bulunma ve görüntüleme işlemlerini başarıyla tamamladığınızda, Pod Yayınlama oturumu tamamlandıktan sonra tüm kaynakları temizlemenizi öneririz. Akış oynatmayı durdurmak, tüm reklam izlemeyi durdurmak ve yüklü tüm akış öğelerini serbest bırakmak için StreamManager.destroy() çağrısı yapın.

Android SDK'sının kullanıldığı diğer örnekleri görmek için GitHub'daki örneklere göz atın.