Reklamy pełnoekranowe (starsza wersja)

Reklamy pełnoekranowe zakrywają interfejs aplikacji, w której się wyświetlają. 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ąć i wrócić do aplikacji. Przykład.

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

Wymagania wstępne

Tworzenie reklamy pełnoekranowej

Pierwszym krokiem do wyświetlenia reklamy pośredniej jest utworzenie obiektu InterstitialAd w skrypcie dołączonym do elementu 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 klasy InterstitialAd ma następujący parametr:

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

Pamiętaj, że różne jednostki reklamowe są używane w zależności od platformy. Aby wysyłać żądania reklam na iOS, musisz użyć jednostki reklamowej na iOS, a aby wysyłać żądania na Androida – jednostki reklamowej na Androida.

Zawsze testuj reklamy za pomocą reklam testowych

Podany powyżej przykładowy kod zawiera identyfikator jednostki reklamowej, za pomocą którego możesz żądać reklam. Został on specjalnie skonfigurowany tak, aby w przypadku każdego żądania zwracać reklamy testowe, a nie produkcyjne, co czyni go bezpiecznym w użyciu.

Gdy jednak zarejestrujesz aplikację w interfejsie AdMob i utworzysz własne identyfikatory jednostek reklamowych na potrzeby aplikacji, podczas jej tworzenia musisz wyraźnie skonfigurować urządzenie jako urządzenie testowe. To bardzo ważne. Testowanie za pomocą prawdziwych reklam (nawet jeśli nigdy ich nie klikasz) jest niezgodne z zasadami AdMob i może spowodować zawieszenie konta. Więcej informacji o tym, jak zawsze mieć dostęp do reklam testowych podczas tworzenia aplikacji, znajdziesz w artykule Reklamy testowe.

Wczytywanie reklamy

Po uruchomieniu InterstitialAd kolejnym krokiem jest wczytanie reklamy. W tym celu użyj metody loadAd() w klasie InterstitialAd. Przyjmuje on argument AdRequest, który zawiera informacje o jednym żądaniu reklamy (np. informacje o kierowaniu).

Oto przykładowy sposób wczytywania reklamy:

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 być wyświetlane podczas naturalnych przerw w używaniu aplikacji. Dobrym przykładem jest przerwa między poziomami w grze lub po wykonaniu zadania przez użytkownika. Aby wyświetlić stronę pośrednią, użyj metody isLoaded(), aby sprawdzić, czy została załadowana, a następnie wywołaj metodę show().

Reklama pełnoekranowa z poprzedniego przykładu kodu może wyświetlać się 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 podłączyć do niej wiele zdarzeń z cyklu życia reklamy, np. wczytywanie, otwieranie, zamykanie itp. Aby odbierać te zdarzenia, zarejestruj delegata dla odpowiedniego 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 specjalnego zdarzenia. Przekazuje wystąpienie klasy HandleAdFailedToLoadEventArgs z wartością 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 udaje się wczytać reklamy. Parametr Message opisuje rodzaj błędu, który wystąpił.
OnAdOpening Ta metoda jest wywoływana, gdy reklama jest wyświetlana, zasłaniając ekran urządzenia.
OnAdClosed Ta metoda jest wywoływana, gdy reklama wyskakująca zostanie zamknięta przez użytkownika, który kliknie ikonę zamknięcia lub użyje przycisku Wstecz. Jeśli aplikacja wstrzymała wyjście dźwięku lub pętlę gry, możesz je wznowić w tym miejscu.

Usuwanie reklam pełnoekranowych

Po zakończeniu korzystania z elementu InterstitialAd wywołaj metodę Destroy(), zanim odniesiesz się do niej:

interstitial.Destroy();

To powiadamia wtyczkę, że obiekt nie jest już używany i że można odzyskać zajmowaną przez niego pamięć. Niewywołanie tej metody powoduje wycieki pamięci.

Sprawdzone metody

Zastanów się, czy reklamy pełnoekranowe są odpowiednim typem reklamy dla Twojej aplikacji.
Reklamy pełnoekranowe sprawdzają się najlepiej w aplikacjach, w których występują naturalne momenty przejściowe. Taki punkt może powstać na przykład po zakończeniu zadania w aplikacji, takiego jak udostępnienie zdjęcia lub ukończenie poziomu gry. Użytkownik spodziewa się przerwy w działaniu, więc łatwo jest wyświetlić reklamę pełnoekranową bez zakłócania jego doświadczeń. Zastanów się, w jakich momentach w przebiegu działania aplikacji będą się wyświetlać reklamy pełnoekranowe i jak użytkownik zareaguje na ich wyświetlenie.
Pamiętaj, aby wstrzymać działanie podczas wyświetlania reklamy pełnoekranowej.
Dostępne są różne typy reklam pełnoekranowych: tekstowe, graficzne, wideo i inne. Pamiętaj, aby podczas wyświetlania przez aplikację reklamy interaktywnej zawiesić korzystanie z niektórychś zasobów, aby umożliwić reklamie ich wykorzystanie. Jeśli na przykład wywołasz wyświetlanie reklamy pełnoekranowej, zatrzymaj wszelkie dźwięki generowane przez aplikację. Możesz wznowić odtwarzanie dźwięku w obiekcie onAdClosed(), który zostanie wywołany, gdy użytkownik zakończy interakcję z reklamą. Dodatkowo rozważ tymczasowe wstrzymanie intensywnych zadań obliczeniowych (takich jak pętla gry) podczas wyświetlania reklamy. Dzięki temu użytkownik nie będzie mieć problemów z wolno działającymi lub niereagującymi elementami graficznymi ani zacinającym się filmem.
Dostatecznie dużo czasu na wczytanie.
Podobnie jak w przypadku reklam pełnoekranowych ważne jest nie tylko wyświetlanie ich w odpowiednim momencie, ale też zapewnienie użytkownikowi możliwości wczytania reklamy bez oczekiwania. Wczytanie reklamy z wyprzedzeniem przez wywołanie loadAd() przed wywołaniem loadAd() może zapewnić, że gdy nadejdzie czas wyświetlenia reklamy pełnoekranowej, będzie ona w pełni wczytana w aplikacji.
show()
Nie zalewaj użytkownika reklamami.
Chociaż zwiększanie częstotliwości wyświetlania reklam pełnekranowych w aplikacji może wydawać się świetnym sposobem na zwiększenie przychodów, może też pogorszyć wrażenia użytkownika i obniżyć współczynnik klikalności. Zadbaj o to, aby użytkownicy nie byli zbyt często przerywane, ponieważ uniemożliwia im to korzystanie z aplikacji.

Dodatkowe materiały

Przykłady

Historie sukcesu