# SDK para .NET MAUI

URL: https://traqio.app/es/docs/sdks/dotnet-maui
Last updated: 2026-10-22

Añade Traqio a una app .NET MAUI: Traqio.Maui lee el Play Install Referrer en Android, registra en SKAdNetwork en iOS y gestiona los deep links.

`Traqio.Maui` es el SDK de Traqio para .NET MAUI (namespace `Traqio`, clase `TraqioSdk`). En Android lee el **Install Referrer de Google Play**; en iOS registra las instalaciones en **SKAdNetwork**. Los eventos se ponen en cola en las `Preferences` de MAUI con reintentos con backoff, el contexto del dispositivo viene de `DeviceInfo`, y `UseTraqioDeepLinks()` pasa los App Links y los universal links al SDK. Sin identificador publicitario — la opción que ofrecen los SDK de iOS, Android y React Native aún no está en este.

## Configuración

### Añade el paquete

```bash
dotnet add package Traqio.Maui
```

Hasta que el paquete esté en NuGet, añade el .nupkg que te enviamos desde un feed local:

```bash
# the .nupkg you received, from a local folder feed
dotnet nuget add source ./packages --name traqio-local
dotnet add package Traqio.Maui --version 0.1.0 --source traqio-local
```

### Registra los deep links en MauiProgram

```csharp
// MauiProgram.cs
using Traqio;

public static MauiApp CreateMauiApp()
{
    var builder = MauiApp.CreateBuilder();
    builder
        .UseMauiApp<App>()
        .UseTraqioDeepLinks(); // hands App Links / universal links to the SDK
    return builder.Build();
}
```

Las URL que llegan antes de `Init` se conservan y se resuelven en cuanto arranca el SDK. Todos los handlers devuelven false, así que tu app sigue recibiendo la URL.

### Inicializa y conecta el ciclo de vida

```csharp
// App.xaml.cs
using Traqio;

public partial class App : Application
{
    public App()
    {
        InitializeComponent();
        TraqioSdk.Init("YOUR_SDK_KEY", "https://api.traqio.app");
    }

    protected override void OnResume() => TraqioSdk.AppOpened();
    protected override void OnSleep() => _ = TraqioSdk.Flush();
}
```

MAUI no tiene ningún hook de segundo plano en el que el SDK pueda confiar: `Flush()` al pasar a reposo envía la cola sin demora, y `AppOpened()` al reanudar registra la vuelta para la retención (con debounce, seguro en cada reanudación).

## Eventos y deep links

```csharp
TraqioSdk.SetUserId(user.Id);              // same id as RevenueCat's app_user_id
TraqioSdk.Track("signup");
TraqioSdk.Track("purchase", 9.99, "EUR");
```

```csharp
// Keep the subscription for as long as you want links; Dispose() unsubscribes.
var subscription = TraqioSdk.OnDeepLink(link =>
{
    if (link.DeepLink is not null) Shell.Current.GoToAsync(link.DeepLink);
});

var deferred = await TraqioSdk.GetDeferredDeepLink(); // null when the install came from no link
```

Nombres de eventos con los que optimizan Meta y TikTok: [Nombres de eventos](https://traqio.app/es/docs/concepts/events-and-revenue#names). Consentimiento: `TraqioSdk.SetConsent(bool)`, o `consent:` en `Init`.

## 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. En ambas plataformas: sin reintento del Install Referrer, 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 compilado y probado contra un servidor simulado; no se ha ejecutado dentro de una app MAUI en producción.

## Preguntas frecuentes

**¿Qué versiones de .NET admite Traqio.Maui?**
net8.0-android y net8.0-ios. El Install Referrer de Android viene del paquete de binding de Google Xamarin.Google.Android.InstallReferrer 2.2.0.4, la última versión que aún incluye una librería net8.0-android.

**¿Tengo que añadir un bloque <queries> al manifest de Android?**
No, el paquete se encarga. Desde Android 11, una app solo ve los paquetes que declara; sin Play Store en <queries>, una app que no instaló el propio Google Play (una build de depuración, una instalación con adb) no puede conectarse al servicio Install Referrer, y todas las instalaciones aparecen como orgánicas. Traqio.Maui añade esa entrada al manifest de tu app durante la compilación.
