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

<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 indispensable de configurer cela **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 relie l'achat au paywall qui l'a déclenché, garantissant ainsi des analyses de paywall précises.

<Tabs groupId="current-os" queryString>
<TabItem value="kotlin" label="Kotlin" default>

```kotlin showLineNumbers
val transactionInfo = TransactionInfo.fromPurchase(purchase)

Adapty.reportTransaction(transactionInfo, variationId) { result ->
    if (result is AdaptyResult.Success) {
        // success
    }
}
```

Paramètres :

| Paramètre       | Présence  | Description                                                  |
| --------------- | --------- | ------------------------------------------------------------ |
| transactionInfo | obligatoire | Le TransactionInfo issu de l'achat, où purchase est une instance de la classe [Purchase](https://developer.android.com/reference/com/android/billingclient/api/Purchase) de la bibliothèque de facturation. |
| variationId     | optionnel | L'identifiant string de la variante. Vous pouvez l'obtenir via la propriété `variationId` de l'objet [AdaptyPaywall](https://android.adapty.io/adapty/com.adapty.models/-adapty-paywall/). |

</TabItem>
<TabItem value="java" label="Java" default>

```java showLineNumbers
TransactionInfo transactionInfo = TransactionInfo.fromPurchase(purchase);

Adapty.reportTransaction(transactionInfo, variationId, result -> {
    if (result instanceof AdaptyResult.Success) {
        // success
    }
});
```

Paramètres :

| Paramètre       | Présence  | Description                                                  |
| --------------- | --------- | ------------------------------------------------------------ |
| transactionInfo | obligatoire | Le TransactionInfo issu de l'achat, où purchase est une instance de la classe [Purchase](https://developer.android.com/reference/com/android/billingclient/api/Purchase) de la bibliothèque de facturation. |
| variationId     | optionnel | L'identifiant string de la variante. Vous pouvez l'obtenir via la propriété `variationId` de l'objet [AdaptyPaywall](https://android.adapty.io/adapty/com.adapty.models/-adapty-paywall/). |

</TabItem>
</Tabs>
</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 indispensable de configurer cela **avant** de publier votre application pour éviter des erreurs dans les analyses.

Utilisez `restorePurchases` pour signaler la transaction à Adapty.

:::warning

**Ne sautez pas la restauration des achats !**
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.

:::

Si vous utilisez des paywalls Adapty, associez votre transaction au paywall qui a conduit à l'achat via la méthode `setVariationId`. Cela garantit que l'achat est correctement attribué au paywall déclencheur pour des analyses précises. Cette étape n'est nécessaire que si vous utilisez des paywalls Adapty.

<Tabs groupId="current-os" queryString>
<TabItem value="kotlin" label="Kotlin" default>

```kotlin showLineNumbers
Adapty.restorePurchases { result ->
    if (result is AdaptyResult.Success) {
        // success
    }
}

Adapty.setVariationId(transactionId, variationId) { error ->
    if (error == null) {
        // success
    }
}
```

Paramètres :

| Paramètre     | Présence  | Description                                                  |
| ------------- | --------- | ------------------------------------------------------------ |
| transactionId | obligatoire | Identifiant string (`purchase.getOrderId`) de l'achat, où purchase est une instance de la classe [Purchase](https://developer.android.com/reference/com/android/billingclient/api/Purchase) de la bibliothèque de facturation. |
| variationId   | obligatoire | L'identifiant string de la variante. Vous pouvez l'obtenir via la propriété `variationId` de l'objet [AdaptyPaywall](https://android.adapty.io/adapty/com.adapty.models/-adapty-paywall/). |

</TabItem>
<TabItem value="java" label="Java" default>

```java showLineNumbers
Adapty.restorePurchases(result -> {
    if (result instanceof AdaptyResult.Success) {
        // success
    }
});

Adapty.setVariationId(transactionId, variationId, error -> {
    if (error == null) {
        // success
    }
});
```

Paramètres :

| Paramètre     | Présence  | Description                                                  |
| ------------- | --------- | ------------------------------------------------------------ |
| transactionId | obligatoire | Identifiant string (`purchase.getOrderId`) de l'achat, où purchase est une instance de la classe [Purchase](https://developer.android.com/reference/com/android/billingclient/api/Purchase) de la bibliothèque de facturation. |
| variationId   | obligatoire | L'identifiant string de la variante. Vous pouvez l'obtenir via la propriété `variationId` de l'objet [AdaptyPaywall](https://android.adapty.io/adapty/com.adapty.models/-adapty-paywall/). |

</TabItem>
</Tabs>
</TabItem>
<TabItem value="old2" label="Adapty SDK up to 3.2.x (legacy)" 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](android-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.
::: 

**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 comptez 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 faire cela correctement avant de publier votre application, sinon cela entraînera des erreurs dans les analyses.

<Tabs groupId="current-os" queryString>
<TabItem value="kotlin" label="Kotlin" default>

```kotlin 
Adapty.setVariationId(transactionId, variationId) { error ->
    if (error == null) {
        // success
    }
}
```

Paramètres de la requête :

| Paramètre     | Présence  | Description                                                  |
| ------------- | --------- | ------------------------------------------------------------ |
| transactionId | obligatoire | Identifiant string (purchase.getOrderId de l'achat, où purchase est une instance de la classe [Purchase](https://developer.android.com/reference/com/android/billingclient/api/Purchase) de la bibliothèque de facturation. |
| variationId   | obligatoire | L'identifiant string de la variante. Vous pouvez l'obtenir via la propriété `variationId` de l'objet [AdaptyPaywall](https://android.adapty.io/adapty/com.adapty.models/-adapty-paywall/). |

</TabItem>
<TabItem value="java" label="Java" default>

```java 
Adapty.setVariationId(transactionId, variationId, error -> {
    if (error == null) {
        // success
    }
});
```

| Paramètre                                         | Présence  | Description                                                  |
| ------------------------------------------------- | --------- | ------------------------------------------------------------ |
| transactionId                                     | obligatoire | Identifiant string (purchase.getOrderId de l'achat, où purchase est une instance de la classe [Purchase](https://developer.android.com/reference/com/android/billingclient/api/Purchase) de la bibliothèque de facturation. |
| variationId                                       | obligatoire | L'identifiant string de la variante. Vous pouvez l'obtenir via la propriété `variationId` de l'objet [AdaptyPaywall](https://android.adapty.io/adapty/com.adapty.models/-adapty-paywall/). |

</TabItem>
</Tabs>
</TabItem> 
</Tabs>