Баннеры размещаются в макете приложения, как правило, в верхней или нижней части экрана устройства. Они остаются на экране, пока пользователь взаимодействует с интерфейсом, и могут автоматически обновляться через определенные промежутки времени. Если вы только начинаете работать с мобильной рекламой, это отличный вариант. Пример использования.
Требования
- Нажмите Начать.
- (Только для Android) Опыт работы со ссылками JNI
jobject(см. советы по использованию JNI в Android).
Всегда тестируйте с помощью тестовых объявлений
При создании и тестировании приложений используйте тестовые объявления, а не реальные. В противном случае ваш аккаунт может быть заблокирован.
Самый простой способ загрузить тестовые объявления – использовать специальный идентификатор тестового рекламного блока для баннеров. Он зависит от платформы устройства:
- Android:
ca-app-pub-3940256099942544/6300978111 - iOS:
ca-app-pub-3940256099942544/2934735716
Эти идентификаторы рекламных блоков специально настроены на то, чтобы возвращать тестовые объявления для каждого запроса. Вы можете использовать их в своих приложениях при написании кода, тестировании и отладке. Не забудьте заменить его на идентификатор своего рекламного блока, прежде чем публиковать приложение.
Подробнее о том, как работают тестовые объявления в Mobile Ads SDK, рассказывается в статье Тестовые объявления.
Реализация
Как настроить AdView
Баннеры показываются в объектах AdView, поэтому первым шагом к интеграции баннеров является создание и размещение объекта AdView.
Добавьте в код приложения на C++ следующий заголовок:
#include "firebase/gma/ad_view.h"
Объявите и создайте экземпляр объекта
AdView:firebase::gma::AdView* ad_view; ad_view = new firebase::gma::AdView();
Создайте
AdSizeи инициализируйте представление объявления, используя родительское представлениеAdParent. Родительское представление – это ссылка JNIjobjectна объект AndroidActivityили указатель на объект iOSUIView, приведенный к типуAdParent:// my_ad_parent is a jobject reference // to an Android Activity or a pointer to an iOS UIView. firebase::gma::AdParent ad_parent = static_cast<firebase::gma::AdParent>(my_ad_parent); firebase::Future
result = ad_view->Initialize(ad_parent, kBannerAdUnit, firebase::gma::AdSize::kBanner); Вместо того чтобы хранить объект Future как переменную, вы можете периодически проверять статус операции инициализации, вызывая метод
InitializeLastResult()для объектаAdView. Это может быть полезно для отслеживания процесса инициализации в глобальном игровом цикле.// Monitor the status of the future in your game loop: firebase::Future<void> result = ad_view->InitializeLastResult(); if (result.status() == firebase::kFutureStatusComplete) { // Initialization completed. if(future.error() == firebase::gma::kAdErrorCodeNone) { // Initialization successful. } else { // An error has occurred. } } else { // Initialization on-going. }Подробнее о работе с
firebase::Futureрассказывается в статье Как использовать Futures для отслеживания статуса выполнения вызовов методов.
Как задать позицию объявления
Вы можете задать положение AdView в любое время после его инициализации:
firebase::Future<void> result = ad_view->SetPosition(firebase::gma::AdView::kPositionTop);
Как загрузить объявление
Объявление можно загрузить после инициализации AdView:
firebase::gma::AdRequest ad_request;
firebase::Future<firebase::gma::AdResult> load_ad_result = ad_view->LoadAd(my_ad_request);
Объекты AdRequest представляют собой отдельные запросы объявлений и содержат свойства для такой информации, как таргетинг.
Показ объявления
Наконец, выведите объявление на экран, вызвав метод Show(). Этот метод можно вызывать в любое время после инициализации объявления:
firebase::Future<void> result = ad_view->Show();
События объявлений
Google Mobile Ads C++ SDK предоставляет класс AdListener, который можно расширить и передать в AdView::SetListener(), чтобы получать уведомления об изменениях состояния представления объявления.
Расширение методов в AdListener необязательно, поэтому вам нужно реализовать только те методы, которые вам нужны. Ниже приведен пример реализации класса, который расширяет все методы класса AdListener:
class ExampleAdListener : public firebase::gma::AdListener { public: ExampleAdListener() {} void OnAdClicked() override { // This method is invoked when the user clicks the ad. } void OnAdClosed() override { // This method is invoked when the user closes the ad. } void OnAdImpression() override { // This method is invoked when an impression is recorded for an ad. } void OnAdOpened() override { // This method is invoked when an ad opens an overlay that covers the screen. } }; ExampleAdListener* ad_listener = new ExampleAdListener(); ad_view->SetAdListener(ad_listener);
Размеры баннеров
В таблице ниже перечислены стандартные размеры баннеров.
| Размер в пунктах (Ш x В) | Описание | Доступность | Константа firebase::gma::AdSize |
|---|---|---|---|
| 320 x 50 | Баннер | Телефоны и планшеты | kBanner |
| 320 x 100 | Большой баннер | Телефоны и планшеты | kLargeBanner |
| 300 x 250 | Средний прямоугольник IAB | Телефоны и планшеты | kMediumRectangle |
| 468 x 60 | Полноразмерный баннер IAB | Планшеты | kFullBanner |
| 728 x 90 | Полноразмерный баннер IAB | Планшеты | kLeaderboard |
| Указанная ширина x адаптивная высота | Адаптивный баннер | Телефоны и планшеты | Н/Д |
Специальные размеры объявлений
Чтобы задать размер баннера, укажите нужные значения в конструкторе firebase::gma::AdSize с параметрами ширины и высоты, как показано ниже.
firebase::gma::AdSize ad_size(/*width=*/320, /*height=*/50);
Дополнительные ресурсы
Пример на GitHub
- Посмотреть исходный код примера приложения для быстрого запуска на GitHub.