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, możemy zawiesić Twoje konto.

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:

  • 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

Oto główne kroki, które należy wykonać, aby zintegrować reklamy pełnoekranowe:

  1. Wczytaj reklamę.
  2. Rejestrowanie wywołań zwrotnych.
  3. wyświetlać reklamę i obsługiwać zdarzenia jej 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 do kodu C++ aplikacji ten nagłówek:

     #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 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 przechowywać przyszłość jako zmienną, możesz okresowo sprawdzać stan operacji inicjalizacji, wywołując funkcję InitializeLastResult() obiektu 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 używaniu funkcji firebase::Future znajdziesz w artykule Używanie funkcji Futures do monitorowania stanu wykonania 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. Zwracany jest obiekt firebase::Future, za pomocą którego można monitorować stan i wynik operacji wczytywania.

Poniższy kod pokazuje, jak wczytać reklamę po pomyślnym zainicjowaniu obiektu 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 przejściowej nie można jej wyświetlić ponownie. Sprawdzoną metodą jest wczytywanie kolejnej reklamy pełnoekranowej w metodie 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 wyświetlać się w naturalnych przerwach w aplikacji. Dobrym przykładem jest przerwa między poziomami w grze lub po wykonaniu zadania przez użytkownika. Chociaż za pomocą zdarzenia FullScreenContentListener można określić, kiedy reklama wyświetliła treści pełnoekranowe, przyszłość zwracana przez funkcję Show() również sygnalizuje, 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ć działanie 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 wywołanie, aby wyświetlić reklamę pośrednią, wstrzymaj wszystkie 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 zawieszaniem się albo z zacinającymi się filmami.
Zaplanuj odpowiedni czas wczytywania.
Podobnie jak w przypadku reklam pełnoekranowych ważne jest, aby wyświetlać je w odpowiednim momencie, ale też trzeba pamiętać, aby użytkownik nie musiał czekać na ich załadowanie. 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 zalewaj użytkownika reklamami.
Chociaż zwiększanie częstotliwości wyświetlania reklam przejściowych 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 do wyświetlania reklamy pełnoekranowej przyszłego wskaźnika zakończenia wczytywania.
Może to spowodować niewygodę użytkowników. Zamiast tego pobierz reklamę z wyprzedzeniem, zanim będzie trzeba ją wyświetlić.

Dodatkowe materiały

Przykład w GitHubie

Samouczki wideo z Garage dla reklam mobilnych

Historie sukcesu

Dalsze kroki