SDK do Flutter - Referência de Configuração
Este documento fornece uma referência abrangente para todas as opções de configuração disponíveis no SDK Singular para aplicativos Flutter. O objeto SingularConfig permite personalizar o comportamento do SDK, incluindo configurações de rastreamento, opções de atribuição, controles de privacidade e muito mais. Cada propriedade de configuração é apresentada com uma descrição, assinatura e exemplos práticos de uso.
clipboardAttribution
Propriedade SingularConfig.clipboardAttribution
Ativa a atribuição da área de transferência para rastrear links diretos copiados para a área de transferência do dispositivo. Quando ativado, o SDK verificará se há links Singular na área de transferência ao iniciar o aplicativo.
Assinatura
bool clipboardAttribution
Exemplo de uso
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.clipboardAttribution = true;
collectOAID
Propriedade SingularConfig.collectOAID
Permite a recolha do Open Anonymous Device Identifier (OAID) em dispositivos Android. O OAID é um identificador de publicidade utilizado principalmente na China.
Assinatura
bool collectOAID
Exemplo de utilização
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.collectOAID = true;
conversionValueUpdatedCallback
Propriedade SingularConfig.conversionValueUpdatedCallback
Define uma função de retorno de chamada que é acionada quando o valor de conversão SKAdNetwork é atualizado (apenas iOS). Esta chamada de retorno recebe o novo valor de conversão como parâmetro.
Assinatura
ConversionValueUpdatedCallback? conversionValueUpdatedCallback
Exemplo de utilização
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.conversionValueUpdatedCallback = (int conversionValue) {
print('SKAdNetwork conversion value updated: $conversionValue');
};
conversionValuesUpdatedCallback
Propriedade SingularConfig.conversionValuesUpdatedCallback
Define uma função de chamada de retorno para os valores de conversão da SKAdNetwork 4.0+ (apenas iOS 16.1+). Esta chamada de retorno recebe o valor de conversão fino, o valor de conversão grosseiro e o estado do bloqueio.
Assinatura
ConversionValuesUpdatedCallback? conversionValuesUpdatedCallback
Exemplo de utilização
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.conversionValuesUpdatedCallback = (int conversionValue, int coarse, bool lock) {
print('Fine: $conversionValue, Coarse: $coarse, Locked: $lock');
};
customSdid
Propriedade SingularConfig.customSdid
Define um ID de dispositivo singular (SDID) personalizado. Isto permite-lhe fornecer o seu próprio identificador de dispositivo em vez de utilizar o gerado pelo SDK.
Assinatura
String? customSdid
Exemplo de utilização
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.customSdid = 'my_custom_device_id_123';
customUserId
Propriedade SingularConfig.customUserId
Define um identificador de usuário personalizado durante a inicialização do SDK. Isto associa todos os eventos com o ID de utilizador da sua aplicação desde o início.
Assinatura
String? customUserId
Exemplo de utilização
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.customUserId = 'user_12345';
deviceAttributionCallback
Propriedade SingularConfig.deviceAttributionCallback
Define uma função de retorno de chamada que recebe dados de atribuição do dispositivo. Essa chamada de retorno é acionada quando as informações de atribuição ficam disponíveis nos servidores Singular.
Assinatura
DeviceAttributionCallback? deviceAttributionCallback
Exemplo de uso
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.deviceAttributionCallback = (Map<String, dynamic> attributes) {
print('Attribution data received:');
attributes.forEach((key, value) {
print(' $key: $value');
});
};
didSetSdidCallback
Propriedade SingularConfig.didSetSdidCallback
Define uma função de retorno de chamada que é acionada depois que a ID do Dispositivo Singular (SDID) foi definida pelo SDK.
Assinatura
SdidAccessorCallback? didSetSdidCallback
Exemplo de uso
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.didSetSdidCallback = (String sdid) {
print('SDID has been set: $sdid');
};
enableLogging
Propriedade SingularConfig.enableLogging
Habilita o registro de depuração para o SDK Singular. Quando ativado, o SDK produzirá logs detalhados para ajudar na depuração e solução de problemas.
Assinatura
bool enableLogging
Exemplo de uso
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.enableLogging = true;
enableOdmWithTimeoutInterval
Propriedade SingularConfig.enableOdmWithTimeoutInterval
Ativa a Correspondência no Dispositivo (ODM) com um intervalo de tempo limite especificado em segundos. O ODM melhora a precisão da atribuição ao fazer a correspondência de identificadores de dispositivos localmente antes de enviar dados para os servidores Singular.
Assinatura
int enableOdmWithTimeoutInterval
Exemplo de uso
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.enableOdmWithTimeoutInterval = 5; // 5 seconds timeout
facebookAppId
Propriedade SingularConfig.facebookAppId
Define a ID do aplicativo do Facebook para integração de atribuição do Facebook. Isso permite o rastreamento de atribuição adequado para campanhas de anúncios do Facebook.
Assinatura
String? facebookAppId
Exemplo de uso
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.facebookAppId = '1234567890123456';
globalProperties
Propriedade SingularConfig.globalProperties
Define uma lista de propriedades globais durante a inicialização do SDK. Essas propriedades serão incluídas automaticamente em todos os eventos rastreados pelo SDK.
Assinatura
List<SingularGlobalProperty> globalProperties
Exemplo de uso
import 'package:singular_flutter_sdk/singular_config.dart';
import 'package:singular_flutter_sdk/singular_global_property.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.globalProperties = [
SingularGlobalProperty('app_version', '2.5.0', true),
SingularGlobalProperty('user_tier', 'premium', false)
];
imei
Propriedade SingularConfig.imei
Define o IMEI (International Mobile Equipment Identity - Identidade Internacional do Equipamento Móvel) do dispositivo para efeitos de seguimento. É utilizado principalmente em determinados mercados asiáticos, onde o IMEI é um identificador de dispositivo comum.
Assinatura
String? imei
Exemplo de utilização
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.imei = '123456789012345';
limitAdvertisingIdentifiers
Propriedade SingularConfig.limitAdvertisingIdentifiers
Limita a recolha de identificadores de publicidade (IDFA no iOS, GAID no Android) durante a inicialização do SDK. Quando ativado, o SDK não coletará ou transmitirá IDs de publicidade.
Assinatura
bool limitAdvertisingIdentifiers
Exemplo de utilização
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.limitAdvertisingIdentifiers = true;
limitDataSharing
Propriedade SingularConfig.limitDataSharing
Limita a partilha de dados com terceiros durante a inicialização do SDK. Quando ativado, o SDK restringirá a partilha de dados de atribuição com redes de anúncios e outros parceiros.
Assinatura
bool? limitDataSharing
Exemplo de utilização
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.limitDataSharing = true;
logLevel
Propriedade SingularConfig.logLevel
Define o nível de registo para o SDK. Valores mais altos fornecem uma saída de registo mais detalhada para fins de depuração.
Os níveis disponíveis são:
-
NONE = -1
-
VERBOSE = Log.VERBOSE (constante do Android, valor numérico 2)
-
DEBUG = Log.DEBUG (3)
-
INFO = Log.INFO (4)
-
WARNING = Log.WARN (5)
-
ERROR = Log.ERROR (6)
Assinatura
int logLevel
Exemplo de utilização
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.logLevel = 5; // Maximum logging detail
manualSkanConversionManagement
Propriedade SingularConfig.manualSkanConversionManagement
Ativa a gestão manual dos valores de conversão da SKAdNetwork (apenas iOS). Quando ativado, o SDK não actualizará automaticamente os valores de conversão, dando-lhe controlo total sobre quando e como os valores de conversão são definidos.
Assinatura
bool manualSkanConversionManagement
Exemplo de utilização
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.manualSkanConversionManagement = true;
sdidReceivedCallback
Propriedade SingularConfig.sdidReceivedCallback
Define uma função de retorno de chamada que é acionada quando a ID de Dispositivo Singular (SDID) é recebida do servidor ou recuperada do armazenamento local.
Assinatura
SdidAccessorCallback? sdidReceivedCallback
Exemplo de utilização
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.sdidReceivedCallback = (String sdid) {
print('SDID received: $sdid');
};
sessionTimeout
Propriedade SingularConfig.sessionTimeout
Define a duração do tempo limite da sessão em segundos. Após este período de inatividade, o SDK considerará que se trata de uma nova sessão quando a aplicação for reaberta.
Assinatura
double sessionTimeout
Exemplo de utilização
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.sessionTimeout = 60.0; // 60 seconds
shortLinkResolveTimeOut
Propriedade SingularConfig.shortLinkResolveTimeOut
Define a duração do tempo limite em segundos para a resolução de links curtos. Determina quanto tempo o SDK aguardará a resolução de um link curto antes de atingir o tempo limite.
Assinatura
double shortLinkResolveTimeOut
Exemplo de uso
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.shortLinkResolveTimeOut = 10.0; // 10 seconds
singularLinksHandler
SingularConfig.singularLinksHandler Propriedade
Define um manipulador de chamada de retorno para Singular Links (links diretos). Esta chamada de retorno é acionada quando um utilizador abre a aplicação através de um link curto Singular ou de um link profundo diferido.
Assinatura
SingularLinksHandler? singularLinksHandler
Exemplo de utilização
import 'package:singular_flutter_sdk/singular_config.dart';
import 'package:singular_flutter_sdk/singular_link_params.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.singularLinksHandler = (SingularLinkParams params) {
print('Deep link received:');
print(' Deep link: ${params.deeplink}');
print(' Passthrough: ${params.passthrough}');
print(' Is deferred: ${params.isDeferred}');
};
skAdNetworkEnabled
Propriedade SingularConfig.skAdNetworkEnabled
Habilita ou desabilita a integração com SKAdNetwork (somente iOS). Quando ativado, o SDK processa automaticamente as actualizações de atribuição e de valor de conversão da SKAdNetwork.
Assinatura
bool skAdNetworkEnabled
Exemplo de utilização
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.skAdNetworkEnabled = true;
waitForTrackingAuthorizationWithTimeoutInterval
Propriedade SingularConfig.waitForTrackingAuthorizationWithTimeoutInterval
Define um intervalo de tempo limite em segundos para aguardar a autorização do App Tracking Transparency (ATT) no iOS. O SDK atrasará a inicialização até que o utilizador responda à solicitação ATT ou o tempo limite seja atingido.
Assinatura
int waitForTrackingAuthorizationWithTimeoutInterval
Exemplo de uso
import 'package:singular_flutter_sdk/singular_config.dart';
SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.waitForTrackingAuthorizationWithTimeoutInterval = 30; // 30 seconds
Exemplo de configuração completa
Abaixo está um exemplo abrangente que mostra como configurar o SDK Singular com várias opções para um aplicativo Flutter.
import 'package:flutter/material.dart';
import 'package:singular_flutter_sdk/singular.dart';
import 'package:singular_flutter_sdk/singular_config.dart';
import 'package:singular_flutter_sdk/singular_link_params.dart';
import 'package:singular_flutter_sdk/singular_global_property.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
void initState() {
super.initState();
initSingularSDK();
}
void initSingularSDK() {
// Create configuration object
SingularConfig config = SingularConfig(
'YOUR_API_KEY',
'YOUR_SECRET_KEY'
);
// Enable logging for debugging
config.enableLogging = true;
config.logLevel = 4;
// Set custom user ID if available
config.customUserId = 'user_12345';
// Configure session timeout
config.sessionTimeout = 60.0;
// Enable clipboard attribution
config.clipboardAttribution = true;
// Configure SKAdNetwork (iOS)
config.skAdNetworkEnabled = true;
config.manualSkanConversionManagement = false;
config.waitForTrackingAuthorizationWithTimeoutInterval = 30;
// Set conversion value callbacks (iOS)
config.conversionValueUpdatedCallback = (int conversionValue) {
print('SKAdNetwork conversion value updated: $conversionValue');
};
config.conversionValuesUpdatedCallback = (int cv, int coarse, bool lock) {
print('SKAdNetwork values - Fine: $cv, Coarse: $coarse, Lock: $lock');
};
// Configure deep link handling
config.singularLinksHandler = (SingularLinkParams params) {
print('Singular Link detected');
print('Deep link: ${params.deeplink}');
print('Passthrough params: ${params.passthrough}');
print('Is deferred: ${params.isDeferred}');
// Handle deep link navigation
if (params.deeplink != null) {
// Navigate to appropriate screen based on deep link
}
};
// Set short link timeout
config.shortLinkResolveTimeOut = 10.0;
// Configure attribution callback
config.deviceAttributionCallback = (Map<String, dynamic> attributes) {
print('Attribution data received:');
attributes.forEach((key, value) {
print(' $key: $value');
});
};
// Configure SDID callbacks
config.sdidReceivedCallback = (String sdid) {
print('SDID received: $sdid');
};
config.didSetSdidCallback = (String sdid) {
print('SDID has been set: $sdid');
};
// Set global properties
config.globalProperties = [
SingularGlobalProperty('app_version', '2.5.0', true),
SingularGlobalProperty('user_tier', 'premium', false),
SingularGlobalProperty('environment', 'production', true)
];
// Configure Facebook integration
config.facebookAppId = '1234567890123456';
// Privacy settings
config.limitDataSharing = false;
config.limitAdvertisingIdentifiers = false;
// Android-specific settings
config.collectOAID = true;
// Enable On-Device Matching
config.enableOdmWithTimeoutInterval = 5;
// Start the SDK
Singular.start(config);
print('Singular SDK initialized successfully');
}
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Singular Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Scaffold(
appBar: AppBar(
title: Text('Singular SDK Demo'),
),
body: Center(
child: Text('Singular SDK Initialized'),
),
),
);
}
}