Как сделать AdView "занимающим" пространство даже при запросе объявления? (Android)
Я использую Google AdMob Ads SDK 4.0.4 для Android
По умолчанию AdView будет иметь размер до загрузки объявления. Это может вызвать проблемы, если у вас есть кнопки выше или ниже объявления.
Пользователь может случайно нажать на объявление, если объявление вернется в тот момент, когда они собираются нажать кнопку.
В старой версии admob SDK я решил это с помощью setGoneWithoutAd (false). Таким образом, пространство будет сохранено, даже если объявление еще не возвращено.
В новом SDK (Google Admob Ads SDK 4.0.4) мне удается сделать то же самое
используя это быстрое исправление: зарезервируйте место, разместив рекламу в макете, которая
имеет ширину = "320dp" и height = "50dp"
<LinearLayout
android:layout_width="320dp"
android:layout_height="50dp" >
<com.google.ads.AdView android:id="@+id/adview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
ads:adUnitId="xxxxxxxxxxx"
ads:adSize="BANNER"/>
</LinearLayout>
Это работает, но я не уверен, что это правильный метод. (Я забегу на знаменитую тему "Недостаточно места для показа рекламы!"?)
Подведем итог вопроса: как (правильно) сделать AdView "занимающим" пространство даже при запросе объявления?
Заранее благодарю!
Ответы
Ответ 1
Вы пробовали:
<com.google.ads.AdView android:id="@+id/adview"
android:layout_width="320dip"
android:layout_height="50dip"
ads:adUnitId="xxxxxxxxxxx"
ads:adSize="BANNER"/>
Я использую AdWhirl для показа своих объявлений для меня, и так, как у меня есть, с фиксированным видом, похожим на это с фиксированными размерами. Похоже, у вас есть возможность обернуть контент, чтобы вид исчез, когда ничего нет. Попробуйте и дайте мне знать, как это работает.
Ответ 2
Сначала вам нужно определить размер объявления, который вы хотите. Есть пара предопределенных.
Проще всего работать с SMART_BANNER, он будет адаптировать его ширину в соответствии с текущей шириной экрана,
и высота будет равна 32, 50 или 90 дп для высоты экрана <= 400, ( > 400 & <= 720) или > 720 дp соответственно.
Как только вы узнаете тип баннера, который вы запросите, вы объявите его в свойстве adSize и зарезервируете место для этого, используя layout_width и layout_height свойства.
Например, для SMART_BANNER вы можете сделать что-то вроде этого:
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="match_parent"
android:layout_height="@dimen/ad_banner_height"
ads:adSize="SMART_BANNER"
ads:adUnitId="xxxxxxxxx"/>
И вы установите для параметра ad_banner_height следующие значения:
values/dimens/ad_banner_height --> 32dp
values-h400dp/dimens/ad_banner_height --> 50dp
values-h720dp/dimens/ad_banner_height --> 90dp
Для других размеров баннеров проверьте: https://firebase.google.com/docs/admob/android/banner#banner_size