# SDK para Unity

URL: https://traqio.app/es/docs/sdks/unity
Last updated: 2026-10-19

Añade Traqio a un juego de Unity: el paquete app.traqio.sdk lee el Play Install Referrer en Android, registra en SKAdNetwork en iOS y gestiona los deep links.

`app.traqio.sdk` es el SDK de Traqio para Unity (namespace `Traqio`, clase `TraqioSdk`). En Android lee el **Install Referrer de Google Play** mediante `AndroidJavaProxy`; en iOS, un pequeño plugin nativo registra las instalaciones en **SKAdNetwork**. Los eventos se ponen en cola en `PlayerPrefs` y los envía una corrutina; los deep links llegan a través de `Application.deepLinkActivated` sin código adicional.

## Requisitos

- Unity 2021.3 o posterior.

## Configuración

### Añade el paquete

Packages/manifest.json:
```json
// Packages/manifest.json — once the package is published (git URL / OpenUPM)
"dependencies": {
  "app.traqio.sdk": "0.1.0"
}
```

El paquete aún no está en OpenUPM ni en una URL git pública. Mientras tanto, usa Window → Package Manager → + → Add package from disk, y elige el `package.json` de la carpeta que te enviamos.

### Inicializa una vez

```csharp
using Traqio;
using UnityEngine;

public class Bootstrap : MonoBehaviour
{
    void Awake()
    {
        // Creates its own "Traqio" GameObject (DontDestroyOnLoad); call it once.
        TraqioSdk.Init("YOUR_SDK_KEY", "https://api.traqio.app");
    }
}
```

El arranque se ejecuta como una corrutina en el GameObject propio del SDK: se informa de la instalación, se resuelve el enlace diferido, se registra la apertura de la app, y la cola se envía con un temporizador y cada vez que el juego se pausa.

### Registra eventos

```csharp
TraqioSdk.SetUserId(player.Id);           // same id as RevenueCat's app_user_id
TraqioSdk.Track("tutorial_complete");
TraqioSdk.Track("purchase", 4.99f, "EUR");
```

Nombres: [Nombres de eventos](https://traqio.app/es/docs/concepts/events-and-revenue#names). Consentimiento: `TraqioSdk.SetConsent(bool)`.

## Deep links

```csharp
var unsubscribe = TraqioSdk.OnDeepLink(link =>
{
    if (link.DeepLink != null) Router.Open(link.DeepLink);
});

TraqioSdk.GetDeferredDeepLink(link => { /* null when the install came from no link */ });
```

## Aún no está en este SDK

En iOS no se define ningún valor de conversión ni se informa de ningún token de Apple Ads. Sin id de transacción en las compras, sin ingresos publicitarios de AdMob, sin borrado desde la app: usa [RevenueCat](https://traqio.app/es/docs/integrations/revenuecat) y el [borrado del lado del servidor](https://traqio.app/es/docs/concepts/privacy#erasure).

> **Pruebas hasta ahora** La lógica del SDK se ha probado contra un servidor simulado, pero Unity es el único SDK sin build automatizada: compilar contra UnityEngine requiere una licencia de Unity en CI, que aún no está configurada. Solo el script de Editor que modifica el proyecto Gradle de Android se prueba en CI, sobre .NET estándar.

## Preguntas frecuentes

**¿Tengo que añadir la librería Install Referrer a mi proyecto de Unity?**
No. Cuando Unity genera el proyecto Gradle de Android, el script de Editor del paquete añade com.android.installreferrer:installreferrer:2.2, la entrada <queries> de Play Store que exigen Android 11 y posteriores, y una regla keep para las builds minificadas. No hace falta ninguna plantilla de Gradle ni manifest personalizados; una que ya los declare se deja tal cual.

**¿El SDK de Traqio para Unity funciona en el Editor?**
El C# se ejecuta en el Editor y envía eventos, pero las llamadas al Install Referrer y a SKAdNetwork solo se compilan para las builds de dispositivo Android e iOS. La atribución solo puede observarse en una build de dispositivo instalada desde una tienda.
