Рекламный баннер

Баннерная реклама занимает место в макете приложения вверху или внизу экрана устройства. Они остаются на экране, пока пользователи взаимодействуют с приложением, и могут автоматически обновляться через определенный период времени. Если вы новичок в мобильной рекламе, это отличное место для начала.пример .

В этом руководстве показано, как интегрировать рекламные баннеры из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

  • Пример баннерной рекламы: Java | Котлин

  • Демонстрация расширенных возможностей: Java | Котлин

  • Пример приложения Banner RecyclerView: Java

Видеоуроки Mobile Ads Garage

Истории успеха