> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Centro de preferencias

> Aprende cómo implementar un centro de preferencias de usuario personalizado en tu app o sitio web usando las APIs de OneSignal para gestionar temas de notificaciones, frecuencias, canales y configuraciones de privacidad de datos.

## ¿Qué es un centro de preferencias?

Un Centro de Preferencias es una página en tu app o sitio web que permite a tus usuarios controlar cómo y qué tipo de mensajes reciben de ti. Para más detalles y razones para crear un Centro de Preferencias, consulta [Una Guía para Centros de Preferencias de Usuario](https://onesignal.com/blog/a-guide-to-user-preference-centers).

Esta guía explica la configuración técnica necesaria para incluir un centro de preferencias de usuario en tu app o sitio web usando las APIs de OneSignal. En esta guía discutimos cómo:

* asignar temas, categorías y controles de frecuencia con [Etiquetas de Datos](./add-user-data-tags)
* recopilar nuevos canales de comunicación (notificaciones push, email, SMS)
* deshabilitar canales de comunicación si el usuario quiere optar por no participar
* manejar cumplimiento de datos
* eliminar datos de usuario

## Requisitos

* SDKs Móviles de OneSignal versión 5+ y/o Web SDK 16+
* Establecer el [External ID o Alias](./users)
* OneSignal no proporciona ninguna API para crear el diseño del Centro de Preferencias, solo las APIs para GET, PATCH y DELETE de Usuarios y Suscripciones
  * Si tienes un sitio web y necesitas un centro de preferencias simple, prueba nuestro [Prompt de Categoría](./permission-requests)

### Lectura adicional recomendada

* [Una Guía para Centros de Preferencias de Usuario](https://onesignal.com/blog/a-guide-to-user-preference-centers)
* [Datos Recopilados por el SDK de OneSignal](./data-collected-by-the-onesignal-sdk)
* [Manejo de Datos Personales](./handling-personal-data)

## Configuración

Cuando el usuario llega a tu centro de preferencias, usa el API [View user](/reference/view-user) para obtener los datos de OneSignal para el usuario basado en el `external_id` o un alias personalizado que establezcas. Esto te proporcionará las `properties` y `subscriptions` del usuario. Los datos útiles incluyen pero no se limitan a:

* `properties`: los datos del usuario
  * `tags` - datos personalizados que envías a OneSignal
  * `language` - el código de idioma para el usuario
* `subscriptions`: los canales de mensajería y estado de suscripción
  * `id` - el Subscription ID
  * `type` - `Email`, `SMS`, \*Push (`AndroidPush`, `iOSPush`, `ChromePush`, `SafariPush`, etc)
  * `enabled` - `true` significa suscrito, `false` significa no suscrito
  * `token` - el token push, dirección de email o número de teléfono dependiendo del tipo de suscripción

<CodeGroup>
  ```json json theme={null}
  {
    "properties": {
      "tags": {
        "finance": "1",
        "tech": "1",
        "sports": "1",
        "breaking-news": "0",
        "entertainment": "0",
        "deals": "0",
        "newsletter-frequency": "weekly",
        "customer_status": "Enterprise",
        "event": "1693411710",
        "first_name": "Jon",
        "last_name": "F"
      },
      "language": "en"
    },
    "subscriptions": [
      {
        "id": "sub_id_1",
        "type": "Email",
        "token": "email@example.com",
        "enabled": true
      },
      {
        "id": "sub_id_2",
        "type": "SMS",
        "token": "1234567890",
        "enabled": true
      },
      {
        "id": "sub_id_3",
        "type": "ChromePush",
        "token": "some_token_here",
        "enabled": true
      }
    ]
  }
  ```
</CodeGroup>

Usa los datos proporcionados para poblar el centro de preferencias según sea necesario.

## Asignar categorías y controles de frecuencia

Consulta [Etiquetas de Datos](./add-user-data-tags). Las etiquetas son pares clave-valor usados para segmentar y personalizar. Usa enteros codificados como cadenas o timestamps para habilitar filtrado basado en rangos.

Los usuarios pueden alternar intereses (ej., `sports: 1`) o establecer etiquetas de frecuencia como `newsletter-frequency: weekly`. Usa estos datos en [Segmentos](./segmentation) o el API [Create notification](/reference/create-message) con filtros.

Para actualizar una etiqueta, llama al API [Update user](/reference/update-user).

## Recopilar nuevos canales de comunicación

Verifica `subscriptions` para tipo y estado habilitado. Muestra `token` solo para email/SMS, no para push.

<Warning>
  Si la información de contacto existe en tu sistema pero aún no en OneSignal, usa tu propia
  BD como respaldo para mostrarla.
</Warning>

### Actualizaciones de Email y SMS

Usa los métodos SDK `addEmail`, `addSms` o las APIs [Create subscription](/reference/create-subscription) y [Update subscription](/reference/update-subscription). El `id` de suscripción es requerido para actualizaciones.

### Actualizaciones de Push

Si push no está habilitado, solicita al usuario.

* Para apps móviles: [Solicitar Permisos Push](./prompt-for-push-permissions)
* Para web: usa [Prompt Nativo del Navegador](./permission-requests) o [Slide Prompt](./permission-requests)

## Deshabilitar canales de comunicación

Usa [Update subscription](/reference/update-subscription) para establecer `enabled` a `false`. Alterna a `true` para optar por participar nuevamente.

## Manejar cumplimiento de datos

Prevén la inicialización del SDK por defecto y requiere consentimiento del usuario para inicializar. Consulta [Manejo de Datos Personales](./handling-personal-data).

## Eliminar datos de usuario

Usa el API [Delete user](/reference/delete-user) para eliminar completamente un usuario de OneSignal.

***
