---
title: "Отчёт о транзакциях в Observer Mode в Unity SDK"
description: "Сообщайте о транзакциях покупок в Observer Mode Adapty для отслеживания пользовательских данных и дохода в Unity 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` при отчёте о транзакции. Это связывает покупку с пейволом, который её инициировал, и обеспечивает точную аналитику пейволов.

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

Параметры:

| Параметр      | Обязательность | Описание                                                                                                                                                                                                                                                                                          |
| ------------- | -------------- |------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 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://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> 

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

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

:::warning

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

:::

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

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

Параметры:

| Параметр      | Обязательность | Описание                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| ------------- | -------------- |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 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://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> 

**Отчёт о транзакциях**

- Версии до 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, как описано на странице [Восстановление покупок в мобильном коде](unity-restore-purchase).

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

</TabItem>
</Tabs>

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

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

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

    // successful binding
});
```

| Параметр      | Обязательность | Описание                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| ------------- | -------------- |-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 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://unity.adapty.io/class_adapty_s_d_k_1_1_adapty_paywall.html).                                                                                                                                                                                                                                                                                                                                              |

</TabItem> 
</Tabs>