Reklamy pełnoekranowe

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

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:

  1. Wczytaj reklamę.
  2. Zarejestruj się na wywołania zwrotne.
  3. 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.

  1. Dodaj ten nagłówek do kodu C++ aplikacji:

     #include "firebase/gma/interstial_ad.h"
    

  2. Zadeklaruj i utwórz instancję obiektu InterstitialAd:

     firebase::gma::InterstitialAd* interstitial_ad;
     interstitial_ad = new firebase::gma::InterstitialAd();
    

  3. Zainicjuj instancję InterstitialAd za pomocą rzutowania widoku nadrzędnego na typ AdParent. Widok nadrzędny to odniesienie jobject JNI do Activity lub wskaźnik do UIView 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);
    
  4. Zamiast zachowania przyszłości jako zmiennej możesz okresowo sprawdzać stan operacji inicjowania, wywołując funkcję InitializeLastResult() w obiekcie InterstitialAd. 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 funkcji FullScreenContentListener, 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

Samouczki wideo Warsztaty reklam mobilnych

Historie sukcesu

Dalsze kroki