# Inicio

Bienvenido a la documentación oficial de Netsocks!

Aquí encontrará las instrucciones para integrar nuestro SDK para todas las plataformas compatibles actualmente.

| Plataforma | Enlace                                                               |
| ---------- | -------------------------------------------------------------------- |
| Android    | [Integración](/spanish/android-sdk/integracion-del-sdk/dependencias) |
| Flutter    | [Integración](/spanish/flutter-sdk/integracion-del-sdk)              |
| Unity      | Integración                                                          |


# Integración del SDK


# Dependencias

Repositorio e implementación

En primer lugar, es necesario añadir el siguiente repositorio Maven dentro del bloque `repositories` del fichero `settings.gradle`

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

```gradle
repositories {
    maven { url 'https://artifactory.netsocks.io/artifactory/maven' }
}
```

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

```gradle
implementation ('io.netsocks:android-sdk:1.0.0-rc05') { changing = true }
```

En el mismo fichero, justo arriba del bloque repositories, es necesario agregar el siguiente fragmento de código para obtener las últimas actualizaciones y asegurar una monetización más eficiente:

```gradle
configurations.all {
  resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}
```

{% hint style="danger" %}
Si no agrega el fragmento de código anterior puede que la monetización pueda verse perjudicada, ya que le asegurará contar siempre con la versión más reciente de nuestro SDK.
{% endhint %}

Además, en caso de no tener ya la compatibilidad con Java 8, es necesario añadir estas líneas adicionales dentro del bloque `android`, también en el mismo fichero `build.gradle`

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

Una vez realizado esto, ya puedes proceder con la instalación y uso del SDK.


# Instalación y uso

Para un correcto funcionamiento y monetización

En este punto, debes tener a la mano tu Publisher Key, la necesitarás para inicializar el SDK.

## Inicializar SDK

{% hint style="info" %}
Recuerda que tu PUBLISHER-KEY se encuentra en el portal de netsocks. Para visualizarla haz clic en '**Añadir nueva aplicación**'. O consulta la sección [Publisher Key](/spanish/portal/publisher-key).
{% endhint %}

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

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

```java
NetsocksSdk.enable(this, "TU PUBLISHER KEY");
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
NetsocksSdk.enable(this, "TU PUBLISHER KEY")
```

{% endtab %}
{% endtabs %}

Inicializar el SDK de esta manera habilitará de forma automática la monetización. No es necesario realizar ninguna otra acción a menos que quieras condicionar la monetización según el consentimiento del usuario.

## Verificar si la monetización esta habilitada

Para conocer si el SDK de netsocks esta habilitado, puedes utilizar el siguiente método proporcionando el contexto ya sea de la aplicación o del activity.

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

```java
NetsocksSdk.isEnabled(this);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
NetsocksSdk.isEnabled(this)
```

{% endtab %}
{% endtabs %}

## Deshabilitar la monetización

En caso de que un usuario no haya otorgado su consentimiento, puedes deshabilitar la monetización utilizando el siguiente método.

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

```java
NetsocksSdk.disable(this);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
NetsocksSdk.disable(this)
```

{% endtab %}
{% endtabs %}

Recuerda revisar la sección de consentimiento para obtener más información respecto a qué puedes hacer si el usuario opta por no utilizar el SDK de netsocks.


# ProGuard

No es necesario realizar ninguna acción y/o agregar reglas adicionales a tu aplicación ya que el SDK de Netsocks incluye las reglas ProGuard necesarias para su correcto funcionamiento y se agregarán automáticamente.


# Integración del SDK

Flutter.dev

## Configurar proyecto

Para utilizar el SDK de netsocks en Flutter, es necesario declarar el SDK dentro del bloque `dependencies` del fichero `pubspec.yaml` de tu app:

```yaml
dependencies:
  netsocks: ^1.0.0-rc05
```

Después, tienes que ejecutar el siguiente comando para instalar el SDK en tu proyecto:

```bash
$ flutter pub get
```

Eso es todo. Ya puedes utilizar `import` para acceder a las funcionalidades del SDK:

```dart
import 'package:netsocks/netsocks.dart';
```

***

## Configurar Manifest con los permisos necesarios

**Nuestro SDK no recopila ningún tipo de información personal de tus usuarios**, por lo que no es necesario un permiso especial para que nuestro SDK funcione, por ese motivo únicamente hay que añadir el permiso de internet.

Para ello, tienes que añadir la siguiente línea en el archivo `android/app/src/main/AndroidManifest.xml` dentro del bloque `<manifest..>...`

<pre class="language-markup"><code class="lang-markup"><strong>&#x3C;uses-permission android:name="android.permission.INTERNET"/>
</strong></code></pre>

{% hint style="warning" %}
Es posible que ya tengas agregado este permiso con anterioridad, en caso de que ya lo tengas no es necesario volver a añadirlo.
{% endhint %}

***

## Consentimiento del usuario

En algunos países es necesario solicitar consentimiento al usuario para obtener rendimientos con su conexión a internet.  Puedes crear tu propia implementación para tal fin y llamar los métodos de activación o desactivación del SDK dependiendo de la respuesta del usuario.

***

## Inicializar/activar el SDK

{% hint style="info" %}
Recuerda que tu PUBLISHER-KEY se encuentra en el portal de netsocks. Para visualizarla haz clic en '**Añadir nueva aplicación**'. O consulta la sección [Publisher Key](/spanish/portal/publisher-key).
{% endhint %}

Para inicializar y/o activar el SDK, es necesario añadir el siguiente código dentro del método `initState()` de tu aplicación:

```dart
await Netsocks.enable('PUBLISHER-KEY');
```

{% hint style="success" %}
Las aplicaciones se agregarán automáticamente a tu portal cuando el SDK sea integrado y se active por primera vez, esto es gracias a nuesta tecnología de **INTEGRACIÓN DE 1 SOLO PASO**, para que puedas enfocarte en lo que verdaderamente importa 🥰.
{% endhint %}

***

## Desactivar el SDK

Para desactivar el SDK, puedes llamar el siguiente código.

```dart
await Netsocks.disable();
```

{% hint style="info" %}
Es correcto llamar esta función si en tu implementación de consentimiento, el usuario rechazo tu solicitud. Esta función desactiva de manera permanente el SDK hasta que vuelvas a llamar el método de activación.
{% endhint %}


# Publisher Key

También llamada pubkey (ID de editor)

Esta clave identifica tu cuenta de Netsocks, sirve para añadir aplicaciones al portal y monetizar adecuadamente.

## Encuentra tu publisher key

Tu clave de publicador se encuentra en la sección *Aplicaciones* del portal, puedes conseguirla haciendo click en el botón "Nueva app" que se encuentra en la parte superior derecha de la lista de aplicaciones.

<figure><img src="/files/ibgwtdMaW5eUuRl2XBmr" alt=""><figcaption><p>sección Aplicaciones del portal</p></figcaption></figure>

<figure><img src="/files/nxuc0ngwHpOXYK0tfAq9" alt=""><figcaption><p>botón "Nueva app"</p></figcaption></figure>

## ¿Cómo se agrega la aplicación a mi portal?

Tu aplicación aparecerá automáticamente en el portal al cabo de algunos minutos después de que hayas finalizado la instalación y uso del SDK en tu aplicación.


# Easy VPN SDK

Crea tu propia aplicación VPN con un click.


# Integración del SDK


# Dependencias

Repositorio e implementación

En primer lugar, es necesario añadir el siguiente repositorio Maven dentro del bloque `repositories` del fichero `settings.gradle`

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

```gradle
repositories {
    maven { url 'https://artifactory.netsocks.io/artifactory/maven' }
}
```

{% hint style="danger" %}
Easy VPN SDK no es compatible con nuestro otro producto "Netnode". **Asegúrate no incluirlo o utilizarlo**. Si estabas utilizando Netnode tendrás que eliminarlo antes de poder utilizar Easy VPN SDK.
{% endhint %}

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

```gradle
implementation ('io.netsocks:android-vpn-sdk:1.0.0-beta01') { changing = true }
```

En el mismo fichero, justo arriba del bloque repositories, es necesario agregar el siguiente fragmento de código para obtener las últimas actualizaciones y asegurar una monetización más eficiente:

```gradle
configurations.all {
  resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}
```

{% hint style="danger" %}
Si no agrega el fragmento de código anterior puede que no reciba las últimas actualizaciones de seguridad, al no contar siempre con la versión más reciente de nuestro SDK.
{% endhint %}

Además, en caso de no tener ya la compatibilidad con Java 8, es necesario añadir estas líneas adicionales dentro del bloque `android`, también en el mismo fichero `build.gradle`

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

Una vez realizado esto, ya puedes proceder con la instalación y uso del SDK.


# Instalación y uso

Para un correcto funcionamiento

En este punto, debes tener a la mano tu **NetsocksID**, lo necesitarás para inicializar el SDK.

## Inicializar SDK

{% hint style="info" %}
Recuerda que tu **NetsocksID** se encuentra en el portal de netsocks. Para visualizarla consulta la sección [Publisher Key](/spanish/portal/publisher-key).
{% endhint %}

Nuestra recomendación es inicializar el SDK en la clase `Application` de la app para garantizar los mejores resultados de funcionamiento, aunque también se puede realizar en algún `Activity` principal. Utiliza el siguiente código en el método `onCreate` :

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

```java
VpnSdk.initialize(this, "NetsocksID");
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
VpnSdk.initialize(this, "NetsocksID")
```

{% endtab %}
{% endtabs %}

La inicialización del SDK puede demorar un poco más que el flujo natural de tu aplicación, debes tenerlo en cuenta antes de utilizar cualquier método del SDK, de lo contrario se generará un error.

### Escuchar la inicialización del SDK

Puedes escuchar cuando el SDK se inicialice desde cualquier parte de tu aplicación utilizando el método `VpnSdk.wait(...)`, o hacerlo al mismo tiempo que llamas al método `.initialize(...)`&#x20;

* Si utilizaste `.initialize()` en la clase `Application`, `SplashActivity` u otra actividad principal en la que no hayas esperado la inicialización del SDK y deseas saber de manera posterior el momento en el que el SDK fue inicializado, puedes utilzar `VpnSdk.wait()`:

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

<pre class="language-java"><code class="lang-java"><strong>VpnSdk.wait((result) -> {
</strong>    // if(result) myConnectButton.enabled = true (Activar botón de conexión)
    return Unit.INSTANCE;
});
</code></pre>

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
VpnSdk.wait() { result ->
    // if(result) myConnectButton.enabled = true (Activar botón de conexión)
    return Unit.INSTANCE;
}
```

{% endtab %}
{% endtabs %}

## Obtener lista de servidores

Una vez que el SDK se inicializó con éxito, puedes traer la lista de servidores disponibles haciendo uso del método `getServersList()`

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

```java
VpnSdk.INSTANCE.getServerList(new ResultCallback<List<Server>>() {
    @Override
    public void onResult(List<Server> servers) {
        // for each server you can
        Server server = servers.get(0);
        int latency = server.getServerLatency();
        String country = server.getCountry();
        Float serverLoadPercentage = server.getLoad();
        int availableSeats = server.getSlots();
    }

    @Override
    public void onError(@NonNull Throwable throwable) {

    }
});
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
        viewModelScope.launch {
            val countryList = runCatching { VpnSdk.getServerList() }

            countryList.onFailure {
                it.printStackTrace()
                // Ejemplo: Mostrar un error (toast, etc).
            }

            countryList.onSuccess {
                // Ejemplo: actualizar lista de servidores (MutableLiveData)
                // Por cada servidor puedes obtener:
                val country = it.country // código de país
                val pingMs = it.latency // latencia del servidor en milisegundos
                val serverLoadPercentage = it.load // carga del servidor, de 0.0 a 99.9%
                val availableSlots = it.slots // Cuantos usuarios pueden conectarse
            }
        }
```

{% endtab %}
{% endtabs %}

{% hint style="warning" %}
Algunos campos a excepción de "country" pueden no estar disponibles para todos los servidores o para ninguno en absoluto. Toma las precauciones necesarias.
{% endhint %}

## Conectar a un servidor

Antes de poder iniciar la conexión a un servidor, tienes que declarar el vpnManager, puedes hacerlo en tu fragmento o activity de la siguiente manera:

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

```java
import io.netsocks.vpn.VpnManager
// class VpnFragment : Fragment(R.layout.fragment_vpn) {
// ...
    private final VpnManager vpnManager = new VpnManager(this);
// ...
```

{% endtab %}

{% tab title="Kotlin" %}

<pre class="language-kotlin"><code class="lang-kotlin">import io.netsocks.vpn.VpnManager
// class VpnFragment : Fragment(R.layout.fragment_vpn) {
// ...
<strong>        private val vpnManager = VpnManager(this)
</strong>// ...
</code></pre>

{% endtab %}
{% endtabs %}

Cuando hayas declarado el vpnManager y hayas obtenido la lista de países, puedes iniciar la conexión de la siguiente manera:

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

```java
NotificationSettings notificationSettings = new NotificationSettings(
        "title", // titulo de la notificación
        "content", // contenido de la notificación
        "disconnectButtonText" // texto del botón desconectar
);

ConnectionSettings config = new ConnectionSettings(
        notificationSettings, 
        "MX" // código de país
);
vpnManager.connect(config); // iniciar conexión
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
val config = ConnectionSettings(
    country = "MX", // Código de país, XX
    notificationSettings = NotificationSettings("Netsocks", "servicio vpn") // Ejemplo
)

vpnManager.connect(config) // iniciar conexión
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
Recuerda conectar el usuario solo a servidores disponibles previamente obtenidos de la lista de países.
{% endhint %}

Para desconectar al usuario del servidor, tienes que llamar el método `disconnect`.

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

