Adaptive Banner sind die nächste Generation responsiver Anzeigen. Sie maximieren die Leistung, indem die Anzeigengröße für jedes Gerät optimiert wird. Bei Smart-Bannern, die nur feste Höhen unterstützen, können Sie bei adaptiven Bannern die Anzeigenbreite festlegen und zur Bestimmung der optimalen Anzeigengröße verwenden.
Für die Auswahl der besten Anzeigengröße werden für adaptive Banner feste Seitenverhältnisse anstelle von festen Höhen verwendet. Das führt dazu, dass Banneranzeigen einen gleichmäßigeren Teil des Bildschirms einnehmen und geräteübergreifend Möglichkeiten zur Leistungssteigerung bieten.
Beachten Sie bei der Arbeit mit adaptiven Bannern, dass sie für ein bestimmtes Gerät und eine bestimmte Breite immer eine konstante Größe zurückgeben. Nachdem Sie das Layout auf einem bestimmten Gerät getestet haben, können Sie sich davon überzeugen, dass die Anzeigengröße nicht geändert wird. Die Größe des Banner-Creatives kann sich jedoch je nach Gerät ändern. Aus diesem Grund empfehlen wir, dass Ihr Layout Abweichungen bei der Anzeigenhöhe berücksichtigt. In seltenen Fällen kann es passieren, dass die adaptive Größe nicht gefüllt wird und ein Creative mit Standardgröße in dieser Anzeigenfläche zentriert wird.
Voraussetzungen
- Folgen Sie der Anleitung im Startleitfaden, um zu erfahren, wie Sie das Mobile Ads Unity-Plug-in importieren und das Mobile Ads SDK einbinden.
Wann werden adaptive Banner verwendet?
Adaptive Banner sollen sowohl im Format 320 × 50 als auch nach und nach durch Smart-Banner ersetzt werden.
Diese Bannergrößen werden üblicherweise als verankerte Banner verwendet, die normalerweise oben oder unten auf dem Bildschirm fixiert sind.
Bei solchen verankerten Bannern entspricht das Seitenverhältnis bei der Verwendung adaptiver Banner dem einer Standardanzeige im Format 320 x 50, wie in den folgenden drei Beispielen gezeigt:
![]() Banner im Format 320 x 50 |
![]() Adaptives Banner |
![]() Smart-Banner |
Beim adaptiven Banner wird die verfügbare Bildschirmgröße besser genutzt. Außerdem ist ein adaptives Banner im Vergleich zu einem Smart-Banner aus folgenden Gründen die bessere Wahl:
Dabei wird jede von Ihnen angegebene Breite verwendet, anstatt die Breite auf dem Vollbildmodus zu erzwingen. So können Sie den sicheren Bereich unter iOS und Displayaussparungen unter Android berücksichtigen.
Es wird eine optimale Höhe für das jeweilige Gerät ausgewählt, anstatt auf allen Geräten dieselbe Größe zu haben. Dadurch werden die Auswirkungen der Gerätefragmentierung minimiert.
Implementierungshinweise
Wenn Sie adaptive Banner in Ihrer App implementieren, sollten Sie Folgendes bedenken:
- Sie müssen die Breite der Ansicht kennen, in der die Anzeige platziert wird. Dabei sollten die Breite des Geräts sowie eventuell erforderliche sichere Bereiche oder Aussparungen berücksichtigt werden.
- Achten Sie darauf, dass der Hintergrund Ihrer Anzeigen nicht transparent ist, damit er den AdMob-Richtlinien entspricht, wenn kleinere Anzeigengrößen ausgeliefert werden, die die Anzeigenfläche nicht ausfüllen.
- Achten Sie darauf, dass Sie die neueste Version des Unity-Plug-ins für Google Mobile Ads verwenden. Verwenden Sie für die Vermittlung die neueste Version jedes Vermittlungsadapters.
- Die adaptiven Bannergrößen sind auf die volle Breite ausgelegt. In den meisten Fällen ist dies die volle Breite des verwendeten Geräts. Berücksichtigen Sie die geltenden sicheren Bereiche.
- Wenn Sie die adaptiven AdSize APIs verwenden, wird die Größe des Banners im Google Mobile Ads SDK mit einer optimierten Anzeigenhöhe für die angegebene Breite angepasst.
- Es gibt drei Methoden, um eine Anzeigengröße für adaptive Elemente abzurufen:
AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth
für Querformat,AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth
für Hochformat undAdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth
für die aktuelle Ausrichtung zum Zeitpunkt der Ausführung. - Die für eine bestimmte Breite zurückgegebene Größe auf einem Gerät ist immer gleich. Sobald Sie also das Layout auf einem bestimmten Gerät getestet haben, können Sie sicher sein, dass die Anzeigengröße nicht geändert wird.
- Die Höhe eines verankerten Banners ist nie größer als die Mindestgröße von 15% der Höhe des Geräts oder die Pixeldichte bei 90 Pixeln und die Größe der unabhängigen Pixel unter 50 Pixel.
- Für Banner in voller Breite können Sie das Flag
AdSize.FullWidth
verwenden, anstatt eine bestimmte Breite anzugeben.
Kurzanleitung
Führen Sie die folgenden Schritte aus, um ein einfaches adaptives Ankerbanner zu implementieren.
- Adaptive Banneranzeigengröße: Die Größe, die Sie erhalten, wird zum Anfordern des adaptiven Banners verwendet. So erhalten Sie die adaptive Anzeigengröße:
- Du kannst entweder die Breite des verwendeten Geräts in Dichte-unabhängigen Pixeln abrufen oder eine eigene Breite festlegen, wenn du nicht die volle Breite des Bildschirms verwenden möchtest.
Da Unity APIs wie
Screen.width
absolute Pixel zurückgeben, müssen Sie die Skalierung nach Gerät aufteilen (kann ausMobileAds.Utils.GetDeviceScale()
abgerufen werden). - Verwenden Sie das Flag
AdSize.FullWidth
für Banner in voller Breite. - Verwende die entsprechenden statischen Methoden in der Anzeigengrößen-Klasse, z. B.
AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(width)
, um ein adaptivesAdSize
-Objekt für die aktuelle Ausrichtung zu erhalten.
- Du kannst entweder die Breite des verwendeten Geräts in Dichte-unabhängigen Pixeln abrufen oder eine eigene Breite festlegen, wenn du nicht die volle Breite des Bildschirms verwenden möchtest.
Da Unity APIs wie
- Erstellen Sie ein
BannerView
-Objekt mit Ihrer Anzeigenblock-ID, der adaptiven Größe und der relevanten Position für die Anzeige. - Erstellen Sie ein Anzeigenanfrageobjekt und laden Sie Ihr Banner mit der Methode
LoadAd()
in Ihre vorbereitete Anzeigenanfrage, so wie Sie es bei einer normalen Banneranfrage tun würden.
Codebeispiel
In diesem Beispielskript wird unter Berücksichtigung des sicheren Bereichs ein adaptives Banner geladen und aktualisiert, das sich der Bildschirmbreite anpasst:
using UnityEngine;
using System;
using GoogleMobileAds.Api;
public class NewMonoBehaviour : MonoBehaviour
{
private BannerView bannerView;
// Use this for initialization
void Start()
{
RequestBanner();
}
public void OnGUI()
{
GUI.skin.label.fontSize = 60;
Rect textOutputRect = new Rect(
0.15f * Screen.width,
0.25f * Screen.height,
0.7f * Screen.width,
0.3f * Screen.height);
GUI.Label(textOutputRect, "Adaptive Banner Example");
}
private void RequestBanner()
{
// These ad units are configured to always serve test ads.
#if UNITY_EDITOR
string adUnitId = "unused";
#elif UNITY_ANDROID
string adUnitId = "ca-app-pub-3212738706492790/6113697308";
#elif UNITY_IPHONE
string adUnitId = "ca-app-pub-3212738706492790/5381898163";
#else
string adUnitId = "unexpected_platform";
#endif
// Clean up banner ad before creating a new one.
if (this.bannerView != null)
{
this.bannerView.Destroy();
}
AdSize adaptiveSize =
AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(AdSize.FullWidth);
this.bannerView = new BannerView(adUnitId, adaptiveSize, AdPosition.Bottom);
// Register for ad events.
this.bannerView.OnAdLoaded += this.HandleAdLoaded;
this.bannerView.OnAdFailedToLoad += this.HandleAdFailedToLoad;
this.bannerView.OnAdOpening += this.HandleAdOpening;
this.bannerView.OnAdClosed += this.HandleAdClosed;
AdRequest adRequest = new AdRequest.Builder()
.AddTestDevice(AdRequest.TestDeviceSimulator)
.AddTestDevice("0123456789ABCDEF0123456789ABCDEF")
.Build();
// Load a banner ad.
this.bannerView.LoadAd(adRequest);
}
#region Banner callback handlers
public void HandleAdLoaded(object sender, EventArgs args)
{
MonoBehaviour.print("HandleAdLoaded event received");
MonoBehaviour.print(String.Format("Ad Height: {0}, width: {1}",
this.bannerView.GetHeightInPixels(),
this.bannerView.GetWidthInPixels()));
}
public void HandleAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
{
MonoBehaviour.print(
"HandleFailedToReceiveAd event received with message: " + args.Message);
}
public void HandleAdOpening(object sender, EventArgs args)
{
MonoBehaviour.print("HandleAdOpening event received");
}
public void HandleAdClosed(object sender, EventArgs args)
{
MonoBehaviour.print("HandleAdClosed event received");
}
#endregion
}
Hier wird die Funktion AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth
verwendet, um die Größe eines Banners an einer verankerten Position für die aktuelle Ausrichtung der Benutzeroberfläche zu ermitteln. Wenn du ein verankertes Banner in einer bestimmten Ausrichtung vorab laden möchtest, verwende die entsprechende Funktion von AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth
und AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth
.