Reklamy pełnoekranowe zajmują cały ekran aplikacji, dopóki użytkownik ich nie zamknie. Takie reklamy wyświetlają się zwykle 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ą, użytkownik może ją kliknąć, aby przejść do miejsca docelowego, lub zamknąć i wrócić do aplikacji. Przykład.
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 języku C++.
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 reklam pełnoekranowych, który 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 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 tylko, aby przed opublikowaniem aplikacji zastąpić go własnym identyfikatorem jednostki reklamowej.
Więcej informacji o działaniu reklam testowych w pakiecie SDK do reklam mobilnych znajdziesz w artykule Reklamy testowe.
Implementacja
Główne etapy integracji reklam pełnoekranowych:
- Wczytaj reklamę.
- Rejestrowanie wywołań zwrotnych.
- Wyświetl reklamę i obsługuje jej zdarzenia cyklu życia.
Skonfiguruj InterstitialAd
Reklamy pełnoekranowe są wyświetlane w obiektach InterstitialAd
, więc pierwszym krokiem w integrowaniu reklam pełnoekranowych z aplikacją jest utworzenie i inicjalizacja obiektu InterstitialAd
.
Dodaj ten nagłówek do kodu C++ aplikacji:
#include "firebase/gma/interstial_ad.h"
Zadeklaruj i utwórz instancję
InterstitialAd
:firebase::gma::InterstitialAd* interstitial_ad; interstitial_ad = new firebase::gma::InterstitialAd();
Zainicjuj wystąpienie
InterstitialAd
, używając widoku nadrzędnego przekazanego do typuAdParent
. Widok nadrzędny to odwołanie JNIjobject
do obiektu AndroidaActivity
lub wskaźnik do obiektu 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 zachowania przyszłości jako zmiennej możesz okresowo sprawdzać stan operacji inicjowania, wywołując funkcję
InitializeLastResult()
w obiekcieInterstitialAd
. Może to być przydatne do śledzenia procesu inicjalizacji 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 o używaniu przyszłości do monitorowania stanu realizacji wywołań metod.
Wczytywanie reklamy
Wczytywanie reklamy odbywa się za pomocą metody LoadAd()
obiektu InterstitialAd
. Metoda load wymaga zainicjowania obiektu InterstitialAd
oraz posiadania identyfikatora jednostki reklamowej i obiektu AdRequest
. Zwracana jest wartość firebase::Future
, za pomocą której możesz monitorować stan i wynik operacji wczytywania.
Ten kod pokazuje, jak wczytać reklamę po zainicjowaniu interfejsu 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);
Rejestrowanie wywołań zwrotnych
Aby otrzymywać powiadomienia o wyświetlaniu reklam pełnoekranowych i zdarzeniach cyklu życia, musisz rozszerzyć klasę FullScreenContentListener
. Niestandardową podklasę FullScreenContentListener
można zarejestrować za pomocą metody InterstitialAd::SetFullScreenContentListener()
. Będzie ona otrzymywać wywołania zwrotne, gdy reklama zostanie wyświetlona lub nie, a także gdy zostanie zamknięta.
Poniższy kod pokazuje, jak rozszerzyć 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 obiekt jednorazowego użytku. Oznacza to, że po wyświetleniu reklamy pośredniej nie może ona się już więcej wyświetlać. Sprawdzoną metodą jest wczytywanie kolejnej reklamy pełnoekranowej za pomocą metody OnAdDismissedFullScreenContent()
w Twoim pliku FullScreenContentListener
, aby następna reklama pełnoekranowa zaczęła się wczytywać, gdy tylko zamkniesz poprzednią.
Wyświetlanie reklamy
Reklamy pełnoekranowe powinny się wyświetlać podczas naturalnych przerw w korzystaniu z aplikacji.
Dobrym przykładem są między poziomami gry lub po wykonaniu przez użytkownika zadania.
Chociaż za pomocą zdarzenia FullScreenContentListener
można określić, kiedy reklama wyświetliła treści pełnoekranowe, przyszłość zwracana przez zdarzenie Show()
wskazuje również, kiedy reklama została wyświetlona.
firebase::Future<void> result = interstitial_ad->Show();
Sprawdzone metody
- Zastanów się, czy reklamy pełnoekranowe są odpowiednim typem reklamy dla Twojej aplikacji.
- Reklamy pełnoekranowe najlepiej sprawdzają się w aplikacjach z naturalnymi punktami przejścia. Taki punkt może powstać na przykład po zakończeniu zadania w aplikacji, takiego jak udostępnienie zdjęcia lub ukończenie poziomu gry. Użytkownik spodziewa się przerwy w działaniu, więc łatwo jest wyświetlić reklamę pełnoekranową bez zakłócania jego doświadczeń. Zastanów się, w jakich momentach w przebiegu aplikacji wyświetlać reklamy pełnoekranowe i jak użytkownik prawdopodobnie na nie zareaguje.
- Pamiętaj, aby wstrzymać tę czynność podczas wyświetlania reklamy pełnoekranowej.
- Dostępne są różne typy reklam pełnoekranowych: tekstowe, graficzne, wideo i inne. Pamiętaj, aby podczas wyświetlania przez aplikację reklamy interaktywnej wstrzymywać korzystanie z niektórych zasobów, aby reklama mogła z nich korzystać. Na przykład, gdy wywołasz metodę wyświetlania reklamy interwsty, zatrzymaj wszelkie dźwięki generowane przez aplikację. Możesz wznowić odtwarzanie dźwięku za pomocą metody
OnAdDismissedFullScreenContent
w zainstalowanej aplikacjiFullScreenContentListener
, która zostanie wywołana, gdy użytkownik zakończy interakcję z reklamą. Dodatkowo rozważ tymczasowe wstrzymanie intensywnych zadań obliczeniowych (np. pętli gry) podczas wyświetlania reklamy. Dzięki temu użytkownik nie będzie mieć problemów z powolnym działaniem grafiki lub jej zacinaniem się albo z zacinaniem się filmu. - Zaplanuj odpowiedni czas wczytywania.
- Równie ważne jest, aby wyświetlać reklamy pełnoekranowe w odpowiednim czasie, ale należy też upewnić się, że użytkownik nie będzie musiał czekać, aż się załadują. Wczytanie reklamy z wyprzedzeniem, zanim zamierzasz ją wyświetlić, może zapewnić, że w momencie wyświetlenia reklamy pełnoekranowej będzie ona w pełni załadowana.
- Nie zasypuj użytkownika reklamami.
- Chociaż zwiększanie częstotliwości wyświetlania reklam pełnekranowych w aplikacji może wydawać się świetnym sposobem na zwiększenie przychodów, może też pogorszyć wrażenia użytkownika i obniżyć współczynnik klikalności. Zadbaj o to, aby użytkownicy nie byli zbyt często przerywane, ponieważ uniemożliwia im to korzystanie z aplikacji.
- Nie używaj przyszłej daty zakończenia wczytywania do wyświetlania reklamy pełnoekranowej.
- Może to powodować niewygodę użytkowników. Zamiast tego przeładuj reklamę przed jej wyświetleniem.
Dodatkowe materiały
Przykład w GitHubie
- Wyświetl kod źródłowy przykładowej aplikacji krótkiego wprowadzenia na GitHubie.
Samouczki wideo z Garage dla reklam mobilnych
Historie sukcesu
Dalsze kroki
- Utwórz własną pełnoekranową jednostkę reklamową w interfejsie AdMob.
- Dowiedz się więcej o kierowaniu reklam i wytycznych dotyczących reklam pełnoekranowych.