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 korzystają z aplikacji, i mogą odświeżać się automatycznie po określonym czasie. Jeśli nie masz doświadczenia z reklamami mobilnymi, jest to dobry punkt wyjścia. Studium przypadku.

Wymagania wstępne

Zawsze korzystaj z reklam testowych

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

Najprostszym sposobem wczytywania reklam testowych jest użycie naszego dedykowanego identyfikatora testowej jednostki reklamowej do 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 odpowiedzi na każde żądanie. Możesz ich używać we własnych aplikacjach podczas kodowania, testowania i debugowania. Pamiętaj tylko, by przed opublikowaniem aplikacji zastąpić go własnym identyfikatorem jednostki reklamowej.

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

Implementacja

Skonfiguruj: AdView

Banery reklamowe są wyświetlane w obiektach AdView, dlatego pierwszym krokiem do integracji banerów reklamowych jest utworzenie i ustalenie elementu AdView.

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

     #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 AdSize i zainicjuj widok reklamy, korzystając z widoku nadrzędnego AdParent. Widok nadrzędny jest odwołaniem do systemu Android Activity lub wskaźnikiem do pliku UIView w iOS rzutowanego na typ AdParent: JNI jobject:

     // 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(my_ad_parent);
     firebase::Future result =
       ad_view->Initialize(ad_parent, kBannerAdUnit, firebase::gma::AdSize::kBanner);
    
  4. Zamiast przechowywać przyszłość jako zmienną, możesz okresowo sprawdzać stan operacji inicjowania, wywołując InitializeLastResult() w obiekcie AdView. Dzięki temu możesz śledzić proces 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 funkcją firebase::Future znajdziesz w artykule Używanie transakcji terminowych do monitorowania stanu ukończenia wywołań metod.

Ustawianie pozycji reklamy

Po zainicjowaniu elementu AdView możesz w każdej chwili ustawić jego pozycję:

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

Wczytaj reklamę

Możesz wczytać reklamę po zainicjowaniu interfejsu AdView:

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

Obiekty AdRequest reprezentują jedno żądanie reklamy i zawierają właściwości służące do takich informacji jak kierowanie.

Wyświetl reklamę

Na koniec wyświetl reklamę na ekranie, dzwoniąc pod numer Show(). 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++ zawiera klasę AdListener, którą możesz rozszerzyć i przekazać do AdView::SetListener(), by otrzymywać powiadomienia o zmianach stanu wyświetlenia reklamy.

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

Tabela poniżej zawiera standardowe rozmiary banerów.

Rozmiar w punktach (szer.xwys.) 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 IAB w pełnym rozmiarze Tablety kFullBanner
728 x 90 Tabela wyników 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:

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

Dodatkowe materiały

Przykład w GitHubie

Historie sukcesu