Reklamy pełnoekranowe


Reklamy pełnoekranowe zajmują cały ekran aplikacji, dopóki użytkownik ich nie zamknie. Takie reklamy 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 ją kliknąć, aby przejść do miejsca docelowego, lub zamknąć i wrócić do aplikacji. Przykład.

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 języku C++.

Wymagania wstępne

Zawsze testuj reklamy za pomocą reklam testowych

Podczas tworzenia i testowania aplikacji używaj reklam testowych, a nie reklam produkcyjnych. Jeśli tego nie zrobisz, Twoje konto może zostać zawieszone.

Najłatwiejszym sposobem wczytywania reklam testowych jest użycie dedykowanego identyfikatora testowej 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 one specjalnie skonfigurowane tak, aby zwracać reklamy testowe w przypadku każdego żądania. Możesz ich używać w swoich 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. Rejestrowanie wywołań zwrotnych.
  3. Wyświetl reklamę i obsługuje jej zdarzenia cyklu życia.

Skonfiguruj InterstitialAd

Reklamy pełnoekranowe są wyświetlane w obiektach InterstitialAd, więc pierwszym krokiem w integrowaniu reklam pełnoekranowych z aplikacją jest utworzenie i inicjalizacja obiektu InterstitialAd.

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

     #include "firebase/gma/interstial_ad.h"

  2. Zadeklaruj i utwórz instancję InterstitialAd:

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

  3. Zainicjuj wystąpienie InterstitialAd, używając widoku nadrzędnego przekazanego do typu AdParent. Widok nadrzędny to odwołanie JNI jobject do obiektu Androida Activity lub wskaźnik do obiektu iOS UIView.

    // 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 być przydatne do śledzenia procesu inicjalizacji 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 realizacji wywołań metod.

Wczytywanie reklamy

Wczytywanie reklamy odbywa się za pomocą metody LoadAd() obiektu InterstitialAd. Metoda load wymaga zainicjowania obiektu InterstitialAd oraz posiadania identyfikatora jednostki reklamowej i obiektu AdRequest. Zwracana jest wartość firebase::Future, za pomocą której możesz monitorować stan i wynik 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);

Rejestrowanie wywołań zwrotnych

Aby otrzymywać powiadomienia o wyświetlaniu reklam pełnoekranowych i zdarzeniach cyklu życia, musisz rozszerzyć klasę FullScreenContentListener. Niestandardową podklasę FullScreenContentListener można zarejestrować za pomocą metody InterstitialAd::SetFullScreenContentListener(). Będzie ona otrzymywać wywołania zwrotne, gdy reklama zostanie wyświetlona lub nie, a także 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 pośredniej nie może ona się już więcej wyświetlać. Sprawdzoną metodą jest wczytywanie kolejnej reklamy pełnoekranowej za pomocą metody OnAdDismissedFullScreenContent() w Twoim pliku FullScreenContentListener, aby następna reklama pełnoekranowa zaczęła się wczytywać, gdy tylko zamkniesz poprzednią.

Wyświetlanie reklamy

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. Chociaż za pomocą zdarzenia FullScreenContentListener można określić, kiedy reklama wyświetliła treści pełnoekranowe, przyszłość zwracana przez zdarzenie Show() wskazuje również, kiedy reklama została 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 punktami przejścia. Taki punkt może powstać na przykład po zakończeniu zadania w aplikacji, takiego jak udostępnienie zdjęcia lub ukończenie poziomu gry. Użytkownik spodziewa się przerwy w działaniu, więc łatwo jest wyświetlić reklamę pełnoekranową bez zakłócania jego doświadczeń. Zastanów się, w jakich momentach w przebiegu aplikacji wyświetlać reklamy pełnoekranowe i jak użytkownik prawdopodobnie na nie zareaguje.
Pamiętaj, aby wstrzymać tę czynność podczas wyświetlania reklamy pełnoekranowej.
Dostępne są różne typy reklam pełnoekranowych: tekstowe, graficzne, wideo i inne. Pamiętaj, aby podczas wyświetlania przez aplikację reklamy interaktywnej wstrzymywać korzystanie z niektórych zasobów, aby reklama mogła z nich korzystać. Na przykład, gdy wywołasz metodę wyświetlania reklamy interwsty, zatrzymaj wszelkie dźwięki generowane przez aplikację. Możesz wznowić odtwarzanie dźwięku za pomocą metody OnAdDismissedFullScreenContent w zainstalowanej aplikacji FullScreenContentListener, 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 mieć problemów z powolnym działaniem grafiki lub jej zacinaniem się albo z zacinaniem się filmu.
Zaplanuj 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ą. Wczytanie reklamy z wyprzedzeniem, zanim zamierzasz ją wyświetlić, może zapewnić, że w momencie wyświetlenia reklamy pełnoekranowej będzie ona w pełni załadowana.
Nie zasypuj użytkownika reklamami.
Chociaż zwiększanie częstotliwości wyświetlania reklam pełnekranowych w aplikacji może wydawać się świetnym sposobem na zwiększenie przychodów, może też pogorszyć wrażenia użytkownika i obniżyć współczynnik klikalności. Zadbaj o to, aby użytkownicy nie byli zbyt często przerywane, ponieważ uniemożliwia im to korzystanie z aplikacji.
Nie używaj przyszłej daty zakończenia wczytywania do wyświetlania reklamy pełnoekranowej.
Może to powodować niewygodę użytkowników. Zamiast tego przeładuj reklamę przed jej wyświetleniem.

Dodatkowe materiały

Przykład w GitHubie

Samouczki wideo z Garage dla reklam mobilnych

Historie sukcesu

Dalsze kroki