React Native
Pacote
@solomon-tech/events-react-native no npm.Flutter
Pacote
solomon_events no pub.dev.string
É o ID de 20 caracteres que a loja possui na Solomon.
boolean
Parâmetro opcional para ativar os logs de debug no console.
boolean
default:"true"
Controla o envio dos eventos para o pixel, necessário para a atribuição. Vem ligado por padrão —
defina
false explicitamente para desativar.string
Parâmetro opcional com o Bundle ID do app (ex:
com.suaempresa.app). Usado no campo current_domain dos eventos de atribuição.StorageAdapter
Parâmetro opcional para substituir o storage padrão (
AsyncStorage no React Native, SharedPreferences
no Flutter) por um adapter customizado. A interface exige três métodos — getItem, setItem e
removeItem — todos assíncronos.function
Callback opcional chamado quando um link da Solomon (
l.solomon.com.br/...) é aberto e resolvido.
Recebe (deepLinkValue, params) — use o deepLinkValue para rotear o usuário até a tela certa
dentro do app. Essencial para os App Links / Universal Links (ver o guia de App Links).string
default:"l.solomon.com.br"
Domínio dos links da Solomon. Deep links desse host são resolvidos automaticamente no servidor
(utm + deep link + click_id). Só altere se usar um domínio de link customizado.
No Flutter esses mesmos parâmetros são passados via
SolomonConfig na construção do SolomonSDK.Instalação
- React Native
- Flutter
1
Instale o pacote do SDK e a dependência obrigatória de storage.
Terminal
2
Opcionalmente, instale as dependências nativas para telemetria completa do device.
Terminal
3
No iOS, instale os pods nativos.
Terminal
Para Expo managed workflow, adicione os config plugins no
app.json para cada dependência opcional instalada:app.json
Inicialização
- React Native
- Flutter
O padrão recomendado é criar um contexto React para disponibilizar o SDK em toda a aplicação.
1
Crie o contexto e o provider do SDK.
SolomonContext.tsx
2
Envolva a aplicação com o provider.
App.tsx
Rastreamento de telas
Para o SDK saber qual tela o usuário está visualizando, a configuração pode ser feita manualmente ou automaticamente pelo roteador de navegação.- React Native
- Flutter
Manualmente
ChamesetScreenName sempre que o usuário navegar para uma nova tela.ProductScreen.tsx
Com React Navigation
Se você usa React Navigation, o hookuseSolomonScreenTracking atualiza o nome da tela automaticamente via setScreenName.
O disparo de VIEW_PAGE continua sendo responsabilidade de cada tela.App.tsx
Deep links e UTMs
Para que a detecção de pontos de contato funcione corretamente, o SDK precisa ler os deep links — URLs que abrem o app diretamente (ex:https://sualoja.com/produto?utm_source=google&utm_medium=cpc).
Você pode configurar manualmente ou utilizar o wrapper disponibilizado dentro do pacote.
Para os links da Solomon (
l.solomon.com.br/..., criados em Integrações → App Links), o SDK
resolve o link no servidor automaticamente ao recebê-lo: recupera a UTM, o click_id e o
deep link value (a rota in-app), mesmo quando esses dados não vêm na URL. É por isso que você
define o onDeepLink na inicialização — é nele que o deepLinkValue chega para você rotear a tela.
Para o app abrir esses links direto (sem passar pelo navegador), configure os App Links / Universal
Links — ver o guia de App Links.Os parâmetros de UTM extraídos de deep links são persistidos no device e enviados em todos os eventos subsequentes,
até que um novo deep link com UTMs diferentes seja recebido.
Disparando eventos
A chamadatrack funciona de forma idêntica ao SDK web. Os mesmos 8 tipos de evento estão disponíveis.
- React Native
- Flutter
1
Dispare o evento de visualização de página.
2
Dispare eventos com payload e aliases.Os campos disponíveis em
aliases são: email, phone, user_id, customer_id, cart_token e order_id.A chamada
track é assíncrona. O monitoramento de erros deve ser feito por meio do console,
com a opção debug ativada na configuração do SDK.Storage customizado
Por padrão, o SDK persiste dados no storage nativo da plataforma. Se preferir uma solução mais performática, basta passar um adapter customizado na inicialização.- React Native
- Flutter
Padrão:
AsyncStorage. Exemplo substituindo por MMKV:
