Reklamy pełnoekranowe zajmują interfejs aplikacji, dopóki nie zostaną zamknięte przez użytkownika. Zwykle wyświetlają się one w naturalnych momentach przejściowych w aplikacji, np. między działaniami lub podczas przerwy między poziomami gry. Gdy aplikacja wyświetla reklamę pełnoekranową, może ją kliknąć i przejść do miejsca docelowego, a następnie zamknąć ją i wrócić do aplikacji. Studium przypadku
Z tego przewodnika dowiesz się, jak zintegrować reklamy pełnoekranowe z aplikacjami na Androida i iOS za pomocą pakietu SDK do reklam mobilnych Google w C++.
Wymagania wstępne
- Kliknij Rozpocznij.
- (Tylko Android)Znajomość pracy z odwołaniami
jobject
JNI (patrz wskazówki JNI dotyczące Androida).
Zawsze korzystaj z reklam testowych
Tworząc i testując aplikacje, korzystaj z reklam testowych, a nie z aktywnych reklam produkcyjnych. Jeśli tego nie zrobisz, możemy zawiesić Twoje konto.
Najłatwiejszym sposobem wczytywania reklam testowych jest użycie specjalnego identyfikatora jednostki reklamowej na potrzeby reklam pełnoekranowych, które różnią się w zależności od platformy urządzenia:
- System Android:
ca-app-pub-3940256099942544/1033173712
- System iOS:
ca-app-pub-3940256099942544/4411468910
Zostały one tak skonfigurowane, aby zwracać reklamy testowe dla każdego żądania. Możesz używać ich samodzielnie we własnych aplikacjach podczas kodowania, testowania i debugowania. Pamiętaj tylko, aby przed opublikowaniem aplikacji zastąpić go własnym identyfikatorem jednostki reklamowej.
Więcej informacji o działaniu reklam testowych pakietu SDK do reklam mobilnych znajdziesz w artykule Reklamy testowe.
Wdrażanie
Główne kroki integracji reklam pełnoekranowych:
- Wczytaj reklamę.
- Zarejestruj się na oddzwonienie.
- Wyświetl reklamę i przetwórz jej zdarzenia cyklu życia.
Skonfiguruj: InterstitialAd
Reklamy pełnoekranowe wyświetlają się w obiektach InterstitialAd
, więc pierwszym krokiem do integracji reklam pełnoekranowych z aplikacją jest utworzenie i zainicjowanie obiektu InterstitialAd
.
Dodaj ten kod do kodu C++ aplikacji:
#include "firebase/gma/interstial_ad.h"
Zadeklaruj obiekt
InterstitialAd
i utwórz go:firebase::gma::InterstitialAd* interstitial_ad; interstitial_ad = new firebase::gma::InterstitialAd();
Zainicjuj instancję
InterstitialAd
, korzystając z przesyłaniaAdParent
w widoku nadrzędnym. Widok nadrzędny to odniesienie JNIjobject
do AndroidaActivity
lub wskaźnik do iOSUIView
// 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<void> result = interstitial_ad->Initialize(ad_parent);
Zamiast zachowywać przyszłość jako zmienną, możesz co jakiś czas sprawdzać stan operacji inicjowania, wywołując obiekt
InitializeLastResult()
w obiekcieInterstitialAd
. 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 = interstitial_ad->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 Korzystanie z Futures do monitorowania stanu zakończenia wywołań metod.
Wczytywanie reklamy
Wczytywanie reklamy odbywa się za pomocą metody LoadAd()
na obiekcie InterstitialAd
. Metoda wczytywania wymaga zainicjowania obiektu InterstitialAd
oraz posiadania identyfikatora jednostki reklamowej i obiektu AdRequest
. Zwracany jest firebase::Future
, którego można użyć do monitorowania stanu i wyniku operacji wczytywania.
Ten kod pokazuje, jak wczytać reklamę po zainicjowaniu tagu InterstitialAd
:
firebase::gma::AdRequest ad_request;
firebase::Future<firebase::gma::AdResult> load_ad_result;
load_ad_result = interstitial_ad->LoadAd(interstitial_ad_unit_id, ad_request);
Zarejestruj się na oddzwonienie
Aby otrzymywać powiadomienia o zdarzeniach związanych z reklamami pełnoekranowymi i zdarzeniach cyklu życia, musisz rozszerzyć klasę FullScreenContentListener
. Własna podklasa FullScreenContentListener
może zostać zarejestrowana za pomocą metody InterstitialAd::SetFullScreenContentListener()
. Będzie ona otrzymywać wywołania zwrotne po pomyślnym lub nieskutecznym wyświetlaniu reklamy albo po jej odrzuceniu.
Ten kod pokazuje, jak wydłużyć klasę i przypisać ją do reklamy:
class ExampleFullScreenContentListener : public firebase::gma::FullScreenContentListener { public: ExampleFullScreenContentListener() {} void OnAdClicked() override { // This method is invoked when the user clicks the ad. } void OnAdDismissedFullScreenContent() override { // This method is invoked when the ad dismisses full screen content. } void OnAdFailedToShowFullScreenContent(const AdError& error) override { // This method is invoked when the ad failed to show full screen content. // Details about the error are contained within the AdError parameter. } void OnAdImpression() override { // This method is invoked when an impression is recorded for an ad. } void OnAdShowedFullScreenContent() override { // This method is invoked when the ad showed its full screen content. } }; ExampleFullScreenContentListener* full_screen_content_listener = new ExampleFullScreenContentListener(); interstitial_ad->SetFullScreenContentListener(full_screen_content_listener);
InterstitialAd
to jednorazowy obiekt. Oznacza to, że ponownie nie można wyświetlić reklamy pełnoekranowej. Sprawdzoną metodą jest wczytanie kolejnej reklamy pełnoekranowej w metodzie OnAdDismissedFullScreenContent()
strony FullScreenContentListener
, aby następna reklama pełnoekranowa zaczęła się wczytywać w momencie odrzucenia poprzedniej.
Wyświetl reklamę
Reklamy pełnoekranowe powinny wyświetlać się w naturalnych przerwach w korzystaniu z aplikacji.
Dobrym przykładem jest poziom gry lub ukończenie zadania przez użytkownika.
FullScreenContentListener
może służyć do określania, kiedy reklama wyświetliła się na pełnym ekranie, ale jej przyszłe wyniki zwracane są również przez Show()
, które sygnalizują, że reklama została wyświetlona.
firebase::Future<void> result = interstitial_ad->Show();
Sprawdzone metody
- Zastanów się, czy reklamy pełnoekranowe to odpowiedni typ aplikacji dla Twojej aplikacji.
- Reklamy pełnoekranowe najlepiej sprawdzają się w aplikacjach z naturalnymi punktami przejścia. Przykładem może być spełnienie zadania w aplikacji, np. udostępnienie obrazu lub ukończenie poziomu gry. Użytkownik oczekuje przerwy na działanie reklamy, dlatego łatwo jest wyświetlić reklamę pełnoekranową bez zakłócania komfortu użytkownika. Zastanów się, w którym momencie w aplikacji będziesz wyświetlać reklamy pełnoekranowe i jakie będą reakcje użytkowników.
- Pamiętaj, by wstrzymać działanie wyświetlające się reklama pełnoekranowa.
- Istnieje wiele różnych typów reklam pełnoekranowych: tekstowych, graficznych, wideo i innych. Ważne jest, aby gdy aplikacja wyświetla reklamę pełnoekranową, zawiesza też możliwość korzystania z niektórych zasobów, aby umożliwić korzystanie z tych reklam. Na przykład gdy chcesz wywołać reklamę pełnoekranową, pamiętaj, by wstrzymać odtwarzanie dźwięku generowane przez aplikację.
Możesz wznowić odtwarzanie za pomocą metody
OnAdDismissedFullScreenContent
zainstalowanej na urządzeniuFullScreenContentListener
, która będzie wywoływana, gdy użytkownik wejdzie w interakcję z reklamą. Możesz też tymczasowo wstrzymać intensywne zadania obliczeniowe (np. zapętlenia) w czasie wyświetlania reklamy. Dzięki temu użytkownicy nie będą zauważyć powolnej grafiki, jej braku lub zacinania się. - Zapewnij wystarczający czas wczytywania.
- Wyświetlanie reklam pełnoekranowych w odpowiednim momencie jest ważne, tak samo jak Ty musisz zadbać o to, by użytkownik nie musiał czekać, aż się załaduje. Wczytywanie reklamy z wyprzedzeniem przed wyświetleniem reklamy może zapewnić, że w chwili wyświetlenia jej reklamy pełnoekranowej aplikacja będzie w pełni gotowa do wyświetlenia.
- Nie zasypuj użytkowników reklamami.
- Wydaje się, że zwiększenie częstotliwości wyświetlania reklam pełnoekranowych w aplikacji może być świetnym sposobem na zwiększenie przychodów, ale może też obniżyć komfort użytkowników i obniżyć współczynniki klikalności. Zadbaj o to, aby użytkownicy nie byli zbyt często przerywani podczas korzystania z Twojej aplikacji.
- Nie wyświetlaj reklamy pełnoekranowej w przyszłości.
- Pogarsza to komfort użytkowników. Wstępnie wczytuj reklamy przed wyświetleniem.
Dodatkowe materiały
Przykład w GitHubie
- Wyświetl kod źródłowy naszej przykładowej aplikacji Szybki start na GitHubie.
Samouczki wideo o reklamach mobilnych w garażu
Historie sukcesu
Dalsze kroki
- Utwórz własną jednostkę reklam pełnoekranowych w interfejsie AdMob.
- Dowiedz się więcej o kierowaniu reklam i wytycznych dotyczących reklam pełnoekranowych.