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

# Diseñar mensajes in-app con arrastrar y soltar

> Use el compositor visual de OneSignal para construir mensajes in-app de alta conversión con bloques, diseños, carruseles y personalización.

El editor de arrastrar y soltar de OneSignal le permite construir mensajes in-app usando bloques modulares, sin necesidad de codificación. Si prefiere marcado, consulte [Diseñar Mensajes In-App con HTML](./design-your-in-app-message-with-html).

<Frame caption="Editor de arrastrar y soltar de mensajes in-app">
  <img src="https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/iam/iam-block-create.gif?s=f3a6e2388fc6855a2fc8378fb5ce51b1" alt="Creando un mensaje in-app usando el editor de arrastrar y soltar" width="780" height="589" data-path="images/iam/iam-block-create.gif" />
</Frame>

## Requisitos previos

* Tiene instalado e inicializado el SDK de OneSignal en su aplicación.
* Está usando los SDKs recomendados para las últimas funciones del editor:
  * iOS 5.1.5+
  * Android 5.1.9+
* Si no sube imágenes a OneSignal, entonces sus imágenes deben estar alojadas en una URL rápida y de acceso público (se recomienda CDN) y dimensionadas apropiadamente para pantallas móviles.

<Warning>
  Asegúrese de usar la última versión del SDK de OneSignal en su aplicación.
  Las versiones anteriores aún pueden mostrar el mensaje, pero con estilos de respaldo (por ejemplo, márgenes predeterminados u overlays predeterminados). Use **Vista previa** y **pruebas en dispositivo** para confirmar el comportamiento en las versiones mínimas de SDK que soporta.
</Warning>

***

## Comenzar desde una plantilla prediseñada

Las plantillas prediseñadas le ayudan a lanzar rápidamente con diseños diseñados para la conversión (incluidas solicitudes de permisos). Elija una plantilla, luego actualice el texto, los colores y las acciones para que coincidan con su marca.

<Note>
  **Pruebas en dispositivo:** Los diseños prediseñados han sido probados en Pixel 6+, iPhone (iOS 14+), Huawei Nova 9, Huawei P50 Foldable e iPad (10.ª generación+). Estas plantillas están optimizadas para orientación vertical y pueden no mostrarse como se espera en modo horizontal.
</Note>

***

## Elegir un diseño de mensaje

El diseño del mensaje controla cómo aparece el in-app en la pantalla.

| Tipo de mensaje | Mejor para                                                      | Cómo se comporta                                             |
| --------------- | --------------------------------------------------------------- | ------------------------------------------------------------ |
| **Top**         | Anuncios breves y confirmaciones                                | Se desliza hacia abajo desde la parte superior               |
| **Center**      | La mayoría de promociones de marketing y producto               | Se expande desde el centro y llena parcialmente la pantalla  |
| **Bottom**      | Snackbars, solicitudes de consentimiento                        | Se desliza hacia arriba desde la parte inferior              |
| **Full**        | Flujos de incorporación, ofertas de múltiples pasos, carruseles | Se expande para llenar la pantalla (con márgenes opcionales) |

<Frame caption="Tipos de diseño de mensajes in-app">
  <img src="https://mintcdn.com/onesignal/RWtLFPeffHrC81wI/images/docs/a675b8f-Type.png?fit=max&auto=format&n=RWtLFPeffHrC81wI&q=85&s=e04ab2110fcd37eb6481db3dd8c63ece" alt="Diseños de mensajes in-app Top, Center, Bottom y Full" width="1115" height="788" data-path="images/docs/a675b8f-Type.png" />
</Frame>

### Construir flujos de múltiples pantallas con carruseles

Los carruseles le permiten crear experiencias in-app de múltiples pantallas como incorporación, recorridos de funciones u ofertas de múltiples pasos.

1. Seleccione el tipo de mensaje **Full**.
2. Haga clic en **Create Carousel**.
3. Agregue hasta 10 tarjetas (pantallas).
4. Personalice cada tarjeta con cualquier combinación de bloques.

<Frame caption="Ejemplo de carrusel">
  <img src="https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/iam/carousel.gif?s=0ebac15f1b7b55229705970a84bda5be" alt="Ejemplo de carrusel con múltiples tarjetas de mensajes in-app" width="900" height="800" data-path="images/iam/carousel.gif" />
</Frame>

### Soporte de orientación

Los mensajes in-app admiten vertical y horizontal, pero los diseños (especialmente las plantillas) pueden necesitar ajustes para verse bien en ambos.

<Frame caption="Ejemplos de mensajes in-app en vertical y horizontal">
  <img src="https://mintcdn.com/onesignal/Z6xkXGfmy814If53/images/docs/e2b95e5-IAM-portrait-landscape.png?fit=max&auto=format&n=Z6xkXGfmy814If53&q=85&s=25028bc942075b84814ae5ee850bf458" alt="Mensaje in-app mostrado en orientaciones vertical y horizontal" width="1279" height="564" data-path="images/docs/e2b95e5-IAM-portrait-landscape.png" />
