---
title: "Показ онбординга разным группам пользователей"
description: "Отображайте разные онбординги в зависимости от источника привлечения или других атрибутов пользователя."
---

Вы можете показывать разные онбординги в зависимости от атрибутов пользователя: источника привлечения, кампании, географии, типа устройства, стадии жизненного цикла или намерений. Если контент онбординга соответствует конкретной группе пользователей, это повышает активацию и вовлечённость на старте. Настройка требует работы как на стороне разработчика, так и в дашборде.

## Перед началом работы \{#before-you-start\}

- **Версия SDK**: В приложении должен быть установлен Adapty SDK v3.8.0+ (iOS, Android, React Native, Flutter), v3.14.0+ (Unity) или v3.15.0+ (Kotlin Multiplatform, Capacitor). Подробнее — в разделе [Онбординги](onboardings).
- **Онбординги**: Создайте как минимум два онбординга в Adapty до начала настройки — один по умолчанию и по одному для каждого сегмента. См. [Создание онбординга](create-onboarding).
- **Инструменты атрибуции**: Если приложение использует AppsFlyer, Adjust, Branch или другую [интеграцию атрибуции](attribution-integration), данные о кампаниях и источниках могут уже быть доступны как атрибуты пользователей в Adapty. Их можно сразу использовать в сегментах — перейдите к шагу 2.

## Шаг 1. Назначьте пользователям кастомные атрибуты *(Разработчик)* \{#step-1-assign-custom-attributes-to-users-developer\}

Вызовите `updateProfile` в начале сессии пользователя, до отображения онбординга. Атрибут должен быть доступен в момент, когда Adapty определяет, какой онбординг показать.

<Tabs groupId="current-os" queryString>
<TabItem value="swift" label="iOS">

```swift
do {
    var builder = AdaptyProfileParameters.Builder()
    builder = try builder.with(customAttribute: "yoga", forKey: "campaign")
    try await Adapty.updateProfile(params: builder.build())
} catch {
    // handle the error
}
```

</TabItem>
<TabItem value="kotlin" label="Android">

```kotlin
val builder = AdaptyProfileParameters.Builder()
builder.withCustomAttribute("campaign", "yoga")

Adapty.updateProfile(builder.build()) { error ->
    if (error != null) {
        // handle the error
    }
}
```

</TabItem>
<TabItem value="rn" label="React Native">

```typescript
try {
  await adapty.updateProfile({
    codableCustomAttributes: {
      campaign: 'yoga',
    },
  });
} catch (error) {
  // handle `AdaptyError`
}
```

</TabItem>
<TabItem value="flutter" label="Flutter">

```dart
try {
  final builder = AdaptyProfileParametersBuilder()
    ..setCustomStringAttribute('yoga', 'campaign');
  await Adapty().updateProfile(builder.build());
} on AdaptyError catch (adaptyError) {
  // handle the error
} catch (e) {
  // handle the error
}
```

</TabItem>
<TabItem value="unity" label="Unity">

```csharp
try {
    var builder = new Adapty.ProfileParameters.Builder()
        .SetCustomStringAttribute("campaign", "yoga");

    Adapty.UpdateProfile(builder.Build(), (error) => {
        if (error != null) {
            // handle the error
        }
    });
} catch (Exception e) {
    // handle the exception
}
```

</TabItem>
<TabItem value="kmp" label="Kotlin Multiplatform">

```kotlin

val builder = AdaptyProfileParameters.Builder()
builder.withCustomAttribute("campaign", "yoga")

Adapty.updateProfile(builder.build())
    .onSuccess {
        // profile updated successfully
    }
    .onError { error ->
        // handle the error
    }
```

</TabItem>
<TabItem value="capacitor" label="Capacitor">

```typescript
try {
  await adapty.updateProfile({
    codableCustomAttributes: {
      campaign: 'yoga',
    },
  });
} catch (error) {
  // handle the error
}
```

</TabItem>
</Tabs>

Доступные типы атрибутов и ограничения на ключи и значения описаны в гайде по установке атрибутов пользователя для вашей платформы:
[iOS](setting-user-attributes) | [Android](android-setting-user-attributes) | [React Native](react-native-setting-user-attributes) | [Flutter](flutter-setting-user-attributes) | [Unity](unity-setting-user-attributes) | [Kotlin Multiplatform](kmp-setting-user-attributes) | [Capacitor](capacitor-setting-user-attributes)

## Шаг 2. Добавьте пользователей в сегменты *(Дашборд)* \{#step-2-add-users-to-segments-dashboard\}

Сгруппируйте пользователей по назначенным атрибутам в [сегменты](segments):

1. В дашборде перейдите в **Profiles & Segments** и откройте вкладку **Segments**. Нажмите **Create segment**.
2. Введите название и описание сегмента.
3. Нажмите **Add users attributes** и выберите атрибут из списка.

4. Создайте по одному сегменту для каждого атрибута, который планируете использовать.

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

## Шаг 3. Настройте плейсмент *(Дашборд)* \{#step-3-set-up-placement-dashboard\}

Чтобы Adapty мог определить, какой онбординг показать, создайте плейсмент и добавьте все сегменты как аудитории:

1. В дашборде перейдите в **Placements** и откройте вкладку **Onboardings**. Нажмите **Create placement**.
2. Введите название и ID плейсмента.
3. Нажмите **Run onboarding**. В открывшемся диалоге выберите онбординг, который будет показываться по умолчанию пользователям, не попавшим ни в один сегмент. Нажмите **Submit**.

4. В правом верхнем углу нажмите **Add audience**. Выберите сегмент и онбординг, который будет отображаться пользователям из этого сегмента. Нажмите **Submit**.
5. Добавьте аудитории для всех нужных сегментов и онбордингов.

6. Нажмите **Save & Publish**, чтобы плейсмент стал доступен для Adapty SDK.

## Шаг 4. Отобразите онбординги *(Разработчик)* \{#step-4-display-onboardings-developer\}

Используйте ID плейсмента для получения и отображения онбордингов в приложении. Следуйте гайду для вашей платформы:
[iOS](ios-present-onboardings) | [Android](android-present-onboardings) | [React Native](react-native-present-onboardings) | [Flutter](flutter-present-onboardings) | [Unity](unity-present-onboardings) | [Kotlin Multiplatform](kmp-present-onboardings) | [Capacitor](capacitor-present-onboardings)

:::tip
Чтобы проверить, что таргетинг работает: используйте тестовый профиль с назначенным кастомным атрибутом и убедитесь, что показывается нужный онбординг. В дашборде Adapty перейдите в **Profiles & Segments** и проверьте, что пользователь попал в ожидаемый сегмент.
:::