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 jesteś nowym użytkownikiem reklamy mobilnej to dobry punkt wyjścia. Studium przypadku
Wymagania wstępne
- Wykonaj czynności opisane w sekcji Rozpocznij.
- (Tylko Android) Znajomość obsługi plików referencyjnych JNI
jobject
(patrz Wskazówki dotyczące JNI dla Androida).
Zawsze korzystaj z reklam testowych
Podczas tworzenia i testowania aplikacji używaj reklam testowych, a nie reklam, aktywne reklamy. Jeśli tego nie zrobisz, możemy zawiesić Twoje konto.
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
Te identyfikatory jednostek reklamowych zostały tak skonfigurowane, aby zwracać reklamy testowe dla każdego i używać go we własnych aplikacjach podczas kodowania, testowania i debugowaniu. Pamiętaj, aby zastąpić go własnym identyfikatorem jednostki reklamowej przed publikowanie aplikacji.
Więcej informacji o działaniu reklam testowych w pakiecie SDK do reklam mobilnych znajdziesz w artykule Reklamy testowe.
Implementacja
Konfigurowanie: 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 ten nagłówek do kodu C++ aplikacji:
#include "firebase/gma/ad_view.h"
Zadeklaruj i utwórz instancję
AdView
:firebase::gma::AdView* ad_view; ad_view = new firebase::gma::AdView();
Utwórz element
AdSize
i zainicjuj widok reklamy za pomocą elementu nadrzędnegoAdParent
widok. Widok nadrzędny to odniesieniejobject
JNI doActivity
Androida lub wskaźnik do iOSUIView
rzutu 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ć pomocne w przypadku: śledzić proces 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 tutaj: Używaj transakcji terminowych do monitorowania stanu realizacji metody
Ustaw pozycję reklamy
Po zainicjowaniu elementu AdView
możesz ustawić jego położenie w dowolnym momencie:
firebase::Future<void> result = ad_view->SetPosition(firebase::gma::AdView::kPositionTop);
Wczytywanie reklamy
Reklamę można wczytać po zainicjowaniu obiektu AdView
:
firebase::gma::AdRequest ad_request;
firebase::Future<firebase::gma::AdResult> load_ad_result = ad_view->LoadAd(my_ad_request);
Obiekty AdRequest
reprezentują jedno żądanie reklamy i zawierają właściwości dotyczące:
np. kierowanie reklam.
Wyświetl reklamę
Wyświetl reklamę na ekranie, wywołując funkcję Show()
. Ta metoda może być
wywołania 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żna rozszerzyć
i przejść do AdView::SetListener()
, aby otrzymywać powiadomienia o zmianach w reklamie
stan widoku.
Metody rozszerzania w interfejsie AdListener
są opcjonalne, więc wystarczy zaimplementować metodę
w dowolnym momencie. Poniżej znajduje się przykładowa implementacja klasy, która rozszerza wszystkie
z klasy metody 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ść | firebase::gma::Stała 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 IAB w pełnym rozmiarze | Tablety | kFullBanner |
728 x 90 | Tabela wyników IAB | Tablety | kLeaderboard |
Podana szerokość x Wysokość adaptacyjna | Baner adaptacyjny | Telefony i tablety | Nie dotyczy |
Niestandardowe rozmiary reklam
Aby zdefiniować niestandardowy rozmiar banera, ustaw odpowiednie wymiary za pomocą
firebase::gma::AdSize
z parametrami szerokości i wysokości, jak w poniższym przykładzie:
firebase::gma::AdSize ad_size(/*width=*/320, /*height=*/50);
Dodatkowe materiały
Przykład w GitHubie
- Wyświetl kod źródłowy przykładowa aplikacja z krótkim wprowadzeniem w GitHubie.