Reklamy pełnoekranowe zakrywają interfejs aplikacji do czasu, gdy użytkownik je zamknie. Zwykle wyświetlają się w naturalnych momentach przejściowych w aplikacji, np. między działaniami lub podczas przerwy między poziomami w grze. Gdy aplikacja wyświetla reklamę pełnoekranową, użytkownik może ją kliknąć i przejść do strony docelowej, lub ją zamknąć i wrócić do aplikacji. Studium przypadku.
Z tego przewodnika dowiesz się, jak integrować reklamy pełnoekranowe z aplikacjami na Androida i iOS za pomocą pakietu SDK do reklam mobilnych Google w C++.
Wymagania wstępne
- Wykonaj te czynności.
- (Tylko Android) Znajomość pracy z materiałami referencyjnymi JNI
jobject
(zobacz wskazówki dotyczące JNI na Androida).
Zawsze korzystaj z reklam testowych
Podczas tworzenia i testowania aplikacji używaj reklam testowych, a nie aktywnych reklam produkcyjnych. Jeśli tego nie zrobisz, Twoje konto może zostać zawieszone.
Najprostszym sposobem wczytywania reklam testowych jest użycie naszego dedykowanego identyfikatora testowej jednostki reklamowej na potrzeby 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 odpowiedzi na każde żądanie. Możesz ich używać we własnych aplikacjach podczas kodowania, testowania i debugowania. Pamiętaj, by przed opublikowaniem aplikacji zastąpić go własnym identyfikatorem jednostki reklamowej.
Więcej informacji o działaniu reklam testowych z pakietu SDK do reklam mobilnych znajdziesz w artykule Reklamy testowe.
Implementacja
Najważniejsze czynności, jakie musisz wykonać, aby zintegrować reklamy pełnoekranowe:
- Wczytaj reklamę.
- Zarejestruj się na wywołania zwrotne
- Wyświetla reklamę i obsługuje 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 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 instancję
InterstitialAd
za pomocą widoku nadrzędnego rzutu na typAdParent
. Widok nadrzędny jest odwołaniem do systemu AndroidActivity
lub wskaźnikiem do systemu iOSUIView
w JNI.jobject
// 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 inicjowania, wywołując
InitializeLastResult()
w obiekcieInterstitialAd
. Dzięki temu możesz śledzić proces 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 funkcją firebase::Future
znajdziesz w artykule Używanie transakcji terminowych do monitorowania stanu ukończenia wywołań metod.
Wczytaj reklamę
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 element firebase::Future
, którego możesz użyć do monitorowania stanu i wyniku operacji wczytywania.
Ten kod pokazuje, jak wczytać reklamę po zainicjowaniu 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 prezentacji reklam pełnoekranowych i zdarzeniach cyklu życia, musisz rozszerzyć klasę FullScreenContentListener
. Twoją niestandardową podklasę FullScreenContentListener
możesz zarejestrować za pomocą metody InterstitialAd::SetFullScreenContentListener()
i będzie ona otrzymywać wywołania zwrotne po pomyślnym lub nieudanym wyświetleniu reklamy oraz 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
jest obiektem jednorazowym. Oznacza to, że raz reklamy pełnoekranowej
nie można wyświetlić jej ponownie. Sprawdzoną metodą jest wczytanie kolejnej reklamy pełnoekranowej w metodzie OnAdDismissedFullScreenContent()
interfejsu FullScreenContentListener
, tak aby następna reklama pełnoekranowa zaczęła się ładować zaraz po zamknięciu poprzedniej.
Wyświetl reklamę
Reklamy pełnoekranowe powinny wyświetlać się przy naturalnych przerwach w korzystaniu z aplikacji.
Dobrym przykładem są przejścia między poziomami gry lub po wykonaniu przez użytkownika zadania.
O ile parametr FullScreenContentListener
służy do określania, kiedy reklama wyświetliła się na pełnym ekranie, przyszła wartość zwracana przez funkcję Show()
również będzie zasygnalizowała, kiedy reklama się wyświetliła.
firebase::Future<void> result = interstitial_ad->Show();
Sprawdzone metody
- Zastanów się, czy reklamy pełnoekranowe to odpowiedni typ reklamy do Twojej aplikacji.
- Reklamy pełnoekranowe sprawdzają się najlepiej w aplikacjach z naturalnymi momentami przejściowymi. Może to być na przykład zakończenie zadania w aplikacji, np. udostępnienie obrazu czy ukończenie poziomu w grze. Ponieważ użytkownik oczekuje przerw w działaniu, łatwo jest wyświetlić reklamę pełnoekranową bez zakłócania wrażeń użytkownika. Zastanów się, w których momentach pracy w aplikacji będziesz wyświetlać reklamy pełnoekranowe i jak może na nie zareagować użytkownik.
- Pamiętaj, aby wstrzymać działanie podczas wyświetlania reklamy pełnoekranowej.
- Jest wiele różnych typów reklam pełnoekranowych: tekstowe, graficzne, wideo i inne. Ważne jest, by aplikacja, która wyświetla reklamę pełnoekranową, zawieszała wykorzystanie pewnych zasobów, by mogła je wykorzystać w aplikacji. Jeśli np. wywołujesz reklamę pełnoekranową, wstrzymaj odtwarzanie dźwięku generowane przez aplikację. Możesz wznowić odtwarzanie dźwięków w metodzie
OnAdDismissedFullScreenContent
w zainstalowanym systemieFullScreenContentListener
, które jest wywoływane, gdy użytkownik zakończy interakcję z reklamą. Warto też tymczasowo wstrzymać wszystkie intensywne zadania obliczeniowe (takie jak pętla gry) na czas wyświetlania reklamy. Dzięki temu użytkownik nie będzie widzieć wolnej i brakującej reakcji grafiki czy zacinania się filmów. - Zadbaj o odpowiedni czas wczytywania.
- Reklamy pełnoekranowe muszą być wyświetlane w odpowiednim czasie, ale nie tylko w których przypadku użytkownik nie musi czekać, aż się załaduje. Jeśli wczytasz reklamę z wyprzedzeniem, zanim ją opublikujesz, możesz mieć pewność, że w aplikacji będzie widoczna w pełni załadowana reklama pełnoekranowa, która będzie gotowa, gdy nadejdzie czas jej wyświetlenia.
- Nie zasyp użytkowników 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 przeszkadzali im tak często, że nie będą mogli z niej korzystać.
- Do wyświetlania reklamy pełnoekranowej nie używaj w przyszłości ukończenia wczytywania.
- Może to negatywnie wpłynąć na wygodę użytkowników. Najpierw wczytaj reklamę przed wyświetleniem.
Dodatkowe materiały
Przykład w GitHubie
- Wyświetl kod źródłowy naszej przykładowej aplikacji szybkiego startu na GitHubie.
Samouczki wideo w programie Reklamy mobilne w Google Ads
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.