Adaptive Ankerbanner

Adaptive Banner sind die nächste Generation responsiver Anzeigen. Die Anzeigengröße wird an das jeweilige Gerät angepasst, um die bestmögliche Leistung zu erzielen. Anders als bei Smart-Bannern, die eine feste Höhe haben, können Entwickler bei adaptiven Bannern die Anzeigenbreite festlegen. Auf dieser Grundlage wird dann die optimale Anzeigengröße ermittelt.

Dazu werden bei adaptiven Bannern feste Seitenverhältnisse anstatt fester Höhen verwendet. Die präsentierten Banneranzeigen nehmen also unabhängig von Bildschirmgröße und Gerät immer einen vergleichbaren Teil des Bildschirms ein. Daraus ergeben sich Möglichkeiten zur Leistungsoptimierung.

Adaptive Banner haben für ein bestimmtes Gerät und eine bestimmte Breite immer eine feste Größe. Nachdem Sie Ihr Layout auf einem bestimmten Gerät getestet haben, können Sie sicher sein, dass sich die Anzeigengröße nicht ändert. Die Größe des Banner-Creatives kann sich jedoch auf verschiedenen Geräten ändern. Wir empfehlen daher, dass Ihr Layout Abweichungen bei der Anzeigenhöhe berücksichtigt. In seltenen Fällen wird die volle adaptive Größe möglicherweise nicht ausgenutzt und stattdessen wird ein Creative in Standardgröße in diesem Slot zentriert.

Vorbereitung

Wann Sie adaptive Banner verwenden sollten

Adaptive Banner sollen die Anzeigengröße 320 × 50 sowie das Smart-Banner-Format ersetzen.

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

Bei solchen verankerten Bannern ähnelt das Seitenverhältnis bei Verwendung adaptiver Banner dem einer Standardanzeige mit einer Größe von 320 × 50, wie in den drei Beispielen unten zu sehen ist:


Banner (320 x 50)

Adaptives Banner

Smart-Banner

Das adaptive Banner nutzt die verfügbare Bildschirmgröße besser aus. Außerdem sind adaptive Banner im Vergleich zu Smart-Bannern die bessere Wahl, weil:

  • Es wird die von Ihnen angegebene Breite verwendet, anstatt die Breite auf Vollbild zu setzen. So können Sie den sicheren Bereich auf iOS-Geräten berücksichtigen und Ausschnitte auf Android-Geräten anzeigen.

  • Es wird eine optimale Höhe für das jeweilige Gerät ausgewählt, anstatt eine konstante Höhe für Geräte unterschiedlicher Größe zu verwenden. So werden die Auswirkungen der Gerätefragmentierung minimiert.

Implementierungshinweise

Beachten Sie bei der Implementierung adaptiver Banner in Ihrer App Folgendes:

  • Sie müssen die Breite des Ansichtsbereichs kennen, in dem die Anzeige platziert wird. Dabei sollten die Gerätebreite und alle anwendbaren sicheren Bereiche oder Ausschnitte berücksichtigt werden.
  • Der Hintergrund des Anzeigenaufrufs muss undurchsichtig sein, damit er den AdMob-Richtlinien entspricht, wenn Anzeigen kleinerer Größen ausgeliefert werden, die den Anzeigenblock nicht ausfüllen.
  • Achten Sie darauf, dass Sie die neueste Version des Google Mobile Ads Unity-Plug-ins verwenden. Verwenden Sie für die Vermittlung die neueste Version jedes Vermittlungsadapters.
  • Die adaptiven Bannergrößen funktionieren am besten, wenn die gesamte verfügbare Breite genutzt wird. In den meisten Fällen entspricht das der vollen Breite des Bildschirms des verwendeten Geräts. Berücksichtigen Sie dabei die geltenden Sicherheitszonen.
  • Wenn Sie die adaptiven AdSize APIs verwenden, passt das Google Mobile Ads SDK die Größe des Banners an die angegebene Breite an.
  • Es gibt drei Methoden, um eine Anzeigengröße für adaptive Anzeigen zu erhalten: AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth für das Querformat, AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth für das 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, ist immer gleich. Wenn Sie Ihr Layout also auf einem bestimmten Gerät getestet haben, können Sie sich darauf verlassen, dass sich die Anzeigengröße nicht ändert.
  • Die Höhe des verankerten Banners ist nie größer als 15% der Gerätehöhe oder 90 dichteunabhängige Pixel und nie kleiner als 50 dichteunabhängige Pixel.
  • Für Banner in voller Breite können Sie das Flag AdSize.FullWidth verwenden, anstatt eine bestimmte Breite anzugeben.

Kurzanleitung

So richten Sie ein einfaches adaptives Ankerbanner ein:

  1. Anzeigengröße für adaptive Banner abrufen Diese Größe wird für die Anforderung Ihres adaptiven Banners verwendet. Damit die adaptive Anzeigengröße verwendet werden kann, müssen folgende Voraussetzungen erfüllt sein:
    1. Rufen Sie die Breite des verwendeten Geräts in geräteunabhängigen Pixeln ab oder legen Sie eine eigene Breite fest, wenn Sie nicht die volle Breite des Bildschirms verwenden möchten. Da Unity-APIs wie Screen.width absolute Pixel zurückgeben, müssen Sie sie durch die Geräteskala teilen, die Sie über MobileAds.Utils.GetDeviceScale() abrufen können.
    2. Verwenden Sie das Flag AdSize.FullWidth für Banner in voller Breite.
    3. Verwenden Sie die entsprechenden statischen Methoden der Anzeigengrößenklasse, z. B. AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(width), um ein adaptives AdSize-Objekt für die aktuelle Ausrichtung zu erhalten.
  2. Erstellen Sie ein BannerView-Objekt mit der Anzeigenblock-ID, der adaptiven Größe und der entsprechenden Position für Ihre Anzeige.
  3. Erstellen Sie ein Anzeigenanfrageobjekt und laden Sie Ihr Banner mit der Methode LoadAd() in die vorbereitete Anzeigenansicht, genau wie bei einer normalen Banneranfrage.

Codebeispiel

Hier ist ein Beispiel für ein Script, mit dem ein adaptives Banner geladen und neu geladen wird, um die Breite des Bildschirms unter Berücksichtigung des sicheren Bereichs einzunehmen:

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/ad-manager/mobile-ads-sdk/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 in einer verankerten Position für die aktuelle Benutzeroberflächenausrichtung abzurufen. Wenn Sie ein verankertes Banner in einer bestimmten Ausrichtung vorab laden möchten, verwenden Sie die entsprechende Funktion aus AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth und AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth.