Reklamy pełnoekranowe zakrywają interfejs aplikacji, dopóki użytkownik ich nie zamknie. 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 w nią kliknąć i przejść do miejsca docelowego lub zamknąć reklamę i wrócić do aplikacji. Studium przypadku.
Z tego przewodnika dowiesz się, jak zintegrować reklamy pełnoekranowe z aplikacjami na Androida i iOS przy użyciu pakietu SDK do reklam mobilnych Google w C++.
Wymagania wstępne
- Wykonaj wszystkie czynności opisane w artykule Pierwsze kroki.
- (Tylko Android) Znajomość pracy z odwołaniami JNI
jobject(zobacz Wskazówki dotyczące JNI na Androidzie).
Zawsze testuj reklamy testowe
Podczas tworzenia i testowania aplikacji używaj reklam testowych, a nie reklam aktywnych. Jeśli tego nie zrobisz, Twoje konto może zostać zawieszone.
Najłatwiejszym sposobem na wczytanie reklam testowych jest użycie naszego specjalnego identyfikatora jednostki reklamowej testowej dla reklam pełnoekranowych, który różni się w zależności od platformy urządzenia:
- Android:
ca-app-pub-3940256099942544/1033173712 - 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ć w swoich aplikacjach podczas kodowania, testowania i debugowania. Pamiętaj tylko, aby przed opublikowaniem aplikacji zastąpić je własnym identyfikatorem jednostki reklamowej.
Więcej informacji o tym, jak działają reklamy testowe w pakiecie SDK do reklam mobilnych, znajdziesz w artykule Reklamy testowe.
Implementacja
Główne kroki integracji reklam pełnoekranowych:
- Wczytaj reklamę.
- Zarejestruj wywołania zwrotne.
- Wyświetl reklamę i obsługuj zdarzenia związane z jej cyklem życia.
Konfigurowanie InterstitialAd
Reklamy pełnoekranowe są wyświetlane w obiektach InterstitialAd. Pierwszym krokiem do zintegrowania 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, używając widoku rodzica przekształconego na typAdParent. Widok rodzica to odwołanie JNIjobjectdoActivityna Androidzie lub wskaźnik doUIViewna 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 przechowywać przyszłość jako zmienną, możesz okresowo sprawdzać stan operacji inicjowania, wywołując
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 Używanie przyszłości do monitorowania stanu zakończenia wywołań
metod.
Wczytywanie reklamy
Reklamę wczytuje się za pomocą metody LoadAd() w obiekcie InterstitialAd. Metoda wczytywania wymaga zainicjowania obiektu InterstitialAd, identyfikatora jednostki reklamowej i obiektu AdRequest. Zwracana jest wartość firebase::Future, której możesz użyć do monitorowania stanu i wyniku operacji wczytywania.
Poniższy kod pokazuje, jak wczytać reklamę po pomyślnym 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);
Rejestrowanie wywołań zwrotnych
Aby otrzymywać powiadomienia o wyświetlaniu reklam pełnoekranowych i zdarzeniach związanych z ich cyklem życia, musisz rozszerzyć klasę FullScreenContentListener. Własną podklasę
FullScreenContentListener możesz zarejestrować za pomocą metody
InterstitialAd::SetFullScreenContentListener(). Będzie ona otrzymywać
wywołania zwrotne, gdy reklama zostanie wyświetlona (lub nie) oraz 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 pełnoekranowej nie można jej ponownie wyświetlić. Sprawdzoną metodą jest wczytanie kolejnej reklamy pełnoekranowej w metodzie OnAdDismissedFullScreenContent() klasy FullScreenContentListener, aby następna reklama pełnoekranowa zaczęła się wczytywać, gdy tylko poprzednia zostanie zamknięta.
Wyświetlanie reklamy
Reklamy pełnoekranowe powinny być wyświetlane podczas naturalnych przerw w działaniu aplikacji. Dobrym przykładem jest przerwa między poziomami gry lub moment po wykonaniu zadania przez użytkownika.
Chociaż FullScreenContentListener może służyć do określania, kiedy reklama wyświetliła się na pełnym ekranie, przyszłość zwrócona przez Show() również będzie sygnalizować, kiedy reklama została pomyślnie 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 momentami przejściowymi. Takim momentem jest np. zakończenie zadania w aplikacji, np. udostępnienie obrazu lub ukończenie poziomu gry. Użytkownik spodziewa się przerwy w działaniu, dlatego łatwo jest wyświetlić reklamę pełnoekranową bez zakłócania jego wrażeń. Zastanów się, w których momentach działania aplikacji będziesz wyświetlać reklamy pełnoekranowe i jak prawdopodobnie zareaguje na nie użytkownik.
- Pamiętaj, aby podczas wyświetlania reklamy pełnoekranowej wstrzymać działania.
- Dostępne są różne typy reklam pełnoekranowych: tekstowe, graficzne, wideo i inne. Ważne jest, aby podczas wyświetlania reklamy pełnoekranowej aplikacja zawieszała też korzystanie z niektórych zasobów, aby reklama mogła z nich korzystać. Na przykład, gdy wywołujesz wyświetlenie reklamy pełnoekranowej, wstrzymaj odtwarzanie wyjścia audio przez aplikację. Możesz wznowić odtwarzanie dźwięków w metodzie
OnAdDismissedFullScreenContentzainstalowanegoFullScreenContentListener, 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 miał problemów z powolną lub niereagującą grafiką ani zacinającym się filmem. - Zapewnij odpowiedni czas wczytywania.
- Tak jak ważne jest, aby wyświetlać reklamy pełnoekranowe w odpowiednim momencie, tak samo ważne jest, aby użytkownik nie musiał czekać na ich wczytanie. Wczytanie reklamy z wyprzedzeniem przed jej wyświetleniem może zapewnić, że aplikacja będzie miała w pełni wczytaną reklamę pełnoekranową, gdy nadejdzie czas jej wyświetlenia.
- Nie zasypuj użytkowników reklamami.
- Zwiększenie częstotliwości wyświetlania reklam pełnoekranowych w aplikacji może się wydawać świetnym sposobem na zwiększenie przychodów, ale może też pogorszyć wrażenia użytkownika i obniżyć współczynniki klikalności. Zadbaj o to, aby nie przerywać użytkownikom zbyt często, tak by mogli swobodnie korzystać z Twojej aplikacji.
- Nie używaj przyszłości zakończenia wczytywania do wyświetlania reklamy pełnoekranowej.
- Może to pogorszyć wrażenia użytkownika. Zamiast tego wczytaj reklamę z wyprzedzeniem, zanim będziesz musiał ją wyświetlić.
Dodatkowe materiały
Przykład w GitHubie
- Wyświetl kod źródłowy naszej przykładowej aplikacji w GitHubie.
Samouczki wideo w Mobile Ads Garage
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.