Баннерная реклама (libgdx в Android студии)
У меня очень сложный вопрос для сообщества. Я пытаюсь вставить баннер в состоянии моего приложения, но это не первый, который открывается в начале. В моем приложении есть начальный экран, и когда я нажимаю в Hitbox, я перехожу на другой экран с баннером, поэтому в следующем коде TestPubb() является вторым состоянием.
Это AndroidLauncher:
public class AndroidLauncher extends AndroidApplication {
private static final String TAG ="AndroidLauncher";
protected AdView adView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
RelativeLayout layout = new RelativeLayout(this);
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
View gameView = initializeForView(new TestPubb(), config);
layout.addView(gameView);
adView = new AdView(this);
adView.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
Log.i(TAG, "Ad Loaded...");
}
});
adView.setAdSize(AdSize.SMART_BANNER);
adView.setAdUnitId("ca-app-pub-3940256099942544/6300978111");
AdRequest.Builder builder = new AdRequest.Builder();
builder.addTestDevice("5845100B11B77FFC8C7AC54BD59AD27C");
RelativeLayout.LayoutParams adParams = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT
);
layout.addView(adView, adParams);
adView.loadAd(builder.build());
setContentView(layout);
}
}
Что я должен изменить?
2 ответа
Не забыли ли вы инициализировать Mobile Ads SDK перед загрузкой баннера? Это должно быть сделано один раз:
MobileAds.initialize(this, "ca-app-pub-3940256099942544~3347511713");
adView = new AdView(this);
adView.setAdListener(new AdListener() {
...
Более подробно описано здесь
Вы можете попробовать изменить видимость AdView
переопределив onAdLoaded()
метод AdListener
это заставляет рекламный вид нарисовать себя, как только реклама закончила загрузку. Что-то вроде:
adView.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
System.out.println("ad banner finished loading!");
adView.setVisibility(View.GONE);
adView.setVisibility(View.VISIBLE);
}
});
Google рекомендую использовать MobileAds.initialize(XXXXX)
но это не обязательно.
Mobile Ads SDK требуется несколько миллисекунд для инициализации, поэтому Mobile Ad SDK предоставили initialize(..)
метод, чтобы назвать это так, прежде чем вы даже позвоните своему первому объявлению. Как только это будет сделано, не будет добавлено время загрузки для вашего первого запроса. Если вы не вызываете это, то ваш самый первый запрос AdRequest будет занимать несколько миллисекунд больше, поскольку он сначала должен инициализироваться сам.