Баннерная реклама занимает место в макете приложения вверху или внизу экрана устройства. Они остаются на экране, пока пользователи взаимодействуют с приложением, и могут автоматически обновляться через определенный период времени. Если вы новичок в мобильной рекламе, это отличное место для начала.пример .
В этом руководстве показано, как интегрировать рекламные баннеры изAdMob в приложение для Android. Помимо фрагментов кода и инструкций, он также содержит информацию о правильном выборе размеров баннеров и ссылки на дополнительные ресурсы.
Предпосылки
- Заполните руководство по началу работы.
Добавьте AdView в макет
Первым шагом к отображению баннера является размещение AdView
в макете Activity
или Fragment
, в котором вы хотите его отобразить. Самый простой способ сделать это — добавить его в соответствующий XML-файл макета. Вот пример, который показывает AdView
активности:
# main_activity.xml ... <com.google.android.gms.ads.AdView xmlns:ads="http://schemas.android.com/apk/res-auto" android:id="@+id/adView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_alignParentBottom="true" ads:adSize="BANNER" ads:adUnitId="ca-app-pub-3940256099942544/6300978111"> </com.google.android.gms.ads.AdView> ...
Обратите внимание на следующие обязательные атрибуты:
-
ads:adSize
– установите размер объявления, который вы хотите использовать. Если вы не хотите использовать стандартный размер, определяемый константой, вы можете вместо этого установить собственный размер. Подробнее см. в разделе о размерах баннеров ниже. -
ads:adUnitId
— укажите уникальный идентификатор рекламного блока в вашем приложении, в котором должны отображаться объявления. Если вы показываете рекламные баннеры в разных действиях, для каждого из них потребуется рекламный блок.
В качестве альтернативы вы можете создать AdView
программно:
Джава
AdView adView = new AdView(this); adView.setAdSize(AdSize.BANNER); adView.setAdUnitId("ca-app-pub-3940256099942544/6300978111"); // TODO: Add adView to your view hierarchy.
Котлин
val adView = AdView(this) adView.adSize = AdSize.BANNER adView.adUnitId = "ca-app-pub-3940256099942544/6300978111" // TODO: Add adView to your view hierarchy.
Всегда тестируйте тестовые объявления
При создании и тестировании своих приложений убедитесь, что вы используете тестовую рекламу, а не живую производственную рекламу. Невыполнение этого требования может привести к приостановке действия вашей учетной записи.
Самый простой способ загрузить тестовую рекламу — использовать наш специальный идентификатор тестового рекламного блока для баннеров Android:
ca-app-pub-3940256099942544/6300978111
Он был специально настроен для возврата тестовых объявлений для каждого запроса, и вы можете использовать его в своих собственных приложениях при написании кода, тестировании и отладке. Просто убедитесь, что вы заменили его собственным идентификатором рекламного блока, прежде чем публиковать свое приложение.
Дополнительные сведения о том, как работают тестовые объявления Mobile Ads SDK, см. в разделе Тестовые объявления .
Загрузить объявление
Как только AdView будет на месте, следующим шагом будет загрузка объявления. Это делается с помощью loadAd()
в классе AdView
. Он принимает параметр AdRequest
, который содержит информацию о времени выполнения (например, информацию о таргетинге) для одного запроса объявления.
Вот пример, который показывает, как загрузить рекламу в onCreate()
Activity
:
Основная деятельность (отрывок)
Джава
package ... import ... import com.google.android.gms.ads.AdRequest; import com.google.android.gms.ads.AdView; public class MainActivity extends AppCompatActivity { private AdView mAdView; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); MobileAds.initialize(this, new OnInitializationCompleteListener() { @Override public void onInitializationComplete(InitializationStatus initializationStatus) { } }); mAdView = findViewById(R.id.adView); AdRequest adRequest = new AdRequest.Builder().build(); mAdView.loadAd(adRequest); } }
Котлин
package ... import ... import com.google.android.gms.ads.AdRequest import com.google.android.gms.ads.AdView class MainActivity : AppCompatActivity() { lateinit var mAdView : AdView override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) MobileAds.initialize(this) {} mAdView = findViewById(R.id.adView) val adRequest = AdRequest.Builder().build() mAdView.loadAd(adRequest) } }
Вот и все! Теперь ваше приложение готово к отображению рекламных баннеров.
Рекламные события
Чтобы дополнительно настроить поведение вашего объявления, вы можете подключиться к ряду событий в жизненном цикле объявления: загрузка, открытие, закрытие и т. д. Вы можете прослушивать эти события через класс AdListener
.
Чтобы использовать AdListener
с AdView
, вызовите метод setAdListener()
:
Джава
mAdView.setAdListener(new AdListener() { @Override public void onAdClicked() { // Code to be executed when the user clicks on an ad. } @Override public void onAdClosed() { // Code to be executed when the user is about to return // to the app after tapping on an ad. } @Override public void onAdFailedToLoad(LoadAdError adError) { // Code to be executed when an ad request fails. } @Override public void onAdImpression() { // Code to be executed when an impression is recorded // for an ad. } @Override public void onAdLoaded() { // Code to be executed when an ad finishes loading. } @Override public void onAdOpened() { // Code to be executed when an ad opens an overlay that // covers the screen. } });
Котлин
mAdView.adListener = object: AdListener() { override fun onAdClicked() { // Code to be executed when the user clicks on an ad. } override fun onAdClosed() { // Code to be executed when the user is about to return // to the app after tapping on an ad. } override fun onAdFailedToLoad(adError : LoadAdError) { // Code to be executed when an ad request fails. } override fun onAdImpression() { // Code to be executed when an impression is recorded // for an ad. } override fun onAdLoaded() { // Code to be executed when an ad finishes loading. } override fun onAdOpened() { // Code to be executed when an ad opens an overlay that // covers the screen. } }
Каждый из переопределяемых методов в AdListener
соответствует событию в жизненном цикле объявления.
Переопределяемые методы | |
---|---|
onAdClicked() | Метод onAdClicked() вызывается, когда регистрируется клик по объявлению. |
onAdClosed() | Метод onAdClosed() вызывается, когда пользователь возвращается в приложение после просмотра целевого URL-адреса объявления. Ваше приложение может использовать его для возобновления приостановленных действий или выполнения любой другой работы, необходимой для подготовки к взаимодействию.См . пример AdMob AdListener для реализации методов прослушивания рекламы в демо-приложении Android API. |
onAdFailedToLoad() | Метод onAdFailedToLoad() — единственный, который включает параметр. Параметр ошибки типа LoadAdError описывает, какая ошибка произошла. Дополнительные сведения см. в документации по отладке ошибок загрузки объявлений . |
onAdImpression() | Метод onAdImpression() вызывается, когда регистрируется показ объявления. |
onAdLoaded() | Метод onAdLoaded() выполняется после завершения загрузки объявления. Если вы хотите отложить добавление AdView к вашей активности или фрагменту, например, до тех пор, пока вы не будете уверены, что реклама будет загружена, вы можете сделать это здесь. |
onAdOpened() | Метод onAdOpened() вызывается, когда реклама открывает оверлей, закрывающий весь экран. |
Размеры баннеров
В таблице ниже перечислены стандартные размеры баннеров.
Размер в дп (ШхВ) | Описание | Доступность | Константа AdSize |
---|---|---|---|
320x50 | Баннер | Телефоны и планшеты | BANNER |
320x100 | Большое знамя | Телефоны и планшеты | LARGE_BANNER |
300 x 250 | IAB Средний прямоугольник | Телефоны и планшеты | MEDIUM_RECTANGLE |
468x60 | Полноразмерный баннер IAB | Таблетки | FULL_BANNER |
728x90 | Таблица лидеров IAB | Таблетки | LEADERBOARD |
Предоставленная ширина x адаптивная высота | Адаптивный баннер | Телефоны и планшеты | Н/Д |
Ширина экрана x 32|50|90 | Умный баннер | Телефоны и планшеты | SMART_BANNER |
Узнайте больше об адаптивных баннерах , предназначенных для замены смарт-баннеров . |
Чтобы определить собственный размер баннера, установите желаемый AdSize
, как показано здесь:
Джава
AdSize adSize = new AdSize(300, 50);
Котлин
val adSize = AdSize(300, 50)
Аппаратное ускорение для видеорекламы
Чтобы видеообъявления успешно отображались в ваших рекламных баннерах, необходимо включить аппаратное ускорение .
Аппаратное ускорение включено по умолчанию, но некоторые приложения могут отключить его. Если это относится к вашему приложению, мы рекомендуем включить аппаратное ускорение для классов действий, использующих рекламу.
Включение аппаратного ускорения
Если ваше приложение не ведет себя должным образом при глобальном включении аппаратного ускорения, вы также можете контролировать его для отдельных действий. Чтобы включить или отключить аппаратное ускорение, вы можете использовать атрибут android:hardwareAccelerated
для элементов <application>
и <activity>
в вашем AndroidManifest.xml
. В следующем примере аппаратное ускорение включено для всего приложения, но отключено для одного действия:
<application android:hardwareAccelerated="true">
<!-- For activities that use ads, hardwareAcceleration should be true. -->
<activity android:hardwareAccelerated="true" />
<!-- For activities that don't use ads, hardwareAcceleration can be false. -->
<activity android:hardwareAccelerated="false" />
</application>
Дополнительные сведения о возможностях управления аппаратным ускорением см. в руководстве по аппаратному ускорению. Обратите внимание, что аппаратное ускорение нельзя включить для отдельных просмотров объявлений, если действие отключено, поэтому для самого действия должно быть включено аппаратное ускорение.
Дополнительные ресурсы
Примеры на GitHub
Пример приложения Banner RecyclerView: Java