UserContext ile birden fazla reklam isteğini işleme

IMA SDK'nın çoğu kullanımı, aynı anda yalnızca tek bir reklam isteğinin yönetilmesini gerektirir. Ancak reklam verilerinin kullanıcı bir video seçmeden önce önceden yüklenmesi gibi bazı uç durum uygulamaları için birden fazla eşzamanlı istek yapılması gerekebilir. Reklam istekleri eşzamansız olarak yapıldığından, uygun reklam yöneticisinin doğru bağlamla ilişkilendirilmesini sağlamak göz korkutucu 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 değeri veya nesneyi herhangi bir reklam isteğinin UserRequestContext alanına geçirmesine olanak tanır. Bu değer veya nesne, daha sonra getUserRequestContext() yöntemi kullanılarak AdsManagerLoadedEvent işleyicisinden 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);

...