Reklamy pełnoekranowe

Reklamy pełnoekranowe zajmują cały ekran aplikacji, dopóki użytkownik ich nie zamknie. Są one zwykle wyświetlane w naturalnych momentach przejściowych w aplikacji, np. między działaniami lub podczas przerwy między poziomami gry. Użytkownik, który zobaczy reklamę pełnoekranową, może kliknąć reklamę i przejść do miejsca docelowego lub ją zamknąć 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 używaj reklam testowych

Tworząc i testując aplikacje, korzystaj z reklam testowych, a nie z aktywnych reklam produkcyjnych. W przeciwnym razie możemy zawiesić Twoje konto.

Najłatwiejszym sposobem wczytywania reklam testowych jest użycie specjalnego identyfikatora testowej jednostki reklamowej, która 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 tak skonfigurowane i zwracają reklamy testowe dla każdego żądania. Możesz używać ich we własnych aplikacjach podczas kodowania, testowania i debugowania. Pamiętaj, aby zastąpić ją własnym identyfikatorem jednostki reklamowej, zanim ją opublikujesz.

Więcej informacji o tym, jak działają reklamy testowe pakietu SDK do reklam mobilnych, znajdziesz w artykule Reklamy testowe.

Implementacja

Główne kroki integracji reklam pełnoekranowych:

  1. Wczytaj reklamę.
  2. Zarejestruj się na rozmowy zwrotne.
  3. Wyświetl reklamę i przetwórz jej zdarzenia cyklu życia.

Skonfiguruj InterstitialAd

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

  1. Dodaj ten kod do kodu C++ swojej aplikacji:

     #include "firebase/gma/interstial_ad.h"
    

  2. Zadeklaruj obiekt InterstitialAd i utwórz jego instancję:

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

  3. Zainicjuj instancję InterstitialAd za pomocą przesyłania nadrzędnego widoku na typ AdParent. Widok nadrzędny to odniesienie JNI jobject do Androida Activity lub wskaźnik 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 zachowywać przyszłość jako zmienną, możesz okresowo sprawdzać stan operacji inicjowania, wywołując obiekt InitializeLastResult() w obiekcie InterstitialAd. Może to być przydatne podczas ś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 Przyszłości w celu monitorowania stanu wywołań metod.

Wczytywanie reklamy

Reklama jest wczytywana za pomocą metody LoadAd() na obiekcie InterstitialAd. Aby zastosować metodę wczytywania, musisz zainicjować obiekt InterstitialAd oraz mieć identyfikator jednostki reklamowej i obiekt AdRequest. Zwracany jest firebase::Future, którego można używać 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 oddzwonienie

Aby otrzymywać powiadomienia o wyświetlaniu reklam pełnoekranowych i zdarzeniach cyklu życia, musisz rozszerzyć klasę FullScreenContentListener. Niestandardowa podklasa FullScreenContentListener może zostać zarejestrowana przy użyciu metody InterstitialAd::SetFullScreenContentListener() i będzie otrzymywać wywołania zwrotne, gdy reklama zakończy się powodzeniem lub niepowodzeniem, a także zostanie zamknięta.

Ten kod pokazuje, jak przedłużyć 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 jednorazowy obiekt. Oznacza to, że reklamy pełnoekranowej nie można wyświetlić ponownie. Sprawdzoną metodą jest wczytanie kolejnej reklamy pełnoekranowej w metodzie OnAdDismissedFullScreenContent() strony FullScreenContentListener, tak by następną reklamę pełnoekranową można było wczytywać w momencie odrzucenia poprzedniej.

Wyświetl reklamę

Reklamy pełnoekranowe powinny wyświetlać się podczas naturalnych przerw w wyświetlaniu aplikacji. Dobrym przykładem jest poziom gry lub po jego ukończeniu. FullScreenContentListener pozwala określić, kiedy reklama wyświetli się w trybie pełnoekranowym. Przyszła wartość zwrócona przez funkcję Show() będzie też sygnalizować, że reklama została wyświetlona.

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

Sprawdzone metody

Zastanów się, czy reklamy pełnoekranowe to właściwy rodzaj reklamy dla Twojej aplikacji.
Reklamy pełnoekranowe działają najlepiej w aplikacjach z naturalnymi momentami przejściowymi. Konkretne zadanie, na przykład udostępnienie zdjęcia czy ukończenie poziomu gry, tworzy taki punkt. Użytkownik spodziewa się przerwy w działaniu, dlatego może łatwo zaprezentować reklamę pełnoekranową bez zakłócania jej przebiegu. Zastanów się, na którym etapie działania aplikacji będziesz wyświetlać reklamy pełnoekranowe i jakie będą reakcje użytkowników.
Pamiętaj o wstrzymaniu działania podczas wyświetlania reklamy pełnoekranowej.
Jest wiele rodzajów reklam pełnoekranowych: tekstowych, graficznych, wideo itd. Zadbaj o to, aby gdy aplikacja wyświetla reklamę pełnoekranową, zawiesza też korzystanie z niektórych zasobów, aby umożliwić skorzystanie z tych reklam. Jeśli np. wywołasz reklamę pełnoekranową, pamiętaj o wstrzymaniu odtwarzania dźwięku generowanego przez aplikację. Możesz wznowić odtwarzanie dźwięku za pomocą metody OnAdDismissedFullScreenContent zainstalowanej w FullScreenContentListener, która jest wywoływana, gdy użytkownik zakończy interakcję z reklamą. Możesz też tymczasowo wstrzymać intensywne zadania obliczeniowe (np. zapętlenia gry) w trakcie wyświetlania reklamy. Dzięki temu użytkownik nie będzie miał problemów z powolnym działaniem interfejsu graficznego lub zacinaniem się obrazu.
Zapewnić wystarczający czas wczytywania.
Ważne jest, aby wyświetlać reklamy pełnoekranowe w odpowiednim momencie, tak samo ważne jest, aby użytkownik nie musiał czekać, aż się załaduje. Załadowanie reklamy z wyprzedzeniem przed jej wyświetleniem może zapewnić, że aplikacja będzie w pełni gotowa do wyświetlenia w momencie wyświetlenia reklamy pełnoekranowej.
Nie zabijaj użytkowników reklamami.
Zwiększenie liczby reklam pełnoekranowych w aplikacji może się wydawać ś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, żeby użytkownicy nie przeszkadzali zbyt często, żeby nie mogli już korzystać z Twojej aplikacji.
Nie wyświetlaj w przyszłości reklamy pełnoekranowej, aby wyświetlać reklamy pełnoekranowe.
To może negatywnie wpłynąć na wrażenia użytkowników. Zamiast tego załaduj wstępnie reklamę, aby ją później wyświetlić.

Dodatkowe materiały

Przykład w usłudze GitHub

Samouczki wideo o reklamach mobilnych w garażu

Historie sukcesu

Dalsze kroki