---
title: "Signaler les transactions en Observer Mode dans le SDK Unity"
description: "Signalez les transactions d'achat en Observer Mode Adapty pour obtenir des informations utilisateurs et suivre les revenus dans le SDK Unity."
---

<Tabs groupId="sdk-version" queryString> 

<TabItem value="current" label="Adapty SDK v3.4+ (current)" default> 
En Observer Mode, le SDK Adapty ne peut pas suivre automatiquement les achats effectués via votre système d'achat existant. Vous devez signaler les transactions depuis votre app store. Il est crucial de le configurer **avant** de publier votre application pour éviter des erreurs dans les analyses.

Utilisez `reportTransaction` pour signaler explicitement chaque transaction afin qu'Adapty la reconnaisse.

:::warning

**Ne sautez pas le signalement des transactions !**
Si vous n'appelez pas `ReportTransaction`, Adapty ne reconnaîtra pas la transaction, elle n'apparaîtra pas dans les analyses et ne sera pas envoyée aux intégrations.

:::

Si vous utilisez des paywalls Adapty, incluez le `variationId` lors du signalement d'une transaction. Cela lie l'achat au paywall qui l'a déclenché, garantissant ainsi des analyses de paywall précises.

```csharp showLineNumbers
Adapty.ReportTransaction(
  "YOUR_TRANSACTION_ID", 
  "PAYWALL_VARIATION_ID", // optional
  (error) => {
  // handle the error
});
```

Paramètres :

| Paramètre     | Présence | Description                                                                                                                                                                                                                                                                                          |
| ------------- | -------- |------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| transactionId | requis | <ul><li> Pour iOS : identifiant de la transaction.</li><li> Pour Android : identifiant de type String `purchase.getOrderId` de l'achat, où l'achat est une instance de la classe [Purchase](https://developer.android.com/reference/com/android/billingclient/api/Purchase) de la bibliothèque de facturation.</li></ul> |
| variationId   | optionnel | L'identifiant de type String de la variante. Vous pouvez l'obtenir via la propriété `variationId` de l'objet [AdaptyPaywall](https://unity.adapty.io/class_adapty_s_d_k_1_1_adapty_paywall.html).                                                                                                                                                                  |

</TabItem>
<TabItem value="old" label="Adapty SDK 3.3.x (legacy)" default> 

En Observer Mode, le SDK Adapty ne peut pas suivre automatiquement les achats effectués via votre système d'achat existant. Vous devez signaler les transactions depuis votre app store ou les restaurer. Il est crucial de le configurer **avant** de publier votre application pour éviter des erreurs dans les analyses.

Utilisez `reportTransaction` sur les deux plateformes pour signaler explicitement chaque transaction, et utilisez `restorePurchases` sur Android comme étape supplémentaire pour vous assurer qu'Adapty la reconnaisse.

:::warning

**Ne sautez pas le signalement des transactions et la restauration des achats !**
Si vous n'appelez pas ces méthodes, Adapty ne reconnaîtra pas la transaction, elle n'apparaîtra pas dans les analyses et ne sera pas envoyée aux intégrations.

:::

Si vous utilisez des paywalls Adapty, incluez le `PAYWALL_VARIATION_ID` lors du signalement d'une transaction. Cela lie l'achat au paywall qui l'a déclenché, garantissant ainsi des analyses de paywall précises.

```csharp showLineNumbers
// every time when calling transasction.finish()

#if UNITY_ANDROID && !UNITY_EDITOR
  Adapty.RestorePurchases((profile, error) => {
    // handle the error
  });
#endif

Adapty.ReportTransaction(
  "YOUR_TRANSACTION_ID", 
  "PAYWALL_VARIATION_ID", // optional
  (error) => {
  // handle the error
});
```

Paramètres :

| Paramètre     | Présence | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| ------------- | -------- |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| transactionId | requis | <ul><li> Pour iOS, StoreKit 1 : un objet [SKPaymentTransaction](https://developer.apple.com/documentation/storekit/skpaymenttransaction).</li><li> Pour iOS, StoreKit 2 : un objet [Transaction](https://developer.apple.com/documentation/storekit/transaction).</li><li> Pour Android : identifiant de type String (`purchase.getOrderId`) de l'achat, où l'achat est une instance de la classe [Purchase](https://developer.android.com/reference/com/android/billingclient/api/Purchase) de la bibliothèque de facturation.</li></ul> |
| variationId   | optionnel | L'identifiant de type String de la variante. Vous pouvez l'obtenir via la propriété `variationId` de l'objet [AdaptyPaywall](https://unity.adapty.io/class_adapty_s_d_k_1_1_adapty_paywall.html).                                                                                                                                                                                                                                                                |

</TabItem>
<TabItem value="old2" label="Adapty SDK up to 3.2.x (legacy)" default> 

<Tabs groupId="current-os" queryString> 
<TabItem value="swift" label="iOS" default> 

**Signalement des transactions**

- Les versions jusqu'à 3.1.x écoutent automatiquement les transactions dans l'App Store, le signalement manuel n'est donc pas nécessaire.
- La version 3.2 ne prend pas en charge l'Observer Mode.

</TabItem> 
<TabItem value="kotlin" label="Android and Android-based cross-platforms" default> 

**Signalement des transactions**

Utilisez `restorePurchases` pour signaler une transaction à Adapty en Observer Mode, comme expliqué sur la page [Restaurer les achats dans le code mobile](unity-restore-purchase).

:::warning
**Ne sautez pas le signalement des transactions !**
Si vous n'appelez pas `restorePurchases`, Adapty ne reconnaîtra pas la transaction, elle n'apparaîtra pas dans les analyses et ne sera pas envoyée aux intégrations.
::: 

</TabItem>
</Tabs>

**Association des paywalls aux transactions**

Le SDK Adapty ne peut pas déterminer la source des achats, car c'est vous qui les traitez. Par conséquent, si vous souhaitez utiliser des paywalls et/ou des tests A/B en Observer Mode, vous devez associer la transaction provenant de votre app store au paywall correspondant dans le code de votre application mobile. Il est important de bien configurer cela avant de publier votre application, sinon cela entraînera des erreurs dans les analyses.

```csharp 
Adapty.SetVariationForTransaction("<variationId>", "<transactionId>", (error) => { 
    if(error != null) {
        // handle the error
        return;
    }

    // successful binding
});
```

| Paramètre                                              | Présence | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| ------------------------------------------------------ | -------- |-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| transactionId                                          | requis | <p>Pour iOS, StoreKit 1 : un objet [SKPaymentTransaction](https://developer.apple.com/documentation/storekit/skpaymenttransaction).</p><p>Pour iOS, StoreKit 2 : un objet [Transaction](https://developer.apple.com/documentation/storekit/transaction).</p><p>Pour Android : identifiant de type String (purchase.getOrderId de l'achat, où l'achat est une instance de la classe [Purchase](https://developer.android.com/reference/com/android/billingclient/api/Purchase) de la bibliothèque de facturation.</p> |
| variationId                                            | requis | L'identifiant de type String de la variante. Vous pouvez l'obtenir via la propriété `variationId` de l'objet [AdaptyPaywall](https://unity.adapty.io/class_adapty_s_d_k_1_1_adapty_paywall.html).                                                                                                                                                                                                                                                              |

</TabItem> 
</Tabs>