SDK do Flutter - Referência de Métodos 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 método de configuração é apresentado com uma descrição, assinatura e exemplos práticos de uso.
clipboardAttribution
Propriedade SingularConfig.clipboardAttribution
Habilita a atribuição da área de transferência para o SDK. Quando ativada, o SDK verificará a área de transferência do dispositivo em busca de links de atribuição durante a inicialização.
Assinatura
bool clipboardAttribution = false;
Exemplo de uso
// Enable clipboard attribution
config.clipboardAttribution = true;
collectOAID
Propriedade SingularConfig.collectOAID
Permite a recolha de OAID (Open Anonymous Device Identifier) em dispositivos Android suportados. Trata-se de um identificador alternativo utilizado em algumas regiões, nomeadamente na China.
Assinatura
bool collectOAID = false;
Exemplo de utilização
// Enable OAID collection
config.collectOAID = true;
conversionValueUpdatedCallback
Propriedade SingularConfig.conversionValueUpdatedCallback
Define uma função de retorno de chamada a ser chamada quando o valor de conversão SKAdNetwork é atualizado. Isto é específico do iOS e permite-lhe reagir às alterações do valor de conversão.
Assinatura
ConversionValueUpdatedCallback? conversionValueUpdatedCallback;
Exemplo de utilização
// Set conversion value updated callback
config.conversionValueUpdatedCallback = (int conversionValue) {
print("Conversion value updated to: $conversionValue");
// Update UI or take other actions based on the new conversion value
};
conversionValuesUpdatedCallback
Propriedade SingularConfig.conversionValuesUpdatedCallback
Define uma função de retorno de chamada a ser chamada quando os valores de conversão da SKAdNetwork 4.0 são actualizados. Isto é específico do iOS 16.1+ e permite-lhe reagir a alterações nos valores finos, grossos e de bloqueio.
Assinatura
ConversionValuesUpdatedCallback? conversionValuesUpdatedCallback;
Exemplo de utilização
// Set conversion values updated callback for SKAdNetwork 4.0
config.conversionValuesUpdatedCallback = (int conversionValue, int coarse, bool lock) {
print("Conversion values updated - Fine: $conversionValue, Coarse: $coarse, Lock: $lock");
// Update UI or take other actions based on the new conversion values
};
customSdid
Propriedade SingularConfig.customSdid
Caraterística da empresa: Define um SDID (Singular Device ID) personalizado. Isso permite que o usuário forneça seu próprio identificador de dispositivo em vez de usar o gerado pelo Singular.
Assinatura
String? customSdid;
Exemplo de uso
// Set custom SDID
config.customSdid = "custom-device-id-12345";
customUserId
Propriedade SingularConfig.customUserId
Define um ID de usuário personalizado durante a inicialização do SDK. Isto permite-lhe associar os dados Singular ao seu próprio sistema de identificação de utilizadores desde o início.
Assinatura
String? customUserId;
Exemplo de uso
// Set custom user ID
config.customUserId = "user_123456";
deviceAttributionCallback
Propriedade SingularConfig.deviceAttributionCallback
Caraterística BETA: Define uma função de retorno de chamada a ser chamada quando os dados de atribuição do dispositivo estiverem disponíveis. Isto permite-lhe aceder aos dados de atribuição assim que estiverem disponíveis.
Assinatura
DeviceAttributionCallback? deviceAttributionCallback;
Exemplo de uso
// Set device attribution callback
config.deviceAttributionCallback = (Map attributionData) {
print("Attribution data received: $attributionData");
// Access specific attribution parameters
final campaign = attributionData["campaign"];
final source = attributionData["source"];
final adSet = attributionData["adSet"];
// Update UI or take actions based on attribution data
if (campaign != null) {
showCampaignSpecificContent(campaign);
}
};
didSetSdidCallback
Propriedade SingularConfig.didSetSdidCallback
Funcionalidade empresarial: Define uma função de retorno de chamada a ser chamada quando o SDID (Singular Device ID) é definido. Isto permite-lhe ser notificado quando o SDID personalizado tiver sido definido com êxito.
Assinatura
SdidAccessorCallback? didSetSdidCallback;
Exemplo de utilização
// Set custom SDID
config.customSdid = "custom-device-id-12345";
// Set callback for when SDID is set
config.didSetSdidCallback = (String sdid) {
print("SDID was set: $sdid");
// Perform any actions needed after SDID is set
};
enableLogging
Propriedade SingularConfig.enableLogging
Ativa o registo detalhado para o SDK. Quando ativado, o SDK produzirá logs detalhados que podem ajudar na depuração.
Assinatura
bool enableLogging = false;
Exemplo de uso
// Enable logging for debugging
config.enableLogging = true;
espDomains
Propriedade SingularConfig.espDomains
Define os domínios ESP (Fornecedor de serviços de correio eletrónico) para atribuição de correio eletrónico. Isto permite-lhe especificar quais os domínios de correio eletrónico que devem ser considerados para atribuição.
Assinatura
List espDomains = [];
Exemplo de utilização
// Set ESP domains for email attribution
config.espDomains = [
"mailchimp.com",
"sendgrid.net",
"campaign-monitor.com"
];
facebookAppId
Propriedade SingularConfig.facebookAppId
Define a ID do aplicativo do Facebook para atribuição do Facebook. Isso permite que o SDK atribua instalações e eventos de campanhas do Facebook.
Assinatura
String? facebookAppId;
Exemplo de uso
// Set Facebook App ID for attribution
config.facebookAppId = "123456789012345";
imei
Propriedade SingularConfig.imei
Define o IMEI (International Mobile Equipment Identity) para o dispositivo. Esta propriedade é normalmente utilizada em mercados onde o IMEI é um identificador comum para atribuição.
Assinatura
String? imei;
Exemplo de utilização
// Set IMEI (only if you have proper permission to access it)
config.imei = "123456789012345";
limitDataSharing
Propriedade SingularConfig.limitDataSharing
Define o estado de limitação da partilha de dados durante a inicialização do SDK. Utilize esta propriedade para limitar a partilha de dados com base no consentimento do utilizador ou em requisitos de privacidade.
Assinatura
bool? limitDataSharing;
Exemplo de utilização
// Get user consent status
bool hasUserConsent = getUserConsentStatus();
// Set data sharing limitation based on consent
config.limitDataSharing = !hasUserConsent;
limitedIdentifiersEnabled
Propriedade SingularConfig.limitedIdentifiersEnabled
Ativa ou desactiva a utilização de identificadores limitados. Esta opção afecta a forma como o SDK recolhe e utiliza identificadores de dispositivos para rastreio e atribuição.
Assinatura
bool limitedIdentifiersEnabled = false;
Exemplo de utilização
// Enable limited identifiers mode
config.limitedIdentifiersEnabled = true;
logLevel
SingularConfig.logLevel Propriedade
Define o nível de registo para o SDK. Isto controla a verbosidade dos registos gerados pelo SDK. O valor predefinido é -1 (sem registo). Os valores comuns são: 0 (erro), 1 (aviso), 2 (info), 3 (debug), 4 (verbose).
Assinatura
int logLevel = -1;
Exemplo de utilização
// Set log level to debug
config.logLevel = 3;
manualSkanConversionManagement
Propriedade SingularConfig.manualSkanConversionManagement
Permite a gestão manual dos valores de conversão da SKAdNetwork. Quando activada, o SDK não actualizará automaticamente os valores de conversão, permitindo-lhe controlá-los manualmente.
Assinatura
bool manualSkanConversionManagement = false;
Exemplo de utilização
// Enable manual SKAdNetwork conversion management
config.manualSkanConversionManagement = true;
pushNotificationsLinkPaths
Propriedade SingularConfig.pushNotificationsLinkPaths
Define os caminhos para procurar links profundos em cargas de notificação push. Isso ajuda o SDK a encontrar e processar links de atribuição em notificações push.
Assinatura
List<List<String>> pushNotificationsLinkPaths = [[]];
Exemplo de uso
// Set push notification link paths
config.pushNotificationsLinkPaths = [
["data", "deeplink"],
["notification", "data", "url"],
["custom", "link"]
];
sdidReceivedCallback
Propriedade SingularConfig.sdidReceivedCallback
Caraterística da empresa: Define uma função de retorno de chamada a ser chamada quando o SDID (Singular Device ID) é recebido. Isto permite-lhe aceder ao SDID logo que este esteja disponível.
Assinatura
SdidAccessorCallback? sdidReceivedCallback;
Exemplo de utilização
// Set callback for when SDID is received
config.sdidReceivedCallback = (String sdid) {
print("SDID received: $sdid");
// Store or use the SDID as needed
storeDeviceIdentifier(sdid);
};
sessionTimeout
Propriedade SingularConfig.sessionTimeout
Define o tempo limite da sessão em segundos. Isto determina quanto tempo dura uma sessão de utilizador depois de a aplicação passar para segundo plano. O valor padrão é -1, que usa o tempo limite padrão do SDK (60 segundos).
Assinatura
double sessionTimeout = -1;
Exemplo de utilização
// Set session timeout to 2 minutes
config.sessionTimeout = 120;
shortLinkResolveTimeOut
Propriedade SingularConfig.shortLinkResolveTimeOut
Define o tempo limite em segundos para a resolução de links curtos. Isso determina quanto tempo o SDK aguardará a resolução de um link curto antes de continuar com a inicialização. O valor padrão é 10 segundos.
Assinatura
double shortLinkResolveTimeOut = 10.0;
Exemplo de uso
// Set short link resolve timeout to 15 seconds
config.shortLinkResolveTimeOut = 15.0;
singularLinksHandler
SingularConfig.singularLinksHandler Propriedade
Define uma função de retorno de chamada para lidar com deep links processados pelo Singular. Isso permite que seu aplicativo responda a deep links usados na atribuição.
Assinatura
SingularLinksHandler? singularLinksHandler;
Exemplo de uso
// Set singular links handler
config.singularLinksHandler = (SingularLinkParams params) {
// Check if we have a deep link
if (params.deeplink != null) {
print("Deep link received: ${params.deeplink}");
// Navigate based on the deep link
navigateToScreen(params.deeplink!);
}
// Check if this is a deferred deep link
if (params.isDeferred == true) {
print("This is a deferred deep link");
}
// Access passthrough parameters
if (params.passthrough != null) {
print("Passthrough data: ${params.passthrough}");
}
// Access all URL parameters from the OpenURL/Deeplink. Does not work with Deferred Deep Links.
if (params.urlParameters != null) {
print("URL parameters: ${params.urlParameters}");
}
};
skAdNetworkEnabled
Propriedade SingularConfig.skAdNetworkEnabled
Habilita ou desabilita o suporte a SKAdNetwork. Isto é específico do iOS e controla se o SDK irá utilizar a SKAdNetwork da Apple para atribuição. O valor predefinido é true.
Assinatura
bool skAdNetworkEnabled = true;
Exemplo de utilização
// Disable SKAdNetwork support if needed
config.skAdNetworkEnabled = false;
waitForTrackingAuthorizationWithTimeoutInterval
Propriedade SingularConfig.waitForTrackingAuthorizationWithTimeoutInterval
Define o intervalo de tempo limite em segundos para aguardar a resposta de autorização de rastreamento do usuário no iOS 14+. Isso determina quanto tempo o SDK aguardará a resposta do prompt ATT antes de continuar com a inicialização. O valor padrão é 0, o que significa que o SDK não aguardará a resposta do prompt ATT.
Assinatura
int waitForTrackingAuthorizationWithTimeoutInterval = 0;
Exemplo de utilização
// Wait up to 5 seconds for ATT prompt response
config.waitForTrackingAuthorizationWithTimeoutInterval = 5;
withGlobalProperty
Método SingularConfig.withGlobalProperty
Define uma propriedade global durante a inicialização do SDK. Esta propriedade será enviada com todos os eventos monitorizados pelo SDK. Este é um método em vez de uma propriedade, permitindo a configuração encadeada.
Assinatura
void withGlobalProperty(String key, String value, bool overrideExisting)
Exemplo de uso
// Add global properties
config.withGlobalProperty("app_version", "1.2.3", true);
config.withGlobalProperty("user_type", "free", true);
Exemplo de configuração completa
Configuração abrangente do SDK
O exemplo a seguir demonstra como criar uma configuração abrangente definindo várias propriedades e métodos de configuração juntos.
Exemplo completo
SingularConfig config = new SingularConfig('SDK KEY', 'SDK SECRET');
config.waitForTrackingAuthorizationWithTimeoutInterval = 60;
config.customUserId = "user_123456"; // Set a custom user ID for tracking
config.withGlobalProperty("key1", "value1", true);
config.limitDataSharing = false; // Allow data sharing (set to true for compliance if needed)
config.facebookAppId = "123456789012345"; // Optional: For Facebook integration
config.singularLinksHandler = (SingularLinkParams params) {
print('Received deferred deeplink: ');
deeplinkParams['deeplink'] = params.deeplink;
deeplinkParams['passthrough'] = params.passthrough;
deeplinkParams['isDeferred'] = params.isDeferred;
};
Singular.start(config);