Reklamy pełnoekranowe

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Reklamy pełnoekranowe to reklamy pełnoekranowe, które zasłaniają interfejs aplikacji hosta. Takie reklamy wyświetlają się zwykle w naturalnych momentach przejściowych w aplikacji, np. podczas przerwy między poziomami gry. Gdy aplikacja wyświetla reklamę pełnoekranową, użytkownik może ją kliknąć i przejść do miejsca docelowego lub zamknąć ją i wrócić do aplikacji. Studium przypadku

Z tego przewodnika dowiesz się, jak zintegrować reklamy pełnoekranowe z aplikacją Unity.

Wymagania wstępne

Dokończ Rozpocznij. Aplikacja Unity powinna być już zaimportowana wtyczka Unity do reklam mobilnych Google.

Tworzenie reklamy pełnoekranowej

Pierwszym krokiem na drodze do wyświetlenia reklamy pełnoekranowej jest utworzenie obiektu InterstitialAd w skrypcie dołączonym do GameObject.

Aby łatwiej zintegrować reklamy za pomocą Edytora Unity, wypróbuj nową stronę miejsc docelowych reklam w wersji beta.

using GoogleMobileAds.Api;
...

private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

    // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);
}

Konstruktor elementu InterstitialAd zawiera ten parametr:

  • adUnitId – identyfikator jednostki reklamowej AdMob, z której InterstitialAd ma wczytywać reklamy.

Warto zwrócić uwagę na to, jak są używane różne jednostki reklamowe zależnie od platformy. Aby wysyłać żądania reklam w systemie iOS, musisz używać jednostki reklamowej na iOS, a na potrzeby urządzeń z Androidem – jednostki reklamowej na Androida.

Zawsze testuj z reklamami testowymi

Przykładowy kod powyżej zawiera identyfikator jednostki reklamowej. Możesz wyświetlać reklamy za jej pomocą. Został on specjalnie skonfigurowany pod kątem zwracania reklam testowych zamiast reklam produkcyjnych dla każdego żądania, co zapewnia bezpieczeństwo.

Gdy jednak zarejestrujesz aplikację w interfejsie AdMob i utworzysz własne identyfikatory jednostek reklamowych do wykorzystania w niej, podczas programowania musisz skonfigurować urządzenie jako urządzenie testowe. To bardzo ważne. Testowanie rzeczywistych reklam (nawet jeśli ich nie używasz) narusza zasady AdMob i może spowodować zawieszenie konta. W artykule Reklamy testowe znajdziesz informacje o tym, jak zawsze w trakcie programowania wyświetlać reklamy testowe.

Wczytywanie reklamy

Po utworzeniu instancji InterstitialAd następnym krokiem jest wczytanie reklamy. Zrobiliśmy to za pomocą metody loadAd() z klasy InterstitialAd. Przyjmuje argument AdRequest, który zawiera informacje o czasie działania (np. informacje o kierowaniu) o jednym żądaniu reklamy.

Ten przykład pokazuje, jak wczytać reklamę:

using GoogleMobileAds.Api;
...
private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

    // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);
    // Create an empty ad request.
    AdRequest request = new AdRequest.Builder().Build();
    // Load the interstitial with the request.
    this.interstitial.LoadAd(request);
}

Wyświetlanie reklamy

Reklamy pełnoekranowe powinny wyświetlać się w naturalnych przerwach w wyświetlaniu aplikacji. Dobrym przykładem jest sytuacja, w której użytkownik gra, po zakończeniu zadania. Aby wyświetlić reklamę pełnoekranową, użyj metody isLoaded(), by sprawdzić, czy wczytano ją, a następnie wywołaj show().

Reklama pełnoekranowa z poprzedniego przykładu kodu może być widoczna na końcu gry, jak widać poniżej.

private void GameOver()
{
  if (this.interstitial.IsLoaded()) {
    this.interstitial.Show();
  }
}

Zdarzenia reklamowe

Aby jeszcze bardziej dostosować działanie reklamy, możesz brać pod uwagę wiele zdarzeń w cyklu życia reklamy: wczytywanie, otwieranie, zamykanie itd. Aby nasłuchiwać tych zdarzeń, zarejestruj delegata dla odpowiedniego elementu EventHandler, jak pokazano poniżej.

using GoogleMobileAds.Api;
...
private InterstitialAd interstitial;

private void RequestInterstitial()
{
    #if UNITY_ANDROID
        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
    #elif UNITY_IPHONE
        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
    #else
        string adUnitId = "unexpected_platform";
    #endif

     // Initialize an InterstitialAd.
    this.interstitial = new InterstitialAd(adUnitId);

    // Called when an ad request has successfully loaded.
    this.interstitial.OnAdLoaded += HandleOnAdLoaded;
    // Called when an ad request failed to load.
    this.interstitial.OnAdFailedToLoad += HandleOnAdFailedToLoad;
    // Called when an ad is shown.
    this.interstitial.OnAdOpening += HandleOnAdOpening;
    // Called when the ad is closed.
    this.interstitial.OnAdClosed += HandleOnAdClosed;

    // Create an empty ad request.
    AdRequest request = new AdRequest.Builder().Build();
    // Load the interstitial with the request.
    this.interstitial.LoadAd(request);
}

