Adaptive Ankerbanner

Adaptive Banner sind die nächste Generation responsiver Anzeigen, bei denen die Anzeigengröße für jedes Gerät optimiert wird und so die Leistung maximiert wird. Bei adaptiven Bannern, die nur eine feste Höhe unterstützten, können Sie die Anzeigenbreite angeben und auf dieser Grundlage die optimale Anzeigengröße festlegen.

Bei adaptiven Bannern werden anstelle einer festen Höhe feste Seitenverhältnisse verwendet, um die beste Anzeigengröße auszuwählen. Dies führt zu Banneranzeigen, die geräteübergreifend einen gleichmäßigeren Teil des Bildschirms einnehmen und 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 feste Größe zurückgeben. Nachdem Sie das Layout auf einem bestimmten Gerät getestet haben, können Sie sicher sein, dass sich die Anzeigengröße nicht mehr ändert. Die Größe des Banner-Creatives kann sich jedoch je nach Gerät ändern. Daher empfehlen wir, Abweichungen in der Anzeigenhöhe in Ihrem Layout zu berücksichtigen. In seltenen Fällen kann es vorkommen, dass nicht die volle adaptive Größe gefüllt und stattdessen ein Standard-Creative in der Mitte dieser Anzeigenfläche platziert wird.

Voraussetzungen

Wann sollten adaptive Banner verwendet werden?

Adaptive Banner sind ein direkter Ersatz für die Branchenstandard-Bannergröße 320 x 50 und das Smart-Banner-Format, das sie ersetzen.

Diese Bannergrößen werden häufig als verankerte Banner verwendet, die normalerweise oben oder unten auf dem Bildschirm fixiert sind.

Bei solchen verankerten Bannern entspricht das Seitenverhältnis bei Verwendung adaptiver Banner dem einer Standardanzeige im Format 320 x 50, wie in den folgenden drei Beispielen zu sehen ist:


Banner (320 x 50)

Adaptives Banner

Smart-Banner

Das adaptive Banner nutzt die verfügbare Bildschirmgröße besser aus. Außerdem ist ein adaptives Banner aus folgenden Gründen besser geeignet als ein Smart-Banner:

  • Es wird die von Ihnen angegebene Breite verwendet, anstatt eine Vollbildbreite zu erzwingen. So können Sie unter iOS den sicheren Bereich und unter Android Aussparungen berücksichtigen.

  • Es wird die optimale Höhe für das jeweilige Gerät ausgewählt, statt eine konstante Höhe für Geräte unterschiedlicher Größe zu verwenden, um die Auswirkungen einer Gerätefragmentierung zu verringern.

Implementierungshinweise

Wenn Sie adaptive Banner in Ihrer App implementieren, ist Folgendes zu beachten:

  • Sie müssen die Breite der Ansicht kennen, in der die Anzeige platziert wird. Dabei sollten die Breite des Geräts sowie eventuelle sichere Bereiche oder Aussparungen berücksichtigt werden.
  • Der Hintergrund für die Anzeigenansicht muss undurchsichtig sein, damit die AdMob-Richtlinien eingehalten werden, wenn kleinere Anzeigen ausgeliefert werden, die die Anzeigenfläche nicht ausfüllen.
  • Verwenden Sie die neueste Version des Google Mobile Ads Unity-Plug-ins. Verwenden Sie für die Vermittlung die neueste Version jedes Vermittlungsadapters.
  • Die adaptiven Bannergrößen sind so konzipiert, dass sie bei Nutzung der vollen verfügbaren Breite am besten funktionieren. In den meisten Fällen entspricht dies der gesamten Bildschirmbreite des verwendeten Geräts. Beachte dabei unbedingt die relevanten sicheren Bereiche.
  • Mit dem Google Mobile Ads SDK wird die Größe des Banners so angepasst, dass die Anzeigenhöhe für die angegebene Breite optimiert wird, wenn die adaptiven AdSize APIs verwendet werden.
  • Es gibt drei Methoden, um eine Anzeigengröße für adaptives Targeting abzurufen: AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth für Querformat, AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth für Hochformat und AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth für die aktuelle Ausrichtung zum Zeitpunkt der Ausführung.
  • Die Größe, die für eine bestimmte Breite auf einem bestimmten Gerät zurückgegeben wird, bleibt immer dieselbe. Wenn Sie also Ihr Layout auf einem bestimmten Gerät getestet haben, können Sie sicher sein, dass sich die Anzeigengröße nicht ändert.
  • Die Höhe des verankerten Banners ist nie größer als 15% der Höhe des Geräts oder die 90 dichteunabhängigen Pixel und nie kleiner als 50 dichteunabhängige Pixel.
  • Für Banner mit voller Breite können Sie das Flag AdSize.FullWidth verwenden, anstatt eine bestimmte Breite anzugeben.

