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

# Sonidos de notificación

> Agrega sonidos de notificación personalizados a apps de iOS, Android, Huawei y Amazon — incluidos formatos de archivo, configuración del SDK y parámetros de API.

Los sonidos personalizados te permiten proporcionar una experiencia más única y de marca en tu app. Puedes agregar un sonido personalizado a cada notificación o solo a ciertos tipos. Por ejemplo, una app social podría reproducir un sonido distintivo solo para mensajes directos para diferenciarlos de las notificaciones del sistema.

<Warning>
  Solo para apps móviles. Los sonidos personalizados no están soportados en web push.
</Warning>

## Configuración

### Crear archivos de sonido

Crea archivos de sonido siguiendo los requisitos de plataforma a continuación. Si el dispositivo no puede encontrar el archivo especificado o el formato de archivo no está soportado, recurrirá al sonido de notificación del sistema predeterminado.

<Note>
  Mantén los nombres de archivos de sonido en minúsculas ya que algunas plataformas ignoran letras mayúsculas para archivos de sonido. En lugar de `AwesomeSound.wav` usa `awesomesound.wav` o `awesome_sound.wav`.
</Note>

| Plataforma | Extensiones           | Notas                                                                                                                                            |
| ---------- | --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| iOS        | `.wav` `.aiff` `.caf` | Los sonidos deben estar codificados como Linear PCM, MA4 (IMA/ADPCM), µLaw o aLaw. Deben durar menos de 30 segundos.                             |
| Android    | `.wav` `.mp3` `.ogg`  | Duración recomendada menos de 30 segundos. Mantén el tamaño de archivo pequeño, archivos grandes pueden no reproducirse en algunos dispositivos. |
| Huawei     | `.wav` `.mp3` `.wma`  | Duración recomendada menos de 30 segundos. Mantén el tamaño de archivo pequeño, archivos grandes pueden no reproducirse en algunos dispositivos. |
| Amazon     | `.wav` `.mp3` `.ogg`  | Duración recomendada menos de 30 segundos. Mantén el tamaño de archivo pequeño, archivos grandes pueden no reproducirse en algunos dispositivos. |

### Agregar archivos de sonido a tu app

Los archivos de sonido deben incluirse como recursos dentro de tu app. Las URLs externas no están soportadas.

<Tabs>
  <Tab title="iOS">
    Agrega archivos de sonido a la ubicación apropiada en tu proyecto Xcode dependiendo de tu SDK.

    | SDK            | Folder                                                                                                                                                   |
    | -------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | iOS Native     | Add files to the Xcode project root. Make sure **Add to targets** is selected when adding files so they are automatically added to the bundle resources. |
    | Cordova, Ionic | Add files to `Resources` directory within the Xcode project in `<project-root>/platforms/ios/project-name.xcodeproj`.                                    |
    | Unity          | Add sounds anywhere in your Unity project, build your project, and then move those sounds to the Xcode project root.                                     |
  </Tab>

  <Tab title="Android, Huawei, and Amazon">
    Agrega archivos de sonido a la carpeta apropiada en tu proyecto dependiendo de tu SDK. **Si la carpeta no existe, créala.**

    | SDK                            | Folder                                                                                                                                                                    |
    | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | Android, Huawei, Amazon Native | `res/raw`                                                                                                                                                                 |
    | React Native                   | `<project-root>/android/app/src/main/res/raw`                                                                                                                             |
    | Cordova                        | `<project-root>/platforms/android/res/raw/`                                                                                                                               |
    | Ionic                          | `/android/app/src/main/res/raw/`                                                                                                                                          |
    | Unity                          | `Assets/Plugins/Android/OneSignalConfig/res/raw` *NOTE: Your sound and icon file names must be lowercase and can't contain anything else except underscores and numbers.* |
    | Flutter                        | `main/res/raw`                                                                                                                                                            |
    | .NET                           | `<project-root>/Platforms/Android/Resources/raw/`                                                                                                                         |
  </Tab>
</Tabs>

### Enviar notificaciones

<Tabs>
  <Tab title="iOS">
    Incluye la extensión del archivo al hacer referencia al recurso de sonido (p. ej., `explode_sound.wav`). Configura el sonido en el dashboard al enviar mensajes push o usa la propiedad `ios_sound` del API [Create Notification](/reference/create-message).

    Para sin sonido, pasa `nil` al campo **Sound**.

    <Frame caption="Configuración de un sonido personalizado para iOS en el dashboard de OneSignal.">
      <img src="https://mintcdn.com/onesignal/6tscVAtiSqz353kV/images/docs/a05af7e-Screenshot_2023-02-28_at_3.16.55_PM.png?fit=max&auto=format&n=6tscVAtiSqz353kV&q=85&s=9d33c9837ac9f67b0d6c6a7a87d03212" alt="OneSignal dashboard push composer showing the iOS Sound field" width="423" height="606" data-path="images/docs/a05af7e-Screenshot_2023-02-28_at_3.16.55_PM.png" />
    </Frame>
  </Tab>

  <Tab title="Android, Huawei, and Amazon">
    Android 8+ introdujo [Notification Categories](./android-notification-categories) que deben configurarse para personalizar sonidos de notificación. OneSignal usa el sonido configurado en el Notification Channel para todas las versiones de Android.

    En **Settings > Push & In-App > Android Notification Channels**, crea el grupo y canal.

    <Frame caption="Crear un canal de notificación.">
      <img src="https://mintcdn.com/onesignal/tc0EvmtSSX56SX0c/images/docs/8f39237-Screenshot_2023-02-28_at_3.11.52_PM.png?fit=max&auto=format&n=tc0EvmtSSX56SX0c&q=85&s=b18a97c1706dde194bd4e5c13cd9f593" alt="OneSignal dashboard showing the notification channel creation form" width="877" height="487" data-path="images/docs/8f39237-Screenshot_2023-02-28_at_3.11.52_PM.png" />
    </Frame>

    * Establece **Importance** a "Urgent" o "High" para reproducir sonido.
    * Establece **Sound** a "Default" o "Custom" según tus necesidades. **No** agregues la extensión del archivo al hacer referencia al recurso de sonido (p. ej., `cat_meow_sound`).
    * Para sin sonido, establece **Importance** a "Urgent" o "High" y **Sound** a "Off". O establece **Importance** a "Medium" o "Low" para sin sonido.

    <Frame caption="Configuración del sonido para un canal de notificación.">
      <img src="https://mintcdn.com/onesignal/KSCNwSpBCNSQ8xdF/images/docs/f7950b6-Screenshot_2023-02-28_at_3.11.03_PM.png?fit=max&auto=format&n=KSCNwSpBCNSQ8xdF&q=85&s=88d88df41d360b190b4c083709e8119c" alt="OneSignal notification channel settings showing sound configuration options" width="429" height="498" data-path="images/docs/f7950b6-Screenshot_2023-02-28_at_3.11.03_PM.png" />
    </Frame>

    Luego puedes establecer el nombre de categoría en el dashboard al enviar mensajes push o usar las propiedades `android_channel_id` y `huawei_channel_id` del API [Create Notification](/reference/create-message). El sonido configurado en la categoría funciona para todas las versiones de Android.

    <Frame caption="Selección de la categoría de notificación en el compositor de push.">
      <img src="https://mintcdn.com/onesignal/jFWn5xzleD8du3j6/images/docs/5e8625c-Screenshot_2023-02-28_at_3.15.19_PM.png?fit=max&auto=format&n=jFWn5xzleD8du3j6&q=85&s=c02f9a68fcb73b913a1de93e01d0f4aa" alt="OneSignal push composer showing the notification category dropdown" width="423" height="517" data-path="images/docs/5e8625c-Screenshot_2023-02-28_at_3.15.19_PM.png" />
    </Frame>
  </Tab>

  <Tab title="REST API">
    Puedes enviar notificaciones con sonidos a través del REST API usando el parámetro apropiado para cada plataforma. Consulta la [referencia del API Create Notification](/reference/push-notification) para todos los detalles.

    | Plataforma | Parámetro API                                                                                                                                                                                                                  | Detalles                                                                                                |
    | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------- |
    | iOS        | `ios_sound`                                                                                                                                                                                                                    | Incluir extensión de archivo. Ejemplo: `"ios_sound": "explode_sound.wav"`. Para sin sonido, pasa `nil`. |
    | Android    | `android_channel_id` — Usar si creaste el canal en el dashboard de OneSignal a través de [Notification Categories](./android-notification-categories). `existing_android_channel_id` — Usar si creaste el canal en otro lugar. | Se recomienda usar [Notification Categories](./android-notification-categories).                        |
    | Huawei     | `huawei_channel_id` — Usar si creaste el canal en el dashboard de OneSignal a través de [Notification Categories](./android-notification-categories). `huawei_existing_channel_id` — Usar si creaste el canal en otro lugar.   | Se recomienda usar [Notification Categories](./android-notification-categories).                        |
    | Amazon     | `adm_sound`                                                                                                                                                                                                                    | No incluir extensión de archivo. Ejemplo: `"adm_sound": "explode_sound"`.                               |
  </Tab>
</Tabs>

