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 reklamą mobilną, banery są dobrym punktem wyjścia. Studium przypadku.
Wymagania wstępne
- Wykonaj wszystkie czynności opisane w artykule Pierwsze kroki.
- (Tylko Android) Znajomość pracy z odwołaniami JNI
jobject(zobacz Wskazówki dotyczące JNI w Androidzie).
Zawsze testuj za pomocą reklam testowych
Podczas tworzenia i testowania aplikacji używaj reklam testowych, a nie reklam rzeczywistych. Jeśli tego nie zrobisz, Twoje konto może zostać zawieszone.
Najłatwiejszym sposobem na wczytanie 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:
- Android:
ca-app-pub-3940256099942544/6300978111 - 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ć w swoich aplikacjach podczas kodowania, testowania i debugowania. Pamiętaj tylko, aby przed opublikowaniem aplikacji zastąpić je własnym identyfikatorem jednostki reklamowej.
Więcej informacji o tym, jak działają reklamy testowe w pakiecie SDK do reklam mobilnych, znajdziesz w artykule Reklamy testowe.
Implementacja
Konfigurowanie AdView
Banery reklamowe są wyświetlane w obiektach AdView, więc pierwszym krokiem do zintegrowania banerów jest utworzenie i umieszczenie AdView.
Dodaj ten nagłówek do kodu C++ aplikacji:
#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
AdSizei zainicjuj wyświetlenie reklamy za pomocą widoku nadrzędnegoAdParent. Widok rodzica to odwołanie JNIjobjectdoActivityw Androidzie lub wskaźnik doUIVieww iOS rzutowany 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 przechowywać 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 Używanie przyszłości do monitorowania stanu zakończenia wywołań metod.
Ustawianie pozycji reklamy
Pozycję AdView możesz ustawić w dowolnym momencie po jego zainicjowaniu:
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 dotyczące informacji, takich jak kierowanie.
Wyświetlanie reklamy
Na koniec wyświetl reklamę na ekranie, wywołując Show(). Tę metodę można wywołać w dowolnym momencie po zainicjowaniu reklamy:
firebase::Future<void> result = ad_view->Show();
Zdarzenia dotyczące reklam
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 |
|---|---|---|---|
| 320x50 | Baner | Telefony i tablety | kBanner |
| 320x100 | Duży baner | Telefony i tablety | kLargeBanner |
| 300x250 | Średni prostokąt IAB | Telefony i tablety | kMediumRectangle |
| 468x60 | Baner IAB w pełnym rozmiarze | Tablety | kFullBanner |
| 728x90 | Długi baner IAB | Tablety | kLeaderboard |
| Podana szerokość x wysokość adaptacyjna | Baner adaptacyjny | Telefony i tablety | Nie dotyczy |
Niestandardowe rozmiary reklam
Aby zdefiniować niestandardowy rozmiar banera, ustaw żądane wymiary za pomocą
firebase::gma::AdSize
konstruktora 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 w GitHubie.