Kurzanleitung

So implementieren Sie ein einfaches adaptives Ankerbanner:

  1. Rufen Sie die Anzeigengröße für adaptives Banner ab. Die ermittelte Größe wird für die Anfrage Ihres adaptiven Banners verwendet. So ermitteln Sie die adaptive Anzeigengröße:
    1. Rufen Sie die Breite des verwendeten Geräts in dichteunabhängigen Pixeln ab oder legen Sie eine eigene Breite fest, wenn Sie nicht die volle Breite des Bildschirms nutzen möchten. Da Unity-APIs wie Screen.width absolute Pixel zurückgeben, müssen Sie die Ansicht nach der Geräteskalierung unterteilen (abrufbar über MobileAds.Utils.GetDeviceScale()).
    2. Verwenden Sie das Flag AdSize.FullWidth für Banner mit voller Breite (Vollbreite).
    3. Verwenden Sie die entsprechenden statischen Methoden für die Anzeigengrößenklasse, z. B. AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(width), um ein adaptives AdSize-Objekt für die aktuelle Ausrichtung abzurufen.
  2. Erstellen Sie ein BannerView-Objekt mit Ihrer Anzeigenblock-ID, der adaptiven Größe und der relevanten Position für Ihre Anzeige.
  3. Erstellen Sie ein Anzeigenanfrageobjekt und laden Sie Ihr Banner mit der LoadAd()-Methode in der vorbereiteten Anzeigenansicht wie bei einer normalen Banneranfrage.

Codebeispiel

Hier sehen Sie ein Beispielskript, mit dem ein adaptives Banner geladen und neu geladen wird, damit es unter Berücksichtigung des sicheren Bereichs an die Bildschirmbreite passt:

using UnityEngine;
using System;
using GoogleMobileAds.Api;

public class AdaptiveBannerSample : MonoBehaviour
{
    private BannerView _bannerView;

    // Use this for initialization
    void Start()
    {
        // Set your test devices.
        // https://developers.google.com/admob/unity/test-ads
        RequestConfiguration requestConfiguration = new RequestConfiguration
        {
            TestDeviceIds = new List<string>
            {
                AdRequest.TestDeviceSimulator,
                // Add your test device IDs (replace with your own device IDs).
                #if UNITY_IPHONE
                "96e23e80653bb28980d3f40beb58915c"
                #elif UNITY_ANDROID
                "75EF8D155528C04DACBBA6F36F433035"
                #endif
            }
        };
        MobileAds.SetRequestConfiguration(requestConfiguration);

        // Initialize the Google Mobile Ads SDK.
        MobileAds.Initialize((InitializationStatus status) => 
        {
            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 (_bannerView != null)
        {
            _bannerView.Destroy();
        }

        AdSize adaptiveSize =
                AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(AdSize.FullWidth);

        _bannerView = new BannerView(adUnitId, adaptiveSize, AdPosition.Bottom);

        // Register for ad events.
        _bannerView.OnBannerAdLoaded += OnBannerAdLoaded;
        _bannerView.OnBannerAdLoadFailed += OnBannerAdLoadFailed;

        AdRequest adRequest = new AdRequest();

        // Load a banner ad.
        _bannerView.LoadAd(adRequest);
    }

    #region Banner callback handlers

    private void OnBannerAdLoaded(object sender, EventArgs args)
    {
        Debug.Log("Banner view loaded an ad with response : "
                 + _bannerView.GetResponseInfo());
        Debug.Log("Ad Height: {0}, width: {1}",
                _bannerView.GetHeightInPixels(),
                _bannerView.GetWidthInPixels());
    }

    private void OnBannerAdLoadFailed(LoadAdError error)
    {
        Debug.LogError("Banner view failed to load an ad with error : "
                + error);
    }

    #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 abzurufen. Wenn Sie ein verankertes Banner in einer bestimmten Ausrichtung vorab laden möchten, verwenden Sie die entsprechende Funktion von AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth und AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth.