Sebagian besar penggunaan IMA SDK hanya memerlukan pengelolaan satu permintaan iklan dalam satu waktu. Namun, beberapa penerapan kasus ekstrem, seperti melakukan pramuat data iklan sebelum pengguna memilih video, mungkin memerlukan pembuatan beberapa permintaan serentak. Karena permintaan iklan dibuat secara asinkron, memastikan bahwa pengelola iklan yang tepat dikaitkan dengan konteks yang benar mungkin tampak sebagai tugas yang berat.
Untuk menyederhanakan proses pembedaan beberapa pengelola iklan, IMA SDK untuk Android memungkinkan penayang meneruskan nilai atau objek apa pun ke kolom UserRequestContext permintaan iklan apa pun. Nilai atau objek ini kemudian dapat diambil di pengendali AdsManagerLoadedEvent, dengan menggunakan metode getUserRequestContext().
Contoh
...
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);
...