Создать его программно
View adContainer = findViewById(R.id.adMobView);
AdView mAdView = new AdView(context);
mAdView.setAdSize(AdSize.BANNER);
mAdView.setAdUnitId(YOUR_BANNER_ID);
((RelativeLayout)adContainer).addView(mAdView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
И в файле XML
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/adMobView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"/>
</RelativeLayout>
EDIT
Лучшая практика для баннеров, есть два показывают один баннер за просмотр (один unitId
), если вы хотите, чтобы показать больше баннеров в (НЕ РЕКОМЕНДУЕТСЯ), вам нужно создать еще unitId
от console и один adView для каждого unitId
.
Мой ответ:
Не знаю, если его ошибка или если вы можете иметь только один unitId
за AdView и больше смысла, потому что вы можете иметь только один unitId
за AdView, и чтение из docs они показывают два способа сделать это, путем создания нового AdView()
и программной установки unitIds
и sizes
ИЛИ делают это только из XML.
И я сделал несколько тестов, чтобы прийти к такому выводу.
Используя findViewById из вашего com.google.android.gms.ads.AdView
1 - Вы можете setAdUnitId
программно, если вы установите adSize
первым.
2 - Вы не можете setAdUnitId
программно, если он уже находится в вашем xml.
3 - Если вы не используете 'setAdUnitId' в своем xml, он будет предупреждать Required xml attribute adUnitId was missing
, а также то же самое для adSize
, даже если вы установите оба атрибута программно.
4 - Если не ставить setAdUnitId
и setSize
и положил ими программным, то AdView предупредит вас Required xml attribute adUnitId was missing
, и то же самое, если вы не установите adSize
в XML.
5 - Единственное программно вы можете сделать, это позвонить mAdView.loadAd(adRequest)
, чтобы загрузить объявление
С помощью new AdView()
1 - Это будет работать, если вы создаете пустой макет, а затем добавить ссылку AdView этому Посмотреть.
2 - Вы можете установить adSize
и adUnitId
программно, он будет работать.
3. Если вы пытаетесь использовать setAdUnitAd
два раза это исключение будет запущен The ad unit ID can only be set once on AdView.
такой же, если вы используете по findViewById
мои выводы:
Вы можете использовать только из XML»
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
ads:adSize="BANNER"
ads:adUnitId="ca-app-pub-my_id_number_was_ommited_by_security" />
и вид нагрузки на onCreate
AdView mAdView = findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
или полный программно
View adContainer = findViewById(R.id.adMobView);
AdView mAdView = new AdView(context);
mAdView.setAdSize(AdSize.BANNER);
mAdView.setAdUnitId(YOUR_BANNER_ID);
adContainer.addView(mAdView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
Я использую баннеры в течение длительного времени, и что ответ хорошо для меня.
попробовать один раз установив объявления: AdUnitId = "UnitID" вручную в XML-файле. –
Не получите то, что вы пытаетесь установить добавить идентификатор единицы, вы должны получить его от admob, зарегистрировавшись как ca-app-pub-3940256099942544/6300978111 –