<pre class="language-java"><code class="lang-java"><strong>vpnManager.disconnect(); // cerrar conexión
</strong></code></pre>

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
vpnManager.disconnect(); // cerrar conexión
```

{% endtab %}
{% endtabs %}

Recuerda revisar la sección de consentimiento para obtener más información respecto a qué puedes hacer si el usuario opta por no utilizar el SDK de netsocks.

## Modificar el comportamiento del Túnel

Puedes modificar el comportamiento del tunel haciendo uso del método setTunnelingMode, este método le dirá a la VPN como enrutar el tráfico del dispositivo. Los modos de operación disponibles son:

Los modos de operación disponibles para configurar a través del método `setTunnelingMode` son:

* **`KILL_SWITCH`**: En este modo, todo el tráfico de Internet del dispositivo se enruta a través del túnel VPN, proporcionando una capa completa de seguridad y privacidad. Es el modo recomendado para usuarios que desean cifrar todo su tráfico de Internet.
* **ONLY\_ADDED\_APPS**: En este modo, solo se enrutará el tráfico de internet de las aplicaciones que hayas añadido utilizando el método `VpnSdk.addApp`.
* **ONLY\_NOT\_ADDED\_APPS**: Este modo enrutará el tráfico de todas aquellas aplicaciones que no hayas añadido utilizando el método `VpnSdk.addApp`.

Para establecer el modo de operación del túnel, utiliza el siguiente código:

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

```java
VpnSdk.INSTANCE.setTunnelingMode(TunnelMode.MODE); // Reemplaza MODE Según corresponda.
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
VpnSdk.setTunnelingMode(TunnelMode.MODE); // Reemplaza MODE Según corresponda.
```

{% endtab %}
{% endtabs %}

Para controlar selectivamente el tráfico de qué aplicaciones se enruta a través de la VPN, puedes usar los métodos `VpnSdk.addApp` y `VpnSdk.removeApp`. Esto permite una experiencia VPN más personalizada, enfocándose en aplicaciones específicas en lugar de aplicar una cobertura VPN general a toda la actividad del dispositivo. Agregar y Eliminar Aplicaciones del Túnel VPN

#### Agregar y Eliminar Aplicaciones del Túnel VPN con VpnSdk

Para personalizar aún más tu experiencia VPN y definir qué aplicaciones específicas deseas que se enrutadas a través del túnel VPN, puedes utilizar los métodos `addApp` y `removeApp` del SDK de VPN. Es importante recordar que el efecto de agregar o quitar aplicaciones depende del modo de túnel que hayas configurado previamente (`KILL_SWITCH`, `ONLY_ADDED_APPS`, o `ONLY_NOT_ADDED_APPS`).

**Agregar una Aplicación al Túnel VPN**

Para incluir una aplicación específica en el túnel VPN, de manera que su tráfico de Internet se encripte y redireccione a través de la VPN, utiliza el método `addApp` como se muestra a continuación:

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

```java
VpnSdk.INSTANCE.addApp("nombre.del.paquete.de.la.aplicación");
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
VpnSdk.addApp("nombre.del.paquete.de.la.aplicación");
```

{% endtab %}
{% endtabs %}

Reemplaza "**nombre.del.paquete.de.la.aplicación**" con el identificador único del paquete de la aplicación que deseas agregar.

**Eliminar una Aplicación del Túnel VPN**

Si deseas excluir una aplicación del túnel VPN, para que su tráfico de Internet no se enrute a través de la VPN, puedes utilizar el método `removeApp` de la siguiente manera:

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

```java
VpnSdk.INSTANCE.removeApp("nombre.del.paquete.de.la.aplicación");
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
VpnSdk.removeApp("nombre.del.paquete.de.la.aplicación");
```

{% endtab %}
{% endtabs %}

Nuevamente, reemplaza `"`**`nombre.del.paquete.de.la.aplicación`**`"` con el identificador único del paquete de la aplicación que deseas eliminar.

Recuerda que el efecto de agregar o eliminar aplicaciones del túnel VPN dependerá del modo de operación que hayas establecido utilizando el método `setTunnelingMode`. Por ejemplo, si eliges `ONLY_ADDED_APPS`, solo las aplicaciones agregadas explícitamente se beneficiarán del enrutamiento a través del túnel VPN.


# Google Data Safety

Si tienes una app publicada en Google Play, debes ser transparente con los usuarios acerca de cómo se manejan sus datos. Esto significa revelar el acceso, recopilación y uso de los datos que realiza tu app, y limitar dicho uso a los propósitos mencionados.

Para cumplir con las políticas de Google Play, es necesario rellenar el formulario que se puede encontrar en la sección "[Seguridad de los datos](https://play.google.com/console/app/app-content/summary)", dentro de la página "[Contenido de la aplicación](https://play.google.com/console/app/app-content/summary)" (Políticas > Contenido de la aplicación).

La información indicada en dicho formulario será mostrada en la ficha de Google Play para ayudar a los usuarios a entender cómo se manejan sus datos.

A continuación, se muestran las respuestas que se deben proporcionar en relación al SDK de Netsocks. Recuerda incluir cualquier información adicional respecto al uso de los datos realizado por la propia app u otros SDK de monetización.

## Recogida de datos y seguridad

| Pregunta / Campo                                                                     | Respuesta |
| ------------------------------------------------------------------------------------ | --------- |
| ¿Tu aplicación recoge o comparte datos de usuario de alguno de los tipos requeridos? | ✅         |
| ¿Los datos de usuario que recoge tu aplicación se cifran en tránsito?                | ✅         |
| ¿Ofreces a los usuarios alguna forma de solicitar que se eliminen sus datos?         | ✅         |

## Tipos de datos

Selecciona todos los tipos de datos recopilados o compartidos por tu app.

| Categoría                                 | Tipo de dato                                        | ¿Se recopila?   |
| ----------------------------------------- | --------------------------------------------------- | --------------- |
| Ubicación                                 | <p>Ubicación aproximada</p><p>Ubicación precisa</p> | <p>No<br>No</p> |
| Información personal                      | n/a                                                 | No              |
| Información financiera                    | n/a                                                 | No              |
| Salud y fitness                           | n/a                                                 | No              |
| Mensajes                                  | n/a                                                 | No              |
| Fotos y vídeos                            | n/a                                                 | No              |
| Archivos de audio                         | n/a                                                 | No              |
| Archivos y documentos                     | n/a                                                 | No              |
| Calendar                                  | n/a                                                 | No              |
| Contactos                                 | n/a                                                 | No              |
| Actividad en aplicaciones                 | n/a                                                 | No              |
| Navegación web                            | n/a                                                 | No              |
| Información y rendimiento de aplicaciones | n/a                                                 | No              |
| IDs de dispositivo o de otro tipo         | IDs de dispositivo o de otro tipo                   | ✅               |

## Uso y gestión de los datos

En relación a Netsocks, las respuestas a todas las preguntas serían las siguientes:

| Pregunta / Campo                                                                                     | Respuesta                                                 |
| ---------------------------------------------------------------------------------------------------- | --------------------------------------------------------- |
| Se recogen                                                                                           | ✅                                                         |
| Se comparten                                                                                         | ✅                                                         |
| ¿Se tratan estos datos de forma temporal?                                                            | No                                                        |
| ¿Son estos datos necesarios para usar tu aplicación o pueden los usuarios elegir si se recogen o no? | Los usuarios pueden elegir si se recogen estos datos o no |

| Propósito                                       | Respuesta |
| ----------------------------------------------- | --------- |
| Funcionalidad de la aplicación                  | No        |
| Análisis                                        | No        |
| Comunicaciones del desarrollador                | No        |
| Publicidad o marketing                          | ✅         |
| Prevención de fraudes, seguridad y cumplimiento | ✅         |
| Personalización                                 | No        |
| Gestión de cuentas                              | No        |


# Agréganos a tus políticas de privacidad

Haz referencia a nuestros docs en la política de privacidad donde implementes nuestro SDK

Referéncianos dentro de tus políticas de privacidad en la sección "Recolección y uso de la información" o similares.

## **Texto ejemplo:**&#x20;

> **Recolección y uso de la información**
>
> Para una mejor experiencia, al utilizar nuestro Servicio, puedo solicitarle que nos proporcione cierta información de identificación personal. La información que solicito se conservará en su dispositivo y no es recopilada por mí de ninguna manera.
>
> La aplicación utiliza servicios de terceros que pueden recopilar información utilizada para identificarle (por ejemplo: dirección IP).
>
> Enlace a la política de privacidad de terceros proveedores de servicios utilizados por la aplicación
>
> -[Netsocks SDK](https://netsocks.gitbook.io/netsocks-sdk-privacy-policy/spanish-1/)

## **Imagen ejemplo:**

<figure><img src="/files/xAdzdyPP6NCWLn8XSaiL" alt=""><figcaption></figcaption></figure>


# Aplicaciones VPN

**Aplicación de demostración**


# Políticas


# Null VPN


# Política de Privacidad

Null VPN - Proxy VPN Rápido

**Introducción**

Null VPN ("nosotros", "nuestra" o "la aplicación") se compromete a proteger la privacidad de sus usuarios. Esta Política de Privacidad explica cómo recopilamos, utilizamos y compartimos información cuando los usuarios utilizan nuestra aplicación. Al utilizar Null VPN, usted acepta los términos de esta Política de Privacidad.

**Información Recopilada**

1. **Información no personal:**

Cuando utiliza Null VPN, recopilamos información no personal relacionada con su dispositivo, como el modelo de dispositivo, la versión del sistema operativo, la ubicación geográfica aproximada, la configuración de la aplicación y registros de uso. Esta información se utiliza exclusivamente para mejorar la funcionalidad y la calidad de nuestra aplicación.

2. **Información de la conexión:**

Para proporcionar nuestros servicios de VPN, recopilamos información sobre la dirección IP asignada a usted cuando se conecta a nuestra red VPN. Esta información se almacena temporalmente y se utiliza para gestionar la red y mantener la integridad de nuestros servicios.

3. **Datos al compartir conexión (P2P):**

Cuando los usuarios utilizan la función de compartir su conexión de internet a través de la aplicación, recopilamos la información necesaria para facilitar esta función. Esta información puede incluir la configuración de la conexión y la autorización del usuario.&#x20;

**Uso de la Información**

La información recopilada se utiliza para los siguientes fines:

* Proporcionar y mejorar los servicios de VPN.
* Mantener la integridad y seguridad de la red VPN.
* Facilitar la función de compartir la conexión de internet a través de la aplicación.
* Mejorar la funcionalidad y la calidad de la aplicación.

**Divulgación de la Información**

No compartimos información personal o información que identifique a los usuarios con terceros, excepto en las siguientes circunstancias:

* Cuando sea necesario para cumplir con las leyes y regulaciones aplicables.
* Cuando sea necesario para proteger nuestros derechos, la seguridad de la aplicación o la seguridad de otros usuarios.
* Con su consentimiento expreso para compartir su conexión de internet a través de la aplicación.

**Seguridad**

Tomamos medidas de seguridad razonables para proteger la información recopilada contra el acceso no autorizado, la divulgación o la destrucción.

**Cambios en la Política de Privacidad**

Podemos actualizar esta Política de Privacidad de vez en cuando. Cualquier cambio importante en la política se notificará a los usuarios a través de la aplicación o por otros medios apropiados.

**Uso del VpnService de Android**

Null VPN utiliza el VpnService de Android para ofrecer sus servicios de VPN y garantizar la funcionalidad de la aplicación.\
El VpnService es esencial para permitir a los usuarios navegar de manera segura y anónima utilizando una dirección IP de un servidor o dispositivo VPN ubicado en uno de los más de 160 países disponibles.\
Esto ofrece a los usuarios la capacidad de acceder a contenido restringido geográficamente y proteger su privacidad en línea.\
El uso de VpnService permite que Null VPN redirija el tráfico de Internet a través de una conexión segura y cifrada, protegiendo así la información confidencial y la privacidad de los usuarios de amenazas potenciales. La recopilación de información relacionada con la conexión, como la dirección IP asignada, es necesaria para garantizar el funcionamiento de la VPN y mantener la integridad de la red.

Al utilizar el VpnService, Null VPN cumple con los requisitos y estándares de seguridad establecidos por Google, lo que garantiza una experiencia segura y confiable para todos los usuarios de la aplicación. La seguridad y la privacidad de nuestros usuarios son fundamentales y, por lo tanto, estamos comprometidos a utilizar el VpnService de Android para cumplir con este propósito.

Si tienes alguna pregunta adicional sobre el uso de VpnService o cualquier otro aspecto de nuestra política de privacidad, no dudes en ponerte en contacto con nosotros.

**Póngase en Contacto con Nosotros**

Si tiene alguna pregunta o inquietud sobre esta Política de Privacidad, puede ponerse en contacto con nosotros en <hello@netsocks.io>.

Esta Política de Privacidad se considera aceptada por los usuarios al utilizar nuestra aplicación. Le recomendamos que revise esta política periódicamente para mantenerse informado de cualquier cambio.


# Easy VPN


# Política de Privacidad

**Política de Privacidad de VPN**

**Introducción**

Netsocks VPN ("nosotros", "nuestra" o "la aplicación") se compromete a proteger la privacidad de sus usuarios. Esta Política de Privacidad explica cómo recopilamos, utilizamos y compartimos información cuando los usuarios utilizan nuestra aplicación. Al utilizar Netsocks VPN, usted acepta los términos de esta Política de Privacidad.

**Información Recopilada**

**1. Información no personal:**

* Cuando utiliza Netsocks VPN, recopilamos información no personal relacionada con su dispositivo, como el modelo de dispositivo, la versión del sistema operativo, la ubicación geográfica aproximada, la configuración de la aplicación y registros de uso. Esta información se utiliza exclusivamente para mejorar la funcionalidad y la calidad de nuestra aplicación.

**2. Información de la conexión:**

* Para proporcionar nuestros servicios de VPN, recopilamos información sobre la dirección IP asignada a usted cuando se conecta a nuestra red VPN. Esta información se almacena temporalmente y se utiliza para gestionar la red y mantener la integridad de nuestros servicios.

**3. Datos al compartir la conexión (P2P):**

* Cuando los usuarios utilizan la función de compartir su conexión de internet a través de la aplicación, recopilamos la información necesaria para facilitar esta función. Esta información puede incluir la configuración de la conexión y la autorización del usuario.

**Uso de la Información**

La información recopilada se utiliza para los siguientes fines:

* Proporcionar y mejorar los servicios de VPN.
* Mantener la integridad y seguridad de la red VPN.
* Facilitar la función de compartir la conexión de internet a través de la aplicación.
* Mejorar la funcionalidad y la calidad de la aplicación.

**Divulgación de la Información**

No compartimos información personal o información que identifique a los usuarios con terceros, excepto en las siguientes circunstancias:

* Cuando sea necesario para cumplir con las leyes y regulaciones aplicables.
* Cuando sea necesario para proteger nuestros derechos, la seguridad de la aplicación o la seguridad de otros usuarios.
* Con su consentimiento expreso para compartir su conexión de internet a través de la aplicación.

**Seguridad**

Tomamos medidas de seguridad razonables para proteger la información recopilada contra el acceso no autorizado, la divulgación o la destrucción.

**Cambios en la Política de Privacidad**

Podemos actualizar esta Política de Privacidad de vez en cuando. Cualquier cambio importante en la política se notificará a los usuarios a través de la aplicación o por otros medios apropiados.

**Póngase en Contacto con Nosotros**

Si tiene alguna pregunta o inquietud sobre esta Política de Privacidad, puede ponerse en contacto con nosotros en <hello@netsocks.io>

Esta Política de Privacidad se considera aceptada por los usuarios al utilizar nuestra aplicación. Le recomendamos que revise esta política periódicamente para mantenerse informado de cualquier cambio.


# Home

Welcome to Netsocks official documentation

Here you'll find all the instructions to integrate our SDK to all the platforms we have available at this moment.

| Platform | Link                                        |
| -------- | ------------------------------------------- |
| Android  | [Integration](/android-sdk/sdk-integration) |
| Flutter  | [Integration](/flutter-sdk/sdk-integration) |


# SDK Integration

Repositorio e implementación


# Dependencies

First, it's necessary to add the following Maven repository inside the `repositories` block of the `settings.gradle` file

{% hint style="info" %}
In projects that still use an old structur&#x65;**,** `repositories`block is located in the`build.gradle`file at the **app** level
{% endhint %}

```gradle
repositories {
     maven { url 'https://artifactory.netsocks.io/artifactory/maven' }
}
```

Once added, you can proceed to include the SDK. To do this, you need to enter the following line inside the `dependencies`block of the `build.gradle` file (`:app` level).

```gradle
implementation ('io.netsocks:android-sdk:1.0.0-rc05') { changing = true }
```

In the same file, just above the repositories block, it is necessary to add the following code snippet to fetch the latest updates and ensure more efficient monetization:

```gradle
configurations.all {
  resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
}
```

{% hint style="danger" %}
If you do not include the above code snippet, monetization may be affected, as it ensures that you always have the latest version of our SDK.
{% endhint %}

Furthermore, in case you don't already have compatibility with Java 8, it's necessary to add these additional lines inside the `android` block, also in the same`build.gradle` file

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

Once this is done, you can proceed with the installation and use of the SDK.


# Use and installation

For a effectively and correct monetization

At this point, you should have your Publisher Key with you, you'll need it to initialize the SDK.

## Initialize the SDK

Our recommendation is to initialize the SDK inside the `Application` class of the app to guarantee the best results for monetization, although it can be done in any main `Activity` too

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

```java
NetsocksSdk.enable(this, "YOUR PUBLISHER KEY");
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
NetsocksSdk.enable(this, "YOUR PUBLISHER KEY")
```

{% endtab %}
{% endtabs %}

By initializing the SDK this way will automatically enable monetization. No further action is required unless you want to condition monetization based on user consent

## Verify if monetization is enabled

To determine if the Netsocks SDK is enabled, you can use the following method, providing the context of either the application or the activity

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

```java
NetsocksSdk.isEnabled(this);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
NetsocksSdk.isEnabled(this)
```

{% endtab %}
{% endtabs %}

## Disable monetization

In case a user has not given their consent, you can disable monetization using the following method

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

```java
NetsocksSdk.disable(this);
```

{% endtab %}

{% tab title="Kotlin" %}

```kotlin
NetsocksSdk.disable(this)
```

{% endtab %}
{% endtabs %}

Remember to check the consent section for more information on what to do if the user chooses to not accept Netsocks SDK.


# ProGuard

No additional actions or rules need to be added to your application as the Netsocks SDK includes the necessary ProGuard rules for its proper functioning, and they will be added automatically.


# Sdk Integration

Flutter.dev

## Configure project

To use the Netsocks SDK in Flutter, it is necessary to declare the SDK inside the `dependencies` block of the `pubspec.yaml` file of your app:

```yaml
dependencies:
  netsocks: ^1.0.0-rc05
