4 min de lectura

Umami autohospedado ahora también rastrea apps iOS

Un paquete Swift ligero permite a las apps iOS enviar analíticas a una instancia de Umami autohospedada sin IDFA, SDKs de terceros ni identificadores almacenados.

Imagen: Hacker News

Una instalación de Umami autohospedada pensada para sitios web también puede manejar analíticas de apps iOS con sorprendentemente poco trabajo adicional. En una publicación del 14 de julio de 2026, Hjerpbakk explica que creó un paquete Swift de código abierto llamado umami-swift para llevar las analíticas de apps al mismo panel que ya usa para la web, sin un SDK pesado, sin solicitar el IDFA y sin que un tercero recopile datos.

La idea es simple: cada app se registra en Umami como si fuera un sitio web, usando un seudodominio estable como myapp.ios. Así la app aparece junto a sitios reales en el panel de Umami, con las mismas métricas principales: visitantes, visitas y vistas. Las pantallas individuales de la app pueden reportarse como páginas, de modo que secciones como ajustes, resúmenes o flujos de registro aparezcan en la lista de páginas de Umami.

El paquete es intencionalmente mínimo. No tiene dependencias y su API se centra en cuatro llamadas:

Recomendado

Las herramientas Gemini de Chrome llegan a usuarios de escritorio en el Reino Unido

  • Umami.configure(…) al iniciar
  • Umami.track(…) para eventos con nombre
  • Umami.screen(…) para el seguimiento de pantallas al estilo pageview
  • Umami.setEnabled(false) para desactivar (opt-out)

Según la publicación, configure también encola automáticamente una vista de página de lanzamiento y un evento app_started. Los eventos se encolan en disco y se envían en lotes, de modo que los lanzamientos sin acceso a la red no se pierden y la interfaz no se bloquea esperando la entrega de analíticas.

Cómo Umami maneja el tráfico de apps

Hjerpbakk señala que el script de seguimiento de Umami ya habla con /api/send y /api/batch, ambos aceptan JSON y identifican el destino mediante website-id en la carga útil en lugar de una clave API. Eso significa que un cliente nativo en Swift puede enviar directamente la misma forma de carga útil.

Para la identidad, umami-swift suministra su propio ID de visitante. Cada evento incluye payload.id, un UUID aleatorio que vive solo en memoria y se renueva cuando cambia el día del calendario. No se escribe nada en el dispositivo, dice Hjerpbakk, por lo que no existe un identificador persistente que pueda recuperarse más tarde y el uso no puede vincularse entre días, apps o instalaciones. En la práctica, porque el ID desaparece cuando termina el proceso, cada lanzamiento suele contarse como un visitante nuevo.

Ese diseño también evita App Tracking Transparency y no toca el IDFA.

Por qué importan las vistas de página y por qué las apps se saltan el proxy

Un detalle clave de la implementación es que Umami calcula sus métricas generales a partir de las vistas de página, no solo de eventos personalizados. Así que el cliente envía una vista de página para / en cada lanzamiento y siempre que la app vuelve al primer plano. Pantallas adicionales pueden enviarse como rutas como /settings, que es lo que alimenta la lista de páginas del panel.

A diferencia de los sitios web, la app no necesita enrutar el seguimiento a través del Cloudflare Worker del autor en /np/. Hjerpbakk dice que los bloqueadores de contenido comunes en iOS solo se aplican dentro de Safari, mientras que el tráfico de apps nativas generalmente solo es visible para VPNs o bloqueadores DNS a nivel de sistema. En esos casos se expone el dominio, pero no la ruta de la solicitud dentro de la carga útil HTTPS cifrada. Como su instancia de Umami autohospedada se ejecuta en hjerpbakk-analytics.fly.dev, un nombre de host poco llamativo que no está en listas de bloqueo, la app puede enviar datos directamente al origen de Fly.

El Cloudflare Worker sigue sirviendo para un propósito: los iconos del panel. Umami puede configurarse con FAVICON_URL=https://hjerpbakk.com/icons/{{domain}}, lo que permite que el Worker devuelva iconos reales de apps para seudodominios como simplestworkouttracker.ios mientras redirige los sitios web ordinarios al servicio de favicons de DuckDuckGo. Es un ajuste cosmético, pero hace que las entradas de apps en la lista de sitios web parezcan equivalentes de pleno derecho.

Tomas Berg

Computing Editor

Tomas lives in the terminal. He covers chips, laptops, and operating systems with a focus on performance and efficiency. He reads kernel changelogs the way other people read fiction, and he's always on the hunt for the perfect mechanical keyboard switch. If it processes data, Tomas has an opinion on it.

vía Hacker News

// Sigue leyendo