Sobre o projeto
# SDK Kotlin do TelemetryDeck
Uma biblioteca Kotlin para enviar sinais de análise de aplicativos Android para o [TelemetryDeck](https://telemetrydeck.com), uma plataforma de análise com foco na privacidade. O SDK é compatível com Android API 23+ e Kotlin 2.3.x.
## Principais Recursos
**Envio de Sinais** — Chame `TelemetryDeck.send("eventName")` para disparar um sinal de análise imediatamente, ou use `TelemetryDeck.signal("eventName")` para enfileirá-lo para transmissão posterior.
**Rastreamento de Sessões** — Detecta automaticamente novas instalações, mede a duração da sessão e calcula métricas de retenção (segundos médios de sessão, dias distintos de uso, contagem total de sessões). O estado da sessão é armazenado localmente no dispositivo e descartado na desinstalação.
**Identidade do Usuário** — Gera um identificador anônimo vinculado ao dispositivo por padrão. Suporta identificadores personalizados via `defaultUser` (convertido em hash antes do envio) ou uma implementação personalizada de `TelemetryDeckIdentityProvider`.
**Parâmetros de Ambiente** — Enriquece automaticamente cada sinal com metadados do dispositivo (modelo, SO, resolução da tela, orientação, arquitetura, marca, fuso horário), metadados do aplicativo (versão, número do build) e metadados do SDK. Também captura configurações de acessibilidade (escala de fonte mapeada para categorias de tamanho do iOS, texto negrito, inversão de cores, redução de movimento, esquema escuro/claro).
**Sinais de Navegação** — Rastreie o fluxo do usuário entre telas com `TelemetryDeck.navigate(source, destination)` ou chame-o a cada mudança de caminho para rastreamento automático de rotas.
**Rastreamento de Duração** — Inicie e pare sinais de duração nomeados (`startDurationSignal` / `stopAndSendDurationSignal`) para medir o tempo gasto em eventos específicos, como etapas de um assistente.
**Funcionalidades de Aquisição** — Métodos de conveniência para `acquiredUser(channel)`, `leadStarted(leadId)` e `leadConverted(leadId)`.
**Parâmetros de Calendário** — Anexa dia da semana, dia do mês, semana do ano, trimestre, hora do dia, indicador de final de semana e outros a cada sinal enviado.
**Rastreamento de Compras** — `purchaseCompleted()` registra compras dentro do app com código do país do marketplace e ID do produto.
**Modo Somente em Memória** — Chame `inMemoryOnly(true)` no builder para executar sem gravar em disco, adequado para processos sandboxed. A identidade do usuário é regenerada a cada lançamento; detecção de nova instalação e métricas de retenção não estão disponíveis neste modo.
## Instalação
Adicione ao `build.gradle`:
```groovy
implementation 'com.telemetrydeck:kotlin-sdk:7.2.0'
```
Adicione permissão de internet ao `AndroidManifest.xml`:
```xml
<uses-permission android:name="android.permission.INTERNET" />
```
Configure por meio de meta-dados no manifesto ou builder programático:
```kotlin
val builder = TelemetryDeck.Builder()
.appID("YOUR-APP-ID")
.showDebugLogs(true)
.defaultUser("anonymous-user")
TelemetryDeck.start(applicationContext, builder)
```
## Provedores e Personalização
O SDK utiliza um sistema de plugins de provedores. Os provedores nativos incluem `EnvironmentParameterProvider`, `PlatformContextProvider`, `AccessibilityProvider`, `SessionTrackingSignalProvider` e `CalendarParameterProvider`. O enriquecimento personalizado pode ser adicionado via `DefaultParameterProvider`, `DefaultPrefixProvider`, ou implementando `TelemetryDeckIdentityProvider`, `TelemetryDeckSessionManagerProvider` e `TelemetryDeckStorage` para backends customizados.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.