Ir al contenido
Better Analytics

Descubre qué idioma usan realmente tus lectores

Analítica de contenido sin cookies integrada en el SDK que ya distribuyes: vistas por entrada, idioma, modelo y país, con un transporte que nunca bloquea la página.

Vistas por idioma · últimos 30 días

41,381

English18,420
Deutsch9,106
Türkçe6,733
日本語4,218
Español2,904

Top entries

shipping-i18n-without-a-tms5,201
icu-message-format-guide3,884
hreflang-for-subfolders2,470
en vivo · sin cookies, sin huella digital
A provider and a hook

useTrackView("content.view")

Only what you call

Seguro durante SSR y builds estáticas: fuera del navegador el tracker no hace nada.

02 · Transport

sendBeacon

Dispara y olvida; sobrevive a la navegación y al cierre de la pestaña.

Write-only public key

bi_pub_…

Vistas por idioma · últimos 30 días

tr · content.view

Vistas por idioma · últimos 30 días

de · content.view

Country, not IP

DE · TR · JP

Top entries

entryId · contentModel

Better Analytics

en vivo · sin cookies, sin huella digital

01 · Two lines

A provider and a hook

Envuelve la app una vez y luego llama al hook de vistas en las páginas que te interesan. Todo lo demás —agrupación, reintentos, manejo del unload— es problema del SDK.

  • Seguro durante SSR y builds estáticas: fuera del navegador el tracker no hace nada.
  • ¿Se llama fuera del provider? Avisa una vez y se desactiva en lugar de fallar.
  • Las propiedades inválidas lanzan error en desarrollo y se descartan en producción.
app/blog/[slug]/page.tsx
import { useTrackView } from
  "@better-i18n/content/adapters/nextjs"

useTrackView("content.view", {
  entryId: post.id,
  contentModel: "blog",
  entrySlug: post.slug,
  language: post.locale,
})

content.view · tr · blog · 1 event

sent with sendBeacon · 0ms on the main thread

02 · Transport

Nunca bloquear la página, nunca perder el evento

Se prueban tres transportes en orden y cada fallo se absorbe. Una llamada de analítica no puede ralentizar nada ni lanzar ningún error a tu app.

sendBeacon

Dispara y olvida; sobrevive a la navegación y al cierre de la pestaña.

on failure ↓

fetch(keepalive)

Para cuerpos de menos de 51,2 KB cuando beacon no está disponible.

on failure ↓

fetch

Último recurso: un POST normal.

sigue fallando → se descarta en silencio

03 · What gets tracked

Explicit by default

La postura de privacidad es una decisión de diseño, no un ajuste que tengas que encontrar: no se recoge nada a menos que tu código lo envíe.

Only what you call

Sin pageviews automáticos, sin fingerprinting, sin cookies. Un evento existe porque tu código lo pidió.

Project context

La organización y el proyecto se resuelven desde la clave de API, así que los payloads siguen siendo pequeños.

Your own properties

entryId, contentModel, language, framework: cualquier primitivo que pases. Los objetos y arrays se rechazan.

Country, not IP

El código de país proviene de los metadatos del edge de Cloudflare; la IP nunca se almacena.

04 · Key safety

Una clave pública que no puede filtrar tus datos

El mismo modelo de amenazas que usan PostHog, Mixpanel y Vercel Analytics: la clave incrustada escribe eventos y no tiene ningún permiso de lectura.

Write-only public key

Una clave bi_pub_* puede enviar eventos y nada más: no puede leer contenido ni analítica.

Rate limited at the edge

Límites por IP y por proyecto, más reglas WAF: una clave filtrada puede generar spam, pero no exfiltrar datos.

Scoped to one project

Las claves se validan contra un único projectId: las lecturas entre proyectos son imposibles.

First-party proxy

Reescribe el endpoint de track a través de tu propio dominio para que los bloqueadores solo vean peticiones de origen propio.

FAQ

Preguntas que hacen los equipos antes de ponerlo en producción

Usamos Better I18N en nuestra plataforma Next.js y en las apps móviles. Una sola herramienta para cada producto: las traducciones se publican en cuanto hacemos push, sin redespliegues ni fricción.

Samet Selcuk

Fundador, Hellospace

Get started

Descubre qué idiomas justifican su presupuesto de traducción

Instala el SDK, registra una vista y mira cómo se llena el desglose por idioma: gratis mientras lo evalúas.