Reklamy pełnoekranowe zajmują cały ekran aplikacji, dopóki użytkownik ich nie zamknie. Są one zwykle wyświetlane w naturalnych momentach przejściowych w aplikacji, np. między działaniami lub podczas przerwy między poziomami gry. Użytkownik, który zobaczy reklamę pełnoekranową, może kliknąć reklamę i przejść do miejsca docelowego lub ją zamknąć 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
- Kliknij Rozpocznij.
- (Tylko Android) Znajomość obsługi plików JNI
jobject
(patrz wskazówki dotyczące JNI na Androida).
Zawsze używaj reklam testowych
Tworząc i testując aplikacje, korzystaj z reklam testowych, a nie z aktywnych reklam produkcyjnych. W przeciwnym razie możemy zawiesić Twoje konto.
Najłatwiejszym sposobem wczytywania reklam testowych jest użycie specjalnego identyfikatora testowej jednostki reklamowej, która 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 tak skonfigurowane i zwracają reklamy testowe dla każdego żądania. Możesz używać ich we własnych aplikacjach podczas kodowania, testowania i debugowania. Pamiętaj, aby zastąpić ją własnym identyfikatorem jednostki reklamowej, zanim ją opublikujesz.
Więcej informacji o tym, jak działają reklamy testowe pakietu SDK do reklam mobilnych, znajdziesz w artykule Reklamy testowe.
Implementacja
Główne kroki integracji reklam pełnoekranowych:
- Wczytaj reklamę.
- Zarejestruj się na rozmowy zwrotne.
- Wyświetl reklamę i przetwórz jej zdarzenia cyklu życia.
Skonfiguruj InterstitialAd
Reklamy pełnoekranowe są wyświetlane w obiektach InterstitialAd
, więc pierwszym krokiem do integracji reklam pełnoekranowych z aplikacją jest utworzenie i zainicjowanie obiektu InterstitialAd
.
Dodaj ten kod do kodu C++ swojej aplikacji:
#include "firebase/gma/interstial_ad.h"
Zadeklaruj obiekt
InterstitialAd
i utwórz jego instancję:firebase::gma::InterstitialAd* interstitial_ad; interstitial_ad = new firebase::gma::InterstitialAd();
Zainicjuj instancję
InterstitialAd
za pomocą przesyłania nadrzędnego widoku na typAdParent
. Widok nadrzędny to odniesienie JNIjobject
do AndroidaActivity
lub wskaźnikUIView
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 zachowywać przyszłość jako zmienną, możesz okresowo sprawdzać stan operacji inicjowania, wywołując obiekt
InitializeLastResult()
w obiekcieInterstitialAd
. Może to być przydatne podczas ś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 Przyszłości w celu monitorowania stanu wywołań metod.
Wczytywanie reklamy
Reklama jest wczytywana za pomocą metody LoadAd()
na obiekcie InterstitialAd
. Aby zastosować metodę wczytywania, musisz zainicjować obiekt InterstitialAd
oraz mieć identyfikator jednostki reklamowej i obiekt AdRequest
. Zwracany jest firebase::Future
, którego można używać 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 oddzwonienie
Aby otrzymywać powiadomienia o wyświetlaniu reklam pełnoekranowych i zdarzeniach cyklu życia, musisz rozszerzyć klasę FullScreenContentListener
. Niestandardowa podklasa FullScreenContentListener
może zostać zarejestrowana przy użyciu metody InterstitialAd::SetFullScreenContentListener()
i będzie otrzymywać wywołania zwrotne, gdy reklama zakończy się powodzeniem lub niepowodzeniem, a także zostanie zamknięta.
Ten kod pokazuje, jak przedłużyć 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 jednorazowy obiekt. Oznacza to, że reklamy pełnoekranowej nie można wyświetlić ponownie. Sprawdzoną metodą jest wczytanie kolejnej reklamy pełnoekranowej w metodzie OnAdDismissedFullScreenContent()
strony FullScreenContentListener
, tak by następną reklamę pełnoekranową można było wczytywać w momencie odrzucenia poprzedniej.
Wyświetl reklamę
Reklamy pełnoekranowe powinny wyświetlać się podczas naturalnych przerw w wyświetlaniu aplikacji. Dobrym przykładem jest poziom gry lub po jego ukończeniu.
FullScreenContentListener
pozwala określić, kiedy reklama wyświetli się w trybie pełnoekranowym. Przyszła wartość zwrócona przez funkcję Show()
będzie też sygnalizować, że reklama została wyświetlona.
firebase::Future<void> result = interstitial_ad->Show();
Sprawdzone metody
- Zastanów się, czy reklamy pełnoekranowe to właściwy rodzaj reklamy dla Twojej aplikacji.
- Reklamy pełnoekranowe działają najlepiej w aplikacjach z naturalnymi momentami przejściowymi. Konkretne zadanie, na przykład udostępnienie zdjęcia czy ukończenie poziomu gry, tworzy taki punkt. Użytkownik spodziewa się przerwy w działaniu, dlatego może łatwo zaprezentować reklamę pełnoekranową bez zakłócania jej przebiegu. Zastanów się, na którym etapie działania aplikacji będziesz wyświetlać reklamy pełnoekranowe i jakie będą reakcje użytkowników.
- Pamiętaj o wstrzymaniu działania podczas wyświetlania reklamy pełnoekranowej.
- Jest wiele rodzajów reklam pełnoekranowych: tekstowych, graficznych, wideo itd. Zadbaj o to, aby gdy aplikacja wyświetla reklamę pełnoekranową, zawiesza też korzystanie z niektórych zasobów, aby umożliwić skorzystanie z tych reklam. Jeśli np. wywołasz reklamę pełnoekranową, pamiętaj o wstrzymaniu odtwarzania dźwięku generowanego przez aplikację. Możesz wznowić odtwarzanie dźwięku za pomocą metody
OnAdDismissedFullScreenContent
zainstalowanej wFullScreenContentListener
, która jest wywoływana, gdy użytkownik zakończy interakcję z reklamą. Możesz też tymczasowo wstrzymać intensywne zadania obliczeniowe (np. zapętlenia gry) w trakcie wyświetlania reklamy. Dzięki temu użytkownik nie będzie miał problemów z powolnym działaniem interfejsu graficznego lub zacinaniem się obrazu. - Zapewnić wystarczający czas wczytywania.
- Ważne jest, aby wyświetlać reklamy pełnoekranowe w odpowiednim momencie, tak samo ważne jest, aby użytkownik nie musiał czekać, aż się załaduje. Załadowanie reklamy z wyprzedzeniem przed jej wyświetleniem może zapewnić, że aplikacja będzie w pełni gotowa do wyświetlenia w momencie wyświetlenia reklamy pełnoekranowej.
- Nie zabijaj użytkowników reklamami.
- Zwiększenie liczby reklam pełnoekranowych w aplikacji może się wydawać ś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, żeby użytkownicy nie przeszkadzali zbyt często, żeby nie mogli już korzystać z Twojej aplikacji.
- Nie wyświetlaj w przyszłości reklamy pełnoekranowej, aby wyświetlać reklamy pełnoekranowe.
- To może negatywnie wpłynąć na wrażenia użytkowników. Zamiast tego załaduj wstępnie reklamę, aby ją później wyświetlić.
Dodatkowe materiały
Przykład w usłudze GitHub
- Wyświetl kod źródłowy przykładowej aplikacji Quickstart na GitHubie.
Samouczki wideo o reklamach mobilnych w garażu
Historie sukcesu
Dalsze kroki
- Utwórz reklamę pełnoekranową w interfejsie AdMob, jeśli jeszcze jej nie masz.
- Więcej informacji o kierowaniu reklam i wytycznych dotyczących reklam pełnoekranowych.