#java #android #admob #interstitial
#java #Android #admob #промежуточный
Вопрос:
У меня есть приложение, в котором есть два вида деятельности (основная деятельность и учебная деятельность). Первое действие содержит кнопку. Нажатие на него приведет пользователя к другому экрану. Перед переходом на другой экран отображается интерстициальное объявление. Проблема в том, что когда я закрываю промежуточное основное действие, оно отображается в течение 1-2 секунд, прежде чем перейти к учебной деятельности. Как это исправить?
Вот мой основной класс Activity:
public class MainActivity extends AppCompatActivity {
AdsManager adsManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
loadAds();
}
void loadAds() {
adsManager = new AdsManager(this);
}
public void onClick(View view) {
switch (view.getId()) {
case R.id.learnButton:
Intent intent = new Intent(this, LearningActivity.class);
if (adsManager != null) {
adsManager.showAd(intent);
} else {
startActivity(intent);
}
break;
}
Вот мой класс AdsManager:
class AdsManager {
private InterstitialAd mInterstitialAd;
private Context context;
AdsManager(Context context) {
this.context = context;
MobileAds.initialize(context, context.getString(R.string.adMobAppId));
mInterstitialAd = new InterstitialAd(context);
mInterstitialAd.setAdUnitId(context.getString(R.string.adMobUnitId));
Bundle extras = new Bundle();
extras.putBoolean("is_designed_for_families", true);
AdRequest.Builder builder = new AdRequest.Builder()
.addNetworkExtrasBundle(AdMobAdapter.class, extras)
.tagForChildDirectedTreatment(true);
mInterstitialAd.loadAd(builder.build());
}
void showAd(Intent intent) {
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdClosed() {
context.startActivity(intent);
}
});
}
else {
context.startActivity(intent);
}
}
}
Комментарии:
1. это происходит потому, что вы загружаете ad перед загрузкой следующей страницы и ее запрещенной политикой внедрения interstitial. Обратитесь к этой ссылке support.google.com/admob/answer/6201362?hl=en
2. Я загружаю объявление перед загрузкой следующей страницы, потому что, если объявление не будет загружено до того, как пользователь нажмет кнопку, будет задержка в показе объявления, когда пользователь переходит на второй экран, что приведет к неожиданному показу объявления, когда пользователь уже находится на втором экране. Это было бы нарушением политики.