Banery reklamowe

Banery reklamowe zajmują miejsce w układce aplikacji, na górze lub na dole 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 mobilnymi, warto zacząć od nich. Studium przypadku.

Wymagania wstępne

Zawsze testuj reklamy za pomocą reklam testowych

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

Najłatwiejszym sposobem wczytywania reklam testowych jest użycie dedykowanego identyfikatora testowej jednostki reklamowej dla 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

Identyfikatory tych 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. Pamiętaj, aby przed opublikowaniem aplikacji zastąpić 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

Skonfiguruj AdView

Banery reklamowe wyświetlają się w obiekt AdView, więc pierwszym krokiem w integracji banerów reklamowych jest utworzenie i rozmieszczenie obiektu 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 AdSize i zainicjuj widok reklamy za pomocą widoku nadrzędnego AdParent. Widok nadrzędny to odwołanie JNI jobject do obiektu Activity na Androidzie lub wskaźnik do obiektu UIView na iOS, który został rzutowany 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 przechowywać obiekt future jako zmienną, możesz okresowo sprawdzać stan operacji inicjalizacji, wywołując metodę InitializeLastResult() obiektu 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 używaniu funkcji firebase::Future znajdziesz w artykule Używanie funkcji Futures do monitorowania stanu wykonania wywołań metod.

Ustaw pozycję reklamy

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

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);

Obiekty AdRequest reprezentują pojedyncze żądanie reklamy i zawierają właściwości z informacjami takimi jak kierowanie.

Wyświetlanie reklamy

Na koniec wyświetl reklamę na ekranie, wywołując funkcję Show(). Metodę tę 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 języku C++ udostępnia klasę AdListener, którą możesz rozszerzyć i przekazać do klasy AdView::SetListener(), aby otrzymywać powiadomienia o zmianach stanu widoku reklamy.

Rozszerzanie metod w AdListener jest opcjonalne, więc musisz zaimplementować tylko te metody, których potrzebujesz. Poniżej znajduje się przykładowa implementacja 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);

Tabela poniżej zawiera standardowe rozmiary banerów.

Rozmiar w punktach (szer. x wys.) Opis Dostępność Konstanta 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 Tabela wyników IAB Tablety kLeaderboard
Podana szerokość x wysokość dostosowująca się do treści 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