Как заставить AdView «занимать» пространство даже при запросе рекламы? (Android) - PullRequest
13 голосов
/ 19 апреля 2011

Я использую Google AdMob Ads SDK 4.0.4 для Android

По умолчанию AdView не будет иметь размера до загрузки объявления.Что может вызвать проблемы, если у вас есть кнопки над или под рекламой.

Пользователь может случайно нажать на объявление, если оно вернулось в тот момент, когда оно собирается нажать кнопку.

В старом SDK admob я решил эту проблему с помощью setGoneWithoutAd (false).Таким образом, место будет сохранено, даже если объявление еще не возвращено.

В новом SDK (Google Admob Ads SDK 4.0.4) мне удается сделать то же самое с помощью этого быстрого исправления: зарезервируйтепространство, поместив объявление в некоторый макет, который имеет ширину = "320dp" и высоту = "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 "занимающим" место даже при запросе рекламы?

Спасибозаблаговременно!

Ответы [ 2 ]

5 голосов
/ 29 июля 2011

Вы пробовали:

 <com.google.ads.AdView android:id="@+id/adview" 
                     android:layout_width="320dip" 
                     android:layout_height="50dip" 
                     ads:adUnitId="xxxxxxxxxxx" 
                     ads:adSize="BANNER"/> 

Я использую AdWhirl, чтобы показывать свои объявления для меня, и способ, которым я имею это, с фиксированным представлением, подобным этому с фиксированными размерами.Похоже, вы настроили обертывание контента, чтобы представление исчезало, когда ничего не было.Попробуйте и дайте мне знать, как это работает.

3 голосов
/ 01 сентября 2016

Сначала вы должны решить, какой размер объявления вы хотите. Есть несколько предопределенных.

Самым простым для работы является SMART_BANNER , он адаптирует свою ширину к текущей ширине экрана, и его высота будет 32, 50 или 90 dp для высоты экрана <= 400, (> 400 && <= 720) или> 720 dp соответственно.

Как только вы знаете тип баннера, который вы запрашиваете, вы объявляете его в свойстве 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://developers.google.com/admob/android/banner#banner_sizes

...