Destinos de email en Adapty Mail

Toda campaña necesita un lugar al que enviar a sus destinatarios. Ese lugar es un destino de email — un nombre, URL y tipo guardados que configuras una vez y reutilizas en distintas campañas.

Una campaña apunta exactamente a un destino, y cada parte en la que se puede hacer clic en sus correos lleva allí: el botón CTA, el logo y la imagen de cabecera. Se registran por separado en análisis, pero comparten una dirección.

Tipos de destino

El propósito de tu campaña determina el tipo de destino. No puedes cambiar el tipo de destino una vez creado.

TipoCampañas compatiblesAdónde lleva al destinatarioDe dónde viene la URL
Web PaywallCualquier campaña de marketing y doble opt-inUna página de pago en el navegador, donde las compras son pagos web en lugar de transacciones de App Store o Google Play.La genera Adapty Mail, o la pegas desde un paywall que alojas tú. Configurar el checkout cubre ambos casos.
Deep LinkActivación de la appTu app, en la pantalla que elijas. Si la app no está instalada, la página de tu store en su lugar.Pegada, desde tu proveedor de enlaces — OneLink, Branch o Firebase.
Cancellation PageLa campaña de página de cancelaciónTu propia página de cuenta, o el portal de tu proveedor de facturación, donde un suscriptor revisa, cambia o cancela.Pegada, desde tu propio sitio o tu proveedor de facturación.
Note

Cualquier URL de destino es válida siempre que use HTTPS. Por lo tanto, una Cancellation Page puede ser un enlace universal que abra tu aplicación, no solo una página web. Esto es importante porque las suscripciones de App Store y Google Play se cancelan en la store, no en una página que tú alojes.

Destinos para campañas transaccionales

Adapty Mail tiene tres campañas transaccionales:

  • Double opt-in — se activa cuando un nuevo perfil llega desde tu punto de entrada. Su botón abre la página de confirmación de Adapty Mail. Una vez que el destinatario confirma, accede a tu paywall web — por eso esta campaña necesita uno.
  • App activation — se activa tras una compra y lleva al comprador a tu app.
  • Cancellation page — se activa tras una compra y proporciona al comprador los controles de la suscripción.

Cuando creas una campaña, si el desplegable Email Destination aparece vacío, significa que aún no tienes ningún destino de ese tipo. El enlace Create abre el formulario correspondiente.

Crear un destino

  1. Ve a Email Destinations y selecciona el tipo que necesita tu campaña.
  2. Haz clic en Create.
  3. Dale un Name al destino — lo seleccionarás por ese nombre cuando lo vincules a una campaña.
  4. Completa la URL. Debe usar HTTPS.
  5. Añade marcadores de posición para los valores que varían por destinatario.
  6. Si la URL usa el marcador de posición {response.<key>}, añade un Hook URL en Advanced.
  7. Haz clic en Save.

La configuración de un destino pasa a ser de solo lectura en cuanto lo añades a una campaña, aunque sea en borrador. Para enviar una campaña a otro sitio, crea un segundo destino.

Marcadores de posición

Los marcadores de posición personalizan la URL de destino para cada usuario. Sin ellos, tu página no puede saber quién llegó. Adapty Mail sustituye los marcadores de posición por valores únicos para cada destinatario.

PlaceholderA qué se resuelve
{email}La dirección de correo del destinatario.
{adapty.external_profile_id}Su ID de perfil, para datos de la integración de Adapty.
{funnelfox.external_profile_id}Su ID de perfil, para datos de FunnelFox.
{custom.external_profile_id}El ID de usuario que enviaste, para datos de la API de Adapty Mail.
{scheduled_email_id}El ID del correo que llevaba el enlace.
{custom_attribute.<key>}Cualquier atributo personalizado del perfil del destinatario. Tú defines el nombre de la clave — {custom_attribute.plan}.
{response.<key>}Un valor que devuelve tu propio endpoint en el momento del clic. Se explica en Hooks.
  • Un marcador de posición para el que el destinatario no tiene valor se resuelve como cadena vacía, por lo que nunca llega a tu página como texto literal.
  • Los valores de atributos personalizados y hooks están codificados en porcentaje, así que un valor que contenga & no puede partir la URL por la mitad.
  • Un marcador de posición que Adapty Mail no reconoce bloquea el guardado, y el error indica tanto lo que rechazó como lo que acepta. Una errata como {emial} se detecta aquí y no en el navegador del destinatario.