</Frame>

<Note> Si espera un uso frecuente en horizontal (tabletas, juegos, aplicaciones de video), pruebe su mensaje en horizontal antes de publicar. Los diseños anchos a menudo necesitan tamaños de texto más pequeños, espaciado más ajustado o menos bloques apilados.</Note>

***

## Usar bloques y espaciado para diseños limpios

Todo se coloca sobre el bloque Background (su lienzo). Use:

* **Padding** en el **Background** para espacio entre su contenido y los bordes del mensaje.
* **Margin** en bloques individuales para espacio entre elementos (título → imagen → botón).

**Reglas rápidas para diseños consistentes**

1. Use **Padding** para controlar la distancia desde los bordes del mensaje.
2. Use **Margin** para separar bloques verticalmente.
3. Evite apilar grandes paddings y margins en el mismo lado.
4. Prefiera diseños centrados basados en flujo sobre diseños ajustados/alineados al borde.
5. Siempre use **Vista previa** en múltiples tamaños de dispositivo antes de publicar.

<Frame caption="Padding vs. margin en el editor">
  <img src="https://mintcdn.com/onesignal/yt4lRKoquAlWvRvF/images/iam/padding-margin.png?fit=max&auto=format&n=yt4lRKoquAlWvRvF&q=85&s=f328dfed369bb0369a825818cb264802" alt="Controles de padding del fondo y margin de bloques en el editor in-app" width="1536" height="1024" data-path="images/iam/padding-margin.png" />
</Frame>

***

## Referencia de bloques

Use estos bloques para construir su mensaje. Cada bloque admite estilos y (en la mayoría de los casos) una acción de clic opcional.

### Bloque de texto

Use para títulos, descripciones, avisos legales o texto personalizado.

**Qué puede personalizar**

* **Dimensionamiento responsivo**: Ancho/alto en porcentajes.
* **Fuentes**: Google Fonts.
* **Formato**: Negrita, cursiva, subrayado.
* **Color**: Hex o RGBA (admite transparencia).
* **Alineación**: Izquierda, centro, derecha.
* **Tamaño**: Tamaño de fuente ajustable.

**Avanzado**

* **Márgenes**: Espacio alrededor del bloque.

**Consejos**

* Localice con segmentos basados en idioma o [usando sintaxis Liquid](./using-liquid-syntax).
* Personalice con [etiquetas de datos](./message-personalization).

<Frame caption="Bloque de texto">
  <img src="https://mintcdn.com/onesignal/RWtLFPeffHrC81wI/images/docs/a556236-Screenshot_2022-12-10_at_5.45.53_PM.png?fit=max&auto=format&n=RWtLFPeffHrC81wI&q=85&s=cec5db0519c7ec85ddce8bcc9e4b190f" alt="Opciones de configuración del bloque de texto en el editor" width="1004" height="836" data-path="images/docs/a556236-Screenshot_2022-12-10_at_5.45.53_PM.png" />
</Frame>

### Bloque de imagen

Use imágenes para reforzar la oferta, mostrar una función o agregar marca.

**Formatos y límites admitidos**

* `.jpg`, `.png`, `.gif`
* Tamaño máximo de archivo: 5MB

**Consejos y recomendaciones**

