Reklamy pełnoekranowe zasłaniają interfejs aplikacji, dopóki użytkownik ich nie zamknie. Zazwyczaj wyświetlają się w naturalnych momentach przejściowych w aplikacji, np. między działaniami lub podczas przerwy między poziomami w grze. Gdy w aplikacji wyświetli się reklama pełnoekranowa, użytkownik może ją kliknąć i przejść do miejsca docelowego lub zamknąć aplikację 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
- Wykonaj czynności opisane w sekcji Rozpocznij.
- (Tylko Android) Znajomość obsługi plików referencyjnych JNI
jobject
(zobacz wskazówki dotyczące Androida JNI).
Zawsze korzystaj z reklam testowych
Podczas tworzenia i testowania aplikacji używaj reklam testowych, a nie produkcyjnych reklam. Jeśli tego nie zrobisz, możemy zawiesić Twoje konto.
Najłatwiejszym sposobem wczytania reklam testowych jest użycie dedykowanego testowego identyfikatora 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 specjalnie skonfigurowane tak, by zwracały reklamy testowe w przypadku każdego żądania. Możesz ich używać 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 w pakiecie SDK do reklam mobilnych znajdziesz w artykule Reklamy testowe.
Implementacja
Główne etapy integracji reklam pełnoekranowych:
- Wczytaj reklamę.
- Zarejestruj się na wywołania zwrotne.
- Wyświetl reklamę i obsługuje jej zdarzenia cyklu życia.
Konfigurowanie: InterstitialAd
Reklamy pełnoekranowe są wyświetlane w obiektach InterstitialAd
, więc pierwszym krokiem na drodze do integracji reklam pełnoekranowych z aplikacją jest utworzenie i zainicjowanie obiektu InterstitialAd
.
Dodaj ten nagłówek do kodu C++ aplikacji:
#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 instancję
InterstitialAd
za pomocą rzutowania widoku nadrzędnego na typAdParent
. Widok nadrzędny to odniesieniejobject
JNI doActivity
lub wskaźnik doUIView
iOS.// 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 pomóc w śledzeniu 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 o używaniu przyszłości do monitorowania stanu zakończenia wywołań metod.
Wczytywanie reklamy
Reklamę można wczytać za pomocą metody LoadAd()
w obiekcie InterstitialAd
. Metoda wczytywania wymaga zainicjowania obiektu InterstitialAd
, posiadania identyfikatora jednostki reklamowej i obiektu AdRequest
. Zwrócony zostanie element firebase::Future
, którego możesz używać do monitorowania stanu i wyniku 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);
Zarejestruj się na wywołania zwrotne
Aby otrzymywać powiadomienia o wyświetlaniu reklam pełnoekranowych i zdarzeniach cyklu życia, musisz rozszerzyć klasę FullScreenContentListener
. Swoją niestandardową podklasę FullScreenContentListener
możesz zarejestrować za pomocą metody InterstitialAd::SetFullScreenContentListener()
i będzie ona otrzymywać wywołania zwrotne, gdy reklama wyświetli się z powodzeniem lub niepowodzeniem, a także po jej odrzuceniu.
Ten kod pokazuje, jak rozszerzyć zajęcia i przypisać je 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 jednorazowy. Oznacza to, że po wyświetleniu
reklamy pełnoekranowej nie można jej pokazać ponownie. Najlepiej jest wczytać kolejną reklamę pełnoekranową za pomocą metody OnAdDismissedFullScreenContent()
elementu FullScreenContentListener
, tak aby następna reklama pełnoekranowa rozpoczęła się zaraz po zamknięciu poprzedniej.
Wyświetl reklamę
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.
FullScreenContentListener
pozwala określić, kiedy reklama wyświetliła się na pełnym ekranie, a przyszłość zwracana przez funkcję Show()
będzie też sygnalizować, kiedy reklama się wyświetli.
firebase::Future<void> result = interstitial_ad->Show();
Sprawdzone metody
- Zastanów się, czy reklamy pełnoekranowe to odpowiedni typ reklamy dla Twojej aplikacji.
- Reklamy pełnoekranowe sprawdzają się najlepiej w aplikacjach z naturalnymi punktami przejściowymi. Może to doprowadzić do zakończenia zadania w aplikacji, np. udostępnienia obrazu czy ukończenia poziomu w grze. Ponieważ użytkownik spodziewa się przerwy w działaniu, może wyświetlić reklamę pełnoekranową bez zakłócania wrażeń użytkownika. Zastanów się, w którym momencie procesu w aplikacji będą się wyświetlać reklamy pełnoekranowe i jak użytkownik na nie zareaguje.
- Pamiętaj, aby wstrzymać tę czynność podczas wyświetlania reklamy pełnoekranowej.
- Dostępnych jest wiele różnych typów reklam pełnoekranowych: tekstowe, graficzne, wideo i inne. Gdy aplikacja wyświetla reklamę pełnoekranową, nie może też korzystać z niektórych zasobów, by reklama mogła z nich korzystać. Na przykład gdy wywołujesz wyświetlenie reklamy pełnoekranowej, pamiętaj, by wstrzymać odtwarzanie dźwięku generowanego przez aplikację.
Możesz wznowić odtwarzanie dźwięków za pomocą metody
OnAdDismissedFullScreenContent
zainstalowanych funkcjiFullScreenContentListener
, które będą wywoływane, gdy użytkownik zakończy interakcję z reklamą. Rozważ też tymczasowe wstrzymanie wykonywania intensywnych zadań obliczeniowych (np. pętli gry) na czas wyświetlania reklamy. Dzięki temu użytkownik nie zobaczy powolnej lub nieresponsywnej grafiki albo zacinania się filmów. - Zadbaj o 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ą. Wcześniejsze wczytanie reklamy przed jej rozpoczęciem może mieć pewność, że w aplikacji będzie w pełni wczytana reklama pełnoekranowa w momencie, gdy nadejdzie czas jej wyświetlenia.
- Nie zasypuj reklam reklamami.
- Zwiększenie częstotliwości wyświetlania reklam pełnoekranowych w aplikacji może wydawać się świetnym sposobem na zwiększenie przychodów, ale może też pogorszyć wrażenia użytkowników i obniżyć współczynniki klikalności. Zadbaj o to, aby użytkownicy nie przerywali Ci korzystania z aplikacji tak często, że nie będą mogli dalej z niej korzystać.
- Nie używaj przyszłej daty zakończenia wczytywania do wyświetlania reklamy pełnoekranowej.
- Może to negatywnie wpłynąć na wrażenia użytkowników. Zamiast tego trzeba będzie wstępnie załadować reklamę, zanim trzeba będzie ją wyświetlić.
Dodatkowe materiały
Przykład w GitHubie
- Wyświetl kod źródłowy naszej przykładowej aplikacji krótkiego wprowadzenia na GitHubie.
Samouczki wideo Warsztaty reklam mobilnych
Historie sukcesu
Dalsze kroki
- Utwórz własną pełnoekranową jednostkę reklamową w interfejsie AdMob, jeśli jeszcze jej nie masz.
- Dowiedz się więcej o kierowaniu reklam i wytycznych dotyczących reklam pełnoekranowych.