I use the Facebook Audience network and in accordance with this article

I do not cache ads, but ads remain on the screen without updating. I download all the ads at once, and they remain on the screen until the user closes the application.
private void initializeAds() {
if (BuildConfig.DEBUG) {
AdSettings.addTestDevice("alksdfj");
}
nativeAd = new NativeAd(this, "alksdjf");
nativeAd.setAdListener(new AdListener() {
@Override
public void onError(Ad ad, AdError adError) {
}
@Override
public void onAdLoaded(Ad ad) {
View adView = NativeAdView.render(MainActivity.this, nativeAd, NativeAdView.Type.HEIGHT_120);
LinearLayout nativeAdContainer = (LinearLayout) findViewById(R.id.native_ad_container);
nativeAdContainer.addView(adView);
}
@Override
public void onAdClicked(Ad ad) {
}
@Override
public void onLoggingImpression(Ad ad) {
}
});
adView = new AdView(this, "alksdjf", AdSize.BANNER_HEIGHT_50);
LinearLayout adContainer = (LinearLayout) findViewById(R.id.banner_container);
adContainer.addView(adView);
interstitialAd = new InterstitialAd(this, "alskdfj");
interstitialAd.setAdListener(new InterstitialAdListener() {
@Override
public void onInterstitialDisplayed(Ad ad) {
}
@Override
public void onInterstitialDismissed(Ad ad) {
}
@Override
public void onError(Ad ad, AdError adError) {
Log.d("FACEBOOK_ADS", adError.getErrorMessage());
}
@Override
public void onAdLoaded(Ad ad) {
}
@Override
public void onAdClicked(Ad ad) {
}
@Override
public void onLoggingImpression(Ad ad) {
}
});
nativeAd.loadAd();
adView.loadAd();
interstitialAd.loadAd();
}
These ads may remain there for hours. I also use an interstitial ad that loads, but only shows to the user when the user unlocks his device. (User can take hours to unlock their device)
In this scenario, I want the abstract advertising to generate revenue, or I need to re-request the advertisement after some time, for example, using cached ads.
BannerAds . .