Reklamy pełnoekranowe zajmują interfejs aplikacji hosta. Zwykle wyświetlają się w naturalnych momentach przejściowych podczas działania aplikacji, np. podczas przerwy między poziomami gry. Gdy aplikacja wyświetla reklamę pełnoekranową, użytkownik może ją kliknąć, przejść do miejsca docelowego lub zamknąć aplikację, po czym do niej wróci. Studium przypadku.
Ten przewodnik wyjaśnia, jak zintegrować reklamy pełnoekranowe z aplikacją na Unity.
Wymagania wstępne
- Wykonaj czynności opisane w przewodniku dla początkujących.
Zawsze testuj z reklamami testowymi
Przykładowy kod poniżej zawiera identyfikator jednostki reklamowej, za pomocą którego możesz wysyłać żądania reklam testowych. Został on specjalnie skonfigurowany tak, aby w przypadku każdego żądania zwracać reklamy testowe zamiast wersji produkcyjnej, dzięki czemu można z niego korzystać.
Gdy jednak zarejestrujesz aplikację w interfejsie internetowymAdMob i utworzysz własne identyfikatory jednostek reklamowych do wykorzystania w aplikacji, podczas jej tworzenia skonfiguruj urządzenie jako urządzenie testowe.
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
Najważniejsze czynności, które musisz wykonać, aby zintegrować reklamy pełnoekranowe:
- Wczytaj reklamę pełnoekranową
- Wyświetlanie reklamy pełnoekranowej
- Odsłuchiwanie zdarzeń reklam pełnoekranowych
- Uporządkuj reklamę pełnoekranową
- Wstępnie wczytuj następną reklamę pełnoekranową
Wczytaj reklamę pełnoekranową
Reklamę pełnoekranową można wczytać za pomocą statycznej metody Load()
w klasie InterstitialAd
. Metoda wczytywania wymaga identyfikatora jednostki reklamowej, obiektu AdRequest
i modułu obsługi ukończenia, który jest wywoływany w przypadku powodzenia lub niepowodzenia wczytywania reklamy. Wczytywany obiekt InterstitialAd
jest dostarczany jako parametr w module obsługi realizacji. Poniższy przykład pokazuje, jak wczytać 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;
/// <summary>
/// Loads the interstitial ad.
/// </summary>
public void LoadLoadInterstitialAd()
{
// 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();
// 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świetlanie reklamy pełnoekranowej
Aby wyświetlić wczytaną reklamę pełnoekranową, wywołaj w wystąpieniu InterstitialAd
metodę Show()
. Reklamy mogą wyświetlać się raz
na każde wczytanie. Użyj metody CanShowAd()
, by sprawdzić, czy reklama jest gotowa do wyświetlania.
/// <summary>
/// Shows the interstitial ad.
/// </summary>
public void ShowInterstitialAd()
{
if (_interstitialAd != null && _interstitialAd.CanShowAd())
{
Debug.Log("Showing interstitial ad.");
_interstitialAd.Show();
}
else
{
Debug.LogError("Interstitial ad is not ready yet.");
}
}
Odsłuchiwanie zdarzeń reklam pełnoekranowych
Aby jeszcze bardziej dostosować działanie reklamy, możesz uwzględnić szereg zdarzeń w jej cyklu życia. Aby nasłuchiwać tych zdarzeń, zarejestruj przedstawiciela w sposób pokazany poniżej.
private void RegisterEventHandlers(InterstitialAd interstitialAd)
{
// Raised when the ad is estimated to have earned money.
interstitialAd.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.
interstitialAd.OnAdImpressionRecorded += () =>
{
Debug.Log("Interstitial ad recorded an impression.");
};
// Raised when a click is recorded for an ad.
interstitialAd.OnAdClicked += () =>
{
Debug.Log("Interstitial ad was clicked.");
};
// Raised when an ad opened full screen content.
interstitialAd.OnAdFullScreenContentOpened += () =>
{
Debug.Log("Interstitial ad full screen content opened.");
};
// Raised when the ad closed full screen content.
interstitialAd.OnAdFullScreenContentClosed += () =>
{
Debug.Log("Interstitial ad full screen content closed.");
};
// Raised when the ad failed to open full screen content.
interstitialAd.OnAdFullScreenContentFailed += (AdError error) =>
{
Debug.LogError("Interstitial ad failed to open full screen content " +
"with error : " + error);
};
}
Uporządkuj reklamę pełnoekranową
Po zakończeniu pracy z obiektem InterstitialAd
pamiętaj, aby wywołać metodę Destroy()
, zanim przeniesiesz do niej odwołanie:
_interstitialAd.Destroy();
Informuje to wtyczkę, że obiekt nie jest już używany, a zajmowaną przez niego pamięć można odzyskać. Nieudane wywołanie tej metody powoduje wyciek pamięci.
Wstępnie wczytuj następną reklamę pełnoekranową
Reklamy pełnoekranowe są obiektami jednorazowymi. Oznacza to, że po wyświetleniu reklamy pełnoekranowej obiektu nie można użyć ponownie. Aby wysłać żądanie kolejnej reklamy pełnoekranowej, utwórz nowy obiekt InterstitialAd
.
Aby przygotować reklamę pełnoekranową do następnego wyświetlenia, załaduj wstępnie reklamę pełnoekranową po wystąpieniu zdarzenia reklamowego OnAdFullScreenContentClosed
lub OnAdFullScreenContentFailed
.
private void RegisterReloadHandler(InterstitialAd interstitialAd)
{
// Raised when the ad closed full screen content.
interstitialAd.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.
interstitialAd.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
- Ustal, czy reklamy pełnoekranowe to odpowiedni typ reklamy dla Twojej aplikacji.
- Reklamy pełnoekranowe działają najlepiej w aplikacjach z naturalnymi momentami przejścia. Zakończenie zadania w aplikacji, np. udostępnienie obrazu lub ukończenie poziomu w grze, stanowi taki punkt. Zastanów się, w których momentach aplikacji najlepiej wyświetlać reklamy pełnoekranowe i jaka jest reakcja użytkownika.
- Wstrzymaj działanie podczas wyświetlania reklamy pełnoekranowej.
- Jest wiele różnych typów reklam pełnoekranowych, takich jak reklamy tekstowe, graficzne i wideo. Ważne jest, aby aplikacja, która wyświetla reklamę pełnoekranową, zawieszała też wykorzystanie pewnych zasobów, by umożliwić reklamom ich wykorzystanie. Jeśli na przykład wywołujesz reklamę pełnoekranową, wstrzymaj wszystkie dane audio generowane przez aplikację.
Możesz wznowić odtwarzanie dźwięków w zdarzeniu
OnAdFullScreenContentClosed()
, które może być wywoływane, gdy użytkownik zakończy interakcję z reklamą. Rozważ też tymczasowe wstrzymanie wszystkich intensywnych zadań obliczeniowych, takich jak pętla gry, na czas wyświetlania reklamy. Dzięki temu unikniesz problemów z grafiką i zacinaniem się, powolną lub niereagującą przerwami w działaniu filmu. - 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 musieli przerywać pracy tak często, aby nie mogli już korzystać z aplikacji.
Dodatkowe materiały
- Przykład HelloWorld: Minimalna implementacja wszystkich formatów reklam.