* Use relaciones de aspecto comunes como `16:9`, `4:3` o `3:2`.
* Puede intercambiar dinámicamente enlaces y URLs de imágenes usando rutas alojadas en servidor. Consulte [URLs dinámicas](./links#dynamic-urls).
  * Ejemplo: `https://example.com/images/{{ tag_key }}.png`

**Qué puede personalizar**

* **URL de imagen**: Se recomienda alojada para rendimiento.
* **Acción de clic**: Opcional (enlace, deep link, etiqueta, outcome, solicitud).

**Avanzado**

* **Descartar al hacer clic**
* **Márgenes**: Espacio alrededor del bloque.

<Frame caption="Bloque de imagen">
  <img src="https://mintcdn.com/onesignal/6v_cVPknFpo5qSVB/images/docs/0cc2179-Screenshot_2022-12-10_at_5.46.27_PM.png?fit=max&auto=format&n=6v_cVPknFpo5qSVB&q=85&s=440933533b6d5985256b0ef45a5802a6" alt="Opciones de configuración del bloque de imagen en el editor" width="1004" height="718" data-path="images/docs/0cc2179-Screenshot_2022-12-10_at_5.46.27_PM.png" />
</Frame>

<Warning> Si una URL de imagen es lenta, está bloqueada o devuelve un error, su mensaje puede renderizarse con medios rotos o vacíos. Aloje imágenes en un CDN confiable y verifique que se carguen rápidamente en redes móviles.</Warning>

### Bloque de botón

Use botones para acciones principales como navegación, recopilación de comentarios o solicitudes de permisos.

**Qué puede personalizar**

* Texto del botón y estilo de fuente
* Color de fondo, tamaño y radio de esquina
* Ícono/imagen opcional
* Acción de clic (etiquetado, outcomes, solicitudes, deep links)

**Avanzado**

* Descartar al hacer clic
* Márgenes
* Bordes y sombras

**Consejos**

* Personalice el texto del botón o los destinos usando etiquetas.
* Puede hacer un botón de solo imagen estableciendo la opacidad del fondo en 0.
* Use sombras sutiles (baja opacidad, desenfoque alto) para elevar el CTA principal.

<Frame caption="Configuración del bloque de botón">
  <img src="https://mintcdn.com/onesignal/YOTSrtBSoqdrJ37A/images/docs/49beca3-Screenshot_2022-12-10_at_5.48.17_PM.png?fit=max&auto=format&n=YOTSrtBSoqdrJ37A&q=85&s=f3bce4770825e17bae48c4f5f7d8b385" alt="Opciones de configuración del bloque de botón en el editor" width="996" height="1578" data-path="images/docs/49beca3-Screenshot_2022-12-10_at_5.48.17_PM.png" />
</Frame>

### Bloque de botón de cerrar

El botón de cerrar controla si los usuarios pueden descartar el mensaje usando un ícono "X".

**Qué puede personalizar**

* Habilitar/deshabilitar visibilidad
* Ícono personalizado (`.jpg`, `.png`, `.svg`, `.gif`)
* Tamaño recomendado: `10x10px`
* Acción de clic opcional

**Avanzado**

* Márgenes

<Warning>
  Si deshabilita el botón de cerrar, asegúrese de que los usuarios aún tengan una forma clara de salir (por ejemplo, una **acción de descarte** en un botón o fondo, o un temporizador de cierre si su experiencia usa uno). De lo contrario, corre el riesgo de atrapar a los usuarios en el mensaje.
</Warning>

<Frame caption="Configuración del botón de cerrar">
  <img src="https://mintcdn.com/onesignal/9_Q1FZLh6C0BFLq-/images/docs/c07a30b-Screenshot_2022-12-10_at_5.49.22_PM.png?fit=max&auto=format&n=9_Q1FZLh6C0BFLq-&q=85&s=acdcebb3ae4e83df14dab2d82753f2bf" alt="Opciones de configuración del botón de cerrar en el editor" width="990" height="732" data-path="images/docs/c07a30b-Screenshot_2022-12-10_at_5.49.22_PM.png" />
</Frame>

### Bloque de fondo

El fondo es el lienzo que contiene su diseño.

**Qué puede personalizar**

* Color de fondo (admite RGBA)
* Imagen de fondo (`.jpg`, `.png`, `.gif`)
* Acción de clic opcional

**Avanzado**

* Padding (predeterminado `24px`)
* Descartar al hacer clic

<Frame caption="Configuración del bloque de fondo">
  <img src="https://mintcdn.com/onesignal/6tscVAtiSqz353kV/images/docs/9a441fd-Background_Controls.png?fit=max&auto=format&n=6tscVAtiSqz353kV&q=85&s=04a65877dc5e9818147ba15975cc5e92" alt="Controles del bloque de fondo para color, imagen, padding y acciones" width="1071" height="806" data-path="images/docs/9a441fd-Background_Controls.png" />
</Frame>

***

## Personalización y localización

Puede personalizar mensajes in-app usando [etiquetas de datos](./add-user-data-tags) incluyendo dentro del texto, etiquetas de botones y URLs.

Para localización, consulte [Mensajes en varios idiomas](./multi-language-messaging#send-messages-in-different-languages).

<Check>
  Una buena prueba de personalización es enviar el mensaje a un pequeño segmento interno con valores de etiqueta conocidos y confirmar:

  * El texto y las imágenes se renderizan con las sustituciones esperadas
  * Los enlaces se resuelven correctamente
  * Los botones disparan los outcomes/etiquetas de clic esperados
</Check>

***

## Preguntas frecuentes

### ¿Puedo eliminar el overlay gris o la sombra de los in-apps de banner superior/inferior?

Sí — actualice sus SDKs y agregue la configuración a continuación.

**iOS 5.1.5+**

```xml iOS Info.plist theme={null}
<key>OneSignal_in_app_message_hide_drop_shadow</key>
<true/>
<key>OneSignal_in_app_message_hide_gray_overlay</key>
<true/>
```

**Android 5.1.9+**

```xml Android Manifest.xml theme={null}
<meta-data android:name="com.onesignal.inAppMessageHideGrayOverlay" android:value="true"/>
<meta-data android:name="com.onesignal.inAppMessageHideDropShadow" android:value="true"/>
```

***

## Próximos pasos

* Conozca las [Acciones de clic in-app](./iam-click-actions) para personalizar lo que sucede cuando los usuarios hacen clic en elementos de su mensaje.
* Pruebe diferentes [Disparadores de mensajes in-app](./iam-triggers) para controlar cuándo aparecen los mensajes.
* ¿Necesita más personalización? Pruebe [Diseñar Mensajes In-App con HTML](./design-your-in-app-message-with-html).

***
