Wyświetlenia banerów to prostokątne reklamy graficzne lub tekstowe, które zajmują miejsce na ekranie. Pozostają na ekranie, gdy użytkownicy wchodzą w interakcję z aplikacją, i mogą być automatycznie odświeżane po upływie określonego czasu. Jeśli dopiero zaczynasz przygodę z reklamami mobilnymi, warto zacząć od nich. Studium przypadku.
Z tego przewodnika dowiesz się, jak zintegrować wyświetlenia banerów w aplikacji Unity. Oprócz fragmentów kodu i instrukcji zawiera on też informacje o prawidłowym dobieraniu rozmiarów banerów oraz linki do dodatkowych materiałów.
Wymagania wstępne
- Zapoznaj się z przewodnikiem dla początkujących.
Zawsze testuj reklamy za pomocą reklam testowych
Podany niżej przykładowy kod zawiera identyfikator jednostki reklamowej, którego możesz użyć do żądania reklam testowych. Jest on specjalnie skonfigurowany tak, aby zwracać reklamy testowe, a nie reklamy produkcyjne w przypadku każdego żądania, co czyni go bezpiecznym w użyciu.
Po zarejestrowaniu aplikacji w interfejsie internetowym AdMob i utworzeniu własnych identyfikatorów jednostek reklamowych na potrzeby aplikacji musisz jednak podczas jej tworzenia wyraźnie skonfigurować urządzenie jako urządzenie testowe.
Android
ca-app-pub-3940256099942544/6300978111
iOS
ca-app-pub-3940256099942544/2934735716
Inicjowanie pakietu SDK do reklam mobilnych
Przed wczytaniem reklam zainicjuj pakiet SDK do reklam mobilnych w aplikacji, wywołując funkcję MobileAds.Initialize()
. Wystarczy to zrobić tylko raz, najlepiej podczas uruchamiania 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 zaczekaj na wywołanie zwrotne, aby mieć pewność, że wszystkie adaptery zapośredniczenia są zainicjowane.
Przykład banera
Przykładowy kod poniżej zawiera szczegółowe informacje o używaniu widoku banera. W tym przykładzie tworzysz instancję widoku banera, używasz funkcji AdRequest
, aby wczytać reklamę do widoku banera, a potem rozszerzasz jego możliwości, obsługując zdarzenia cyklu życia.
Tworzenie widoku banera
Pierwszym krokiem w używaniu widoku banera jest utworzenie jego wystąpienia w skrypcie C# dołączonym do GameObject
.
// These ad units are configured to always serve test ads.
#if UNITY_ANDROID
private string _adUnitId = "ca-app-pub-3940256099942544/6300978111";
#elif UNITY_IPHONE
private string _adUnitId = "ca-app-pub-3940256099942544/2934735716";
#else
private string _adUnitId = "unused";
#endif
BannerView _bannerView;
/// <summary>
/// Creates a 320x50 banner view at top of the screen.
/// </summary>
public void CreateBannerView()
{
Debug.Log("Creating banner view");
// If we already have a banner, destroy the old one.
if (_bannerView != null)
{
DestroyAd();
}
// Create a 320x50 banner at top of the screen
_bannerView = new BannerView(_adUnitId, AdSize.Banner, AdPosition.Top);
}
Konstruktor obiektu BannerView
ma te parametry:
adUnitId
: identyfikator jednostki reklamowej, z którejBannerView
ma wczytywać reklamy.AdSize
: rozmiar reklamy, którego chcesz użyć. Więcej informacji znajdziesz w artykule Rozmiary banerów.AdPosition
: pozycja, na której powinny się wyświetlać wyświetlenia banera. WyliczeniowaAdPosition
zawiera listę prawidłowych wartości pozycji reklamy.
Zwróć uwagę, jak różne jednostki reklamowe są używane w zależności od platformy. Do wysyłania żądań reklam na iOS musisz użyć jednostki reklamowej na iOS, a do wysyłania żądań na Androida – jednostki reklamowej na Androida.
(Opcjonalnie) Tworzenie widoku banera z niestandardową pozycją
Aby uzyskać większą kontrolę nad tym, gdzie BannerView
jest umieszczany na ekranie, niż to oferują wartości AdPosition
, użyj konstruktora, który ma współrzędne x i y jako parametry:
// Create a 320x50 banner views at coordinate (0,50) on screen.
_bannerView = new BannerView(_adUnitId, AdSize.Banner, 0, 50);
Lewy górny róg elementu BannerView
jest umieszczony w punktach x i y przekazanych konstruktorowi, gdzie punkt początkowy znajduje się w lewym górnym rogu ekranu.
(Opcjonalnie) Tworzenie widoku banera o niestandardowym rozmiarze
Oprócz stałej wartości AdSize
możesz też określić niestandardowy rozmiar reklamy:
// Use the AdSize argument to set a custom size for the ad.
AdSize adSize = new AdSize(250, 250);
_bannerView = new BannerView(_adUnitId, adSize, AdPosition.Bottom);
Ładowanie banera reklamowego
Aby wczytać reklamę, utwórz obiekt AdRequest
i przekaż go do metody LoadAd()
.
/// <summary>
/// Creates the banner view and loads a banner ad.
/// </summary>
public void LoadAd()
{
// create an instance of a banner view first.
if(_bannerView == null)
{
CreateBannerView();
}
// create our request used to load the ad.
var adRequest = new AdRequest();
// send the request to load the ad.
Debug.Log("Loading banner ad.");
_bannerView.LoadAd(adRequest);
}
Nasłuchiwanie zdarzeń wyświetlenia banera
Aby dostosować działanie reklamy, możesz podłączyć ją do wielu zdarzeń w cyklu życia reklamy, np. wczytywania, otwierania lub zamykania. Aby odbierać te zdarzenia, zarejestruj delegata:
/// <summary>
/// listen to events the banner view may raise.
/// </summary>
private void ListenToAdEvents()
{
// Raised when an ad is loaded into the banner view.
_bannerView.OnBannerAdLoaded += () =>
{
Debug.Log("Banner view loaded an ad with response : "
+ _bannerView.GetResponseInfo());
};
// Raised when an ad fails to load into the banner view.
_bannerView.OnBannerAdLoadFailed += (LoadAdError error) =>
{
Debug.LogError("Banner view failed to load an ad with error : "
+ error);
};
// Raised when the ad is estimated to have earned money.
_bannerView.OnAdPaid += (AdValue adValue) =>
{
Debug.Log(String.Format("Banner view paid {0} {1}.",
adValue.Value,
adValue.CurrencyCode));
};
// Raised when an impression is recorded for an ad.
_bannerView.OnAdImpressionRecorded += () =>
{
Debug.Log("Banner view recorded an impression.");
};
// Raised when a click is recorded for an ad.
_bannerView.OnAdClicked += () =>
{
Debug.Log("Banner view was clicked.");
};
// Raised when an ad opened full screen content.
_bannerView.OnAdFullScreenContentOpened += () =>
{
Debug.Log("Banner view full screen content opened.");
};
// Raised when the ad closed full screen content.
_bannerView.OnAdFullScreenContentClosed += () =>
{
Debug.Log("Banner view full screen content closed.");
};
}
Zniszcz widok banera
Po zakończeniu korzystania z widoku banera zadzwoń pod numer Destroy()
, aby zwolnić zasoby.
/// <summary>
/// Destroys the banner view.
/// </summary>
public void DestroyAd()
{
if (_bannerView != null)
{
Debug.Log("Destroying banner view.");
_bannerView.Destroy();
_bannerView = null;
}
}
Znakomicie. Twoja aplikacja jest teraz gotowa do wyświetlania reklam typu baner.
Odświeżanie reklamy
Jeśli jednostka reklamowa jest skonfigurowana tak, aby się odświeżać, nie musisz prosić o wyświetlenie kolejnej reklamy, gdy nie uda się jej załadować. Pakiet SDK do reklam mobilnych Google uwzględnia częstotliwość odświeżania określoną w interfejsie AdMob. Jeśli nie masz włączonego odświeżania, prześlij nowe żądanie. Więcej informacji o odświeżaniu jednostek reklamowych, np. o ustalaniu częstotliwości odświeżania, znajdziesz w artykule Używanie opcji automatycznego odświeżania w przypadku banerów reklamowych.
Rozmiary banerów
Tabela poniżej zawiera standardowe rozmiary banerów.
Rozmiar w dp (szer. x wys.) | Opis | Dostępność | stała AdSize |
---|---|---|---|
320 x 50 | Standardowy baner | Telefony i tablety | BANNER |
320 x 100 | Duży baner | Telefony i tablety | LARGE_BANNER |
300 x 250 | Średni prostokąt IAB | Telefony i tablety | MEDIUM_RECTANGLE |
468 x 60 | Baner pełnowymiarowy IAB | Tablety | FULL_BANNER |
728 x 90 | Tabela wyników IAB | Tablety | LEADERBOARD |
Podana szerokość x wysokość dostosowująca się do treści | Baner adaptacyjny | Telefony i tablety | Nie dotyczy |
Szerokość ekranu x 32|50|90 | Inteligentny baner | Telefony i tablety | SMART_BANNER |
Dowiedz się więcej o banerach adaptacyjnych, które mają zastąpić inteligentne banery. |
Dodatkowe materiały
- Przykład HelloWorld: minimalna implementacja wszystkich formatów reklam.