DAI için IMA SDK'sını ayarlama

IMA SDK'ları, multimedya reklamları web sitelerinize ve uygulamalarınıza entegre etmeyi kolaylaştırır. IMA SDK'ları, herhangi bir VAST uyumlu reklam sunucusundan reklam isteğinde bulunabilir 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 akış isteğinde bulunur. SDK daha sonra birleştirilmiş bir video akışı döndürür. Böylece uygulamanızda reklam ve içerik videosu arasında geçişi yönetmeniz 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 etmeyi kolaylaştırır. IMA SDK'ları, herhangi bir VAST uyumlu reklam sunucusundan reklam isteğinde bulunabilir 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 akış isteğinde bulunur. SDK daha sonra birleştirilmiş bir video akışı döndürür. Böylece uygulamanızda reklam ve içerik videosu arasında geçişi yönetmeniz gerekmez.

Bu kılavuzda, canlı ve VOD akışı oynatma için bir 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ınlamaya Genel Bakış

  • StreamRequest: Google'ın reklam sunucularına yönelik bir yayın isteğini tanımlayan nesne. Kapsül yayınlamanın etkinleştirilmesi için ImaSdkFactory.createPodStreamRequest() veya ImaSdkFactory.createPodVodStreamRequest() kullanılarak oluşturulmalıdır. Bu yöntemler için Ağ Kodu gerekir. createPodStreamRequest için ise Özel Öğeler Anahtarı ve isteğe bağlı API anahtarı gerekir. Her ikisi de diğer isteğe bağlı parametreleri içerir.

  • StreamManager: İzleme ping'lerini tetikleme ve yayın içi etkinlikleri yayıncıya yönlendirme gibi video akışı ile IMA DAI SDK arasındaki iletişimi 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 içinde yapılır. İlk adım, sabit değişkenleri güncellemektir.

Eklenecek reklam grubu akışı isteği sabitleri şunlardır:

  • STREAM_URL: Yalnızca canlı yayınlar için kullanılır: Kapsül yayınlama kullanan manifest işleyiciniz veya üçüncü taraf iş ortağınız tarafından sağlanan video akışı URL'si. İstek göndermeden önce IMA DAI SDK tarafından sağlanan akış kimliğini girmenizi gerektirmelidir. Bu durumda, akış URL'si bir yer tutucu içerir. "[[STREAMID]]", istekte bulunmadan ö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'taki Pod Serving 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'dan akış kimliği almak için gerekebilecek isteğe bağlı bir API anahtarıdır.

Android DAI BasicExample, çeşitli 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 implements IMA to add pod ad-serving support to SampleVideoPlayer */
@SuppressLint("UnsafeOptInUsageError")
/* @SuppressLint is needed for new media3 APIs. */
public class SampleAdsWrapper
    implements AdEvent.AdEventListener, AdErrorEvent.AdErrorListener, AdsLoader.AdsLoadedListener {

  // Set up the pod serving variables.
  private static final String NETWORK_CODE = "";
  private static final String CUSTOM_ASSET_KEY = "";
  private static final String API_KEY = "";
  private static final String STREAM_URL = "";
  private static final StreamFormat STREAM_FORMAT = StreamFormat.HLS;

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

Canlı yayın pod'u sunma

Çeşitli akış türleri oluşturma arasında geçiş yapmak için kullanılan yöntemi buildStreamRequest() kaldırın. Ardından, requestAndPlayAds() değerini ImaSdkFactory.createPodStreamRequest() olarak değiştirerek bir canlı yayın kapsülü reklamı isteği oluşturun.

// Live pod stream request.
request = sdkFactory.createPodStreamRequest(NETWORK_CODE, CUSTOM_ASSET_KEY, API_KEY);

VOD akışı kapsülü sunma

Çeşitli akış türleri oluşturma arasında geçiş yapmak için kullanılan yöntemi buildStreamRequest() kaldırın. Ardından, VOD Pod Serving reklamı isteği oluşturmak için requestAndPlayAds() işlevini çağıracak şekilde ImaSdkFactory.createPodVodStreamRequest() işlevini değiştirin.

// VOD pod stream request.
request = sdkFactory.createPodVodStreamRequest(NETWORK_CODE);

Akış isteği örneğini oluşturduktan sonra AdsLoader.requestStream() kullanarak akışı isteyin:

request.setFormat(STREAM_FORMAT);
adsLoader.requestStream(request);

Akış URL'sini düzenleme ve ayarlama

Canlı yayın pod'u sunma

Akış kimliğini almak için StreamManager.getStreamId() yöntemini çağırın. Bu, "[[STREAMID]]" yerine STEAM_URL içine eklenmelidir. Bu değişiklik yapıldıktan sonra videoPlayer.setStreamUrl() yöntemini kullanarak yeni akış URL'sini ayarlayın ve akış oynatmayı başlatmak için videoPlayer.play() yöntemini çağırın.

// Play the live pod stream.
streamID = streamManager.getStreamId();
String liveStreamUrl = STREAM_URL.replace("[[STREAMID]]", streamID);
// Call videoPlayer.play() here, because IMA doesn't call the VideoStreamPlayer.loadUrl()
// function for livestreams.
videoPlayer.setStreamUrl(liveStreamUrl);
videoPlayer.play();

VOD akışı kapsülü sunma

  1. Akış kimliğini almak için StreamManager.getStreamId() yöntemini çağırın.
  2. Video teknolojisi iş ortağınızdan (VTP) bir yayın URL'si isteyin.
  3. VTP'nizden URL'yi aldıktan sonra akışı yüklemek için URL ile birlikte StreamManager.loadThirdPartyStream() yöntemini çağırın. VTP'nizin döndürdüğü tüm altyazıları da ekleyin.
// Play the VOD pod stream.
streamID = streamManager.getStreamId();
String vodStreamUrl = "";
// Refer to your Video Tech Partner (VTP) or video stitching guide to fetch the stream URL
// and the subtitles for a the ad stitched VOD stream.

// In the following commented out code, 'vtpInterface' is a place holder
// for your own video technology partner (VTP) API calls.
// vodStreamUrl = vtpInterface.requestStreamURL(streamID);
List<Map<String, String>> subtitles = new ArrayList<>();
streamManager.loadThirdPartyStream(vodStreamUrl, subtitles);

VOD kapsül sunma istekleri için IMA, akış yüklendiğinde VideoStreamPlayer.loadUrl() geri çağırma işlevini çağırır. Yayın oynatmayı başlatmak için videoPlayer.setStreamUrl() ve videoPlayer.play() çağrılarını VideoStreamPlayer.loadUrl() geri çağırmasına ekleyin:

private VideoStreamPlayer createVideoStreamPlayer() {
  return new VideoStreamPlayer() {
    @Override
    public void loadUrl(String url, List<HashMap<String, String>> subtitles) {
      // IMA doesn't make calls to VideoStreamPlayer.loadUrl() for pod serving live streams.
      // The following code is for VOD streams.
      videoPlayer.setStreamUrl(url);
      videoPlayer.play();
    }

IMA DAI öğelerini temizleme

IMA DAI SDK ile bir PodServing akışında reklam isteme ve görüntüleme işlemlerini başarıyla tamamladığınızda, PodServing oturumu tamamlandıktan sonra tüm kaynakları temizlemenizi öneririz. Akış oynatmayı durdurmak, tüm reklam izlemeyi durdurmak ve yüklenen tüm akış öğelerini serbest bırakmak için StreamManager.destroy() işlevini çağırın.

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