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. Durch die Verbesserung von Smart-Bannern, bei der nur feste Höhen unterstützt wurden, können Sie bei adaptiven Bannern festlegen, Anzeigenbreite und ermitteln damit die optimale Anzeigengröße.

Dazu werden bei adaptiven Bannern feste Seitenverhältnisse anstatt fester Höhen verwendet. Dies führt zu Banneranzeigen, die einen gleichmäßigeren Teil des Bildschirms über verschiedene Geräte hinweg messen und die Leistung.

Bei adaptiven Bannern wird immer ein für ein bestimmtes Gerät und eine feste Breite festgelegt. Sobald Sie Ihr Layout an einem je nach Gerät, können Sie sicher sein, dass sich die Anzeigengröße nicht ändert. Die Die Größe des Banner-Creatives kann sich je nach Gerät ändern. Wir empfehlen daher, dass Ihr Layout Abweichungen bei der Anzeigenhöhe berücksichtigt. In seltenen Fällen wird möglicherweise nicht die volle adaptive Größe gefüllt und ein Creative mit Standardgröße in dieser Anzeigenfläche 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

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

  • 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 Flutter-Plug-ins verwenden.
  • Die adaptiven Bannergrößen funktionieren am besten, wenn die gesamte verfügbare Breite genutzt wird. In den meisten Fällen entspricht dies der gesamten Bildschirmbreite. das verwendete Gerät. 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 zwei Methoden, um eine Anzeigengröße für adaptive Anzeigen abzurufen: Mit AdSize.getAnchoredAdaptiveBannerAdSize(Orientation orientation, int width) können Sie eine bestimmte Ausrichtung anfordern und mit AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(int width) 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 die niedrigeren 15% des des Geräts oder 90 dichteunabhängige Pixel und nie kleiner als 50 dichteunabhängige Pixel.

Kurzanleitung

So implementieren Sie ein einfaches verankertes adaptives Banner:

  1. Größe für adaptive Banneranzeigen 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. Mit MediaQuery.of(context) können Sie die Bildschirmbreite abrufen.
    2. Verwenden Sie die entsprechenden statischen Methoden der Anzeigengrößenklasse, z. B. AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(int width), um ein adaptives AdSize-Objekt für die aktuelle Ausrichtung zu erhalten.
  2. Erstellen Sie ein BannerAd-Objekt mit der Anzeigenblock-ID, der adaptiven Anzeigengröße und einem Anzeigenanfrageobjekt.
  3. Laden Sie die Anzeige wie eine normale Banneranzeige und präsentieren Sie sie wie eine normale Anzeigenansicht über einen AdWidget.

Codebeispiel

Mit diesem Beispiel-Widget wird ein verankertes adaptives Banner geladen, das in die Bildschirmbreite:

import 'dart:io';

import 'package:flutter/material.dart';
import 'package:google_mobile_ads/google_mobile_ads.dart';

/// This example demonstrates anchored adaptive banner ads.
class AnchoredAdaptiveExample extends StatefulWidget {
  @override
  _AnchoredAdaptiveExampleState createState() =>
      _AnchoredAdaptiveExampleState();
}

class _AnchoredAdaptiveExampleState extends State<AnchoredAdaptiveExample> {
  BannerAd? _anchoredAdaptiveAd;
  bool _isLoaded = false;

  @override
  void didChangeDependencies() {
    super.didChangeDependencies();
    _loadAd();
  }

  Future<void> _loadAd() async {
    // Get an AnchoredAdaptiveBannerAdSize before loading the ad.
    final AnchoredAdaptiveBannerAdSize? size =
        await AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(
            MediaQuery.of(context).size.width.truncate());

    if (size == null) {
      print('Unable to get height of anchored banner.');
      return;
    }

    _anchoredAdaptiveAd = BannerAd(
      // TODO: replace these test ad units with your own ad unit.
      adUnitId: Platform.isAndroid
          ? 'ca-app-pub-3940256099942544/6300978111'
          : 'ca-app-pub-3940256099942544/2934735716',
      size: size,
      request: AdRequest(),
      listener: BannerAdListener(
        onAdLoaded: (Ad ad) {
          print('$ad loaded: ${ad.responseInfo}');
          setState(() {
            // When the ad is loaded, get the ad size and use it to set
            // the height of the ad container.
            _anchoredAdaptiveAd = ad as BannerAd;
            _isLoaded = true;
          });
        },
        onAdFailedToLoad: (Ad ad, LoadAdError error) {
          print('Anchored adaptive banner failedToLoad: $error');
          ad.dispose();
        },
      ),
    );
    return _anchoredAdaptiveAd!.load();
  }

  @override
  Widget build(BuildContext context) => Scaffold(
        appBar: AppBar(
          title: Text('Anchored adaptive banner example'),
        ),
        body: Center(
          child: Stack(
            alignment: AlignmentDirectional.bottomCenter,
            children: <Widget>[
              ListView.separated(
                  padding: const EdgeInsets.symmetric(horizontal: 16.0),
                  itemBuilder: (context, index) {
                    return Text(
                      'Placeholder text',
                      style: TextStyle(fontSize: 24),
                    );
                  },
                  separatorBuilder: (context, index) {
                    return Container(height: 40);
                  },
                  itemCount: 20),
              if (_anchoredAdaptiveAd != null && _isLoaded)
                Container(
                  color: Colors.green,
                  width: _anchoredAdaptiveAd!.size.width.toDouble(),
                  height: _anchoredAdaptiveAd!.size.height.toDouble(),
                  child: AdWidget(ad: _anchoredAdaptiveAd!),
                )
            ],
          ),
        ),
      );

  @override
  void dispose() {
    super.dispose();
    _anchoredAdaptiveAd?.dispose();
  }
}

Hier ist die Funktion AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize wird verwendet zum Abrufen der Größe eines Banners an einer verankerten Position für die aktuelle Benutzeroberfläche Ausrichtung. Wenn Sie ein verankertes Banner in einer bestimmten Ausrichtung vorladen möchten, verwenden Sie AdSize.getAnchoredAdaptiveBannerAdSize(Orientation orientation, int width) und geben Sie die gewünschte Ausrichtung an.

Vollständiges Beispiel auf GitHub

Das vollständige Beispiel finden Sie im GitHub-Repository Banner Example.