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
- Kliknij Rozpocznij.
- (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 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
.
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
AdSize
i zainicjuj widok reklamy za pomocąAdParent
widoku nadrzędnego. Widok nadrzędny to odwołanie JNIjobject
do widokuActivity
na Androidzie lub wskaźnik do widokuUIView
na 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::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);
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 rozpoczęcia w GitHubie.