O objetivo deste manual é fornecer todas as informações necessárias para instalação e uso da ferramenta nos aplicativos desenvolvidos para plataforma React Native.
Este Plugin realiza a coleta de dados do dispositivo e envio para ClearSale. Todas as informações coletadas são dados relacionados apenas ao dispositivo, sem relação ao aplicativo integrado.
Este Plugin realiza a coleta de dados (informações e localização) do dispositivo e envio para ClearSale. Todas as informações coletadas são dados relacionados apenas ao dispositivo, sem relação ao aplicativo integrado.
A informação de geolocalização depende da permissão concedida pelo usuário do dispositivo,
O Plugin respeita a política de privacidade da Apple e do Google para a captura dos dados do device e o nivel de permissão atribuído pelo usuário (usuário do dispositivo).
Package | Digest |
---|---|
clear.sale/behavior-analytics-react-native-sdk | sha1-6VAoJWwE2O4R28Z30FtagJOu/jY= |
Para consultar o checksum do artefato verifique o package.json.lock, após executar o comando npm install no seu projeto.
Package | Digest |
---|---|
clear.sale/behavior-analytics-react-native-sdk | sha1-NjDR2LR86fxl7Wg5tJyt3CSN0MA= |
Para consultar o checksum do artefato verifique o package.json.lock, após executar o comando npm install no seu projeto.
Package | Digest |
---|---|
clear.sale/behavior-analytics-react-native-sdk | sha1-pbslw3vmGSAcokuH2X/1wTOZi8M= |
Para consultar o checksum do artefato verifique o package.json.lock, após executar o comando npm install no seu projeto.
- Node >= 10.19.0
- React Native >= 0.63.2
- Node >= 20.11.1
- React Native >= 0.73.4
Caso você possua uma instalação ativa com o .npmrc configurado, será necessário:
O plugin está disponível em um repositório público, e para sua utilização seguir o exemplo abaixo:
Npm:
npm install @clear.sale/behavior-analytics-react-native-sdk@2.5.3
Yarn:
yarn add @clear.sale/behavior-analytics-react-native-sdk@2.5.3
O plugin está disponível em um repositório público, e para sua utilização seguir o exemplo abaixo:
Npm:
npm install @clear.sale/behavior-analytics-react-native-sdk@2.5.2
Yarn:
yarn add @clear.sale/behavior-analytics-react-native-sdk@2.5.2
O plugin está disponível em um repositório privado, e para sua utilização seguir o exemplo abaixo:
1. Adicione ao seu projeto um arquivo .npmrc no mesmo diretório que está o package.json.
2. Dentro do .npmrc inclua o seguinte trecho:
@clear.sale:registry=https://pkgs.dev.azure.com/CS-PublicPackages/Behavior/_packaging/BehaviorAnalytics.SDK/npm/registry
always-auth=true
3. Adicione o SDK React Native da ClearSale a sua instalação, conforme exemplo:
"dependencies": {
"@clear.sale/behavior-analytics-react-native-sdk": "1.0.1-rc.2",
...
},
4. Execute o comando npm install.
Npm:
npm install @clear.sale/behavior-analytics-react-native-sdk@1.0.1-rc.2
Necessário adicionar ao arquivo build.gradle do projeto o repositório do SDK.
maven {
url 'https://pkgs.dev.azure.com/CS-PublicPackages/Behavior/_packaging/BehaviorAnalytics.SDK/maven/v1'
name 'BehaviorAnalytics.SDK.Android'
}
Também será necessário utilizar as seguintes dependências no seu projeto: play-services-location, play-services-ads-identifier. Para isso adicione no arquivo Gradle do seu projeto, na seção de dependências, as seguintes informações.
Também será necessário utilizar as seguintes dependências no seu projeto: play-services-ads-identifier. Para isso adicione no arquivo Gradle do seu projeto, na seção de dependências, as seguintes informações.
dependencies {
// Demais dependências do seu projeto.
//...
// Dependências Obrigatórias:
implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1'
implementation 'sale.clear.behavior:sdk-behavior:5.6.7'
api 'com.google.android.gms:play-services-location:21.0.1'
}
dependencies {
// Demais dependências do seu projeto.
//...
// Dependências Obrigatórias:
implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1'
implementation 'sale.clear.behavior:sdk-behavior:6.0.8'
api 'com.google.android.gms:play-services-location:21.0.1'
}
dependencies {
// Demais dependências do seu projeto.
//...
// Dependências Obrigatórias:
implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1'
implementation 'sale.clear.behavior:sdk-behavior:6.0.10-rc.1'
}
A dependência 'com.google.android.gms:play-services-ads-identifier:18.0.1' é utilizada para obter as informações do identificador de publicidade do dispositivo.
Já a dependência 'com.google.android.gms:play-services-location:21.0.1' deve ser utilizada sempre que for necessário coletar informações de geolocalização do dispositivo.
Para o uso do sdk é necessário requisitar algumas permissões no arquivo de manifesto, são elas:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
Obs: Para aplicações que utilizam como Target a versão 26 ou superior do Android, e que desejem capturar informações de geolocalização, é necessário, além de adicionar no manifest as permissões ACCESS_FINE_LOCATION e ACCESS_COARSE_LOCATION, solicitar permissão ao usuário para coletar dados de geolocalização, seguindo a esta recomendação do Android. Já para as aplicações que utilizam como Target a versão 33 (Android 13) ou superior, será necessário incluir a permissão AD_ID para que possa ser possível capturar as informações referentes ao advertisingID
Obs: Para as aplicações que utilizam como Target a versão 33 (Android 13) ou superior, será necessário incluir a permissão AD_ID para que possa ser possível capturar as informações referentes ao advertisingID
No arquivo build.gradle do app adicione o código para habilitar o multidex.
android {
defaultConfig {
...
multiDexEnabled true
}
...
}
dependencies {
implementation 'com.android.support:multidex:1.0.3'
}
Na classe MainActivity.java do app adicione o método para habilitar o multidex em versões do android anteriores a 5.0.
Primeiro importe o multidex:
import android.content.Context;
import androidx.multidex.MultiDex;
Depois adicione o método dentro da classe:
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
Na classe MainApplication.java importe:
import androidx.multidex.MultiDexApplication;
Depois altere a herança de Application para MultiDexApplication.
Para saber mais consulte as documentações:
Configuração.
Adicionar lib nativa iOS ClearSale no pod do seu projeto:
source 'https://dev.azure.com/CS-PublicPackages/Behavior/_git/BehaviorAnalytics.SDK.IOS.Specs'
target 'NOME_DO_PROJETO' do
pod 'CSBehavior', '3.0.1'
end
source 'https://dev.azure.com/CS-PublicPackages/Behavior/_git/BehaviorAnalytics.SDK.IOS.Specs'
target 'NOME_DO_PROJETO' do
...
Ainda no pod do seu projeto adicionar a seguinte opção no post_install:
post_install do |installer|
...
installer.pods_project.targets.each do |t|
t.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0'
end
end
end
Dentro da pasta do projeto entrar na pasta ios e executar o comando pod install:
pod install
Caso apresentar o erro Error: EMFILE: too many open files - React Native CLI instalar o watchman.
Executar os seguintes comandos no terminal:
brew update
$ brew install watchman
Adicionar a seguinte opção no seu plist e após no xcode Menu Build -> Clean and Build Folder.
<dict>
<key>NSAllowsArbitraryLoads</key>
<true />
<key>NSExceptionDomains</key>
<dict>
<key>clearsale.com.br</key>
<dict>
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>TLSv1.2</string>
</dict>
</dict>
</dict>
Disponibiliza todos os métodos que realizam a comunicação com o SDK, todos métodos retornam uma Promise.
Nome do método | Plataforma | Descrição |
---|---|---|
Promise<String> generateSessionId(appKey) | Android / iOS | Gera e retorna um identificador de sessão. Este método deve ser utilizado somente se o aplicativo não gerar identificadores únicos para cada coleta. |
Promise<void> collectDeviceInformation(appKey, sessionId) | Android / iOS |
Realiza a coleta das informações do dispositivo vinculando ao valor de Sessão. É necessário passar como parâmetro o SessionId, valor de sessão.
Observações:
|
Promise<void> start(appKey, success, failure) | Android | Inicia a coleta das informações sobre o dispositivo e a tela, Exception: CaptureWasStartedException - lançada quando uma captura anterior não foi parada. |
Promise<void> stop(appKey, sessionId, success, failure) | Android | Encerra o processo de captura dos dados. |
Promise<void> allowAppList() | Android | Ativa a coleta de informações sobre os aplicativos instalados no dispositivo. |
Promise<void> allowGeoLocation() | Android | Ativa a coleta de geolocalização. |
Exemplo de uso do plugin.
import ClearSaleModule from 'behavior-analytics-react-native-sdk'
Utilizando os métodos start e stop durante o ciclo de vida do componente (React Hooks):
useEffect(() => {
if (Platform.OS === 'android') {
...
ClearSaleModule.start(appKey)
ClearSaleModule.allowAppList()
ClearSaleModule.allowGeoLocation()
return () => {
...
ClearSaleModule.stop(appKey)
}
}
}, [])
useEffect(() => {
if (Platform.OS === 'android') {
...
ClearSaleModule.start(appKey)
ClearSaleModule.allowAppList()
return () => {
...
ClearSaleModule.stop(appKey)
}
}
}, [])
Para utilizar as funções generateSessionId e collectDeviceInformation é necessário que o método start tenha sido executado.
Caso o método start seja executado sem que o método stop ocorra, será lançada uma exception do tipo CaptureWasStartedException.
Método generateSessionId retorna o sessionId.
const loadPage = async () => {
...
await verifyLocationPermissions()
const sessionId = await ClearSaleModule.generateSessionId(state.token)
setState({
...state,
sessionId: sessionId
})
...
}
Método collectDeviceInformation inicia coleta de dados com um sessionId já existente.
useFocusEffect(
React.useCallback(() => {
loadPage()
return () => {
unloadPage()
};
}, [])
);
const loadPage = async () => {
ClearSaleModule.collectDeviceInformation(state.token, state.sessionId).then(() => {
console.log('id com sucesso', state.sessionId)
setLoading(false)
setSend(true)
}).catch(() => {
setLoading(false)
setSend(false)
})
}
const getSessionId = () => {
ClearSaleModule.generateSessionId(appKey).then(sessionId => {
...
setSessionId(sessionId)
}).catch(err => {
...
})
}
É possível visualizar a implementação do SDK em um projeto de exemplo Clicando aqui.
npm uninstall @clear.sale/behavior-analytics-react-native-sdk
npm uninstall @clear.sale/behavior-analytics-react-native-sdk
yarn remove @clear.sale/behavior-analytics-react-native-sdk
yarn remove @clear.sale/behavior-analytics-react-native-sdk
Acesse nosso FAQ Clicando Aqui
Todas as informações coletadas pelo SDK da ClearSale são com exclusiva finalidade de prevenção à fraude e proteção ao próprio usuário, aderente à política de segurança e privacidade das plataformas Google e Apple e à LGPD. Por isso, estas informações devem constar na política de privacidade do aplicativo.
O SDK da ClearSale coleta as seguintes informações do dispositivo :
Todas as informações coletadas pelo SDK da ClearSale são com exclusiva finalidade de prevenção à fraude e proteção ao próprio usuário, aderente à política de segurança e privacidade das plataformas Google e Apple e à LGPD. Por isso, estas informações devem constar na política de privacidade do aplicativo.
O SDK da ClearSale coleta as seguintes informações do dispositivo :
Ao realizar o download e utilizar nosso SDK você estará concordando com a seguinte licença.
Copyright © 2024 ClearSale
Todos os direitos são reservados, sendo concedida a permissão para usar o software da maneira como está, não sendo permitido qualquer modificação ou cópia para qualquer fim. O Software é licenciado com suas atuais configurações “tal como está” e sem garantia de qualquer espécie, nem expressa e nem implícita, incluindo mas não se limitando, garantias de comercialização, adequação para fins particulares e não violação de direitos patenteados. Em nenhuma hipótese os titulares dos Direitos Autorais podem ser responsabilizados por danos, perdas, causas de ação, quer seja por contrato ou ato ilícito, ou outra ação tortuosa advinda do uso do Software ou outras ações relacionadas com este Software sem prévia autorização escrita do detentor dos direitos autorais.