我正在使用以下代码从 dfp 请求广告,但我想在一个请求中请求多个广告并将它们存储在 arraylist(或类似的数据结构)中,并在需要时在多个地方使用它们。
我试图将请求放在 for 循环中,但它似乎不起作用。
这是我用来从 dfp 获取广告的代码
private void refreshAd() {
templateAdLoadedListener = new NativeCustomTemplateAd.OnCustomTemplateAdLoadedListener() {
@Override
public void onCustomTemplateAdLoaded(NativeCustomTemplateAd nativeCustomTemplateAd) {
Log.d(TAG, "onCustomTemplateAdLoaded: ad fetched");
customTemplateAds.add(nativeCustomTemplateAd);
}
};
templateAdClickListener = new NativeCustomTemplateAd.OnCustomClickListener() {
@Override
public void onCustomClick(NativeCustomTemplateAd nativeCustomTemplateAd, String s) {
Intent intent = new Intent(MainActivity.this, AboutWebActivity.class);
intent.putExtra("TYPE", "AD");
intent.putExtra("TITLE", "AD TITLE");
Log.d(TAG, "onCustomClick: url = " + String.valueOf(nativeCustomTemplateAd.getText("Click-through URL")));
intent.putExtra("URL", String.valueOf(nativeCustomTemplateAd.getText("Thirdpartyclicktracker")));
startActivity(intent);
}
};
adLoader = new AdLoader.Builder(MainActivity.this,"ad_unit_id")
.forCustomTemplateAd("ad_template_id", templateAdLoadedListener, templateAdClickListener)
.withAdListener(new AdListener() {
@Override
public void onAdFailedToLoad(int errorCode) {
Log.d(TAG, "onCustomTemplateAdFailedToLoad: error code = " + errorCode);
}
}).build();
adLoader.loadAd(new PublisherAdRequest.Builder().build());
}
我试图将refreshAd()函数放在 for 循环中,但它不起作用。在单个广告请求中获取多个广告的最佳方式是什么?