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 Sie 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 das 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. Daher empfehlen wir, dass Ihr Layout Abweichungen bei der Anzeigenhöhe berücksichtigt. In seltenen Fällen wird die adaptive Größe nicht vollständig ausgefüllt und stattdessen ein Creative mit Standardgröße in der Mitte des Slots platziert.

Vorbereitung

Wann sollten adaptive Banner verwendet werden?

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

Diese Bannergrößen werden üblicherweise als verankerte Banner verwendet, meist oben oder unten auf dem Bildschirm.

Bei solchen verankerten Bannern ist das Seitenverhältnis bei Verwendung adaptiver Banner ähnlich dem einer Standardanzeige mit 320 × 50 Pixeln, wie in den drei Beispielen unten zu sehen ist:


Banner (320 × 50)

Adaptives Banner

Smart-Banner

Adaptive Banner nutzen die verfügbare Bildschirmgröße besser aus. Außerdem ist ein adaptives Banner im Vergleich zu einem Smart-Banner die bessere Wahl, weil:

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

  • 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 verringert.

Implementierungshinweise

Beachten Sie beim Implementieren adaptiver Banner in Ihrer App Folgendes:

  • Sie müssen die Breite der Ansicht kennen, in der die Anzeige platziert wird. Dabei sollten die Gerätebreite und alle anwendbaren Sicherheitsbereiche oder Ausschnitte berücksichtigt werden.
  • Der Hintergrund der Anzeigenansicht muss undurchsichtig sein, damit er den AdMob-Richtlinien entspricht, wenn kleinere Anzeigengröß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.
  • Adaptive Bannergrößen funktionieren am besten, wenn die gesamte verfügbare Breite genutzt wird. In den meisten Fällen entspricht sie der vollen Breite des Displays des verwendeten Geräts. Berücksichtigen Sie dabei die sichtbaren Bereiche.
  • Das Google Mobile Ads SDK passt die Höhe des Banners automatisch an die angegebene Breite an, wenn die APIs für adaptive Anzeigenblöcke verwendet werden.
  • Es gibt drei Methoden, um eine Anzeigengröße für adaptive Anzeigen abzurufen: 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 für eine bestimmte Breite auf einem bestimmten Gerät zurückgegebene Größe ist immer gleich. Wenn Sie Ihr Layout also auf einem bestimmten Gerät getestet haben, können Sie sicher sein, dass sich die Anzeigengröße nicht ändert.
  • Die Höhe von verankerten Bannern beträgt maximal 15% der Gerätehöhe oder 90 dichteunabhängige Pixel (je nachdem, welcher Wert niedriger ist) und mindestens 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. Adaptive Banneranzeigengröße abrufen Diese Größe wird für die Anforderung Ihres adaptiven Banners verwendet. Damit die adaptive Anzeigengröße verwendet wird, müssen Sie Folgendes beachten:
    1. Ruft die Breite des verwendeten Geräts in dichteunabhängigen Pixeln ab oder legt 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 durch den Geräteskalierungsfaktor (abrufbar über MobileAds.Utils.GetDeviceScale()) dividieren.
    2. Verwenden Sie das Flag AdSize.FullWidth für Banner in voller Breite.
    3. Verwenden Sie die entsprechenden statischen Methoden in der Anzeigenformatklasse, 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 Methode LoadAd() in Ihrer vorbereiteten Anzeigenansicht, genau wie bei einer normalen Banneranfrage.

Codebeispiel

Hier ist ein Beispielskript, mit dem ein adaptives Banner geladen und neu geladen wird, damit es an die Breite des Displays angepasst wird. Dabei wird der sichere Bereich berücksichtigt:

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 für ein Banner 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 aus AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth und AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth.