Banneraufrufe sind rechteckige Bild- oder Textanzeigen, die einen bestimmten Platz auf dem Bildschirm einnehmen. Sie bleiben auf dem Bildschirm, während Nutzer mit der App interagieren, und können nach einer bestimmten Zeit automatisch aktualisiert werden. Wenn Sie noch keine Erfahrung mit mobiler Werbung haben, sind sie ein guter Ausgangspunkt.
In diesem Leitfaden erfahren Sie, wie Sie Banneransichten in eine Unity-App einbinden. Neben Code-Snippets und Anleitungen enthält er auch Informationen zur richtigen Größe von Bannern und Links zu zusätzlichen Ressourcen.
Vorbereitung
- Führen Sie die Schritte im Startleitfaden aus.
Verwenden Sie immer Testanzeigen
Der folgende Beispielcode enthält eine Anzeigenblock-ID, mit der Sie Testanzeigen anfordern können. Er wurde speziell so konfiguriert, dass bei jeder Anfrage Testanzeigen statt Produktionsanzeigen zurückgegeben werden.
Nachdem Sie jedoch eine App in der Ad Manager-Weboberfläche registriert und eigene Anzeigenblock-IDs für die Verwendung in Ihrer App erstellt haben, müssen Sie Ihr Gerät während der Entwicklung explizit als Testgerät konfigurieren.
/21775744923/example/adaptive-banner
Mobile Ads SDK initialisieren
Bevor Anzeigen geladen werden, muss Ihre App das Mobile Ads SDK initialisieren, indem MobileAds.Initialize()
aufgerufen wird. Dies muss nur einmal erfolgen, idealerweise beim Starten der App.
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.
});
}
}
Wenn Sie die Vermittlung verwenden, warten Sie, bis der Callback erfolgt, bevor Sie Anzeigen laden. So wird sichergestellt, dass alle Vermittlungsadapter initialisiert werden.
Beispiel für BannerView
Im folgenden Beispielcode wird die Verwendung der Banneransicht veranschaulicht. Im Beispiel erstellen Sie eine Instanz einer Banneranzeige, laden mit einer AdManagerAdRequest
eine Anzeige in die Banneranzeige und erweitern dann die Funktionen durch das Bearbeiten von Lebenszyklusereignissen.
Banneransicht erstellen
Der erste Schritt bei der Verwendung einer Banneranzeige besteht darin, in einem C#-Script, das mit einer GameObject
verknüpft ist, eine Instanz einer Banneranzeige zu erstellen.
// This ad unit is configured to always serve test ads.
private string _adUnitId = "/21775744923/example/adaptive-banner";
AdManagerBannerView _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 AdManagerBannerView(_adUnitId, AdSize.Banner, AdPosition.Top);
}
Der Konstruktor für eine AdManagerBannerView
hat die folgenden Parameter:
adUnitId
: Die Anzeigenblock-ID, von der ausAdManagerBannerView
Anzeigen laden soll.AdSize
: Die gewünschte Anzeigengröße. Weitere Informationen finden Sie unter Bannergrößen.AdPosition
: Die Position, an der die Banneransichten platziert werden sollen. Im EnumAdPosition
sind die gültigen Werte für die Anzeigenposition aufgeführt.
Beachten Sie, dass je nach Plattform unterschiedliche Anzeigenblöcke verwendet werden. Sie müssen einen iOS-Anzeigenblock für Anzeigenanfragen auf iOS-Geräten und einen Android-Anzeigenblock für Anfragen auf Android-Geräten verwenden.
Optional: Banneransicht mit benutzerdefinierter Position erstellen
Wenn Sie die Position von AdManagerBannerView
auf dem Bildschirm genauer festlegen möchten, als es mit AdPosition
-Werten möglich ist, verwenden Sie den Konstruktor mit X- und Y-Koordinaten als Parameter:
// Create a 320x50 banner views at coordinate (0,50) on screen.
_bannerView = new AdManagerBannerView(_adUnitId, AdSize.Banner, 0, 50);
Die linke obere Ecke von AdManagerBannerView
wird an den x- und y-Werten positioniert, die an den Konstruktor übergeben werden. Der Ursprung ist dabei links oben auf dem Bildschirm.
Optional: Banneransicht mit benutzerdefinierter Größe erstellen
Sie können neben einer AdSize
-Konstanten auch eine benutzerdefinierte Größe für Ihre Anzeige angeben:
// Use the AdSize argument to set a custom size for the ad.
AdSize adSize = new AdSize(250, 250);
_bannerView = new AdManagerBannerView(_adUnitId, adSize, AdPosition.Bottom);
(Optional) Mehrere Anzeigengrößen
In Ad Manager können Sie mehrere Anzeigengrößen angeben, die in einer AdManagerBannerView
ausgeliefert werden können. Bevor Sie diese Funktion im SDK implementieren, erstellen Sie eine Werbebuchung, die auf dieselben Anzeigenblöcke ausgerichtet ist, die mit Creatives unterschiedlicher Größe verknüpft sind.
Übergeben Sie in Ihrer App mehrere AdSize
-Parameter an ValidAdSizes
:
var adView = new AdManagerBannerView(_adUnitId, AdSize.Banner, AdPosition.Top);
adView.ValidAdSizes = new List<AdSize>
{
AdSize.Banner, new AdSize(120, 20), new AdSize(250, 250),
};
Wenn AdManagerAdView
beim Aktualisieren seine Größe ändert, sollte sich Ihr Layout automatisch an die neue Größe anpassen. AdManagerAdView
hat standardmäßig die Größe, die im ersten Parameter übergeben wurde, bis die nächste Anzeige zurückgegeben wird.
Banneranzeige laden
Nachdem die AdManagerBannerView
eingerichtet ist, laden Sie eine Anzeige mit der LoadAd()
-Methode in der AdManagerBannerView
-Klasse. Er nimmt einen -Parameter an, der Laufzeitinformationen wie Targeting-Informationen, Ausschlusslabels und die vom Publisher angegebene ID enthält.
/// <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)
{
CreateAdManagerBannerView();
}
// create our request used to load the ad.
var adRequest = new AdManagerAdRequest();
// send the request to load the ad.
Debug.Log("Loading banner ad.");
_bannerView.LoadAd(adRequest);
}
Auf Banneraufruf-Ereignisse warten
Wenn Sie das Verhalten Ihrer Anzeige anpassen möchten, können Sie eine Reihe von Ereignissen im Lebenszyklus der Anzeige verknüpfen, z. B. das Laden, Öffnen oder Schließen. Wenn Sie auf diese Ereignisse hören möchten, registrieren Sie einen Delegaten:
/// <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.");
};
}
Banneransicht schließen
Wenn du die Banneransicht nicht mehr verwendest, musst du Destroy()
aufrufen, um die Ressourcen freizugeben.
/// <summary>
/// Destroys the banner view.
/// </summary>
public void DestroyAd()
{
if (_bannerView != null)
{
Debug.Log("Destroying banner view.");
_bannerView.Destroy();
_bannerView = null;
}
}
Fertig! In Ihrer App können jetzt Banneranzeigen ausgeliefert werden.
Anzeige aktualisieren
Wenn Sie Ihren Anzeigenblock so konfiguriert haben, dass er aktualisiert wird, müssen Sie keine weitere Anzeige anfordern, wenn die Anzeige nicht geladen wird. Das Google Mobile Ads SDK berücksichtigt die Aktualisierungsrate, die Sie in der Ad Manager-Benutzeroberfläche angegeben haben. Wenn Sie die Aktualisierung nicht aktiviert haben, senden Sie eine neue Anfrage. Weitere Informationen zur Aktualisierung von Anzeigenblöcken, z. B. zum Festlegen einer Aktualisierungsrate, finden Sie unter Aktualisierungsrate der Anzeigen in mobilen Apps.
Bannergrößen
In der folgenden Tabelle sind die Standardbannergrößen aufgeführt.
Größe in dp (BxH) | Beschreibung | Verfügbarkeit | Konstante für Anzeigengröße |
---|---|---|---|
320 x 50 | Normale Banner- | Smartphones und Tablets | BANNER |
320 × 100 | Großes Banner | Smartphones und Tablets | LARGE_BANNER |
300 x 250 | IAB Medium Rectangle | Smartphones und Tablets | MEDIUM_RECTANGLE |
468 x 60 | IAB-Full-Size-Banner | Tablets | FULL_BANNER |
728 x 90 | IAB-Bestenliste | Tablets | LEADERBOARD |
Angegebene Breite × Adaptive Höhe | Adaptives Banner | Smartphones und Tablets | – |
Bildschirmbreite × 32|50|90 | Smart Banner | Smartphones und Tablets | SMART_BANNER |
Weitere Informationen zu adaptiven Bannern, die Smart Banner ersetzen sollen |
App-Ereignisse
Mit App-Ereignissen können Sie Anzeigen erstellen, über die Nachrichten an den App-Code gesendet werden können. Die App kann dann auf Grundlage dieser Nachrichten Maßnahmen ergreifen.
Mit AppEvent
können Sie auf Ad Manager-spezifische App-Ereignisse warten. Diese Ereignisse können jederzeit während des Lebenszyklus der Anzeige auftreten, auch bevor „load“ aufgerufen wird.
namespace GoogleMobileAds.Api.AdManager;
/// The App event message sent from the ad.
public class AppEvent
{
// Name of the app event.
string Name;
// Argument passed from the app event.
string Value;
}
OnAppEventReceived
wird ausgelöst, wenn ein App-Ereignis in einer Anzeige auftritt. Hier ein Beispiel dafür, wie Sie dieses Ereignis in Ihrem Code verarbeiten:
_bannerview.OnAppEventReceived += (AppEvent args) =>
{
Debug.Log($"Received app event from the ad: {args.Name}, {args.Value}.");
};
Im folgenden Beispiel wird gezeigt, wie Sie die Hintergrundfarbe Ihrer App je nach App-Ereignis mit dem Namen „color“ ändern:
_bannerview.OnAppEventReceived += (AppEvent args) =>
{
if (args.Name == "color")
{
Color color;
if (ColorUtility.TryParseColor(arg.Value, out color))
{
gameObject.GetComponent<Renderer>().material.color = color;
}
}
};
Hier ist das entsprechende Creative, das das Ereignis „App-Farbe“ sendet:
<html>
<head>
<script src="//www.gstatic.com/afma/api/v1/google_mobile_app_ads.js"></script>
<script>
document.addEventListener("DOMContentLoaded", function() {
// Send a color=green event when ad loads.
admob.events.dispatchAppEvent("color", "green");
document.getElementById("ad").addEventListener("click", function() {
// Send a color=blue event when ad is clicked.
admob.events.dispatchAppEvent("color", "blue");
});
});
</script>
<style>
#ad {
width: 320px;
height: 50px;
top: 0px;
left: 0px;
font-size: 24pt;
font-weight: bold;
position: absolute;
background: black;
color: white;
text-align: center;
}
</style>
</head>
<body>
<div id="ad">Carpe diem!</div>
</body>
</html>
Zusätzliche Ressourcen
- HelloWorld-Beispiel: minimale Implementierung aller Anzeigenformate