# Banner

Los anuncios de banner son anuncios de imagen o de texto rectangulares que ocupan un lugar dentro del diseño de una aplicación. Permanecen en la pantalla mientras los usuarios interactúan con la aplicación y pueden actualizarse automáticamente después de un cierto período de tiempo. Si eres nuevo en la publicidad móvil, son una excelente opción para comenzar.

## **Integración**

Para realizar la integración de un banner, es necesario implementar un código similar al del ejemplo que se muestra a continuación:

```csharp
// Se crea un banner
WortiseBanner bannerAd = new WortiseBanner(
    "Ad Unit ID de Wortise",
    WortiseAdSize.Height50,
    WortiseAdPosition.Top
);

// Opcional: Se establece el tiempo de auto-refresco en milisegundos
bannerAd.AutoRefreshTime = 60000;

// Se solicita la carga de un anuncio
banner.LoadAd();
```

## **Banners adaptativos**

Los banners adaptativos son un nuevo formato de banner que se caracteriza por adaptar el tamaño de los anuncios según el dispositivo y la interfaz de la aplicación, para lograr maximizar el rendimiento.

Actualmente existe soporte para dos tipos de banners adaptativos:

### Anclados

Este tipo de banner está diseñado para reemplazar a los banners tradicionales de 320x50 y ser posicionado en la parte superior o inferior de la pantalla.

Para hacer uso de este formato, se debe pasar un `WortiseAdSize` a la instancia `BannerAd` generado de la siguiente manera:

```dart
// Es necesario especificar la anchura del banner
WortiseAdSize.GetAnchoredAdaptiveBannerAdSize(width);
```

### Inline

Este otro tipo de banner, en comparación con los anclados, está diseñado para tener una altura variable y ser posicionado dentro de un contenido desplazable.

En este caso, se debe generar un `WortiseAdSize` como se muestra a continuación:

```dart
// Es necesario especificar la anchura del banner. La altura máxima es un
// parámetro opcional (pasando valor 0 o negativo)
WortiseAdSize.GetInlineAdaptiveBannerAdSize(width, maxHeight);
```

## **Configuración de listeners**

Se pueden añadir listeners para recibir los diferentes eventos que sucedan durante el ciclo de vida del intersticial. Para ello, puede hacer uso de los siguientes atributos disponibles en la clase `WortiseBanner`:

* `OnClicked`
* `OnFailedToLoad`
* `OnImpression`
* `OnLoaded`
* `OnRevenuePaid`

### Ejemplo

```csharp
bannerAd.OnClicked      += () => Debug.Log('Banner clicked');
bannerAd.OnFailedToLoad += () => Debug.Log('Banner failed to load');
bannerAd.OnImpression   += () => Debug.Log('Banner impression');
bannerAd.OnLoaded       += () => Debug.Log('Banner loaded');
bannerAd.OnRevenuePaid  += (data) => Debug.Log('Banner revenue paid');
```
