Отчёт о транзакциях в Observer Mode в Flutter SDK
Инструменты для AI-агентов
Выполните всю интеграцию Adapty SDK из вашего AI-инструмента. Подробнее
Подходит для любого агента с поддержкой skills. Для обновления запустите npx skills update.
После установки запустите skill в вашем проекте:
В режиме Observer Adapty SDK не может самостоятельно отслеживать покупки, сделанные через вашу существующую систему. Вам нужно передавать транзакции из стора вручную. Важно настроить это до публикации приложения, чтобы избежать ошибок в аналитике.
Используйте reportTransaction, чтобы явно сообщать Adapty о каждой транзакции.
Не пропускайте отчёт о транзакции!
Если вы не вызовете reportTransaction, Adapty не распознает транзакцию, она не появится в аналитике и не будет отправлена в интеграции.
Если вы используете флоу и пейволы Adapty, передавайте variationId при отчёте о транзакции. Это связывает покупку с флоу или пейволом, который её инициировал, и обеспечивает точную аналитику.
try {
// every time when calling transaction.finish()
await Adapty().reportTransaction(
transactionId: "YOUR_TRANSACTION_ID",
variationId: "PAYWALL_VARIATION_ID", // optional
);
} on AdaptyError catch (adaptyError) {
// handle the error
} catch (e) {
// handle the error
}Параметры:
| Параметр | Наличие | Описание |
|---|---|---|
| transactionId | required |
|
| variationId | optional | Строковый идентификатор варианта. Его можно получить через свойство variationId объекта AdaptyPaywall. |
В режиме Observer, SDK не может самостоятельно отслеживать покупки, сделанные через вашу существующую систему покупок. Вам нужно передавать транзакции из вашего стора или восстанавливать их. Важно настроить это до выпуска приложения, чтобы избежать ошибок в аналитике.
Используйте reportTransaction на обеих платформах для явной передачи каждой транзакции, а также restorePurchases на Android как дополнительный шаг, чтобы Adapty её распознала.
Не пропускайте отчёт о транзакции и восстановление покупок! Если вы не вызываете эти методы, Adapty не распознает транзакцию — она не появится в аналитике и не будет отправлена в интеграции.
Если вы используете флоу и пейволы Adapty, передавайте variationId при отчёте о транзакции. Это связывает покупку с флоу или пейволом, который её инициировал, и обеспечивает корректную аналитику.
// every time when calling transaction.finish()
if (Platform.isAndroid) {
try {
await Adapty().restorePurchases();
} on AdaptyError catch (adaptyError) {
// handle the error
} catch (e) {
}
}
try {
// every time when calling transaction.finish()
await Adapty().reportTransaction(
transactionId: "YOUR_TRANSACTION_ID",
variationId: "PAYWALL_VARIATION_ID", // optional
);
} on AdaptyError catch (adaptyError) {
// handle the error
} catch (e) {
// handle the error
}Параметры:
| Параметр | Наличие | Описание |
|---|---|---|
| transactionId | обязательный |
|
| variationId | необязательный | Строковый идентификатор варианта. Его можно получить через свойство variationId объекта AdaptyPaywall. |
Передача транзакций
- Версии до 3.1.x автоматически отслеживают транзакции в App Store, поэтому передавать их вручную не нужно.
- Версия 3.2 не поддерживает Observer Mode.
Передача транзакций
Используйте restorePurchases, чтобы сообщить Adapty о транзакции в Observer Mode, как описано на странице Восстановление покупок в коде приложения.
Не пропускайте отправку транзакций!
Если вы не вызовете restorePurchases, Adapty не распознает транзакцию — она не появится в аналитике и не будет отправлена в интеграции.
Привязка флоу и пейволов к транзакциям
Adapty SDK не может определить источник покупок, так как их обрабатываете вы. Поэтому, если вы планируете использовать флоу, пейволы и/или A/B-тесты в режиме Observer, вам нужно в коде мобильного приложения связать транзакцию из стора с соответствующим флоу или пейволом. Это важно сделать правильно до релиза приложения, иначе это приведёт к ошибкам в аналитике.
final transactionId = transaction.transactionIdentifier
final variationId = paywall.variationId
try {
await Adapty().setVariationId('transactionId', variationId);
} on AdaptyError catch (adaptyError) {
// handle the error
} catch (e) {
}