SDK Flutter

Última atualização: 10 de Abril de 2024

Introdução

O objetivo deste manual é fornecer todas as informações necessárias para instalação e uso da ferramenta nos aplicativos desenvolvidos para plataforma Flutter.

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, neste caso é necessário que o aplicativo solicite o acesso da informação de localização do usuário (o SDK não solicita permissão). Caso o aplicativo não solicite o acesso ou o usuário não conceda permissão, para localização, não será realizada a captura das informações de GeoLocation.

O Plugin respeita a política de privacidade da Apple e do Google para a captura dos dados do dispositivo e o nivel de permissão atribuído pelo usuário (usuário do dispositivo).

Checksum

Uma vez que o Flutter não possui suporte nativo para realizar a verificação de integridade, o checksum deve ser feito em cada um dos SDK de forma individual.

Plataforma Documentação
Android clique aqui
iOS clique aqui

Flutter

Instalação

O plugin está disponível no pub.dev, e para sua utilização é necessário seguir o exemplo abaixo:

dependencies:
  behavior_analytics_flutter_sdk: ^0.3.3
dependencies:
  behavior_analytics_flutter_sdk: ^0.3.7
dependencies:
  behavior_analytics_flutter_sdk: 
    git:
        url: https://PublicPackagesCS@dev.azure.com/PublicPackagesCS/Behavior/_git/BehaviorAnalytics.SDK.Flutter
        ref: main
        version: 0.5.10

No arquivo pubspec.yaml, insira a referencia do package na parte de dependencias


Configuração Proguard

Caso o seu projeto esteja utilizando Proguard, será necessário inserir as seguintes configurações:

Obrigatório
-keep class sale.clear.behavior.android.** { *; }

Opcional
-keepattributes Exceptions


Configuração de release

Abaixo uma recomendação de configuração base para a release.

buildTypes {
  release {

    shrinkResources true

    minifyEnabled true

    proguardFiles getDefaultProguardFile('proguard-android.txt'),
    'proguard-rules.pro'
    signingConfig signingConfigs.debug 
  }
}
    

Configuração Android

Configuração do Projeto

É 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.

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.4'
    api 'com.google.android.gms:play-services-location:21.0.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.

Permissões no aplicativo

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"/>

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


Configuração iOS

Configuração do Projeto

Adicionar lib nativa iOS ClearSale no pod do seu projeto:

source 'https://dev.azure.com/PublicPackagesCS/Behavior/_git/BehaviorAnalytics.SDK.IOS.Specs'
target 'NOME_DO_PROJETO' do
pod 'CSBehavior', '3.0.1'
end
source 'https://dev.azure.com/PublicPackagesCS/Behavior/_git/BehaviorAnalytics.SDK.IOS.Specs'
target 'NOME_DO_PROJETO' do
...

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>

Dados e descrição

Dado Descrição
SessionID ID único por sessão da coleta de device, deve ser enviado para a ClearSale junto ao pedido.
AppKey Valor fornecido pela Clearsale, que serve para identificar a origem da coleta de device.

Implementação

Inicialização do SDK

import  'package:behavior_analytics_flutter_sdk/behavior_analytics_flutter_sdk.dart';


class  MyApp  extends  StatefulWidget {
    @override
    _MyAppState  createState() => _MyAppState();
}

class  _MyAppState  extends  State {
    @override
    void  initState() {
        super.initState();
        BehaviorAnalyticsFlutterSdk.start("appkey_fornecido_pela_clearsale");
    }
}

Coleta de device

Exemplo de implementação da coleta

void _handleButtonPress() {
    BehaviorAnalyticsFlutterSdk.generateSessionID().then((sessionID) {
        BehaviorAnalyticsFlutterSdk.collectDeviceInformation(sessionID);

        print(sessionID);

        setState(() {
          _sessionID = sessionID;
        });
    });
}

@override
Widget build(BuildContext context) {
    print('build');
    return MaterialApp(
        home: Scaffold(
            appBar: AppBar(
                title: const Text('BehaviorAnalytics Plugin Example'),
            ),
            body: Center(
                child: Column(
                    mainAxisAlignment: MainAxisAlignment.center,
                    children: [
                        Text('SessionID: $_sessionID\n'),
                        ElevatedButton(
                            onPressed: _handleButtonPress,
                            child: Text('Coletar'),
                        ),
                    ],
                ),
            ),
        ),
    );
}
                            

Projeto de Exemplo

É possível visualizar a implementação do SDK em um projeto de exemplo Clicando aqui.

FAQ

Acesse nosso FAQ Clicando Aqui

Detalhes de privacidade

Uso de dados

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.

Tipo de dados coletados

O SDK da ClearSale coleta as seguintes informações do dispositivo :

  • Localização precisa (quando habilitada permissão pelo usuário);
  • Identificadores de publicidade do dispositivo (quando habilitada permissão pelo usuário);
  • Características físicas do dispositivo/ hardware (Como tela, bateria, teclado, espaço livre em disco, modelo, nome do dispositivo);
  • Características de software (Como versão, idioma, build, controle parental);
  • Informações de rede (Como Conexões, IP);
  • Operadora do SimCard.

Política de privacidade da Google
Política de privacidade da Apple

Licença de Uso.

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.