Reklamy pełnoekranowe (starsza wersja)

Reklamy pełnoekranowe zakrywają interfejs aplikacji, w której się wyświetlają. Zwykle wyświetlają się 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ąć, przejść do strony docelowej lub ją zamknąć, a potem wrócić do aplikacji. Studium przypadku.

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

Wymagania wstępne

Tworzenie reklamy pełnoekranowej

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

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 InterstitialAd ma taki parametr:

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

Warto wiedzieć, jak używane są różne jednostki reklamowe w zależności od platformy. Musisz używać jednostki reklamowej na iOS do wysyłania żądań reklamy w iOS i jednostki reklamowej na Androida do wysyłania żądań w Androidzie.

Zawsze korzystaj z reklam testowych

Przykładowy kod powyżej zawiera identyfikator jednostki reklamowej, za pomocą którego możesz wysyłać żądania reklam. Został on specjalnie skonfigurowany w taki sposób, aby w przypadku każdego żądania zwracać reklamy testowe zamiast reklam produkcyjnych, dzięki czemu można z niego korzystać.

Gdy jednak zarejestrujesz aplikację w interfejsie AdMob i utworzysz własne identyfikatory jednostek reklamowych, których będziesz używać w aplikacji, na etapie projektowania musisz wyraźnie skonfigurować swoje urządzenie jako urządzenie testowe. To bardzo ważne. Testowanie z użyciem prawdziwych reklam (nawet jeśli nigdy ich nie klikasz) jest niezgodne z zasadami AdMob i może spowodować zawieszenie konta. W sekcji Reklamy testowe znajdziesz informacje, dzięki którym zawsze będziesz mieć możliwość wyświetlania reklam testowych podczas programowania.

Wczytaj reklamę

Po utworzeniu instancji InterstitialAd następnym krokiem jest wczytanie reklamy. Należy to zrobić za pomocą metody loadAd() w klasie InterstitialAd. Wykorzystuje argument AdRequest, który zawiera informacje o czasie działania (np. informacje o kierowaniu) dotyczące pojedynczego żądania 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świetl reklamę

Reklamy pełnoekranowe powinny wyświetlać się podczas naturalnych przerw w korzystaniu z aplikacji. Dobrym przykładem są przejścia między poziomami gry lub po wykonaniu przez użytkownika zadania. Aby wyświetlić reklamę pełnoekranową, użyj metody isLoaded(), aby sprawdzić, czy wczytywanie zostało ukończone, a potem wywołaj show().

Reklama pełnoekranowa z poprzedniego przykładowego kodu może się wyświetlać na końcu gry, jak pokazano poniżej.

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

Zdarzenia reklamowe

Aby jeszcze bardziej dostosować działanie reklamy, możesz uwzględnić szereg zdarzeń w jej cyklu życia: ładowanie, otwieranie, zamykanie itd. Nasłuchuj tych zdarzeń, rejestrując przedstawiciela na potrzeby 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 specjalne. Przekazuje wystąpienie elementu HandleAdFailedToLoadEventArgs z atrybutem Message opisującym błąd:

public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
    print("Interstitial failed to load: " + args.Message);
    // Handle the ad failed to load event.
}
Zdarzenie dotyczące reklamyOpis
OnAdLoaded Zdarzenie OnAdLoaded jest wykonywane po zakończeniu wczytywania reklamy.
OnAdFailedToLoad Zdarzenie OnAdFailedToLoad jest wywoływane, gdy nie uda się wczytać reklamy. Parametr Message opisuje typ błędu, który wystąpił.
OnAdOpening Metoda jest wywoływana po wyświetleniu reklamy, która zasłania ekran urządzenia.
OnAdClosed Ta metoda jest wywoływana po zamknięciu reklamy pełnoekranowej przez użytkownika, który kliknie ikonę zamknięcia lub przycisk Wstecz. Jeśli Twoja aplikacja wstrzymała wyjście audio lub pętlę gry, możesz ją wznowić w tym miejscu.

Czyszczenie reklam pełnoekranowych

Gdy skończysz korzystać z funkcji InterstitialAd, pamiętaj, aby wywołać metodę Destroy(), zanim umieścisz w niej odwołanie:

interstitial.Destroy();

Informuje to wtyczkę, że obiekt nie jest już używany, a zajmowaną przez niego pamięć można odzyskać. Jeśli ta metoda nie zostanie wywołana, dochodzi do wycieku pamięci.

Kilka sprawdzonych metod

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. Takie zakończenie stanowi zakończenie zadania w aplikacji, np. udostępnienie obrazu lub 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 interfejsu 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 generowanego przez aplikację. Możesz wznowić odtwarzanie dźwięków w module obsługi zdarzeń onAdClosed(), które jest wywoływane, gdy użytkownik zakończy interakcję z reklamą. Rozważ też tymczasowe wstrzymanie wszelkich skomplikowanych zadań obliczeniowych (takich jak pętla gry) na czas wyświetlania reklamy. Dzięki temu użytkownik nie będzie widzieć wolnej lub niereagującej grafiki ani 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. Wczytywanie reklamy z wyprzedzeniem za pomocą wywołania loadAd() przed wywołaniem metody show() sprawi, że w pełni wczytana reklama pełnoekranowa w aplikacji 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ć.

Dodatkowe materiały

Próbki

Historie sukcesu