Birden fazla reklam isteğini işleme

Platform seçin: HTML5 Android iOS tvOS

IMA SDK'nın çoğu kullanımında tek seferde yalnızca tek bir reklam isteğinin yönetilmesi gerekir. Ancak, kullanıcının bir video seçmesinden önce reklam verilerinin önceden yüklenmesi gibi bazı uç durumlarda birden fazla eşzamanlı istekte bulunulması gerekebilir. Reklam istekleri eşzamansız olarak yapıldığından, doğru reklam yöneticisinin doğru bağlamla ilişkilendirilmesini sağlamak zorlu bir görev gibi görünebilir.

Android için IMA SDK, birden fazla reklam yöneticisini ayırt etme sürecini basitleştirmek amacıyla yayıncıların herhangi bir reklam isteğinin UserRequestContext alanına herhangi bir değeri veya nesneyi iletmesine olanak tanır. Bu değer veya nesne, getUserRequestContext() yöntemi kullanılarak AdsManagerLoadedEvent işleyicisinde alınabilir.

Örnek

...

adsLoader = sdkFactory.createAdsLoader(context, imaSdkSettings, adDisplayContainer);

Map<String, String> userContextA = new HashMap<String, String>();
Map<String, String> userContextB = new HashMap<String, String>();
userContextA.put("id", "Request A");
userContextB.put("id", "Request B");
userContextA.put("element", "videoElementA");
userContextB.put("element", "videoElementB");
adRequestA.setUserRequestContext(userContextA);
adRequestB.setUserRequestContext(userContextB);

adsLoader.addAdsLoadedListener(
    new AdsLoader.AdsLoadedListener() {
      @Override
      public void onAdsManagerLoaded(AdsManagerLoadedEvent adsManagerLoadedEvent) {
        Map<String, String> context = adsManagerLoadedEvent.getUserRequestContext();
        adsManager = adsManagerLoadedEvent.getAdsManager();
        Log.i("ImaExample", "Successfully loaded ID: " + context.get("id"));
      }
    });

adsLoader.addAdErrorListener(
    new AdErrorEvent.AdErrorListener() {
      @Override
      public void onAdError(AdErrorEvent adErrorEvent) {
        Map<String, String> context = adErrorEvent.getUserRequestContext();
        Log.i("ImaExample", "Error with AdRequest. ID: " + context.get("id"));
        Log.i("ImaExample", "Ad Error: " + adErrorEvent.getError().getMessage());
      }
    });

adsLoader.requestAds(adRequestA);
adsLoader.requestAds(adRequestB);

...