# SDK .NET MAUI

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

Ajoutez Traqio à une app .NET MAUI : Traqio.Maui lit l’Install Referrer sur Android, enregistre les installations auprès de SKAdNetwork et gère les deep links.

`Traqio.Maui` est le SDK Traqio pour .NET MAUI (namespace `Traqio`, classe `TraqioSdk`). Sur Android, il lit l’**Install Referrer de Google Play** ; sur iOS, il enregistre les installations auprès de **SKAdNetwork**. Les événements sont mis en file d’attente dans les `Preferences` MAUI avec des nouvelles tentatives en backoff, le contexte de l’appareil vient de `DeviceInfo`, et `UseTraqioDeepLinks()` transmet les App Links et les universal links au SDK. Aucun identifiant publicitaire — l’option proposée par les SDK iOS, Android et React Native n’y est pas encore.

## Mise en place

### Ajoutez le paquet

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

Tant que le paquet n’est pas sur NuGet, ajoutez le .nupkg que nous vous envoyons depuis un flux 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
```

### Enregistrez les deep links dans 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();
}
```

Les URL qui arrivent avant `Init` sont conservées et résolues dès que le SDK démarre. Chaque handler renvoie false : votre app reçoit donc toujours l’URL elle-même.

### Initialisez et câblez le cycle de vie

```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 n’a pas de hook d’arrière-plan sur lequel le SDK puisse compter : `Flush()` à la mise en veille envoie la file rapidement, et `AppOpened()` à la reprise enregistre le retour pour la rétention (dédoublonné, sans risque à chaque reprise).

## Événements et 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
```

Les noms d’événements sur lesquels Meta et TikTok s’optimisent : [Noms d’événements](https://traqio.app/fr/docs/concepts/events-and-revenue#names). Consentement : `TraqioSdk.SetConsent(bool)`, ou `consent:` sur `Init`.

## Pas encore dans ce SDK

Sur iOS, aucune valeur de conversion n’est définie et aucun jeton Apple Ads n’est transmis. Sur les deux plateformes : pas de nouvelle tentative de l’Install Referrer, pas d’identifiant de transaction sur les achats, pas de revenus publicitaires AdMob, pas d’effacement depuis l’app — utilisez [RevenueCat](https://traqio.app/fr/docs/integrations/revenuecat) et l’[effacement côté serveur](https://traqio.app/fr/docs/concepts/privacy#erasure).

> **Preuves à ce jour** La logique du SDK a été compilée et testée contre un serveur simulé ; elle n’a pas tourné dans une app MAUI en production.

## Questions fréquentes

**Quelles versions de .NET Traqio.Maui cible-t-il ?**
net8.0-android et net8.0-ios. L’Install Referrer Android vient du paquet de binding de Google Xamarin.Google.Android.InstallReferrer 2.2.0.4, la dernière version qui fournit encore une bibliothèque net8.0-android.

**Dois-je ajouter un bloc <queries> au manifest Android ?**
Non, le paquet s’en charge. Depuis Android 11, une app ne voit que les paquets qu’elle déclare ; sans le Play Store dans <queries>, une app que Google Play n’a pas installée lui-même — un build de debug, une installation via adb — ne peut pas se connecter au service Install Referrer, et chaque installation apparaît comme organique. Traqio.Maui fusionne cette entrée dans le manifest de votre app au moment du build.
