---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.6
alternate:
  - https://boost.yandex.com/doc/en/analytics/content/data-collection/about-revenue.md
  - https://boost.yandex.com/doc/ru/analytics/content/data-collection/about-revenue.md
---
> **Documentation Index:** Fetch the complete configuration index at https://boost.yandex.com/doc/ru/llms.txt

# In-App покупки

<!-- 
 -->

Мобильное приложение может приносить выручку от показов рекламы [Ad Revenue](https://boost.yandex.com/doc/ru/analytics/content/data-collection/about-adrevenue.md) и покупок в приложении ([In-App Revenue](*IAP Revenue)). Boost Analytics позволяет собирать информацию о покупках в приложении и отслеживать статистику.

После настройки отправки In-App Revenue вы сможете:

- Оценивать доходность приложения в целом — от in-app покупок и до рекламной монетизации.
- Выделять самые популярные продукты, которые приносят наибольший доход.
- Строить воронки для оценки конверсии в покупку и анализа этапов оформления заказа.
- Оценивать User Acquisition — находить партнеров, которые приносят платящих пользователей, и оценивать эффективность их трафика.
- Выделять самые прибыльные сегменты пользователей, использовать когортный анализ для отслеживания дохода от пользователей со временем.
- Оценивать успешность введения новых возможностей с помощью метрики [ARPU](*ARPU).
- Анализировать реакцию пользователей на изменение цен с помощью метрики [ARPPU](*ARPPU).
- Оптимизировать ценообразование и пользовательские сценарии для увеличения in-app монетизации.
- Анализировать географию покупок и определять наиболее перспективные рынки.

{% note info "" %}

События In-App Revenue не входят в платные лимиты, их отправка не влияет на [стоимость тарифа](https://boost.yandex.com/doc/ru/analytics/content/common/pricing/ru-currency.md).

{% endnote %}

## Как рассчитывается In-App Revenue {#calculation}

Данные передаются от SDK для каждой покупки в приложении с информацией о транзакции.

Все события покупок в Boost Analytics привязываются к пользователям и на основе этих данных рассчитываются метрики для In-app Revenue:

| **Метрика** | **Описание** |
| ----------- | ----------- |
| In-App Revenue события | Количество событий с покупками (In-App Revenue). |
| In-App Revenue | Суммарная выручка от покупок в приложении. |
| In-App ARPU | Отношение выручки приложения от покупок к количеству пользователей приложения. Подробнее о [конвертации валют](#currency). |
| In-App ARPPU | Отношение выручки приложения от покупок к количеству платящих пользователей. Подробнее о [конвертации валют](#currency). |
| Платящие пользователи | Количество пользователей с событиями покупок (In-App Revenue). |
| In-App Revenue событий на пользователя | Отношение количества событий с покупками (In-App Revenue) к количеству пользователей. |
| Средний чек | Отношение суммарной выручки от покупок к количеству покупок. |
| Сессий с In-App Revenue | Количество сессий, в рамках которых были совершены покупки (In-App Revenue). |
| In-App Revenue событий на сессию | Отношение количества событий с покупками (In-App Revenue) к общему количеству сессий. |
| % платящих пользователей | Отношение количества пользователей с покупками (In-App Revenue) ко всем пользователям. |
| Конверсия в покупку | Отношение количества пользователей, совершивших покупку, к количеству пользователей, посетивших экран покупки. |

С учетом данных по In-App Revenue рассчитываются метрики по суммарному доходу:

| **Метрика** | **Описание** |
| ----------- | ----------- |
| Total Revenue | Суммарная выручка от рекламной монетизации, in-app покупок и подписок в приложении. Подробнее о [конвертации валют](#currency). |
| Total ARPU | Отношение общей выручки приложения от рекламной монетизации, in-app покупок и подписок к количеству пользователей приложения. Подробнее о [конвертации валют](#currency). |

При включенной валидации покупок доступны дополнительные метрики:

| **Метрика** | **Описание** |
| ----------- | ----------- |
| Невалидная выручка | Суммарная выручка от покупок, которые не прошли валидацию. |
| Пользователи с невалидной выручкой | Количество пользователей с покупками, которые не прошли валидацию. |
| % невалидной выручки | Отношение невалидной выручки к общей выручке от покупок. |


## Трекинг через Apphud {#apphud}

{% note info "" %}

Функциональность доступна для [тарифов](https://boost.yandex.com/doc/ru/analytics/content/common/pricing/uae-currency.md#apphud) **Конструктор** и **Максимальный**. [Подробнее](https://boost.yandex.com/doc/ru/analytics/content/data-collection/apphud/apphud-about.md) о том как подключить Apphud.

{% endnote %}

Boost Analytics позволяет настроить трекинг покупок и подписок в сотрудничестве с Apphud, предоставляя расширенные возможности сбора данных. Благодаря интеграции вы можете:

- Отслеживать покупки с типами [Consumable](*consumable) и [Non-Consumable](*non-consumable), включая случаи возврата средств.
- Считать выручку с учетом вычетов комиссии App Store, НДС и курсов конвертации валют.


## Настройка отправки In-App событий через Boost Analytics {#send-revenue}

Boost Analytics поддерживает автоматическое и ручное отслеживание In-App Revenue:

- При автоматическом отслеживании Boost Analytics собирает данные о покупках через StoreKit (iOS) и Google Play Billing (Android). 
  
  В Boost Analytics поддерживаются два способа настройки автоматической отправки событий In-app Revenue: [через SDK](#send-sdk) (основной способ для iOS и Android начиная с версии SDK 4.0) и [с помощью Post API](#send-post-api).

  Автоматическое отслеживание через SDK включается через `withRevenueAutoTrackingEnabled` (Android) или `revenueAutoTrackingEnabled` (iOS). 


- Ручное отслеживание дает полный контроль над отправкой данных о покупках и поддерживает валидацию покупок для защиты от мошенничества. При ручной отправке вы можете группировать покупки по `OrderID`. [Подробнее](#send-manual).

Если в вашем приложении настроен ручной сбор покупок и включен автоматический сбор, то в настройках Boost Analytics в разделе **Revenue** вы можете выбрать, какие данные по покупкам показывать в отчетах: собранные вручную, собранные автоматически или оба варианта.

Изменение этих настроек не влияет на сам сбор данных. После изменения настроек данные в отчетах за прошлые периоды также изменятся.

### Настройка автоматической отправки событий через SDK {#send-sdk}

#### Шаг 1. Активируйте SDK {#activate-sdk}

Убедитесь, что SDK AppMetrica активирован в вашем приложении:

- [Android](https://boost.yandex.com/doc/ru/analytics/content/sdk/android/analytics/android-operations.md#initialize)
- [iOS](https://boost.yandex.com/doc/ru/analytics/content/sdk/ios/analytics/ios-operations.md#initialize)
- [Flutter](https://boost.yandex.com/doc/ru/analytics/content/sdk/flutter/analytics/flutter-operations.md#send-adrevenue)
- [React Native](https://boost.yandex.com/doc/ru/analytics/content/sdk/react-native/analytics/quick-start.md)
- [Unity](https://boost.yandex.com/doc/ru/analytics/content/sdk/unity/analytics/quick-start.md)

#### Шаг 2. Настройте отправку In-App Revenue через SDK {#setup-sdk}

Выберите платформу и настройте соответствующие методы SDK.

- [Android](https://boost.yandex.com/doc/ru/analytics/content/sdk/android/analytics/android-operations.md#send-revenue)
- [iOS](https://boost.yandex.com/doc/ru/analytics/content/sdk/ios/analytics/ios-operations.md#send-revenue)
- [Flutter](https://boost.yandex.com/doc/ru/analytics/content/sdk/flutter/analytics/flutter-operations.md#send-revenue)
- [React Native](https://boost.yandex.com/doc/ru/analytics/content/sdk/react-native/analytics/react-native-operations.md#send-revenue)
- [Unity](https://boost.yandex.com/doc/ru/analytics/content/sdk/unity/analytics/unity-operations.md#send-revenue)

{% note info "Отладка" %}

В Boost Analytics нет возможности сегментировать события на тестовые и не тестовые. Если для отладки сбора данных о покупках в приложении вы используете основной API key, то тестовые события будут попадать в общую статистику. Поэтому для отладки используйте отправку на дополнительный API key с помощью репортера. 

{% cut "Подробнее о репортере" %}

- Android
  - [Отправка статистики на дополнительный API key](https://boost.yandex.com/doc/ru/analytics/content/sdk/android/analytics/android-operations.md#reporter-different-apikey) 
  - [Отслеживание сессий для репортеров](https://boost.yandex.com/doc/ru/analytics/content/sdk/android/analytics/android-listen.md) 

- iOS
  - [Отправка статистики на дополнительный API key](https://boost.yandex.com/doc/ru/analytics/content/sdk/ios/analytics/ios-operations.md#reporter-different-apikey) 
  - [Отслеживание сессий для репортеров](https://boost.yandex.com/doc/ru/analytics/content/sdk/ios/analytics/ios-listen.md#reporter-listen) 

- Flutter
  - [Отправка статистики на дополнительный API key](https://boost.yandex.com/doc/ru/analytics/content/sdk/flutter/analytics/flutter-operations.md#reporter-different-apikey) .

- React Native
  - [Отправка статистики на дополнительный API key](https://boost.yandex.com/doc/ru/analytics/content/sdk/react-native/analytics/react-native-operations.md#reporter-different-apikey) 

- Unity
  - [Отправка статистики на дополнительный API key](https://boost.yandex.com/doc/ru/analytics/content/sdk/unity/analytics/unity-operations.md#reporter-different-apikey) 

{% endcut %}

{% endnote %}

### Настройка отправки событий через Post API {#send-post-api}

Post API полезен для сбора In-App Revenue в следующих случаях:

- Покупки вне сторов — если покупки осуществляются не через Google Play или App Store.
- Собственная система подписок — если вы отслеживаете подписки самостоятельно.
- Сторонние платежные системы — интеграция с другими платежными провайдерами.
- Серверная валидация — дополнительная проверка покупок на вашем сервере.
- Импорт исторических данных — загрузка данных за период, когда SDK еще не был установлен (загрузить события можно только за последние 14 дней).
- Агрегация данных — объединение данных из нескольких источников.

Учитывайте [особенности](https://boost.yandex.com/doc/ru/analytics/content/mobile-api/post/about.md) и [ограничения](https://boost.yandex.com/doc/ru/analytics/content/mobile-api/post/restrictions.md) Post API.

#### Шаг 1. Получите Post API key {#send-api-key}

Перейдите в раздел **Настройки** → **Основное** и получите **Post API key** для авторизации запросов. 

{% note info "Отладка" %}

Чтобы в процессе отладки сбора данных тестовые события не попадали в общую статистику, используйте разные Post API key для разных окружений — тестового и рабочего. 

{% endnote %}

#### Шаг 2. Подготовьте данные для отправки {#send-api-data}

Ознакомьтесь с документацией по загрузке событий In-App Revenue через Post API: [Загрузка событий In-app Revenue](https://boost.yandex.com/doc/ru/analytics/content/mobile-api/post/post-revenue.md).

Соберите необходимые параметры для события In-App Revenue.

#### Шаг 3. Отправьте HTTP-запрос {#send-api-request}

Post API поддерживает два способа передачи данных:

- Передача в теле запроса (CSV формат). Подходит для массовой загрузки данных. 

  Используйте endpoint: `/logs/v1/import/revenue.csv`
  
  Передайте данные в теле запроса в формате CSV.
   
- Передача в параметрах запроса. Подходит для одиночных событий.
  
  Используйте endpoint: `/logs/v1/import/revenue`
  
  Передайте данные как параметры URL.

#### Шаг 4. Обработайте ответ {#send-api-response}

API возвращает следующие коды ответа:

- `200` — данные успешно загружены
- `403` — ошибка авторизации
- `400` — отсутствуют обязательные параметры

### Настройка ручной отправки In-App Revenue {#send-manual}

Для ручной отправки In-App Revenue создайте в коде приложения объект `Revenue` и используте метод `AppMetrica.reportRevenue(revenue)` (или через репортер для тестирования). 

В этом случае данные о покупках отправляются непосредственно из приложения на серверы Boost.

## Проверка данных в отчетах {#metrics}

После настройки отправки событий Ad Revenue [через SDK](#send-sdk), [с помощью Post API](#send-post-api) или [вручную](#send-manual) убедитесь, что события поступают в систему и количество событий соответствует количеству просмотров рекламы.

Метрики In-App Revenue доступны в следующих отчетах:

[In-app и Ad Revenue](https://boost.yandex.com/doc/ru/analytics/content/mobile-reports/revenue-report.md)

:   В отчете **In-app и Ad Revenue** вы можете оценить общий доход приложения, доход от разных типов монетизации (рекламной и in-app), доход по разным рекламным сетям и разным типам объявлений.

[User Acquisition](https://boost.yandex.com/doc/ru/analytics/content/mobile-reports/user-acquisition-report.md) и [Remarketing](https://boost.yandex.com/doc/ru/analytics/content/mobile-reports/remarketing-report.md)

:   В этих отчетах вы можете оценить эффективность источников привлечения и возвращения трафика с точки зрения ARPU и других метрик рекламной и in-app монетизации. Обратите внимание, метрики в этом отчете считаются суммарно за весь период жизни пользователя.

[Когортный анализ](https://boost.yandex.com/doc/ru/analytics/content/mobile-reports/cohort-report.md)

:   В когортном отчете вы сможете оценить, какой доход вы получаете от пользователей с течением времени и ARPU на интересующий вас день.

[Воронки](https://boost.yandex.com/doc/ru/analytics/content/mobile-reports/funnels-report.md)

:   В воронках вы можете оценить, какая доля пользователей доходит до покупки.

[Сегментация](https://boost.yandex.com/doc/ru/analytics/content/mobile-reports/segmentation.md)

:   Для построения каждого отчета вы можете выбрать, например, только пользователей из определенного региона или сделавших покупки на определенные суммы.

## Конвертация валют {#currency}

Покупки в приложении могут совершаться в разных валютах. Список всех поддерживаемых валют см. в разделе [Поддерживаемые валюты](https://boost.yandex.com/doc/ru/analytics/content/data-collection/currency-codes.md).

Стоимость покупки конвертируется во все валюты отчета: USD, EUR, RUB. Для конвертации валюты используется курс, который предоставляют более 15 источников, включая Европейский центральный банк.

Конвертация происходит по курсу, который был днем ранее. Например, если покупка была совершена в день N, то стоимость покупки конвертируется по курсу дня N − 1. Конвертация в валюты EUR и RUB происходит относительно USD.

{% note alert "" %}

Курс конвертации Boost Analytics может не совпадать с курсом Google Play Console и iTunes Connect.

{% endnote %}

## Валидация покупок {#validation}

Поддерживается [валидация покупок](*валидация покупок), которые совершаются через App Store или Google Play. Для валидации покупок на iOS используются ресурсы iTunes API, на Android — локальная валидация с помощью публичного ключа.


Для валидации покупок необходимо:

{% list tabs %}

- Apphud

  Добавьте ключи/сертификаты при подключении [Apphud](https://boost.yandex.com/doc/ru/analytics/content/data-collection/apphud/apphud-about.md).

- Boost Analytics

  Добавьте ключи в настройках Boost Analytics и настройте отправку дополнительной информации вместе с Revenue. Подробнее в разделе [Настройка отправки In-App событий через Boost Analytics](#send-revenue).

{% endlist %}



При включенной валидации:
- в отчет попадают покупки, которые прошли валидацию или были отправлены без информации для валидации;
- все метрики In-App Revenue cчитаются по валидированным покупкам и покупкам, отправленным без параметров для валидации;
- по невалидным покупкам считаются метрики **Невалидная выручка** и **Пользователи с невалидной выручкой**.

<!--## Группировка покупок {#grouping}

ВОПРОС ОЛЕ!!!

Покупки в приложении группируются по идентификатору `OrderID`.

Для покупок c валидацией в качестве идентификатора используются:
- На iOS — идентификатор [transactionIdentifier](https://developer.apple.com/documentation/storekit/skpaymenttransaction/1411288-transactionidentifier). Он генерируется библиотекой [StoreKit](https://developer.apple.com/documentation/storekit).
- На Android — идентификатор [OrderId](https://developer.android.com/reference/com/android/billingclient/api/Purchase.html#getorderid). Он генерируется библиотекой [Google Play Billing](https://developer.android.com/google/play/billing/billing_overview).

Для покупок без валидации `OrderID` можно задать вручную. Его необходимо передавать в поле `payload`. Подробнее в разделе [{#T}](#send-revenue).

Если `OrderID` не передается, AppMetrica SDK генерирует идентификатор покупки автоматически. -->

<!--
 -->

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

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

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

[*Ad Revenue]: Выручка от рекламы, которая размещена в приложении.

[*IAP Revenue]: Выручка от покупок, которые сделаны пользователем через приложение. Например, предметы улучшения в играх, заказы товаров в магазинах, подписки.

[*ARPU]: Средняя выручка на одного пользователя (average revenue per user). Рассчитывается как отношение общей выручки приложения от in-app покупок и подписок к общему количеству пользователей приложения за выбранный период. Подробнее о [конвертации](#currency) валют.

[*ARPPU]: Отношение общей выручки приложения от in-app покупок и подписок к количеству платящих пользователей за выбранный период. Подробнее о [конвертации](#currency) валют.

[*consumable]: Покупка такого типа может быть сделана несколько раз. Например, жизни или энергия в играх.

[*non-consumable]: Покупка такого типа делается только один раз. Например, персонаж в игре или фильм в онлайн-кинотеатре.

[*валидация покупок]: Подтверждение факта покупки и оплаты в Google Play Market или Apple App Store. Валидация позволяет отфильтровывать покупки, которые совершаются из взломанных приложений. При включенной валидации все метрики In-App Revenue cчитаются по валидированным покупкам и покупкам, отправленным без параметров для валидации. По невалидным покупкам считаются метрики **Невалидная выручка** и **Пользователи с невалидной выручкой**.
Подробнее о настройке валидации в разделе [{#T}](#send-revenue).