```

Then, you have to run the following command to install the SDK in your project:

```bash
$ flutter pub get
```

That's all. You can now use `import` to access the SDK functionalities:

```dart
import 'package:netsocks/netsocks.dart';
```

***

## Configure Manifest with the necessary permissions

**Our SDK does not collect any personal information from your users**, so no special permission is needed for our SDK to work, so you only need to add the internet permission.

To do so, you have to add the following line in the `android/app/src/main/AndroidManifest.xml` file inside the `<manifest..>..` block

```markup
<uses-permission android:name="android.permission.INTERNET"/>
```

{% hint style="warning" %}
It is possible that you have already added this permission before, in case you already have it, it is not necessary to add it again.
{% endhint %}

***

## User's consent

In some countries, it is necessary to obtain the user's consent in order to obtain revenues with their Internet connection. You can implement your own consent screen for this purpose and call the SDK's activation or deactivation methods depending on the user's response.

***

## Initialize/activate SDK

{% hint style="info" %}
Remember that your PUBLISHER-KEY is located in the Netsocks portal. To view it click on '**Add new application**'. Or check the [Publisher Key](/portal/publisher-key) section.
{% endhint %}

To initialize and/or activate the SDK, you need to add the following code inside the `initState()` method of your application:

```dart
await Netsocks.enable('PUBLISHER-KEY');
```

{% hint style="success" %}
Applications will be automatically added to your portal when the SDK is integrated and activated for the first time, this is thanks to our **1 STEP INTEGRATION** technology, so you can focus on what really matters 🥰.
{% endhint %}

***

## Deactivate SDK

In order to disable the SDK, you can call the following method.

```dart
await Netsocks.disable();
```

{% hint style="info" %}
It is correct to call this function if in your consent implementation, the user rejected your request. This function permanently disables the SDK until you call the activation method again.
{% endhint %}


# Publisher Key

Also called pubkey (Publisher ID)

This key identifies your Netsocks account, allowing you to add applications to the portal and monetize them effectively.

## Find your publisher key

You can find your Publisher Key in *Applications* section of the portal, you can get it by clicking the "New App" button at the top right corner of the applications list.

<figure><img src="/files/C8HVl1LDyZRHsWZEz1Np" alt=""><figcaption><p>Applications section</p></figcaption></figure>

<figure><img src="/files/0a1bByQFyR6Y7XeScV3s" alt=""><figcaption><p>"New App" button</p></figcaption></figure>

## ¿How do I add an application to my portal?

Your application will automatically appear on the portal a few minutes after you have used and completed the installation of the SDK in your application.


# Google Data Safety

If you have an app published on Google Play, you must be transparent with users about how their data is handled. This means disclosing the access, collection, and use of data performed by your app and limiting such use to the stated purposes.&#x20;

To comply with Google Play policies, it is necessary to fill out the form found in the 'Data Security' section within the 'App Content' page (Policies > App Content).&#x20;

The information provided in this form will be displayed on the Google Play listing to help users understand how their data is managed.

&#x20;Below are the responses that should be provided regarding the Netsocks SDK. Remember to include any additional information regarding data usage by the app itself or other monetization SDKs

### Data collection & Security

| Question/Field                                                       | Answer |
| -------------------------------------------------------------------- | ------ |
| Your app collects or share user data of any of the required types?   | ✅      |
| Is the user data collected by your application encrypted in transit? | ✅      |
| Do you provide users with a way to request their data to be deleted? | ✅      |

## Data types

Select all types of data collected or shared by your app.

| Category                        | Data type                                           | ¿We collect?    |
| ------------------------------- | --------------------------------------------------- | --------------- |
| Location                        | <p>Approximate Location </p><p>Precise Location</p> | <p>No<br>No</p> |
| Personal information            | n/a                                                 | No              |
| Financial information           | n/a                                                 | No              |
| Fitness & health                | n/a                                                 | No              |
| Messages                        | n/a                                                 | No              |
| Images & Video                  | n/a                                                 | No              |
| Audio files                     | n/a                                                 | No              |
| Files and docs                  | n/a                                                 | No              |
| Calendar                        | n/a                                                 | No              |
| Contacts                        | n/a                                                 | No              |
| Activity in applications        | n/a                                                 | No              |
| Web browse                      | n/a                                                 | No              |
| Information and app performance | n/a                                                 | No              |
| Device ID or other type         | Device ID                                           | ✅               |

## Data usage and management

In relation to Netsocks, the answers to all questions would be as follows:

| Question / Field                                                                                  | Answer                                                  |
| ------------------------------------------------------------------------------------------------- | ------------------------------------------------------- |
| Is collected                                                                                      | ✅                                                       |
| Is shared                                                                                         | ✅                                                       |
| Is this data processed temporarily?                                                               | No                                                      |
| Is this data required to use your application or can users choose whether or not it is collected? | Users can choose whether or not this data is collected. |

| Purpose                                   | Answer |
| ----------------------------------------- | ------ |
| Application functionality                 | No     |
| Analysis                                  | No     |
| Developer's communications                | No     |
| Advertising or marketing                  | ✅      |
| Fraud prevention, security and compliance | ✅      |
| Personalization                           | No     |
| Account management                        | No     |


# Add us to your privacy policy

Refer to our docs in the privacy policy where you implement our SDK.

Refer to us within your privacy policies in the "Information Collection and Use" section or similar.

## Example text:

> **Collection and Use of Information**&#x20;
>
> For a better experience, when using our Service, I may ask you to provide us with certain personally identifiable information. The information I request will be retained on your device and is not collected by me in any way. The App uses third party services that may collect information used to identify you (e.g. IP address).&#x20;
>
> Link to the privacy policy of third party service providers used by the application&#x20;
>
> -[Netsocks SDK](broken://pages/BlGbLzuU7higoesVA4m6)

## **Example image:**

<figure><img src="/files/Fg73twKwXi9xCv6DZbqu" alt=""><figcaption></figcaption></figure>


# VPN Apps

**Demo app**


# Policies


# Null VPN


# Privacy Policy

Null VPN Privacy Policy

**Introduction**

Null VPN ("we", "our" or "the application") is committed to protecting the privacy of its users. This Privacy Policy explains how we collect, use, and share information when users use our application. By using Null VPN, you agree to the terms of this Privacy Policy.

**Information Collected**

1. **Non-personal information:**

When you use Null VPN, we collect non-personal information related to your device, such as device model, operating system version, approximate geographic location, application settings, and usage logs. This information is used exclusively to improve the functionality and quality of our application.

2. **Connection information:**

To provide our VPN services, we collect information about the IP address assigned to you when you connect to our VPN network. This information is stored temporarily and is used to manage the network and maintain the integrity of our services.

3. **Data when sharing connection (P2P):**

When users use the feature to share their internet connection through the application, we collect the necessary information to facilitate this function. This information may include connection settings and user authorization.

**Use of Information**

The information collected is used for the following purposes:

* To provide and improve VPN services.
* To maintain the integrity and security of the VPN network.
* To facilitate the function of sharing the internet connection through the application.
* To improve the functionality and quality of the application.

**Disclosure of Information**

We do not share personal information or information that identifies users with third parties, except in the following circumstances:

* When it is necessary to comply with applicable laws and regulations.
* When it is necessary to protect our rights, the security of the application, or the security of other users.
* With your express consent to share your internet connection through the application.

**Security**

We take reasonable security measures to protect the information collected against unauthorized access, disclosure, or destruction.

**Changes to the Privacy Policy**

We may update this Privacy Policy from time to time. Any significant changes to the policy will be notified to users through the application or other appropriate means.

**Use of the Android VpnService**

Null VPN uses the Android VpnService to offer its VPN services and ensure the functionality of the application.\
VpnService is essential to allow users to browse securely and anonymously using an IP address from a server or VPN device located in one of over 160 available countries.\
This gives users the ability to access geographically restricted content and protect their online privacy.\
Using VpnService allows Null VPN to redirect Internet traffic through a secure and encrypted connection, thereby protecting confidential information and user privacy from potential threats. The collection of connection-related information, such as the assigned IP address, is necessary to ensure the proper functioning of the VPN and maintain the integrity of the network.

By using VpnService, Null VPN complies with the security requirements and standards set by Google, ensuring a safe and reliable experience for all users of the application. The security and privacy of our users are paramount, and we are committed to using the Android VpnService to fulfill this purpose.

If you have any additional questions about the use of VpnService or any other aspect of our privacy policy, please feel free to contact us.

**Contact Us**

If you have any questions or concerns about this Privacy Policy, you can contact us at <hello@netsocks.io>.

This Privacy Policy is considered accepted by users when using our application. We recommend that you review this policy periodically to stay informed of any changes.


# Easy VPN


# Privacy Policy

Netsocks VPN Privacy Policy

**Introduction**

Netsocks VPN ("we", "our", or "the application") is committed to protecting the privacy of its users. This Privacy Policy explains how we collect, use, and share information when users utilize our application. By using Netsocks VPN, you agree to the terms of this Privacy Policy.

**Information Collected**

1. **Non-Personal Information:**

   When you use Netsocks VPN, we collect non-personal information related to your device, such as device model, operating system version, approximate geographic location, application settings, and usage logs. This information is used exclusively to improve the functionality and quality of our application.
2. **Connection Information:**

   To provide our VPN services, we collect information about the IP address assigned to you when you connect to our VPN network. This information is stored temporarily and is used to manage the network and maintain the integrity of our services.
3. **Data When Sharing Connection (P2P):**

   When users utilize the feature to share their internet connection through the application, we collect the necessary information to facilitate this function. This information may include connection settings and user authorization.

**Use of Information**

The information collected is used for the following purposes:

* To provide and improve VPN services.
* To maintain the integrity and security of the VPN network.
* To facilitate the function of sharing the internet connection through the application.
* To enhance the functionality and quality of the application.

**Disclosure of Information**

We do not share personal information or information that identifies users with third parties, except in the following circumstances:

* When necessary to comply with applicable laws and regulations.
* When necessary to protect our rights, the security of the application, or the safety of other users.
* With your express consent to share your internet connection through the application.

**Security**

We take reasonable security measures to protect the information collected against unauthorized access, disclosure, or destruction.

**Changes to the Privacy Policy**

We may update this Privacy Policy from time to time. Any significant changes to the policy will be notified to users through the application or by other appropriate means.

**Contact Us**

If you have any questions or concerns about this Privacy Policy, you can contact us at <hello@netsocks.io>.

This Privacy Policy is considered accepted by users when using our application. We recommend that you review this policy periodically to stay informed of any changes.


