SDK do Flutter - Referência de métodos de configuração

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.


brandedDomains

Propriedade SingularConfig.brandedDomains

Domínios de link personalizados que o SDK deve tratar como Singular Links. Adicione todos os domínios de marca usados em tracking links; sem isso, apenas os domínios sng.link registrados na página Manage Links são reconhecidos. O padrão é uma lista vazia.

Assinatura

List<String> brandedDomains

Exemplo de uso

Dart
import 'package:singular_flutter_sdk/singular_config.dart';

SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.brandedDomains = ['go.yourcompany.com', 'promo.yourcompany.com'];

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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
import 'package:singular_flutter_sdk/singular_config.dart';

SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.customUserId = 'user_12345';

deviceAttributionCallback

Recurso BETA - Define uma função de callback que será chamada quando os dados de atribuição do dispositivo estiverem disponíveis.

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.

Apenas os campos que têm valor são incluídos, então verifique se a chave existe antes de lê-la. A maioria das instalações retorna um subconjunto: os campos presentes dependem do touchpoint que o Singular correspondeu.

Chave Tipo Notas
network String Sempre presente quando o callback é executado. "Organic" quando nenhum touchpoint foi correspondido.
campaign_id String Presente quando o touchpoint o fornece.
campaign_name String Presente quando o touchpoint o fornece.
subcampaign_id String Presente quando o touchpoint o fornece. Não está disponível em todas as fontes.
subcampaign_name String Presente quando o touchpoint o fornece. Não está disponível em todas as fontes.
creative_id String Presente quando o touchpoint o fornece. Não está disponível em todas as fontes.
creative_name String Presente quando o touchpoint o fornece. Não está disponível em todas as fontes.
passthrough String Presente quando valores de passthrough estavam anexados ao link.
match_type String Presente quando o touchpoint o fornece. Fale com o Singular se precisar do conjunto de valores.
click_timestamp int Presente quando o touchpoint o fornece. Microssegundos epoch — divida por 1.000.000 para obter segundos.

Assinatura

DeviceAttributionCallback? deviceAttributionCallback

Exemplo de uso

Dart
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

Dart
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

Dart
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

Dart
import 'package:singular_flutter_sdk/singular_config.dart';

SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.enableOdmWithTimeoutInterval = 5; // 5 seconds timeout

espDomains

Propriedade SingularConfig.espDomains

Domínios de um provedor de e-mail (ESP) que encapsula seus Singular Links. Quando um link chega em um desses domínios, o SDK segue o redirecionamento para recuperar o Singular Link original, de modo que o clique continua sendo atribuído. O padrão é uma lista vazia.

Assinatura

List<String> espDomains

Exemplo de uso

Dart
import 'package:singular_flutter_sdk/singular_config.dart';

SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.espDomains = ['sl.esp.link', 'links.youresp.com'];

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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
import 'package:singular_flutter_sdk/singular_config.dart';

SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.manualSkanConversionManagement = true;

pushNotificationsLinkPaths

Propriedade SingularConfig.pushNotificationsLinkPaths

Onde encontrar o Singular Link dentro dos payloads das suas notificações push. Cada entrada é uma lista de chaves que forma um caminho pelo payload, então adicione uma entrada para cada formato de payload que o app recebe. O padrão é [[]].

Assinatura

List<List<String>> pushNotificationsLinkPaths

Exemplo de uso

Dart
import 'package:singular_flutter_sdk/singular_config.dart';

SingularConfig config = SingularConfig('API_KEY', 'SECRET_KEY');
config.pushNotificationsLinkPaths = [
  ['sng_link'],                             // Top-level key
  ['data', 'url'],                          // Nested path
  ['rootObj', 'nestedObj', 'singularLink'], // Deep nested path
];

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

Dart
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

Dart
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

Dart
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

Dart
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

Dart
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

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

Dart
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'),
        ),
      ),
    );
  }
}