Cuando un destino lleva a un funnel de FunnelFox — un paywall, una oferta de recuperación o un checkout — pasa el ID de perfil del destinatario en el parámetro fpid:

https://your-funnel.example.com/offer?fpid={funnelfox.external_profile_id}&utm_source=adapty_mail&utm_medium=email&utm_content={scheduled_email_id}

Con fpid, el funnel continúa el perfil de FunnelFox existente del destinatario en lugar de crear uno nuevo. Una compra en el funnel llega entonces al mismo perfil de Adapty Mail y se contabiliza en el correo en el que el destinatario hizo clic.

Warning

FunnelFox lee el ID de perfil únicamente desde fpid. Con cualquier otro nombre, como ff_profile_id, FunnelFox lo ignora, y un destinatario que abra el correo en otro dispositivo obtendrá un perfil nuevo y vacío. A menos que el funnel vuelva a pedirle su correo electrónico, Adapty Mail no podrá saber quién realizó la compra: la compra no aparecerá en los análisis de correo y el flow seguirá enviándole correos.

Otorgar acceso en tu app

Si tu funnel usa la integración de FunnelFox con Adapty para conceder acceso en tu app, también debes pasar el customer user ID — el identificador que vincula al usuario en ambos sistemas. Para los destinatarios cuyo perfil no procede de FunnelFox, pásalo en el parámetro adapty_profile_id. FunnelFox concede entonces la compra en Adapty a ese customer user ID, por lo que se desbloquea en tu app:

https://your-funnel.example.com/offer?fpid={funnelfox.external_profile_id}&adapty_profile_id={custom.external_profile_id}
Important

A pesar de su nombre, adapty_profile_id recibe un ID de usuario del cliente, no un ID de perfil de Adapty. FunnelFox le da prioridad sobre el ID de usuario del perfil de FunnelFox y sobre el email introducido en el proceso de pago.

Hooks

El marcador de posición {response.<key>} reserva espacio para un valor que proviene de tu propio endpoint. Los usos más habituales incluyen un token de inicio de sesión de un solo uso o una firma de sesión. Crea una nueva Hook URL en Advanced para configurar este marcador de posición; de lo contrario, la URL no se podrá guardar.

Cómo funciona:

  1. El destinatario hace clic en un enlace del correo.
  2. Adapty Mail envía un GET a tu Hook URL, con sus marcadores rellenos para ese destinatario. Espera cinco segundos y realiza un único intento.
  3. Tu endpoint verifica la firma y responde con un objeto JSON plano.
  4. Adapty Mail rellena cada {response.<key>} con la clave del mismo nombre. Una clave que no devuelvas conservará su marcador.
  5. El destinatario llega a tu página, independientemente de si el hook respondió o no.

La solicitud

La URL del hook reenvía el resto de tus marcadores de posición a tu endpoint. Usa estos marcadores de posición para identificar al usuario. Dos cabeceras autentican la llamada:

CabeceraValor
X-Adapty-Mail-TimestampHora Unix en segundos, cuando se realizó la solicitud.
X-Adapty-Mail-SignatureHMAC-SHA256 en hex de <timestamp>.<url>, firmado con la Secret key de Settings > Project.

Verifica ambas antes de responder. Un endpoint sin firma puede exponer información sensible a usuarios no autorizados. Rechaza cualquier timestamp demasiado antiguo para ser un clic real:

expected = hmac_sha256(
    key=project_secret_key,
    message=f"{timestamp}.{full_request_url}",
).hexdigest()

La respuesta

Un objeto JSON plano. Cada clave rellena el {response.<key>} del mismo nombre:

{ "checkout_token": "ct_9f2a…", "plan": "annual" }

Las cadenas, números y booleanos se convierten en cadenas. Los objetos anidados y los arrays se descartan, ya que una URL no tiene dónde incluirlos.

Qué ocurre después del clic

Adapty Mail rellena los valores, llama al hook si existe, registra el clic y envía al destinatario a tu página.

Tu trabajo es identificar al visitante, cobrar el pago y reportar la compra a Adapty. Consulta Configurar el checkout para la configuración del paywall y Analíticas de campaña para la atribución de compras.