Sobre el proyecto
# SDK Kotlin de TelemetryDeck
Una biblioteca Kotlin para enviar señales analíticas desde aplicaciones Android a [TelemetryDeck](https://telemetrydeck.com), una plataforma de análisis priorizada en privacidad. El SDK funciona en Android API 23+ con Kotlin 2.3.x.
## Capacidades principales
**Envío de señales**: Llama a `TelemetryDeck.send("eventName")` para disparar una señal analítica de inmediato, o usa `TelemetryDeck.signal("eventName")` para colarla y transmitirla después.
**Seguimiento de sesiones**: Detecta automáticamente nuevas instalaciones, mide la duración de la sesión y calcula métricas de retención (segundos promedio de sesión, días distintos usados, cantidad total de sesiones). El estado de la sesión se guarda localmente y se limpia al desinstalar.
**Identidad de usuario**: Genera un identificador anónimo vinculado al dispositivo por defecto. Admite identificadores personalizados mediante `defaultUser` (encriptado antes del envío) o implementaciones personalizadas de `TelemetryDeckIdentityProvider`.
**Parámetros de entorno**: Enriquece cada señal automáticamente con metadatos del dispositivo (modelo, sistema operativo, resolución de pantalla, orientación, arquitectura, marca, zona horaria), metadatos de la app (versión, número de compilación) y metadatos del SDK. También captura configuraciones de accesibilidad (escala de fuentes mapeada a categorías de tamaño de iOS, texto en negrita, inversión de color, reducción de movimiento, esquema oscuro/claro).
**Señales de navegación**: Rastrea el flujo del usuario entre pantallas con `TelemetryDeck.navigate(source, destination)` o llámala en cada cambio de ruta para un seguimiento automático de rutas.
**Seguimiento de duración**: Inicia y detén señales nombradas de duración (`startDurationSignal` / `stopAndSendDurationSignal`) para medir el tiempo invertido en eventos específicos, como pasos de un asistente.
**Ayudas de adquisición**: Métodos prácticos para `acquiredUser(channel)`, `leadStarted(leadId)` y `leadConverted(leadId)`.
**Parámetros calendario**: Agrega día de la semana, día del mes, semana del año, trimestre, hora del día, indicador de fin de semana, entre otros, a cada señal enviada.
**Seguimiento de compras**: `purchaseCompleted()` registra compras dentro de la app con código de país del marketplace e ID del producto.
**Modo solo en memoria**: Llama a `inMemoryOnly(true)` en el constructor para ejecutar sin escritura en disco, adecuado para procesos sandboxeados. La identidad de usuario se regenera en cada lanzamiento; las detecciones de nueva instalación y las métricas de retención no están disponibles en este modo.
## Instalación
Agrega a `build.gradle`:
```groovy
implementation 'com.telemetrydeck:kotlin-sdk:7.2.0'
```
Agrega permiso de internet a `AndroidManifest.xml`:
```xml
<uses-permission android:name="android.permission.INTERNET" />
```
Configura mediante metadatos del manifiesto o constructor programático:
```kotlin
val builder = TelemetryDeck.Builder()
.appID("YOUR-APP-ID")
.showDebugLogs(true)
.defaultUser("anonymous-user")
TelemetryDeck.start(applicationContext, builder)
```
## Proveedores y personalización
El SDK usa un sistema de plugins basado en proveedores. Los proveedores integrados incluyen `EnvironmentParameterProvider`, `PlatformContextProvider`, `AccessibilityProvider`, `SessionTrackingSignalProvider` y `CalendarParameterProvider`. Puedes agregar enriquecimiento personalizado mediante `DefaultParameterProvider`, `DefaultPrefixProvider`, o implementando `TelemetryDeckIdentityProvider`, `TelemetryDeckSessionManagerProvider` y `TelemetryDeckStorage` para backends personalizados.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.