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
- Wykonaj instrukcje w sekcji Rozpocznij.
- (tylko Android) Znajomość odwołań JNI
jobject
(patrz Wskazówki dotyczące JNI na Androidzie).
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
.
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
AdSize
i zainicjuj widok reklamy za pomocą widoku nadrzędnegoAdParent
. Widok nadrzędny to odwołanie JNIjobject
do obiektuActivity
na Androidzie lub wskaźnik do obiektuUIView
na iOS, który został 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ć obiekt future jako zmienną, możesz okresowo sprawdzać stan operacji inicjalizacji, wywołując metodę
InitializeLastResult()
obiektuAdView
. 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 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);
Rozmiary banerów
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
- Wyświetl kod źródłowy przykładowej aplikacji krótkiego wprowadzenia na GitHubie.