Skip to main content
Os SDKs mobile da Solomon permitem rastrear os mesmos 8 eventos de funil do SDK web, enviando dados idênticos para o backend — sem necessidade de qualquer alteração no servidor. Estão disponíveis para React Native (bare e Expo managed) e Flutter/Dart.

React Native

Pacote @solomon-tech/events-react-native no npm.

Flutter

Pacote solomon_events no pub.dev.
A inicialização do SDK requer os mesmos parâmetros do SDK web, com algumas adições específicas para mobile.
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.
A funcionalidade de atribuição só irá funcionar se os eventos forem enviados para o pixel.
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.
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).
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

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
Essas dependências são opcionais. Sem elas o SDK funciona normalmente, mas campos como device_id, device_model, connection_type e install_referrer serão preenchidos com valores padrão. Sem react-native-keychain, a identidade do usuário no iOS não sobrevive à reinstalação do app (no Android a durabilidade já vem do identificador do device).
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

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.

Manualmente

Chame setScreenName sempre que o usuário navegar para uma nova tela.
ProductScreen.tsx

Com React Navigation

Se você usa React Navigation, o hook useSolomonScreenTracking atualiza o nome da tela automaticamente via setScreenName. O disparo de VIEW_PAGE continua sendo responsabilidade de cada tela.
App.tsx
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.

Manualmente

App.tsx

Com o hook

App.tsx
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 chamada track funciona de forma idêntica ao SDK web. Os mesmos 8 tipos de evento estão disponíveis.
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.
Padrão: AsyncStorage. Exemplo substituindo por MMKV:
Last modified on September 25, 2026