Kapsül hizmeti DAI ile ayarlama

Platform seçin: HTML5 Android iOS tvOS Yayınla Roku

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ı sayesinde uygulamalar, reklam ve içerik videosu (VOD veya canlı içerik) için akış isteği gönderir. 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ş yapmanız gerekmez.

Bu kılavuzda, canlı ve VOD akış oynatma için video oynatıcıyla birlikte IMA DAI SDK'yı 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 için Kapsül Yayınlama örneğini indirin.

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

  • StreamRequest: Google'ın reklam sunucularına yönelik bir akış isteğini 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. Ayrıca Özel Öğe Anahtarı ve isteğe bağlı bir API anahtarı da gerekir.createPodStreamRequest Her ikisi de isteğe bağlı diğer parametreleri 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 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ü akış isteği sabitleri şunlardır:

  • STREAM_URL: Yalnızca canlı yayınlar için kullanılır - Kapsül yayınlama kullanan manifest manipülatörünüz 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 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 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 akış kimliği almak için gerekebilecek isteğe bağlı bir API anahtarı.

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ğıdaki gibi 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 kapsülü yayını

Çeşitli akış türleri oluşturma arasında geçiş yapmak için kullanılan buildStreamRequest() yöntemi kaldırıldı. Ardından, canlı kapsül yayınlama reklam isteği oluşturmak için requestAndPlayAds() öğesini ImaSdkFactory.createPodStreamRequest() çağıracak şekilde değiştirin.

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

VOD akışı kapsül yayınlama

Çeşitli akış türleri oluşturma arasında geçiş yapmak için kullanılan buildStreamRequest() yöntemi kaldırıldı. Ardından, VOD kapsül yayınlama reklam isteği oluşturmak için requestAndPlayAds() öğesini ImaSdkFactory.createPodVodStreamRequest() çağıracak şekilde 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);

Yayın URL'sini düzenleme ve ayarlama

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

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 yayın URL'sini ayarlayın ve yayın 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 yayınlama

  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 StreamManager.loadThirdPartyStream() yöntemini çağırın ve VTP'nizin döndürdüğü altyazıları 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 yayınlama 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 VideoStreamPlayer.loadUrl() geri çağırma işlevine videoPlayer.setStreamUrl() ve videoPlayer.play() çağrılarını 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 kapsül sunma akışında reklam isteme ve gösterme işlemlerini başarıyla tamamladığınızda, kapsül sunma oturumu tamamlandıktan sonra tüm kaynakları temizlemenizi öneririz. Canlı yayın oynatmayı durdurmak, tüm reklam izlemeyi durdurmak ve yüklenen tüm canlı yayın öğelerini serbest bırakmak için StreamManager.destroy() yöntemini çağırın.

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