---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://appmetrica.yandex.com/docs/en/sdk/android/analytics/android-product-flow.md
  - https://appmetrica.yandex.com/docs/ru/sdk/android/analytics/android-product-flow.md
  - href: ru/sdk/android/analytics/android-product-flow.md
    type: text/markdown
    title: Markdown version
  - href: ../../../llms.txt
    type: text/markdown
    title: llms.txt
---
> **Documentation Index:** Fetch the complete configuration index at https://appmetrica.yandex.com/docs/ru/llms.txt

# Продуктовые сценарии и офферные события

{% note info "Модуль Product Flow" %}

Для использования функциональности Product Flow подключите модуль `io.appmetrica.analytics:analytics-product-flow`. Версия модуля должна соответствовать версии библиотеки `io.appmetrica.analytics:analytics`.

В `build.gradle.kts` приложения добавьте следующую зависимость:

```kotlin translate=no
dependencies {
    implementation("io.appmetrica.analytics:analytics-product-flow:8.5.0")
}
```

{% endnote %}

## Подробнее о подходе {#details}

**Product Flow** — это новая схема работы типовых событий AppMetrica для приложений с офферами, покупками, оформлением заявок и многошаговыми сценариями оформления продуктов и услуг.

Дополнительную информацию о модуле и полные пользовательские сценарии см. в разделе [Офферные события в продуктовых сценариях](https://appmetrica.yandex.com/docs/ru/data-collection/offers.md).

Product Flow помогает стандартизировать аналитику следующих сущностей и сценариев:

- продуктовые предложения;
- маркетинговые офферы;
- покупки товаров и услуг;
- пользовательские воронки;
- шаги оформления;
- заявки и результаты одобрения;
- асинхронные S2S-результаты.

Рекомендуем использовать подход Product Flow для следующих типов приложений:

- банки;
- страховые сервисы;
- телеком-приложения;
- сервисы бронирования и путешествий;
- подписочные сервисы;
- сервисы доставки;
- маркетплейсы;
- игровые приложения;
- любые приложения с продуктовыми сценариями, покупками и аналитикой воронок.

{% note tip "Не расходуют лимиты custom events и DSA" %}

Новые типовые события не учитываются в следующих лимитах:

- `custom events`;
- `Data Stream API`.

Это позволяет:

- постепенно внедрять новую схему разметки;
- отправлять больше продуктовых сценариев и шагов;
- строить подробные воронки и аналитику без расходования лимитов кастомных событий и DSA.

{% endnote %}

## Основные события {#main-events}

Схема взаимодействия строится на основе четырех основных событий:

#|
|| **Событие** | **Что означает** ||
|| `offerShown` | Пользователь увидел оффер или предложение ||
|| `flowStart` | Пользователь начал оформление продукта ||
|| `flowStep` | Промежуточный шаг оформления ||
|| `flowResult` | Итоговый результат ||
|#

## Примеры событий {#examples}

### offerShown {#example-offerShown}

Пользователь увидел баннер: «Вам предварительно одобрен кредит до 500 000 ₽ по ставке от 12.5%».

```kotlin translate=no
AppMetrica.reportEvent(
    ProductFlowEvent.offerShown("credit_q1", "financial_product")
        .withProductId("personal_loan")
        .withBenefitType("discount_percentage")
        .withReferrer(
                OfferReferrer.newBuilder()
                    .withType("banner")
                    .withIdentifier("main_screen_credit_banner")
                    .withScreen("main")
                    .build()
        )
        .withPayload(mapOf(
            "campaign_id" to "credit_spring_2026",
            "segment" to "preapproved_users",
            "approved_limit" to "500000",
            "currency" to "RUB",
            "interest_rate" to "12.5"
        ))
        .build()
)
```

### flowStart {#example-flowStart}

Пользователь нажимает на баннер и начинает оформление заявки.

```kotlin translate=no
AppMetrica.reportEvent(
    ProductFlowEvent.flowStart("personal_loan")
        .withProductOfferId("credit_q1")
        .build()
)
```

### flowStep {#example-flowStep}

Пользователь загружает документы.

```kotlin translate=no
AppMetrica.reportEvent(
    ProductFlowEvent.flowStepForProduct("personal_loan", "documents")
        .withProductOfferId("credit_q1")
        .withStepOption("passport_upload")
        .build()
)
```

### flowResult {#example-flowResult}

Позже банк присылает финальный результат через S2S.

```kotlin translate=no
AppMetrica.reportEvent(
    ProductFlowEvent.flowResultForProduct(ProductFlowStatus.SUCCESS, "personal_loan")
        .withProductOfferId("credit_q1")
        .withPrice(OfferPrice(430000.0, "RUB"))
        .withPayload(mapOf(
            "application_id" to "loan_app_12345",
            "decision_source" to "s2s"
        ))
        .build()
)
```

<!-- source: ru/_includes/feedback-button-3.md -->
Если вы не нашли ответ на свой вопрос, то вы можете задать его через форму обратной связи. Пожалуйста, опишите возникшую проблему как можно подробнее. Если возможно, приложите скриншот.

<a href="../../../troubleshooting/feedback-new">
  <span class="button">Написать в службу поддержки</span>
</a>

<a href="../../../troubleshooting/feedback-docs">
  <span class="button">Предложить улучшение для документации</span>
</a>
<!-- endsource: ru/_includes/feedback-button-3.md -->
