Banery reklamowe

Banery reklamowe zajmują miejsce w układzie aplikacji, u góry lub u dołu ekranu urządzenia. Pozostają na ekranie, gdy użytkownicy wchodzą w interakcję z aplikacją, i mogą być automatycznie odświeżane po upływie określonego czasu. Jeśli dopiero zaczynasz przygodę z reklamami na urządzenia mobilne, to świetny sposób na rozpoczęcie. Studium przypadku.

Wymagania wstępne

Zawsze testuj za pomocą reklam testowych

Podczas tworzenia i testowania aplikacji używaj reklam testowych zamiast reklam produkcyjnych. Jeśli tego nie zrobisz, Twoje konto może zostać zawieszone.

Najłatwiejszym sposobem wczytywania reklam testowych jest użycie specjalnego identyfikatora jednostki reklamowej do testowania banerów, który różni się w zależności od platformy urządzenia:

  • System Android: ca-app-pub-3940256099942544/6300978111
  • System iOS: ca-app-pub-3940256099942544/2934735716

Te identyfikatory jednostek reklamowych zostały specjalnie skonfigurowane tak, aby zwracać reklamy testowe w przypadku każdego żądania. Możesz ich używać w swoich aplikacjach podczas kodowania, testowania i debugowania. Przed opublikowaniem aplikacji zastąp go identyfikatorem swojej jednostki reklamowej.

Więcej informacji o działaniu reklam testowych w pakiecie SDK do reklam mobilnych znajdziesz w artykule Reklamy testowe.

Implementacja

Konfigurowanie AdView

Banery reklamowe są wyświetlane w AdView, więc pierwszym krokiem w integracji banerów reklamowych jest utworzenie i umieszczenie elementu AdView.

  1. Dodaj do kodu C++ aplikacji ten nagłówek:

     #include "firebase/gma/ad_view.h"
  2. Zadeklaruj i utwórz instancję obiektu AdView:

      firebase::gma::AdView* ad_view;
      ad_view = new firebase::gma::AdView();
  3. Utwórz obiekt AdSize i zainicjuj widok reklamy za pomocą AdParent widoku nadrzędnego. Widok nadrzędny to odwołanie JNI jobject do widoku Activity na Androidzie lub wskaźnik do widoku UIView na iOS przekształcony na typ 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);
  4. Zamiast zachowywać przyszłość jako zmienną, możesz okresowo sprawdzać stan operacji inicjowania, wywołując InitializeLastResult() na obiekcie AdView. Może to być przydatne do śledzenia procesu inicjowania w globalnej pętli gry.

      // 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.
      }
    
  5. Więcej informacji o pracy z firebase::Future znajdziesz w artykule Monitorowanie stanu zakończenia wywołań metod za pomocą obiektów Futures.

Ustawianie pozycji reklamy

Po zainicjowaniu AdView możesz w dowolnym momencie ustawić jego pozycję:

firebase::Future<void> result = ad_view->SetPosition(firebase::gma::AdView::kPositionTop);

Wczytywanie reklamy

Reklamę możesz wczytać po zainicjowaniu AdView:

firebase::gma::AdRequest ad_request;
firebase::Future<firebase::gma::AdResult> load_ad_result = ad_view->LoadAd(my_ad_request);

AdRequest reprezentują pojedyncze żądanie reklamy i zawierają właściwości dotyczące informacji takich jak kierowanie.

Wyświetlanie reklamy

Na koniec wyświetl reklamę na ekranie, wywołując funkcję Show(). Tę metodę można wywołać w dowolnym momencie po zainicjowaniu reklamy:

firebase::Future<void> result = ad_view->Show();

Zdarzenia reklamowe

Pakiet SDK do reklam mobilnych Google w C++ udostępnia klasę AdListener, którą możesz rozszerzyć i przekazać do AdView::SetListener(), aby otrzymywać powiadomienia o zmianach stanu widoku reklamy.

Rozszerzanie metod w AdListener jest opcjonalne, więc musisz zaimplementować tylko te metody, które chcesz. Poniżej znajdziesz przykładową implementację klasy, która rozszerza wszystkie metody klasy 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);

W tabeli poniżej znajdziesz standardowe rozmiary banerów.

Rozmiar w punktach (szer. x wys.) Opis Dostępność Stała firebase::gma::AdSize
320 x 50 Baner Telefony i tablety kBanner
320 x 100 Duży baner Telefony i tablety kLargeBanner
300 x 250 Średni prostokąt IAB Telefony i tablety kMediumRectangle
468 x 60 Baner pełnowymiarowy IAB Tablety kFullBanner
728 x 90 Długi baner IAB Tablety kLeaderboard
Podana szerokość x adaptacyjna wysokość Baner adaptacyjny Telefony i tablety Nie dotyczy

Niestandardowe rozmiary reklam

Aby zdefiniować niestandardowy rozmiar banera, ustaw odpowiednie wymiary za pomocą konstruktora firebase::gma::AdSize z parametrami szerokości i wysokości, jak pokazano poniżej:

firebase::gma::AdSize ad_size(/*width=*/320, /*height=*/50);

Dodatkowe materiały

Przykład w GitHubie

Historie sukcesu