---
title: "Миграция Android SDK Adapty на версию 3.4"
description: "Мигрируйте на Android SDK Adapty v3.4 для улучшения производительности и новых функций монетизации."
---

Adapty SDK 3.4.0 — это мажорный релиз, который содержит улучшения, требующие шагов по миграции с вашей стороны.

## Обновите файлы резервных пейволов \{#update-fallback-paywall-files\}

Обновите файлы резервных пейволов, чтобы обеспечить совместимость с новой версией SDK:

1. [Скачайте обновлённые файлы резервных пейволов](fallback-paywalls) из дашборда Adapty.
2. [Замените существующие резервные пейволы в своём мобильном приложении](android-use-fallback-paywalls) на новые файлы.

## Обновление реализации Observer Mode \{#update-implementation-of-observer-mode\}

Если вы используете Observer Mode, обновите его реализацию.

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

:::warning

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

:::

<Tabs groupId="current-os" queryString>
<TabItem value="kotlin" label="Kotlin" default>
```diff showLineNumbers
- Adapty.restorePurchases { result ->
-     if (result is AdaptyResult.Success) {
-         // success
-     }
- }
- 
- Adapty.setVariationId(transactionId, variationId) { error ->
-     if (error == null) {
-         // success
-     }
- }

+ val transactionInfo = TransactionInfo.fromPurchase(purchase)
+ 
+ Adapty.reportTransaction(transactionInfo, variationId) { result ->
+     if (result is AdaptyResult.Success) {
+         // success
+     }
+ }
```

</TabItem>

<TabItem value="java" label="Java" default>
```diff showLineNumbers
- Adapty.restorePurchases(result -> {
-     if (result instanceof AdaptyResult.Success) {
-         // success
-     }
- });
- 
- Adapty.setVariationId(transactionId, variationId, error -> {
-     if (error == null) {
-         // success
-     }
- });

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

</TabItem>
</Tabs>