public void HandleOnAdLoaded(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdLoaded event received");
}

public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    MonoBehaviour.print("HandleFailedToReceiveAd event received with message: "
                        + args.Message);
}

public void HandleOnAdOpening(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdOpening event received");
}

public void HandleOnAdClosed(object sender, EventArgs args)
{
    MonoBehaviour.print("HandleAdClosed event received");
}

Zdarzenie OnAdFailedToLoad zawiera argumenty zdarzenia specjalnego. Przekazuje wystąpienie elementu HandleAdFailedToLoadEventArgs z opisem błędu Message.

public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    print("Interstitial failed to load: " + args.Message);
    // Handle the ad failed to load event.
}
Zdarzenie reklamoweOpis
OnAdLoaded Zdarzenie OnAdLoaded jest wykonywane po zakończeniu wczytywania reklamy.
OnAdFailedToLoad Zdarzenie OnAdFailedToLoad jest wywoływane po niezaładowaniu reklamy. Parametr Message opisuje typ nieudanej próby.
OnAdOpening Ta metoda jest wywoływana po wyświetleniu reklamy i zasłanianiu ekranu urządzenia.
OnAdClosed Ta metoda jest wywoływana, gdy reklama pełnoekranowa zostanie zamknięta, ponieważ użytkownik kliknie ikonę zamknięcia lub użyje przycisku Wstecz. Jeśli aplikacja wstrzymała odtwarzanie dźwięku lub pętlę gry, jest to idealne miejsce na wznowienie jej.

Czyszczenie reklam pełnoekranowych

Gdy zakończysz korzystanie z elementu InterstitialAd, pamiętaj, aby wywołać metodę Destroy(), zanim odwołasz się do niego:

interstitial.Destroy();

Informuje to wtyczkę, że obiekt nie jest już używany i można go odzyskać w pamięci. Jeśli nie wywołasz tej metody, może nastąpić wyciek pamięci.

Sprawdzone metody

Zastanów się, czy reklamy pełnoekranowe są odpowiednie do Twojej aplikacji.
Reklamy pełnoekranowe najlepiej sprawdzają się w aplikacjach z naturalnymi punktami przejścia. Może to być na przykład zakończenie zadania w aplikacji, np. udostępnienie obrazu lub ukończenie poziomu w grze. Użytkownik spodziewa się przerwy w działaniu, dlatego może łatwo zaprezentować reklamę pełnoekranową bez zakłócania jej działania. Zastanów się, w których miejscach w aplikacji będziesz wyświetlać reklamy pełnoekranowe i jakie będą reakcje użytkowników.
Pamiętaj, by wstrzymać działanie reklamy pełnoekranowej.
Jest wiele różnych typów reklam pełnoekranowych: tekstowych, graficznych, wideo i innych. Pamiętaj, że gdy aplikacja wyświetla reklamę pełnoekranową, musi ona zawiesić użycie pewnych zasobów, aby reklama mogła je wykorzystać. Jeśli na przykład wywołujesz reklamę pełnoekranową, pamiętaj, by wstrzymać odtwarzanie dźwięku generowanego przez aplikację. Wznowimy odtwarzanie dźwięków w module obsługi zdarzeń onAdClosed(), który zostanie wywołany, gdy użytkownik wejdzie w interakcję z reklamą. Warto też tymczasowo zatrzymać intensywne zadania obliczeniowe (np. zapętlanie się w trakcie gry), które będą się wyświetlać. Dzięki temu użytkownik nie zobaczy grafiki, która zacina się, jest powolna lub nie reaguje.
Zapewnij wystarczający czas wczytywania.
Ważne jest, aby wyświetlać reklamy pełnoekranowe w odpowiednim momencie, tak aby użytkownik nie musiał czekać, aż się załaduje. Wczytanie reklamy z wyprzedzeniem przez wywoływanie funkcji loadAd() przed wywołaniem funkcji show() może zapewnić, że w pełni wyświetli się w pełni reklama pełnoekranowa w aplikacji, gdy nadejdzie czas, aby ją wyświetlić.
Nie zapełniaj reklamy reklamami.
Zwiększenie liczby reklam pełnoekranowych w aplikacji może wydawać się świetnym sposobem na zwiększenie przychodów, ale może też pogorszyć wygodę użytkowników i obniżyć współczynniki klikalności. Dopilnuj, aby użytkownicy nie zakłócali działania aplikacji tak często, że nie mogli już jej używać.

Dodatkowe materiały

Przykłady

Historie sukcesu