---
title: "Segmentar onboardings a distintos grupos de usuarios"
description: "Muestra diferentes onboardings según la fuente de adquisición u otros atributos del usuario."
---

Puedes mostrar distintos flujos de onboarding según los atributos del usuario: fuente de adquisición, campaña, geografía, tipo de dispositivo, estado en el ciclo de vida o intención de uso. Adaptar el contenido del onboarding a grupos específicos de usuarios mejora las tasas de activación y el engagement inicial. La configuración requiere trabajo tanto del equipo de desarrollo como en el dashboard.

## Antes de empezar \{#before-you-start\}

- **Versión del SDK**: Tu app debe usar Adapty SDK v3.8.0+ (iOS, Android, React Native, Flutter), v3.14.0+ (Unity) o v3.15.0+ (Kotlin Multiplatform, Capacitor). Consulta [Onboardings](onboardings) para más detalles.
- **Onboardings**: Crea al menos dos onboardings en Adapty antes de empezar — uno por defecto y uno por segmento. Consulta [Crear onboarding](create-onboarding).
- **Herramientas de atribución**: Si tu app usa AppsFlyer, Adjust, Branch u otra [integración de atribución](attribution-integration), es posible que los datos de campaña y fuente ya estén disponibles como atributos de usuario en Adapty. Puedes usar estos datos directamente en los segmentos — salta al Paso 2.

## Paso 1. Asignar atributos personalizados a los usuarios *(Desarrollador)* \{#step-1-assign-custom-attributes-to-users-developer\}

Llama a `updateProfile` al inicio de la sesión del usuario, antes de que se muestre el onboarding. El atributo debe estar disponible cuando Adapty evalúe qué onboarding mostrar.

<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>

Para conocer los tipos de atributos disponibles y los límites de claves y valores, consulta la guía de atributos de usuario para tu plataforma:
[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)

## Paso 2. Añadir usuarios a segmentos *(Dashboard)* \{#step-2-add-users-to-segments-dashboard\}

Agrupa los usuarios por los atributos asignados en [segmentos](segments):

1. En el dashboard, ve a **Profiles & Segments** y cambia a la pestaña **Segments**. Ahí, haz clic en **Create segment**.
2. Rellena el nombre y la descripción del segmento.
3. Haz clic en **Add users attributes** y selecciona un atributo de la lista.

4. Crea un segmento por cada atributo que quieras usar.

:::note
Para que un atributo personalizado aparezca en la lista, debe estar asignado al menos a un perfil. Añade un atributo personalizado a cualquier perfil desde el Adapty Dashboard para que esté disponible en la lista.
:::

## Paso 3. Configurar el placement *(Dashboard)* \{#step-3-set-up-placement-dashboard\}

Para que Adapty decida qué onboarding mostrar, crea un placement y añade todos los segmentos como audiencias:

1. En el dashboard, ve a **Placements** y cambia a la pestaña **Onboardings**. Ahí, haz clic en **Create placement**.
2. Rellena el nombre y el ID del placement.
3. Haz clic en **Run onboarding**. En el diálogo, selecciona el onboarding que se mostrará por defecto a los usuarios que no pertenezcan a ningún segmento. Haz clic en **Submit**.

4. En la parte superior derecha, haz clic en **Add audience**. Selecciona un segmento y el onboarding que se mostrará a los usuarios de ese segmento. Haz clic en **Submit**.
5. Añade audiencias para todos los segmentos y onboardings que necesites.

6. Haz clic en **Save & Publish** para que este placement esté disponible para el SDK de Adapty.

## Paso 4. Mostrar onboardings *(Desarrollador)* \{#step-4-display-onboardings-developer\}

Usa el ID del placement para obtener y mostrar onboardings en tu app. Sigue la guía específica de tu plataforma:
[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
Para verificar que el targeting funciona: usa un perfil de usuario de prueba con un atributo personalizado asignado y confirma que se muestra el onboarding correcto. En el Adapty Dashboard, comprueba **Profiles & Segments** para confirmar que el usuario aparece en el segmento esperado.
:::