Banners adaptables fijos

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Los banners adaptables son la próxima generación de anuncios responsivos, que maximizan el rendimiento mediante la optimización del tamaño de los anuncios para cada dispositivo. Si se mejoran los banners inteligentes, que solo admiten alturas fijas, los banners adaptables te permiten especificar el ancho del anuncio y usarlo para determinar el tamaño óptimo del anuncio.

Para elegir el mejor tamaño de anuncio, los banners adaptables usan relaciones de aspecto fijas en lugar de alturas fijas. Esto da como resultado anuncios de banner que ocupan una parte más coherente de la pantalla en todos los dispositivos y proporciona oportunidades para mejorar el rendimiento.

Cuando trabajes con banners adaptables, ten en cuenta que siempre mostrarán un tamaño constante para un dispositivo y un ancho determinados. Una vez que haya probado su diseño en un dispositivo determinado, puede asegurarse de que el tamaño del anuncio no cambiará. Sin embargo, el tamaño de la creatividad del banner puede cambiar en los diferentes dispositivos. Por lo tanto, te recomendamos que tu diseño admita variaciones en la altura del anuncio. En casos excepcionales, es posible que no se llene el tamaño completo y, en su lugar, se centre en este espacio una creatividad de tamaño estándar.

Requisitos previos

Cuándo usar banners adaptables

Los banners adaptables están diseñados para ser un reemplazo directo del tamaño de banner estándar de la industria de 320 x 50 y del formato de banner inteligente que sustituyen.

Estos tamaños de banner se suelen usar como banners fijos, que suelen estar bloqueados en la parte superior o inferior de la pantalla.

En el caso de estos banners fijos, la proporción de aspecto cuando se usen banners adaptables será similar a la de un anuncio estándar de 320 x 50, como se puede ver en los tres ejemplos que aparecen a continuación:


Banner de 320 x 50

Banner adaptable

Banner inteligente

El banner adaptable aprovecha mejor el tamaño de pantalla disponible. Además, en comparación con un banner inteligente, un banner adaptable es una mejor opción porque:

  • Usa el ancho que proporciones, en lugar de forzarlo a pantalla completa, lo que te permite dar cuenta del área segura en iOS y cortes de pantalla en Android.

  • Selecciona una altura óptima para el dispositivo específico, en lugar de tener una altura constante en dispositivos de diferentes tamaños, lo que mitiga los efectos de la fragmentación del dispositivo.

Notas de la implementación

Cuando implementes banners adaptables en tu app, ten en cuenta lo siguiente:

  • Debes conocer el ancho de la vista en la que se ubicará el anuncio, y este debe tener en cuenta el ancho del dispositivo y las áreas seguras o los cortes aplicables.
  • Asegúrate de que el fondo de la vista del anuncio sea opaco para satisfacer las políticas de AdMob cuando se publiquen tamaños de anuncios más pequeños que no llenen el espacio publicitario.
  • Asegúrate de usar la versión más reciente del complemento de Unity para anuncios de Google para dispositivos móviles. Para la mediación, usa la versión más reciente de cada adaptador de mediación.
  • Los tamaños de banner adaptables están diseñados para funcionar mejor cuando se usa todo el ancho disponible. En la mayoría de los casos, este será el ancho completo de la pantalla del dispositivo en uso. Asegúrate de tener en cuenta las áreas seguras aplicables.
  • El SDK de anuncios de Google para dispositivos móviles ajustará el tamaño del banner con una altura de anuncio optimizada para el ancho determinado cuando se usen las API de AdSize adaptables.
  • Hay tres métodos que permiten obtener el tamaño de un anuncio adaptable: AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth para horizontal, AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth para vertical y AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth para la orientación actual en el momento de la ejecución.
  • El tamaño que se muestra para un ancho determinado en un dispositivo determinado siempre será el mismo, por lo que una vez que hayas probado tu diseño en un dispositivo determinado, puedes estar seguro de que el tamaño del anuncio no cambiará.
  • La altura del banner fijo nunca es mayor que el menor del 15% de la altura del dispositivo o los píxeles independientes de la densidad de 90 y nunca menos de 50 píxeles independientes de la densidad.
  • Para los banners de ancho completo, puedes usar la marca AdSize.FullWidth en lugar de proporcionar un ancho específico.

Guía de inicio rápido

Sigue los pasos que se indican a continuación para implementar un banner fijo simple y adaptable.

  1. Obtenga un tamaño de anuncio de banner adaptable. El tamaño que obtengas se usará para solicitar tu banner adaptable. Para obtener el tamaño del anuncio adaptable, asegúrese de lo siguiente:
    1. Obtén el ancho del dispositivo en píxeles independientes de la densidad o configura tu propio ancho si no deseas usar el ancho completo de la pantalla. Debido a que las API de Unity, como Screen.width, muestran píxeles absolutos, debes dividir la escala por dispositivo (se puede recuperar desde MobileAds.Utils.GetDeviceScale()).
    2. Usa la marca AdSize.FullWidth para banners de ancho completo.
    3. Usa los métodos estáticos adecuados en la clase de tamaño del anuncio, como AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(width), a fin de obtener un objeto AdSize adaptable para la orientación actual.
  2. Crea un objeto BannerView con tu ID de bloque de anuncios, el tamaño adaptable y la posición relevante para tu anuncio.
  3. Crea un objeto de solicitud de anuncio y carga tu banner con el método LoadAd() en tu vista de anuncio preparado, como lo harías con una solicitud de banner normal.

Ejemplo de código

A continuación, se muestra un ejemplo de secuencia de comandos que carga y vuelve a cargar un banner adaptable para que se ajuste al ancho de la pantalla, teniendo en cuenta el área segura:

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
}

Aquí, se usa la función AdSize.GetCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth a fin de obtener el tamaño de un banner en una posición fija para la orientación actual de la interfaz. Para precargar un banner fijo en una orientación determinada, usa la función relevante de AdSize.GetPortraitAnchoredAdaptiveBannerAdSizeWithWidth y AdSize.GetLandscapeAnchoredAdaptiveBannerAdSizeWithWidth.