# Integración del SDK

## Configurar proyecto

Dependiendo del lenguaje que utilice el proyecto en los scripts Gradle, debes seguir los pasos de la pestaña correspondiente:

{% tabs %}
{% tab title="Groovy" %}
En primer lugar, es necesario añadir los siguientes repositorios Maven dentro del bloque `repositories` del fichero `settings.gradle`:

{% hint style="info" %}
En los proyectos donde todavía se utilice una estructura antigua, el bloque `repositories` se encontrará en el fichero `build.gradle` ubicado a nivel de **app.**
{% endhint %}

```groovy
repositories {
    maven { url 'https://maven.wortise.com/artifactory/public' }

    maven { url 'https://android-sdk.is.com/' }
    maven { url 'https://artifact.bytedance.com/repository/pangle' }
    maven { url 'https://cboost.jfrog.io/artifactory/chartboost-ads/' }
}
```

Una vez añadidos, se puede proceder a integrar el SDK . Para ello, hay que introducir la siguiente línea dentro del bloque `dependencies` del fichero `build.gradle` ubicado a nivel de app:

```groovy
implementation 'com.wortise:android-sdk:1.7.2'
```

En caso de no tenerlo ya, es necesario activar la compatibilidad con Java 8 en el proyecto. Esto se puede lograr añadiendo estas líneas adicionales dentro del bloque `android`, también en el mismo fichero `build.gradle`:

```groovy
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
```

{% endtab %}

{% tab title="Kotlin" %}
En primer lugar, es necesario añadir los siguientes repositorios Maven dentro del bloque `repositories` del fichero `settings.gradle.kts`:

```kotlin
dependencyResolutionManagement {
    repositories {
        maven { url = uri("https://maven.wortise.com/artifactory/public") }

        maven { url = uri("https://android-sdk.is.com/") }
        maven { url = uri("https://artifact.bytedance.com/repository/pangle") }
        maven { url = uri("https://cboost.jfrog.io/artifactory/chartboost-ads/") }
    }
}
```

Una vez añadidos, se puede proceder a integrar el SDK . Para ello, hay que introducir la siguiente línea dentro del bloque `dependencies` del fichero `build.gradle.kts` ubicado a nivel de app:

```kotlin
implementation("com.wortise:android-sdk:1.7.2")
```

En caso de no tenerlo ya, es necesario activar la compatibilidad con Java 8 en el proyecto. Esto se puede lograr añadiendo estas líneas adicionales dentro del bloque `android`, también en el mismo fichero `build.gradle.kts`:

```kotlin
compileOptions {
    sourceCompatibility = JavaVersion.VERSION_1_8
    targetCompatibility = JavaVersion.VERSION_1_8
}
```

{% endtab %}
{% endtabs %}

## Configurar Manifest

Es necesario agregar el siguiente elemento `<meta-data>` en el fichero `AndroidManifest.xml`, dentro del bloque `<application>`, con el ID de aplicación de Google como valor:

```xml
<manifest>
    ...
    <application>
        ...
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
    </application>
</manifest>
```

{% hint style="info" %}
Este valor puede ser localizado en nuestro dashboard, dentro de los detalles de cada aplicación, bajo el nombre `Google App ID`.
{% endhint %}

## Solicitar consentimiento

{% hint style="success" %}
Es **muy recomendable** solicitar consentimiento al usuario para poder mostrar anuncios personalizados. Esto permitirá mostrar contenido que resulte de mayor interés y generar ingresos superiores.
{% endhint %}

Puede consultar el siguiente apartado para implementar esta solicitud y obtener el consentimiento de los usuarios: [Consentimiento del usuario](/android-sdk/consentimiento-del-usuario.md)

## Inicializar SDK

Nuestra recomendación es inicializar el SDK en la clase `Application` de la app, aunque también se puede realizar en algún `Activity` principal.

Para ello, es necesario integrar el siguiente código en el método `onCreate`:

{% tabs %}
{% tab title="Kotlin" %}

```kotlin
WortiseSdk.initialize(this, "tu app key")
```

{% endtab %}

{% tab title="Java" %}

```java
WortiseSdk.initialize(this, "tu app key");
```

{% endtab %}
{% endtabs %}

### Listener de inicialización

Existen dos maneras posibles para conocer cuando el SDK finaliza su inicialización:

#### Pasando un listener como último parámetro del método `WortiseSdk.initialize`

{% tabs %}
{% tab title="Kotlin" %}

```kotlin
WortiseSdk.initialize(this, "tu app key") {
    // Este listener será invocado cuando la inicialización finalice
}
```

{% endtab %}

{% tab title="Java" %}

```java
WortiseSdk.initialize(this, "tu app key", () -> {
    // Este listener será invocado cuando la inicialización finalice
    return Unit.INSTANCE;
});
```

{% endtab %}
{% endtabs %}

#### Utilizando el método `WortiseSdk.wait`

{% tabs %}
{% tab title="Kotlin" %}

```kotlin
WortiseSdk.wait {
    // Este listener será invocado cuando la inicialización finalice
}
```

{% endtab %}

{% tab title="Java" %}

```java
WortiseSdk.wait(() -> {
    // Este listener será invocado cuando la inicialización finalice
    return Unit.INSTANCE;
});
```

{% endtab %}
{% endtabs %}

## Modo de prueba

Para verificar la integración, el SDK ofrece un modo de prueba (*test mode*) que permite que la app siempre reciba anuncios.

Además de la opción que hay disponible en nuestro dashboard, es posible activar este modo de prueba programáticamente, desde el propio SDK, utilizando el siguiente código:

{% tabs %}
{% tab title="Kotlin" %}

```kotlin
AdSettings.testEnabled = true
```

{% endtab %}

{% tab title="Java" %}

```java
AdSettings.setTestEnabled(true);
```

{% endtab %}
{% endtabs %}


---

# 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/android-sdk/integracion-del-sdk.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.
