---
title: "Подключение FunnelFox к Adapty"
description: "Подключите веб-воронки FunnelFox к Adapty, чтобы покупки, сделанные в интернете, предоставляли уровни доступа в вашем мобильном приложении."
---

> **AI agents**: to search Adapty docs faster and with fewer tokens, install the Adapty skill. Claude Code (self-updating via plugin): `claude plugin marketplace add adaptyteam/adapty-skills && claude plugin install adapty-skills@adapty` — other tools: `npx skills add adaptyteam/adapty-skills --all`

[FunnelFox](https://funnelfox.com) создаёт веб-воронки: лендинги и квизы, которые продают ваши подписки за пределами App Store и Google Play. Подключите FunnelFox к Adapty, чтобы пользователи, совершившие покупку в интернете, получали доступ к платным функциям в вашем мобильном приложении, а их покупки отображались в том же дашборде, что и покупки из сторов.

Подключение требует один ключ и один идентификатор уровня доступа. После этого ваше приложение должно идентифицировать покупателя, чтобы предоставить ему этот уровень доступа. См. [Предоставление доступа в приложении](#provide-access-in-your-app).

## Как работает интеграция \{#how-the-integration-works\}

FunnelFox собирает оплату на сайте. Затем FunnelFox вызывает [Server-side API Adapty](getting-started-with-server-side-api), чтобы создать [профиль](profiles-crm), записать транзакцию и предоставить [уровень доступа](access-level), ID которого вы указываете в настройках интеграции FunnelFox. Продления, отмены и неудачные платежи обновляют тот же профиль. Веб-покупки отображаются в [аналитике Adapty](analytics) рядом с доходами из App Store и Google Play.

Adapty связывает веб-покупку с пользователем приложения по customer user ID. FunnelFox по умолчанию использует в качестве этого ID адрес электронной почты, введённый при оформлении заказа.

Чтобы реализовать аналогичный флоу с вашим собственным веб-чекаутом вместо воронки FunnelFox, см. [Синхронизация покупок между вебом и мобильным приложением](sync-subscribers-from-web).

## Подключение FunnelFox \{#connect-funnelfox\}

Подключение настраивается на стороне FunnelFox по [инструкции по интеграции FunnelFox с Adapty](https://funnelfox.com/docs/integrations/subscription-management/adapty#setup). Там потребуется указать два значения из Adapty:

- **Secret API key**: Откройте [**App Settings**](https://app.adapty.io/settings/general) в Adapty и скопируйте секретный ключ.
- **Access level ID**: [Уровень доступа](access-level), который нужно предоставить. Также можно задать отдельный уровень для каждого элемента чекаута — подробнее в разделе [Настройка уровня доступа для каждого элемента чекаута](#set-the-access-level-on-each-checkout-element).

## Укажите уровень доступа для каждого элемента оформления заказа \{#set-the-access-level-on-each-checkout-element\}

В FunnelFox поле **Custom entitlement** на элементе оформления заказа определяет, какой [уровень доступа](access-level) Adapty предоставляет пользователю при покупке через этот элемент. В каждом приложении Adapty по умолчанию есть уровень доступа `premium`; чтобы предоставить другой, сначала [создайте его](create-access-level).

Укажите это поле для каждого элемента оформления заказа в воронке. В одной воронке может быть несколько таких элементов — например, кнопка Wallet и аккордеон с оформлением заказа, — и у каждого есть своё поле **Custom entitlement**.

:::important
Переопубликуйте флоу после изменения настроек интеграции или любого значения **Custom entitlement**. Опубликованный флоу продолжает работать с предыдущей конфигурацией до тех пор, пока вы не переопубликуете его.
:::

## Предоставьте доступ в своём приложении \{#provide-access-in-your-app\}

Чтобы открыть платные функции для пользователя, совершившего покупку через веб, вызовите `Adapty.activate()` или `Adapty.identify()` с тем же customer user ID, который использовал FunnelFox. По умолчанию это адрес электронной почты, введённый покупателем при оформлении заказа. Подробнее о вызове смотрите в разделах <InlineTooltip tooltip="Идентификация пользователей">[iOS](identifying-users), [Android](android-identifying-users), [React Native](react-native-identifying-users), [Flutter](flutter-identifying-users), [Unity](unity-identifying-users), [Kotlin Multiplatform](kmp-identifying-users) и [Capacitor](capacitor-identifying-users)</InlineTooltip>.

Установка приложения по ссылке из воронки не идентифицирует покупателя. Пока ваше приложение не вызовет `Adapty.identify()` с совпадающим ID, профиль с уровнем доступа и профиль, созданный приложением, остаются разделёнными, и приложение не показывает платный доступ. Вход через email, указанный при оплате, совмещает эти два профиля.

Чтобы открыть доступ без шага авторизации, передайте customer user ID из воронки в приложение через отложенный диплинк, затем вызовите `Adapty.identify()` с этим ID при первом запуске.

Затем считайте уровень доступа из профиля, чтобы открыть нужные функции. Подробнее — <InlineTooltip tooltip="Проверка статуса подписки">[iOS](ios-check-subscription-status), [Android](android-check-subscription-status), [React Native](react-native-check-subscription-status), [Flutter](flutter-check-subscription-status), [Unity](unity-check-subscription-status), [Kotlin Multiplatform](kmp-check-subscription-status) и [Capacitor](capacitor-check-subscription-status)</InlineTooltip>.

## Проверьте интеграцию \{#test-the-integration\}

1. Совершите покупку в вашей воронке.
2. В Adapty откройте [**Profiles**](https://app.adapty.io/profiles/users) и найдите профиль по customer user ID, который использует FunnelFox.
3. Убедитесь, что уровень доступа, ID которого вы указали в настройках интеграции FunnelFox, активен на этом профиле.
4. Откройте приложение, авторизуйтесь под тем же пользователем и убедитесь, что платные функции разблокированы.

## Устранение неполадок \{#troubleshooting\}

### Пользователь, купивший подписку через веб, открывает приложение без доступа \{#a-web-buyer-opens-the-app-without-paid-access\}

Ваше приложение не идентифицировало покупателя. FunnelFox предоставил уровень доступа профилю, привязанному к ID, который он использовал — по умолчанию это email, указанный при оформлении заказа, — а ваше приложение читает другой профиль. Вызовите `Adapty.identify()` с этим ID, как описано в разделе [Предоставление доступа в приложении](#provide-access-in-your-app).

## Другие интеграции FunnelFox \{#other-funnelfox-integrations\}

FunnelFox подключается к трём продуктам Adapty, каждый из которых настраивается отдельно.

| Продукт | Что FunnelFox отправляет в Adapty | Гайд по настройке |
|---|---|---|
| Core | Профили, транзакции и уровни доступа, чтобы покупки через веб открывали доступ в приложении | Эта статья |
| Adapty Attribution | События транзакций с данными о кампании, воронке и эксперименте | [Интеграция FunnelFox с Adapty Attribution](ua-funnelfox) |
| Adapty Mail | Email-адреса, история покупок и события подписок | [Подключение FunnelFox к Adapty Mail](mail-funnelfox) |