Reklamy pełnoekranowe zasłaniają interfejs aplikacji hostującej aplikację. Zwykle pojawiają 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ąć 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
- Przeczytaj wprowadzenie.
Zawsze korzystaj z reklam testowych
Przykładowy kod zawiera identyfikator jednostki reklamowej, której możesz użyć do żądania reklam testowych. Został on tak skonfigurowany, by zwracać wszystkie reklamy testowe zamiast na wersję produkcyjną, dzięki czemu można ich bezpiecznie używać.
Kiedy jednak zarejestrujesz aplikację w interfejsie AdMob i utworzysz własne identyfikatory jednostek reklamowych, musisz skonfigurować urządzenie jako urządzenie testowe podczas tworzenia.
Android
ca-app-pub-3940256099942544/1033173712
iOS
ca-app-pub-3940256099942544/4411468910
Zainicjuj pakiet SDK do reklam mobilnych
Przed wczytaniem reklam poproś aplikację o zainicjowanie pakietu SDK do reklam mobilnych, wywołując interfejs MobileAds.Initialize()
. Wystarczy to zrobić tylko raz, najlepiej przy uruchamianiu aplikacji.
using GoogleMobileAds;
using GoogleMobileAds.Api;
public class GoogleMobileAdsDemoScript : MonoBehaviour
{
public void Start()
{
// Initialize the Google Mobile Ads SDK.
MobileAds.Initialize((InitializationStatus initStatus) =>
{
// This callback is called once the MobileAds SDK is initialized.
});
}
}
Jeśli korzystasz z zapośredniczenia, przed wczytaniem reklam poczekaj, aż wywołanie zwrotne zostanie wykonane, ponieważ dzięki temu wszystkie adaptery zapośredniczenia zostaną zainicjowane.
Implementacja
Główne kroki integracji reklam pełnoekranowych:
- Wczytywanie reklamy pełnoekranowej
- Wyświetlaj reklamę pełnoekranową
- Odsłuchiwanie zdarzeń dotyczących reklam pełnoekranowych
- Czyszczenie reklamy pełnoekranowej
- Wstępnie wczytuj następną reklamę pełnoekranową
Wczytywanie reklamy pełnoekranowej
Aby wczytać reklamę pełnoekranową, użyj statycznej metody Load()
w klasie InterstitialAd
. Metoda wczytywania wymaga identyfikatora jednostki reklamowej, obiektu AdRequest
i modułu realizacji, który jest wywoływany, gdy ładowanie reklamy się powiedzie. Wczytany obiekt InterstitialAd
jest podany jako parametr w module obsługi ukończenia. Przykład poniżej pokazuje, jak wczytać element InterstitialAd
.
// These ad units are configured to always serve test ads.
#if UNITY_ANDROID
private string _adUnitId = "ca-app-pub-3940256099942544/1033173712";
#elif UNITY_IPHONE
private string _adUnitId = "ca-app-pub-3940256099942544/4411468910";
#else
private string _adUnitId = "unused";
#endif
private InterstitialAd interstitialAd;
/// <summary>
/// Loads the interstitial ad.
/// </summary>
public void LoadInterstitialAd()
{
// Clean up the old ad before loading a new one.
if (interstitialAd != null)
{
interstitialAd.Destroy();
interstitialAd = null;
}
Debug.Log("Loading the interstitial ad.");
// create our request used to load the ad.
var adRequest = new AdRequest();
adRequest.Keywords.Add("unity-admob-sample");
// send the request to load the ad.
InterstitialAd.Load(_adUnitId, adRequest,
(InterstitialAd ad, LoadAdError error) =>
{
// if error is not null, the load request failed.
if (error != null || ad == null)
{
Debug.LogError("interstitial ad failed to load an ad " +
"with error : " + error);
return;
}
Debug.Log("Interstitial ad loaded with response : "
+ ad.GetResponseInfo());
interstitialAd = ad;
});
}
Wyświetlaj reklamę pełnoekranową
Aby wyświetlić wczytaną reklamę pełnoekranową, wywołaj metodę Show()
w instancji InterstitialAd
. Reklamy mogą być wyświetlane raz na wczytanie. Użyj metody CanShowAd()
, aby sprawdzić, czy reklama jest gotowa do wyświetlenia.
/// <summary>
/// Shows the interstitial ad.
/// </summary>
public void ShowAd()
{
if (interstitialAd != null && interstitialAd.CanShowAd())
{
Debug.Log("Showing interstitial ad.");
interstitialAd.Show();
}
else
{
Debug.LogError("Interstitial ad is not ready yet.");
}
}
Odsłuchiwanie zdarzeń dotyczących reklam pełnoekranowych
Aby jeszcze bardziej dostosować sposób działania reklamy, możesz dołączyć do niej szereg zdarzeń w trakcie jej cyklu życia: otwarcie, zamknięcie itd. Aby nasłuchiwać tych zdarzeń, zarejestruj przedstawiciela, jak pokazano poniżej.
private void RegisterEventHandlers(InterstitialAd ad)
{
// Raised when the ad is estimated to have earned money.
ad.OnAdPaid += (AdValue adValue) =>
{
Debug.Log(String.Format("Interstitial ad paid {0} {1}.",
adValue.Value,
adValue.CurrencyCode));
};
// Raised when an impression is recorded for an ad.
ad.OnAdImpressionRecorded += () =>
{
Debug.Log("Interstitial ad recorded an impression.");
};
// Raised when a click is recorded for an ad.
ad.OnAdClicked += () =>
{
Debug.Log("Interstitial ad was clicked.");
};
// Raised when an ad opened full screen content.
ad.OnAdFullScreenContentOpened += () =>
{
Debug.Log("Interstitial ad full screen content opened.");
};
// Raised when the ad closed full screen content.
ad.OnAdFullScreenContentClosed += () =>
{
Debug.Log("Interstitial ad full screen content closed.");
};
// Raised when the ad failed to open full screen content.
ad.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("Interstitial ad failed to open full screen content " +
"with error : " + error);
};
}
Czyszczenie reklamy pełnoekranowej
Gdy skończysz używać InterstitialAd
, pamiętaj, by wywołać metodę Destroy()
, zanim usuniesz do niej odwołanie:
interstitialAd.Destroy();
Informuje on wtyczkę, że obiekt nie jest już używany, a pamięć, która je zawiera, może zostać odzyskana. Jeśli nie wywołasz tej metody, spowoduje to wyciek pamięci.
Wstępnie wczytuj następną reklamę pełnoekranową
Reklamy pełnoekranowe są obiektu jednorazowego. Oznacza to, że po wyświetleniu reklamy pełnoekranowej nie można użyć jej ponownie. Aby wysłać kolejną reklamę pełnoekranową, musisz utworzyć nowy obiekt InterstitialAd
.
Aby przygotować reklamę pełnoekranową na potrzeby kolejnej wyświetlenia, załaduj wstępnie reklamę pełnoekranową po wywołaniu zdarzenia OnAdFullScreenContentClosed
lub OnAdFullScreenContentFailed
.
private void RegisterReloadHandler(InterstitialAd ad)
{
// Raised when the ad closed full screen content.
ad.OnAdFullScreenContentClosed += ()
{
Debug.Log("Interstitial Ad full screen content closed.");
// Reload the ad so that we can show another as soon as possible.
LoadInterstitialAd();
};
// Raised when the ad failed to open full screen content.
ad.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("Interstitial ad failed to open full screen content " +
"with error : " + error);
// Reload the ad so that we can show another as soon as possible.
LoadInterstitialAd();
};
}
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. Może to być na przykład zakończenie zadania w aplikacji, na przykład udostępnienie zdjęcia czy ukończenie poziomu gry. 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 w zdarzeniu
OnAdFullScreenContentClosed()
, które jest wywoływane, 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. Zapobiegnie to sytuacji, w której użytkownik nie zobaczyłby spowolnionej lub niereagującej grafiki bądź zacinających się filmów. - Nie zabijaj użytkowników reklamami.
- Zwiększenie częstotliwości wyświetlania 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 zmniejszyć współczynniki klikalności. Zadbaj o to, żeby użytkownicy nie zakłócali działania aplikacji zbyt często – przestają oni mieć możliwość korzystania z Twojej aplikacji.
Dodatkowe materiały
Sample
- Przykład aplikacji HelloWorld: minimalna implementacja wszystkich formatów reklam.