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, możemy zawiesić Twoje konto.
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:
- 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
Oto główne kroki, które należy wykonać, aby zintegrować reklamy pełnoekranowe:
- Wczytaj reklamę.
- Rejestrowanie wywołań zwrotnych.
- wyświetlać reklamę i obsługiwać zdarzenia jej 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 do kodu C++ aplikacji ten nagłówek:
#include "firebase/gma/interstial_ad.h"
Zadeklaruj i utwórz instancję obiektu
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 przechowywać przyszłość jako zmienną, możesz okresowo sprawdzać stan operacji inicjalizacji, wywołując funkcję
InitializeLastResult()
obiektuInterstitialAd
. 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 używaniu funkcji firebase::Future
znajdziesz w artykule Używanie funkcji Futures do monitorowania stanu wykonania 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
. Zwracany jest obiekt firebase::Future
, za pomocą którego można monitorować stan i wynik operacji wczytywania.
Poniższy kod pokazuje, jak wczytać reklamę po pomyślnym zainicjowaniu obiektu 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 przejściowej nie można jej wyświetlić ponownie. Sprawdzoną metodą jest wczytywanie kolejnej reklamy pełnoekranowej w metodie 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 wyświetlać się w naturalnych przerwach w aplikacji. Dobrym przykładem jest przerwa między poziomami w grze lub po wykonaniu zadania przez użytkownika.
Chociaż za pomocą zdarzenia FullScreenContentListener
można określić, kiedy reklama wyświetliła treści pełnoekranowe, przyszłość zwracana przez funkcję Show()
również sygnalizuje, 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ć działanie 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 wywołanie, aby wyświetlić reklamę pośrednią, wstrzymaj wszystkie 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 zawieszaniem się albo z zacinającymi się filmami. - Zaplanuj odpowiedni czas wczytywania.
- Podobnie jak w przypadku reklam pełnoekranowych ważne jest, aby wyświetlać je w odpowiednim momencie, ale też trzeba pamiętać, aby użytkownik nie musiał czekać na ich załadowanie. 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 zalewaj użytkownika reklamami.
- Chociaż zwiększanie częstotliwości wyświetlania reklam przejściowych 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 do wyświetlania reklamy pełnoekranowej przyszłego wskaźnika zakończenia wczytywania.
- Może to spowodować niewygodę użytkowników. Zamiast tego pobierz reklamę z wyprzedzeniem, zanim będzie trzeba ją wyświetlić.
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
- Jeśli jeszcze tego nie zrobisz, 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.