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
- Wykonaj czynności opisane w sekcji Pierwsze kroki.
- (tylko Android) Znajomość odwołań JNI
jobject(patrz wskazówki dotyczące JNI na Androidzie).
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 testowej w przypadku 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. Pamiętaj tylko, 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
Konfigurowanie AdView
Banery reklamowe są wyświetlane w AdView, więc pierwszym krokiem w integracji banerów reklamowych jest utworzenie i umieszczenie elementu AdView.
Dodaj do kodu C++ aplikacji ten nagłówek:
#include "firebase/gma/ad_view.h"
Zadeklaruj i utwórz instancję obiektu
AdView:firebase::gma::AdView* ad_view; ad_view = new firebase::gma::AdView();
Utwórz obiekt
AdSizei zainicjuj widok reklamy za pomocąAdParentwidoku nadrzędnego. Widok nadrzędny to odwołanie JNIjobjectdo widokuActivityna Androidzie lub wskaźnik do widokuUIViewna iOS przekształcony na typAdParent:// 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); Zamiast zachowywać przyszłość jako zmienną, możesz okresowo sprawdzać stan operacji inicjowania, wywołując
InitializeLastResult()na obiekcieAdView. 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. }Więcej informacji o pracy z
firebase::Futureznajdziesz 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 elementu 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);
Rozmiary banerów
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
- Wyświetl kod źródłowy naszej przykładowej aplikacji do szybkiego wprowadzenia w GitHubie.