---
title: "Отчёт о транзакциях в Observer Mode в React Native SDK"
description: "Отчитывайтесь о транзакциях покупок в Adapty Observer Mode для отслеживания данных о пользователях и доходах в React Native SDK."
---

<Tabs groupId="sdk-version" queryString> 

<TabItem value="current" label="Adapty SDK v3.4+ (current)" default> 
В Observer Mode SDK Adapty не может самостоятельно отслеживать покупки, сделанные через вашу существующую систему. Вам нужно передавать транзакции из вашего стора. Это важно настроить **до** релиза приложения, чтобы избежать ошибок в аналитике.

Используйте `reportTransaction`, чтобы явно сообщить Adapty о каждой транзакции.

:::warning

**Не пропускайте передачу транзакций!**
Если вы не вызовете `reportTransaction`, Adapty не распознает транзакцию — она не появится в аналитике и не будет передана в интеграции.

:::

Если вы используете пейволы Adapty, передавайте `variationId` при отчёте о транзакции. Это свяжет покупку с пейволом, который её инициировал, и обеспечит точную аналитику пейволов.

```typescript showLineNumbers
const variationId = paywall.variationId;

try {
    await adapty.reportTransaction(transactionId, variationId);
} catch (error) {
    // handle the `AdaptyError`
}
```

Параметры:

| Параметр      | Обязательность | Описание                                                  |
| ------------- | -------------- | ---------------------------------------------------------- |
| transactionId | обязательный   | <ul><li> Для iOS: идентификатор транзакции.</li><li> Для Android: строковый идентификатор (`purchase.getOrderId`) покупки, где покупка является экземпляром класса [Purchase](https://developer.android.com/reference/com/android/billingclient/api/Purchase) из библиотеки биллинга.</li></ul> |
| variationId   | необязательный | Строковый идентификатор варианта. Его можно получить через свойство `variationId` объекта [AdaptyPaywall](https://react-native.adapty.io/interfaces/adaptypaywall). |

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

В Observer Mode SDK Adapty не может самостоятельно отслеживать покупки, сделанные через вашу существующую систему. Вам нужно передавать транзакции из вашего стора или восстанавливать их. Это важно настроить **до** релиза приложения, чтобы избежать ошибок в аналитике.

Используйте `reportTransaction` на обеих платформах, чтобы явно сообщить о каждой транзакции, а на Android дополнительно вызывайте `restorePurchases`, чтобы Adapty гарантированно её распознал.

:::warning

**Не пропускайте передачу транзакций!**
Если вы не вызовете эти методы, Adapty не распознает транзакцию — она не появится в аналитике и не будет передана в интеграции.

:::

Если вы используете пейволы Adapty, передавайте `variationId` при отчёте о транзакции. Это свяжет покупку с пейволом, который её инициировал, и обеспечит точную аналитику пейволов.

```typescript showLineNumbers
if (Platform.OS === 'android') {
    try {
        await adapty.restorePurchases();
    } catch (error) {
        // handle the error
    }
}

...

const variationId = paywall.variationId;

try {
    await adapty.reportTransaction(transactionId, variationId);
} catch (error) {
    // handle the `AdaptyError`
}
```

Параметры:

| Параметр      | Обязательность | Описание                                                  |
| ------------- | -------------- | ---------------------------------------------------------- |
| transactionId | обязательный   | <ul><li> Для iOS, StoreKit 1: объект [SKPaymentTransaction](https://developer.apple.com/documentation/storekit/skpaymenttransaction).</li><li> Для iOS, StoreKit 2: объект [Transaction](https://developer.apple.com/documentation/storekit/transaction).</li><li> Для Android: строковый идентификатор (`purchase.getOrderId`) покупки, где покупка является экземпляром класса [Purchase](https://developer.android.com/reference/com/android/billingclient/api/Purchase) из библиотеки биллинга.</li></ul> |
| variationId   | необязательный | Строковый идентификатор варианта. Его можно получить через свойство `variationId` объекта [AdaptyPaywall](https://react-native.adapty.io/interfaces/adaptypaywall). |

</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> 

**Передача транзакций**

- Версии до 3.1.x автоматически отслеживают транзакции в App Store, поэтому ручная передача не требуется.
- Версия 3.2 не поддерживает Observer Mode.

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

**Передача транзакций**

Используйте `restorePurchases` для передачи транзакции в Adapty в Observer Mode, как описано на странице [Восстановление покупок в коде приложения](react-native-restore-purchase).

:::warning
**Не пропускайте передачу транзакций!**
Если вы не вызовете `restorePurchases`, Adapty не распознает транзакцию — она не появится в аналитике и не будет передана в интеграции.
::: 

</TabItem>
</Tabs>

**Привязка пейволов к транзакциям**

SDK Adapty не может определить источник покупок, так как их обрабатываете вы. Поэтому, если вы планируете использовать пейволы и/или A/B-тесты в Observer Mode, вам нужно связать транзакцию из вашего стора с соответствующим пейволом в коде мобильного приложения. Это важно сделать правильно до релиза приложения — иначе возникнут ошибки в аналитике.

```typescript 
const variationId = paywall.variationId;

try {
    await adapty.setVariationId('transactionId', variationId);
} catch (error) {
    // handle the `AdaptyError`
}
```

Параметры запроса:

| Параметр      | Обязательность | Описание                                                  |
| ------------- | -------------- | ---------------------------------------------------------- |
| transactionId | обязательный   | <p>Для iOS, StoreKit 1: объект [SKPaymentTransaction](https://developer.apple.com/documentation/storekit/skpaymenttransaction).</p><p>Для iOS, StoreKit 2: объект [Transaction](https://developer.apple.com/documentation/storekit/transaction).</p><p>Для Android: строковый идентификатор (purchase.getOrderId) покупки, где покупка является экземпляром класса [Purchase](https://developer.android.com/reference/com/android/billingclient/api/Purchase) из библиотеки биллинга.</p> |
| variationId   | обязательный   | Строковый идентификатор варианта. Его можно получить через свойство `variationId` объекта [AdaptyPaywall](https://react-native.adapty.io/interfaces/adaptypaywall). |

</TabItem> 
</Tabs>