Reklamy pełnoekranowe


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

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:

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

  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, używając widoku rodzica przekształconego na typ AdParent. Widok rodzica to odwołanie JNI jobject do Activity na Androidzie lub wskaźnik do UIView na 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 przechowywać przyszłość jako zmienną, możesz okresowo sprawdzać stan operacji inicjowania, wywołując InitializeLastResult() w obiekcie InterstitialAd. 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 OnAdDismissedFullScreenContent zainstalowanego 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 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