Verankerte adaptive Banner

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

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 und AdSize.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.

  1. Adaptive Banneranzeigengröße: Die Größe, die Sie erhalten, wird zum Anfordern des adaptiven Banners verwendet. So erhalten Sie die adaptive Anzeigengröße:
    1. 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 aus MobileAds.Utils.GetDeviceScale() abgerufen werden).
    2. Verwenden Sie das Flag AdSize.FullWidth für Banner in voller Breite.
    3. Verwende die entsprechenden statischen Methoden in der Anzeigengrößen-Klasse, z. B. AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(width), um ein adaptives AdSize-Objekt für die aktuelle Ausrichtung zu erhalten.
  2. Erstellen Sie ein BannerView-Objekt mit Ihrer Anzeigenblock-ID, der adaptiven Größe und der relevanten Position für die Anzeige.
  3. 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.