# SDK Unity

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

Ajoutez Traqio à un jeu Unity : le paquet app.traqio.sdk lit l’Install Referrer sur Android, s’enregistre auprès de SKAdNetwork sur iOS et gère les deep links.

`app.traqio.sdk` est le SDK Traqio pour Unity (namespace `Traqio`, classe `TraqioSdk`). Sur Android, il lit l’**Install Referrer de Google Play** via `AndroidJavaProxy` ; sur iOS, un petit plugin natif enregistre les installations auprès de **SKAdNetwork**. Les événements sont mis en file d’attente dans les `PlayerPrefs` et envoyés par une coroutine ; les deep links arrivent via `Application.deepLinkActivated` sans code supplémentaire.

## Prérequis

- Unity 2021.3 ou ultérieur.

## Mise en place

### Ajoutez le paquet

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

Le paquet n’est pas encore sur OpenUPM ni sur une URL git publique. D’ici là, utilisez Window → Package Manager → + → Add package from disk, et choisissez le `package.json` du dossier que nous vous envoyons.

### Initialisez une seule fois

```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");
    }
}
```

Le démarrage s’exécute comme une coroutine sur le GameObject propre au SDK : l’installation est signalée, le lien différé résolu, l’ouverture de l’app enregistrée, et la file envoyée à intervalles réguliers et chaque fois que le jeu est mis en pause.

### Suivez les événements

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

Noms : [Noms d’événements](https://traqio.app/fr/docs/concepts/events-and-revenue#names). Consentement : `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 */ });
```

## Pas encore dans ce SDK

Sur iOS, aucune valeur de conversion n’est définie et aucun jeton Apple Ads n’est transmis. 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é testée contre un serveur simulé, mais Unity est le seul SDK sans build automatisé : compiler avec UnityEngine nécessite une licence Unity en CI, qui n’est pas encore en place. Seul le script Editor qui modifie le projet Gradle Android est testé en CI, sur .NET standard.

## Questions fréquentes

**Dois-je ajouter la bibliothèque Install Referrer à mon projet Unity ?**
Non. Quand Unity génère le projet Gradle Android, le script Editor du paquet ajoute com.android.installreferrer:installreferrer:2.2, l’entrée <queries> du Play Store qu’exigent Android 11 et suivants, et une règle keep pour les builds minifiés. Aucun template Gradle ni manifest personnalisé n’est nécessaire ; un template qui les déclare déjà est laissé tel quel.

**Le SDK Unity de Traqio fonctionne-t-il dans l’Editor ?**
Le C# tourne dans l’Editor et envoie les événements, mais les appels Install Referrer et SKAdNetwork ne sont compilés que pour les builds Android et iOS sur appareil. L’attribution ne s’observe que sur un build installé depuis un store sur un appareil.
