Reklamy pełnoekranowe

Reklamy pełnoekranowe zakrywają interfejs aplikacji do czasu, gdy użytkownik je zamknie. Zwykle wyświetlają się w naturalnych momentach przejściowych w aplikacji, np. między działaniami lub podczas przerwy między poziomami w grze. Gdy aplikacja wyświetla reklamę pełnoekranową, użytkownik może ją kliknąć i przejść do strony docelowej, lub ją zamknąć i wrócić do aplikacji. Studium przypadku.

Z tego przewodnika dowiesz się, jak integrować 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 aktywnych reklam produkcyjnych. Jeśli tego nie zrobisz, Twoje konto może zostać zawieszone.

Najprostszym sposobem wczytywania reklam testowych jest użycie naszego dedykowanego identyfikatora testowej jednostki reklamowej na potrzeby 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 odpowiedzi na każde żądanie. Możesz ich używać we własnych aplikacjach podczas kodowania, testowania i debugowania. Pamiętaj, by przed opublikowaniem aplikacji zastąpić go własnym identyfikatorem jednostki reklamowej.

Więcej informacji o działaniu reklam testowych z pakietu SDK do reklam mobilnych znajdziesz w artykule Reklamy testowe.

Implementacja

Najważniejsze czynności, jakie musisz wykonać, aby zintegrować reklamy pełnoekranowe:

  1. Wczytaj reklamę.
  2. Zarejestruj się na wywołania zwrotne
  3. Wyświetla reklamę i obsługuje zdarzenia cyklu życia.

Skonfiguruj: InterstitialAd

Reklamy pełnoekranowe wyświetlają się w obiektach InterstitialAd, więc pierwszym krokiem 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ę InterstitialAd:

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

  3. Zainicjuj instancję InterstitialAd za pomocą widoku nadrzędnego rzutu na typ AdParent. Widok nadrzędny jest odwołaniem do systemu Android Activity lub wskaźnikiem do systemu iOS UIView w JNI.jobject

    // 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. Dzięki temu możesz śledzić proces 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 funkcją firebase::Future znajdziesz w artykule Używanie transakcji terminowych do monitorowania stanu ukończenia wywołań metod.

Wczytaj reklamę

Wczytywanie reklamy odbywa się za pomocą metody LoadAd() na obiekcie InterstitialAd. Metoda wczytywania wymaga zainicjowania obiektu InterstitialAd oraz posiadania identyfikatora jednostki reklamowej i obiektu AdRequest. Zwracany jest element firebase::Future, którego możesz użyć 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 wywołania zwrotne

Aby otrzymywać powiadomienia o prezentacji reklam pełnoekranowych i zdarzeniach cyklu życia, musisz rozszerzyć klasę FullScreenContentListener. Twoją niestandardową podklasę FullScreenContentListener możesz zarejestrować za pomocą metody InterstitialAd::SetFullScreenContentListener() i będzie ona otrzymywać wywołania zwrotne po pomyślnym lub nieudanym wyświetleniu reklamy oraz 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 jest obiektem jednorazowym. Oznacza to, że raz reklamy pełnoekranowej nie można wyświetlić jej ponownie. Sprawdzoną metodą jest wczytanie kolejnej reklamy pełnoekranowej w metodzie OnAdDismissedFullScreenContent() interfejsu FullScreenContentListener, tak aby następna reklama pełnoekranowa zaczęła się ładować zaraz po zamknięciu poprzedniej.

Wyświetl reklamę

Reklamy pełnoekranowe powinny wyświetlać się przy naturalnych przerwach w korzystaniu z aplikacji. Dobrym przykładem są przejścia między poziomami gry lub po wykonaniu przez użytkownika zadania. O ile parametr FullScreenContentListener służy do określania, kiedy reklama wyświetliła się na pełnym ekranie, przyszła wartość zwracana przez funkcję Show() również będzie zasygnalizowała, kiedy reklama się wyświetliła.

  firebase::Future<void> result = interstitial_ad->Show();

Sprawdzone metody

Zastanów się, czy reklamy pełnoekranowe to odpowiedni typ reklamy do Twojej aplikacji.
Reklamy pełnoekranowe sprawdzają się najlepiej w aplikacjach z naturalnymi momentami przejściowymi. Może to być na przykład zakończenie zadania w aplikacji, np. udostępnienie obrazu czy ukończenie poziomu w grze. Ponieważ użytkownik oczekuje przerw w działaniu, łatwo jest wyświetlić reklamę pełnoekranową bez zakłócania wrażeń użytkownika. Zastanów się, w których momentach pracy w aplikacji będziesz wyświetlać reklamy pełnoekranowe i jak może na nie zareagować użytkownik.
Pamiętaj, aby wstrzymać działanie podczas wyświetlania reklamy pełnoekranowej.
Jest wiele różnych typów reklam pełnoekranowych: tekstowe, graficzne, wideo i inne. Ważne jest, by aplikacja, która wyświetla reklamę pełnoekranową, zawieszała wykorzystanie pewnych zasobów, by mogła je wykorzystać w aplikacji. Jeśli np. wywołujesz reklamę pełnoekranową, wstrzymaj odtwarzanie dźwięku generowane przez aplikację. Możesz wznowić odtwarzanie dźwięków w metodzie OnAdDismissedFullScreenContent w zainstalowanym systemie FullScreenContentListener, które jest wywoływane, gdy użytkownik zakończy interakcję z reklamą. Warto też tymczasowo wstrzymać wszystkie intensywne zadania obliczeniowe (takie jak pętla gry) na czas wyświetlania reklamy. Dzięki temu użytkownik nie będzie widzieć wolnej i brakującej reakcji grafiki czy zacinania się filmów.
Zadbaj o odpowiedni czas wczytywania.
Reklamy pełnoekranowe muszą być wyświetlane w odpowiednim czasie, ale nie tylko w których przypadku użytkownik nie musi czekać, aż się załaduje. Jeśli wczytasz reklamę z wyprzedzeniem, zanim ją opublikujesz, możesz mieć pewność, że w aplikacji będzie widoczna w pełni załadowana reklama pełnoekranowa, która będzie gotowa, gdy nadejdzie czas jej wyświetlenia.
Nie zasyp użytkowników 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 przeszkadzali im tak często, że nie będą mogli z niej korzystać.
Do wyświetlania reklamy pełnoekranowej nie używaj w przyszłości ukończenia wczytywania.
Może to negatywnie wpłynąć na wygodę użytkowników. Najpierw wczytaj reklamę przed wyświetleniem.

Dodatkowe materiały

Przykład w GitHubie

Samouczki wideo w programie Reklamy mobilne w Google Ads

Historie sukcesu

Dalsze kroki