---
title: "Botón de paywall"
description: "Personaliza los botones de paywall en Adapty para mejorar las interacciones con los usuarios y aumentar las conversiones."
---

:::warning
**Solo las compras y restauraciones se gestionan automáticamente.** Todas las demás acciones de los botones, como cerrar paywalls o abrir enlaces, requieren implementar las respuestas adecuadas en el código de la app:
- [iOS](handle-paywall-actions)
- [Android](android-handle-paywall-actions)
- [React Native](react-native-handle-paywall-actions)
- [Flutter](flutter-handle-paywall-actions)
- [Unity](unity-handle-paywall-actions)
:::

Un botón de paywall es un elemento de interfaz que permite a los usuarios:
- Comprar productos
- Iniciar sesión
- Restaurar compras
- Cerrar el paywall
- Activar acciones personalizadas (por ejemplo, abrir otro paywall)

:::info

Esta sección describe el nuevo Paywall Builder, que funciona con:
- SDKs de iOS, Android y React Native versión 3.0 o superior
- SDKs de Flutter y Unity versión 3.3.0 o superior

:::

### Botones de compra \{#purchase-buttons\}
Los botones de compra:
- Se conectan a los productos seleccionados en tu paywall
- Inician la compra al pulsarlos

Cuando añades un botón de compra a tu paywall, este procesa automáticamente las compras que realizan tus usuarios. Por tanto, no necesitas gestionar las compras en el código de la app.

:::note
Puedes llamar más la atención sobre los botones de compra animándolos. El Paywall Builder admite actualmente los tipos de animación **Arrow** y **Pulse**. Ten en cuenta que, para añadir la animación **Arrow**, primero debes configurar el **Arrow icon** en la sección **Content**.

Cada animación te permite elegir una opción de aceleración (Linear, Ease In, Ease Out, Ease In Out) para controlar cómo se acelera o desacelera.

Las animaciones están disponibles en los SDKs de Adapty para iOS, Android, React Native y Flutter a partir de la versión 3.10.0. Consulta la [guía de migración](migration-to-android-310) para Android.
:::

  <img src="/assets/shared/img/purchase-button.gif"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

### Enlaces \{#links\}
Para cumplir con algunos requisitos de la store, puedes añadir enlaces a:
- Términos de servicio
- Política de privacidad
- Restauración de compras

Para añadir enlaces:
1. Añade un elemento **Link** en el Paywall Builder.
2. Añade el manejador `openUrl` a tu código:
    - [iOS](handle-paywall-actions)
    - [Android](android-handle-paywall-actions)
    - [React Native](react-native-handle-paywall-actions)
    - [Flutter](flutter-handle-paywall-actions)
    - [Unity](unity-handle-paywall-actions)

  <img src="/assets/shared/img/pb-links.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

### Botones personalizados \{#custom-buttons\}
Los botones personalizados son necesarios para:
- Cerrar el paywall (`close`)
- Abrir una URL (`openUrl`)
- Restaurar compras (`restore`)
- Iniciar sesión (`login`)
- Activar acciones personalizadas (por ejemplo, abrir otro paywall)

Para que la mayoría de los botones funcionen, debes **gestionar sus IDs de acción en tu código**:
- [iOS](handle-paywall-actions)
- [Android](android-handle-paywall-actions)
- [React Native](react-native-handle-paywall-actions)
- [Flutter](flutter-handle-paywall-actions)
- [Unity](unity-handle-paywall-actions)

Por ejemplo, un botón de cerrar necesita el manejador de la acción `close`.

:::important
`close` se gestiona automáticamente en los SDKs de iOS, Android y React Native. `openUrl` se gestiona automáticamente en los SDKs de iOS y Android. Sin embargo, si es necesario, puedes sobreescribir el comportamiento predeterminado.

`restore` siempre se gestiona automáticamente.
:::

Al gestionar acciones personalizadas en tu código, puedes implementar escenarios como:

- Abrir otro paywall
- Ejecutar varias acciones en secuencia (como cerrar y abrir)

Ten en cuenta que necesitarás construir estos escenarios usando el sistema de gestión de acciones; no son funciones integradas.

  <img src="/assets/shared/img/pb-custom-button.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>