Después de dos tragos, muchos fundadores te cuentan la misma historia: «Llegamos al millón de DAU. Por lógica ya deberíamos ser ricos». Luego abren el panel y la línea de ingresos está más o menos plana.
Esta película la he visto unas veinte veces. Una app de utilidades, una app de contenido, algo con ojos reales encima — y un motor de monetización que parece pegado con cinta adhesiva. El instinto es siempre el mismo: metes un H5 ahí dentro, enlazas a algún afiliado o a una caja de cobro de terceros, y lo llamas «comercio». Y entonces no pasa nada, porque el H5 nunca tuvo intención de cerrar ese ciclo por ti.
La fuga que no ves en el panel
Hay algo que nadie pone en el deck de inversión. Cuando incrustas un H5 de terceros para «vender algo», el usuario entra, lo rebotan a una caja de cobro que no es tuya, le paga a otro, y cierra la pestaña. Captaste la mirada. No captaste nada más. La transacción —y los datos, y la relación— viven con el tercero. Tu app es un pasillo por el que la gente camina para entrar a la tienda de otro.
El mini-programa lo da vuelta. Corre dentro de tu propio runtime: el mismo login, la misma billetera, el mismo canal de notificaciones que tú controlas. La venta pasa en tu casa. El recibo, el re-engagement, la próxima oferta —todo queda contigo. Eso es todo el juego para una app de tráfico. No es «¿puedo mostrarles un producto?», sino «¿puedo ser dueño de la transacción?».
Por qué el H5 mata la conversión (y culparás a todo lo demás)
Por la velocidad, sobre todo. Cada apertura de H5 descarga recursos, da vueltas, espera scripts. En un flujo de pago eso es mortal: la gente se va al primer tropiezo. Y luego está el impuesto de la confianza: una página web dentro de tu app que de repente pide un número de tarjeta parece phishing para un humano normal. La cierran. Tú culpas a la creatividad. Era el contenedor.
Los mini-programas precargan y usan componentes nativos. El pago se siente parte de tu app, porque lo es. Las tasas de finalización que daban vergüenza en H5 dejan de darla.
Adónde va el dinero en realidad
| Adónde va el dinero | Mini-programa (runtime del host) | H5 (página WebView) |
|---|---|---|
| La transacción | Cierra en tu app, es tuya | Rebota a una caja de terceros, no es tuya |
| Los datos del usuario | Quedan en tu runtime | Están con el tercero |
| El re-engagement | El centro de mensajes del host lo recuerda | Cortado al cerrar; no sabes quién fue |
| La composición | Cada servicio sube el ARPU | Cien enlaces siguen siendo cien enlaces |
Cien enlaces no son un negocio
Lo más brutal: aunque el H5 «funcione», no compone. Cada página es una isla aislada. Puedes incrustar cien y sigues teniendo cien islas, sin catálogo, sin control de calidad, sin comisión. El usuario ve un menú de desconocidos.
Un catálogo de mini-programas es lo opuesto. Terceros desarrollan sobre tu runtime; tú pones las reglas, cobras tu parte, y vigilas la experiencia. Cada servicio nuevo hace que los usuarios existentes valgan más —más razones para abrir la app, más superficies para convertir, ARPU más alto—. Compone. El H5 te enseña un letrero; el catálogo te construye un centro comercial que es tuyo.
Lo que las super-apps entendieron hace una década
Ve a ver qué hicieron realmente las grandes super-apps asiáticas. No «incrustaron sitios web». Construyeron un runtime y dejaron que miles de comerciantes corrieran dentro, llevándose una porción de cada transacción. De ahí vino la valoración —no de los ojos, sino de la capa de comercio encima de los ojos. Una app de tráfico que solo vende atención está alquilando a su propia audiencia. Una app de tráfico con runtime está vendiendo el espacio en el estante, para siempre.
Un límite honesto
Si tu meta es una campaña de una vez —llevar tráfico, convertir una vez, olvidar— el H5 está bien y es barato. Todo este argumento es para apps que quieren que el usuario vuelva y gaste otra vez. Para esas, el contenedor tiene que ser un runtime, porque los ingresos solo componen cuando la transacción es tuya.
No tienes un problema de tráfico. Tienes un problema de «el dinero se escapa antes de ser tuyo».
Fuentes
- Documentación de Android WebView (capacidades y límite de seguridad)
- Documentación para desarrolladores de Apple — WKWebView (contenedor web en iOS)
- web.dev — Optimización de rendimiento y carga web (costo de carga H5)
- MDN Web Docs — Capacidades y límites web
- StatCounter — Cuota de mercado por plataforma y canal