<Warning>
  Si recientemente agregaste un recurso de sonido a tu app, considera esperar unos días antes de enviar notificaciones que lo usen. Puede tomar días o semanas para que la mayoría de los usuarios actualicen a la versión más reciente de la app que contiene el nuevo archivo de sonido.

  Si un usuario tiene una versión anterior sin el recurso de sonido y recibe una notificación que lo referencia, solo escuchará el sonido de notificación del sistema predeterminado.
</Warning>

***

## FAQ

### ¿Puedo establecer un sonido predeterminado?

Usa una [Template](./templates) que haga referencia al sonido y/o Android Notification Channel. Cada notificación enviada con esa plantilla usará automáticamente el sonido configurado.

### ¿Puedo enviar diferentes sonidos de notificación a diferentes usuarios?

Los parámetros `ios_sound` y `android_channel_id` son a nivel de solicitud — se aplican a **todos** los destinatarios de esa llamada API. No puedes especificar diferentes sonidos para diferentes usuarios en una sola solicitud.

Para entregar diferentes sonidos a diferentes usuarios, usa un **patrón fan-out**: haz llamadas API separadas para cada variante de sonido, apuntando a usuarios por etiqueta o segmento. Por ejemplo, almacena el sonido preferido de cada usuario en una [etiqueta](./add-user-data-tags) como `preferred_sound`, luego envía una solicitud por valor de sonido.

<CodeGroup>
  ```json Request 1 — "chime" users theme={null}
  {
    "app_id": "YOUR_APP_ID",
    "contents": {"en": "You have a new message!"},
    "ios_sound": "chime.wav",
    "android_channel_id": "CHIME_CHANNEL_ID",
    "include_filters": [
      {"field": "tag", "key": "preferred_sound", "relation": "=", "value": "chime"}
    ]
  }
  ```

  ```json Request 2 — "bell" users theme={null}
  {
    "app_id": "YOUR_APP_ID",
    "contents": {"en": "You have a new message!"},
    "ios_sound": "bell.wav",
    "android_channel_id": "BELL_CHANNEL_ID",
    "include_filters": [
      {"field": "tag", "key": "preferred_sound", "relation": "=", "value": "bell"}
    ]
  }
  ```
</CodeGroup>

Cada solicitud apunta solo a los usuarios cuya etiqueta `preferred_sound` coincide, por lo que cada grupo escucha su propio sonido. Agrega tantas variantes como necesites — una llamada API por sonido.

### ¿Por qué mi notificación no reproduce el archivo de sonido personalizado?

Hay algunas causas comunes:

* El archivo de sonido tiene una extensión de archivo incorrecta
* El archivo de sonido no está codificado en un formato soportado
* El archivo de sonido está en la ubicación incorrecta en el proyecto
* El archivo de sonido tiene más de 30 segundos

**iOS** — Lee más en la [documentación de Apple](https://developer.apple.com/documentation/usernotifications/unnotificationsound?language=objc) para guía de codificación y pruebas.

**Android** — Verifica que el archivo de sonido esté incluido en tu APK extrayéndolo y confirmando que existe en `res/raw/`.

Si la reducción de recursos está habilitada, protege los archivos de sonido de ser eliminados creando `keep.xml` en `res/raw/`:

```xml theme={null}
<resources xmlns:tools="http://schemas.android.com/tools"
  tools:keep="@raw/sound_file"/>
```

### ¿Por qué mi notificación reproduce el archivo de sonido predeterminado?

Asegúrate de haber seguido las instrucciones de configuración y que el archivo de sonido esté en la ubicación correcta para tu SDK. Verifica el uso de mayúsculas en el nombre del archivo — algunas plataformas ignoran las letras mayúsculas.

### ¿Por qué se reproduce el sonido incorrecto?

En Android, las notificaciones se agrupan después de que se recibe un cierto número sin abrirlas. Las notificaciones agrupadas reproducen un sonido predeterminado. Puedes establecer el sonido con la [clave de grupo](https://developer.android.com/training/notify-user/group) para todas tus notificaciones.

***

## Páginas relacionadas

<Columns cols={2}>
  <Card title="Categorías de notificación" icon="layer-group" href="./android-notification-categories">
    Configura los canales de notificación de Android para controlar el sonido, la vibración y la importancia.
  </Card>

  <Card title="Plantillas" icon="file-lines" href="./templates">
    Crea plantillas de notificación reutilizables con sonidos predefinidos.
  </Card>

  <Card title="API Create Notification" icon="code" href="/reference/push-notification">
    Referencia de API para los parámetros ios\_sound, android\_channel\_id y adm\_sound.
  </Card>

  <Card title="Iconos de notificación" icon="image" href="./notification-icons">
    Personaliza los iconos de notificación para tu app móvil.
  </Card>
</Columns>
