O objetivo deste manual é fornecer todas as informações necessárias para instalação e uso da ferramenta nos aplicativos desenvolvidos para plataforma Android.
Este SDK 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 SDK respeita a política de privacidade da Google para a captura dos dados do dispositivo e o nível de permissão atribuído pelo usuário (usuário do dispositivo).
O objetivo deste manual é fornecer todas as informações necessárias para instalação e uso da ferramenta nos aplicativos desenvolvidos para plataforma Android.
Este SDK 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.
O SDK respeita a política de privacidade da Google para a captura dos dados do dispositivo e o nível de permissão atribuído pelo usuário (usuário do dispositivo).
Package | Digest |
---|---|
sdk-behavior | SHA256: 438240202C4248D0201149F376C5D2C776B81AE9F616317F07F67185F90BB997 |
Para verificar o checksum das dependencias no Gradle 6.2 ou superior, siga as instruções desse link: Dependency Verification
Package | Digest |
---|---|
sdk-behavior | SHA256: ABCCC91058E7005BC7B47A3A242E77575B0086224D18E9C75E85B0AE0ED1C54D |
Para verificar o checksum das dependencias no Gradle 7.0 ou superior, siga as instruções desse link: Dependency Verification
Package | Digest |
---|---|
sdk-behavior | SHA256: F67C436798EFAB2C50446090B39101C75217D724B654713AA8758CF498B51687 |
Para verificar o checksum das dependencias no Gradle 7.0 ou superior, siga as instruções desse link: Dependency Verification
Package | Digest |
---|---|
sdk-behavior | SHA256: 9E55E1A8C668B028481C891ECAB4186281CD725F1BC7700D1E82939D9BA6C433 |
Para verificar o checksum das dependencias no Gradle 7.0 ou superior, siga as instruções desse link: Dependency Verification
Para realizar a atualização da versão 3.0.2 para a versão 6.x.x ou superior, siga essas etapas:
O pacote está disponível em um repositório privado. Para sua utilização, é necessário adicionar o seguinte repositório ao arquivo raiz:
maven {
url 'https://pkgs.dev.azure.com/CS-PublicPackages/Behavior/_packaging/BehaviorAnalytics.SDK/maven/v1'
name 'BehaviorAnalytics.SDK.Android'
}
O pacote está disponível em um repositório privado, e para sua utilização é necessário adicionar o seguinte repositório ao arquivo raiz:
maven {
url 'https://pkgs.dev.azure.com/CS-PublicPackages/Behavior/_packaging/BehaviorAnalytics.SDK/maven/v1'
name 'BehaviorAnalytics.SDK.Android'
}
É necessário utilizar as seguintes dependências no seu projeto:
Para isso, na seção de dependências, adicione as seguintes informações no arquivo Gradle do seu projeto:
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'
}
É necessário utilizar as seguintes dependências no seu projeto:
Para isso, na seção de dependências, adicione as seguintes informações no arquivo Gradle do seu projeto:
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.0'
api 'com.google.android.gms:play-services-location:21.0.1'
}
É necessário utilizar as seguintes dependências no seu projeto:
Para isso, na seção de dependências, adicione as seguintes informações no arquivo Gradle do seu projeto:
dependencies {
// Demais dependências do seu projeto.
//...
// Dependências Obrigatórias:
implementation 'com.google.android.gms:play-services-ads:18.3.0'
api 'com.google.code.gson:gson:2.8.6'
implementation 'sale.clear.behavior:sdk-behavior:3.0.2'
// Dependências Optativas:
api 'com.google.android.gms:play-services-location:17.0.0'
}
Saiba mais:
A dependência optativa 'com.google.android.gms:play-services-location:17.0.0' deve ser utilizada sempre que for necessário coletar informações de geolocalização.Saiba mais:
Saiba mais:
Inclua esta regra se estiver utilizando o Proguard:
-keep class sale.clear.behavior.** { *; }
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"/>
Atenção: 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, também solicitar permissão ao usuário para coletar dados de geolocalização. Para isso, siga esta recomendação do Android.
Já 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.
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_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"/>
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.
Caso o usuário tenha consentido com as coletas de geolocalização e da lista de aplicativos, os métodos
allowGeoLocation()
allowAppList()
devem ser chamados, antes
do método start(), conforme exemplo abaixo:
@Override
public void onResume() {
super.onResume();
try {
mBehavior.allowGeoLocation(); // Habilita a captura de geolocalização
mBehavior.allowAppList(); //Habilita a captura de informações dos aplicativos instalados no dispositivo
mBehavior.start(); //Inicialização da captura de informações.
String sessionId = mBehavior.generateSessionID();
//Apenas nas telas que se deseja enviar os dados coletados para a ClearSale
mBehavior.collectDeviceInformation(sessionId); //Preferencialmente após algum tempo de interação do usuário.
}
catch (CaptureWasStartedException e) {
//Este erro ocorre quando o método start() foi chamado mais de uma vez sem a utilização do método stop().
//Cada captura (que se inicia no método start) precisa ser encerrada (com a chamada do método stop)
}
}
Behavior é a classe responsável pela coleta das informações.
Construtores: esta classe não possui construtores públicos. A instância deverá ser feita através de um método estático.Nome do método | Descrição |
---|---|
Behavior.getInstance(String app, Integer consentFlags) :Behavior |
Obtém a instância da classe Behavior para um AppKey. É necessário passar como parâmetro o AppKey (valor fornecido pela ClearSale). É necessário passar como parâmetro as Flags informando se o usuário consentio a coleta de informações sensiveis. |
Nome do método | Descrição |
---|---|
start() :void |
Inicia a coleta das informações sobre o dispositivo e a tela. Exceções:
|
generateSessionID() :String |
Gera e retorna um identificador de sessão. Este valor deve ser armazenado e enviado para a ClearSale no momento da integração do pedido (é o parâmetro usado na chamada do método collectDeviceInformation). |
collectDeviceInformation(String sessionID) :void |
Realiza a coleta das informações do dispositivo
vinculando ao valor de Sessão. É necessário passar como parâmetro o SessionId (este valor deve ser único por sessão). (*) Caso não possua um valor, utilizar o método. generateSessionID(). (**) O Tamanho mínimo do SessionID a ser usado é de 6 caracteres e o tamanho máximo é de 128 caracteres. Exceções:
|
stop() :void | Encerra o processo de captura dos dados. |
allowAppList() :void | Permite a coleta de informações sobre os aplicativos instalados no dispositivo. |
allowGeoLocation() :void | Permite a coleta de geolocalização. |
sendEvent(UserEventType eventType, String sessionID) :void | Permite o envio de eventos de usuário para o gerenciador de eventos, identificando o tipo de evento e a sessão do usuário (versão beta). |
Existem duas formas de inicializar o SDK. Isso depende do tipo de tela que será utilizada. Caso a tela seja uma Activity, a inicialização deve ser feita no método onCreate(). Caso seja um Fragment, a inicialização deve ser feita no método onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
Observação: Em ambos os casos (Activity ou Fragment), se o método stop() não for chamado dentro do método onStop() de uma das telas, por se tratar de um singleton, na próxima tela quando for chamado o start() será lançada a exceção CaptureWasStartedException.
Em todos os exemplos se assume a existência das seguintes variáveis:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Para obter o Context em um Fragment.
View rootView = inflater.inflate(R.layout.fragment_login, container, false);
Context context = rootView.getContext();
//CLEAR_SALE_APP é um valor de identificação único que deve ser fornecido pela ClearSale.
mBehavior = Behavior.getInstance(context, CLEAR_SALE_APP);
return rootView;
}
@Override
public void onCreate() {
//CLEAR_SALE_APP é um valor de identificação único que deve ser fornecido pela ClearSale.
mBehavior = Behavior.getInstance(this, CLEAR_SALE_APP);
}
@Override
public void onResume() {
super.onResume();
try {
mBehavior.start(); //Inicialização da captura de informações.
String sessionId = mBehavior.generateSessionID()
//Apenas nas telas que se deseja enviar os dados coletados para a ClearSale
mBehavior.collectDeviceInformation(sessionId); //Preferencialmente após algum tempo de interação do usuário.
}
catch (CaptureWasStartedException e) {
//Isso indica que o método mBehavior.start() já foi chamado anteriormente e
//a coleta não foi finalizada corretamente com a utilização do método mBehavior.stop().
}catch (SessionIDAlreadyUsedException e) {
//O mesmo sessionId foi usado anteriormente. O SessionID deve ser único por coleta.
}
}
Os métodos start() e stop() devem ser implementados apenas na tela em que a captura de informações será realizada. O método collectDeviceInformation(SESSION_ID) deve ser chamado no momento em que deseja enviar as informações coletadas para a ClearSale, na mesma tela em que foi implementado os métodos anteriores.
OBS: O método collectDeviceInformation deve ser, obrigatoriamente, chamado depois do método start() já ter sido executado.
Recomendamos que estes métodos sejam implementados em uma tela de "finalização" onde haja interação do usuário por, no mínimo, 3 segundos.
@Override
public void onStop() {
super.onStop();
mBehavior.stop(); //Finalização da captura de informações.
}
public class ExemploImplementacaoActivity extends AppCompatActivity {
private Behavior mBehavior;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//CLEAR_SALE_APP é um valor de identificação único que deve ser fornecido pela ClearSale.
mBehavior = Behavior.getInstance(this, "CLEAR_SALE_APP");
}
@Override
public void onResume() {
super.onResume();
try {
mBehavior.start(); //Inicialização da captura de informações.
String sessionId = mBehavior.generateSessionID();
//Apenas na tela que se deseja enviar os dados coletados para a ClearSale
mBehavior.collectDeviceInformation(sessionId); //Preferencialmente após algum tempo de interação do usuário.
} catch (CaptureWasStartedException e) {
//Isso indica que o método mBehavior.start() já foi chamado anteriormente e
//a coleta não foi finalizada corretamente com a utilização do método mBehavior.stop().
} catch (SessionIDAlreadyUsedException e) {
//O mesmo sessionId foi usado anteriormente. O SessionID deve ser único por coleta.
}
}
@Override
public void onStop() {
super.onStop();
mBehavior.stop(); //Finalização da captura de informações.
}
}
É possível visualizar a implementação do SDK em um projeto de exemplo Clicando aqui.
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 da plataforma Google 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 :
Saiba mais em: Privacidade de dados da Play Store
Política de privacidade da GoogleAo 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.