# App Open

## Integración

A continuación se muestran unos sencillos ejemplos para realizar la implementación de los anuncios App Open siguiendo las dos posibles vías de integración:

### Manual

```dart
import 'package:wortise/app_open_ad.dart';

AppOpenAd _appOpenAd;

// Se crea un anuncio App Open
_appOpenAd = AppOpenAd('Ad Unit ID de Wortise', listener: (event, args) {
  // Este listener será invocado cuando se produzca algún evento
});

// Se solicita la carga de un anuncio
await _appOpenAd.loadAd();

/* ... */

// Se muestra el anuncio si está disponible
if (await _appOpenAd.isAvailable) {
  await _appOpenAd.showAd();
}
```

El constructor de la clase `AppOpenAd` permite especificar los siguientes parámetros opcionales para configurar su comportamiento:

```dart
// Establece si se debe cargar un nuevo anuncio tras cerrar el anterior 
autoReload: true
```

Alternativamente, se puede utilizar el método `tryToShowAd()` para realizar el mostrado del anuncio con la diferencia que, si no hay uno disponible, automáticamente se solicita la carga de un nuevo anuncio:

```dart
await _appOpenAd.tryToShowAd();
```

### Vía Manager

```dart
import 'package:wortise/app_open_ad.dart';
import 'package:wortise/app_open_manager.dart';

// Se crea un anuncio App Open
AppOpenAd appOpenAd = AppOpenAd('Ad Unit ID de Wortise')..loadAd();

// Se registra el anuncio en el manager
AppOpenManager.register(appOpenAd);
```

En esta integración, los anuncios serán mostrados automáticamente cuando se produzca una transición de la aplicación de segundo a primer plano. Igualmente, se puede seguir haciendo uso de los métodos ofrecidos por `AppOpenAd` para realizar un mostrado manual.

## **Eventos del listener**

El listener asignado a un `AppOpenAd` puede recibir los siguientes eventos:

```dart
// El anuncio ha sido clickeado
AppOpenAdEvent.CLICKED
// El anuncio ha sido cerrado
AppOpenAdEvent.DISMISSED
// El anuncio no se ha podido cargar
AppOpenAdEvent.FAILED_TO_LOAD
// El anuncio no se ha podido mostrar
AppOpenAdEvent.FAILED_TO_SHOW
// El anuncio ha generado una impresión
AppOpenAdEvent.IMPRESSION
// El anuncio ha sido cargado
AppOpenAdEvent.LOADED
// El anuncio ha generado un ingreso
AppOpenAdEvent.REVENUE_PAID
// El anuncio ha sido mostrado
AppOpenAdEvent.SHOWN
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.wortise.com/flutter-sdk/integracion-del-sdk/app-open.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
