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

Documento

SDK do React Native - Referência de Configuração

Este documento fornece uma referência abrangente para todas as opções de configuração disponíveis no Singular SDK para aplicativos React Native. 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.

apikey

Propriedade SingularConfig.apikey

Sua chave de API Singular. Esta é uma propriedade obrigatória que deve ser definida durante a inicialização da configuração.

Assinatura

apikey: string

Exemplo de uso

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';

const config: SingularConfig = {apikey: 'YOUR_API_KEY', secret: 'YOUR_SECRET'}

brandedDomains

Propriedade SingularConfig.brandedDomains

Define os domínios de marca para atribuição web-to-app. Isto permite-lhe especificar domínios personalizados que devem ser controlados para efeitos de atribuição.

Assinatura

brandedDomains: Array<string>

Exemplo de utilização

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';

const config: SingularConfig = {
  apikey: 'YOUR_API_KEY',
  secret: 'YOUR_SECRET',
  brandedDomains: ['yourcompany.com', 'go.yourcompany.com']
};

clipboardAttribution

Propriedade SingularConfig.clipboardAttribution

Ativa a atribuição da área de transferência para iOS. Quando ativado, o SDK verifica se existem dados de atribuição na área de transferência. Isto é ativado utilizando o método withClipboardAttribution().

Assinatura

clipboardAttribution: boolean

Exemplo de utilização

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';

const config: SingularConfig = {
  apikey: 'API_KEY',
  secret: 'SECRET',
  clipboardAttribution: true // This property enables clipboard attribution
};

collectOAID

Propriedade SingularConfig.collectOAID

Ativa a recolha de OAID (Open Anonymous Device Identifier) para o Android. É utilizada principalmente para o rastreio na China, onde o Google Play Services não está disponível. O valor predefinido é false.

Assinatura

collectOAID: boolean

Exemplo de utilização

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';

const config: SingularConfig = {
  apikey: 'API_KEY',
  secret: 'SECRET',
  oaidCollection: true // Enables OAID Collection
};

conversionValueUpdatedHandler

Propriedade SingularConfig.conversionValueUpdatedHandler

Define um manipulador de retorno de chamada que é invocado quando o valor de conversão SKAdNetwork é atualizado. Isto é útil para acompanhar as alterações do valor de conversão no iOS.

Assinatura

conversionValueUpdatedHandler: (conversionValue: number) => void

Exemplo de utilização

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
import { NativeEventEmitter } from 'react-native';

const emitter = new NativeEventEmitter(NativeSingular);

emitter.addListener("ConversionValueUpdatedHandler", (conversionValue) => {
  console.log('conversion value updated to:', conversionValue);
});

conversionValuesUpdatedHandler

Propriedade SingularConfig.conversionValuesUpdatedHandler

Define um manipulador de chamada de retorno que é invocado quando os valores de conversão da SKAdNetwork 4.0 são actualizados. Esta chamada de retorno recebe o valor fino, o valor grosso e o estado do bloqueio para iOS 16.1+.

Assinatura

conversionValuesUpdatedHandler: (updatedValues: Record<string, any>) => void

Exemplo de utilização

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
import { NativeEventEmitter } from 'react-native';

const emitter = new NativeEventEmitter(NativeSingular);

emitter.addListener("ConversionValuesUpdatedHandler", (values) => {
  console.log('Conversion values updated:', values);
});

customSdid

Funcionalidade empresarial - Contacte o seu Gestor de Sucesso do Cliente para ativar esta funcionalidade para a sua conta.

Propriedade SingularConfig.customSdid

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 pela Singular.

Assinatura

customSdid: string

Exemplo de uso

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
import { NativeEventEmitter } from 'react-native';

const config: SingularConfig = {
  apikey: 'API_KEY',
  secret: 'SECRET',
  customSdid: 'custom-device-id-12345'
};

const emitter = new NativeEventEmitter(NativeSingular);

emitter.addListener('DidSetSdidCallback', (result) => {
  console.log('SDID was set:', result);
});

emitter.addListener('SdidReceivedCallback', (result) => {
  console.log('SDID received:', result);
});

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

customUserId: string

Exemplo de uso

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';

const config: SingularConfig = {
  apikey: 'API_KEY',
  secret: 'SECRET',
  customUserId: 'user123456'
};

deviceAttributionCallbackHandler

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

Propriedade SingularConfig.deviceAttributionCallbackHandler

Define um manipulador de retorno de chamada que é invocado quando os dados de atribuição do dispositivo estão disponíveis. Isto permite-lhe aceder aos dados de atribuição assim que são resolvidos.

Assinatura

deviceAttributionCallbackHandler: (attributes: Record<string, any>) => void

Exemplo de uso

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
import { NativeEventEmitter } from 'react-native';

const config: SingularConfig = {
  apikey: 'API_KEY',
  secret: 'SECRET'
};

const emitter = new NativeEventEmitter(NativeSingular);

emitter.addListener('DeviceAttributionCallbackHandler', (attributes) => {
  console.log('Attribution data received:', attributes);
  const campaign = attributes.campaign;
  const source = attributes.source;
});

didSetSdidCallback

Funcionalidade empresarial - Callback que é invocado quando um SDID personalizado é definido.

Propriedade SingularConfig.didSetSdidCallback

Define uma função de chamada de retorno a invocar quando o SDID personalizado é definido. É utilizada em conjunto com a propriedade customSdid.

Assinatura

didSetSdidCallback: (result: string) => void

Exemplo de utilização

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
import { NativeEventEmitter } from 'react-native';

const config: SingularConfig = {
  apikey: 'API_KEY',
  secret: 'SECRET',
  customSdid: 'custom-device-id'
};

const emitter = new NativeEventEmitter(NativeSingular);

emitter.addListener('DidSetSdidCallback', (result) => {
  console.log('SDID was set:', result);
});

emitter.addListener('SdidReceivedCallback', (result) => {
  console.log('SDID received:', result);
});

enableLogging

Propriedade SingularConfig.enableLogging

Ativa o registo do SDK para fins de depuração. Isso é útil durante o desenvolvimento e a solução de problemas. Recomenda-se desativar o registo em compilações de produção. O valor padrão é false.

Assinatura

enableLogging: boolean

Exemplo de utilização

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';

const config: SingularConfig = {
  apikey: 'API_KEY',
  secret: 'SECRET',
  loggingEnabled: true
};

espDomínios

Propriedade SingularConfig.espDomains

Define os domínios ESP (Email Service Provider) para atribuição de correio eletrónico. Isto permite-lhe especificar quais os domínios de correio eletrónico que devem ser considerados para o rastreio de atribuição.

Assinatura

espDomains: Array<string>

Exemplo de utilização

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';

const config: SingularConfig = {
  apikey: 'API_KEY',
  secret: 'SECRET',
  espDomains: ['mailchimp.com', 'sendgrid.net', 'campaign-monitor.com']
};

facebookAppId

Propriedade SingularConfig.facebookAppId

Define a ID do aplicativo do Facebook para integração de atribuição do Facebook. Isso permite que o SDK rastreie a atribuição de campanhas do Facebook.

Assinatura

facebookAppId: string

Exemplo de uso

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';

const config: SingularConfig = {
  apikey: 'API_KEY',
  secret: 'SECRET',
  facebookAppId: 'YOUR_FACEBOOK_APP_ID'
};

globalProperties

Propriedade SingularConfig.globalProperties

Define as propriedades globais durante a inicialização do SDK. Estas propriedades serão enviadas com todos os eventos monitorizados pelo SDK.

Assinatura

globalProperties: Record<string, { Key: string; Value: any; OverrideExisting: boolean }>

Exemplo de utilização

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';

const config: SingularConfig = {
  apikey: 'API_KEY',
  secret: 'SECRET',
  globalProperties: {
    prop1: {
      Key: "app_version",
      Value: "1.2.3",
      OverrideExisting: true
    },
    prop2: {
      Key: "user_type",
      Value: "free",
      OverrideExisting: true
    }
  }
};

limitAdvertisingIdentifiers

Propriedade SingularConfig.limitAdvertisingIdentifiers

Esta opção afecta a forma como o SDK recolhe e utiliza identificadores de dispositivos para rastreio. O valor padrão é false.

Assinatura

limitAdvertisingIdentifiers: boolean

Exemplo de utilização

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';

const config: SingularConfig = {
  apikey: 'API_KEY',
  secret: 'SECRET',
  limitAdvertisingIdentifiers: true
};

limitDataSharing

Propriedade SingularConfig.limitDataSharing

Define o estado de limitação da partilha de dados na inicialização. Utilize esta propriedade para limitar a partilha de dados com base no consentimento do utilizador ou em requisitos de privacidade. O valor predefinido é nulo.

Assinatura

limitDataSharing: boolean | null

Exemplo de utilização

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';

const config: SingularConfig = {
  apikey: 'API_KEY',
  secret: 'SECRET',
  limitDataSharing: true
};

manualSkanConversionManagement

Propriedade SingularConfig.manualSkanConversionManagement

Ativa a gestão manual dos valores de conversão SKAdNetwork. Quando activada, o utilizador é responsável pela atualização manual dos valores de conversão. O valor predefinido é false.

Assinatura

manualSkanConversionManagement: boolean

Exemplo de utilização

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';

const config: SingularConfig = {
  apikey: 'API_KEY',
  secret: 'SECRET',
  manualSkanConversionManagement: true
};

pushNotificationsLinkPaths

Propriedade SingularConfig.pushNotificationsLinkPaths

Configura caminhos personalizados para extrair links profundos de cargas de notificação push. Isto permite-lhe especificar em que parte da carga útil da notificação se encontra o deep link.

Assinatura

pushNotificationsLinkPaths: Array<Array<string>>

Exemplo de uso

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';

const config: SingularConfig = {
  apikey: 'API_KEY',
  secret: 'SECRET',
  pushNotificationsLinkPaths: [
    ['data', 'deeplink'],
    ['notification', 'data', 'url'],
    ['custom', 'link']
  ]
};

sdidReceivedCallback

Caraterística da empresa - Callback que é invocado quando o SDID é recebido.

Propriedade SingularConfig.sdidReceivedCallback

Define uma função de chamada de retorno a invocar quando o SDID é recebido do servidor. Esta propriedade é utilizada em conjunto com a propriedade customSdid.

Assinatura

sdidReceivedCallback: (result: string) => void

Exemplo de utilização

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
import { NativeEventEmitter } from 'react-native';

const config: SingularConfig = {
  apikey: 'API_KEY',
  secret: 'SECRET',
  customSdid: 'custom-device-id'
};

const emitter = new NativeEventEmitter(NativeSingular);

emitter.addListener('DidSetSdidCallback', (result) => {
  console.log('SDID set:', result);
});

emitter.addListener('SdidReceivedCallback', (result) => {
  console.log('SDID received:', result);
});

secret

Propriedade SingularConfig.secret

Seu segredo do Singular SDK. Esta é uma propriedade obrigatória que deve ser definida durante a inicialização da configuração.

Assinatura

secret: string

Exemplo de uso

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
import { NativeEventEmitter } from 'react-native';

const config: SingularConfig = {
  apikey: 'API_KEY',
  secret: 'SECRET'
};

sessionTimeout

Propriedade SingularConfig.sessionTimeout

Define o tempo limite da sessão em segundos. Determina o tempo de duração de uma sessão de utilizador depois de a aplicação passar para segundo plano. O valor padrão é -1 (usa o tempo limite padrão de 60 segundos).

Assinatura

sessionTimeout: number

Exemplo de utilização

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
import { NativeEventEmitter } from 'react-native';

const config: SingularConfig = {
  apikey: 'API_KEY',
  secret: 'SECRET',
  sessionTimeoutInSec: 120 // 2 minutes
};

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. O valor padrão é 10 segundos.

Assinatura

shortLinkResolveTimeout: number

Exemplo de uso

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
import { NativeEventEmitter } from 'react-native';

const config: SingularConfig = {
  apikey: 'API_KEY',
  secret: 'SECRET',
  shortLinkResolveTimeout: 15
};

singularLinkHandler

Propriedade SingularConfig.singularLinkHandler

Define um manipulador de retorno de chamada para Singular Links (links profundos). Esta chamada de retorno é invocada quando um deep link é resolvido, permitindo-lhe tratar os dados do deep link na sua aplicação.

Assinatura

singularLinkHandler: (params: Record<string, any>) => void

Exemplo de utilização

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
import { NativeEventEmitter } from 'react-native';

const config: SingularConfig = {
  apikey: 'API_KEY',
  secret: 'SECRET',
  // No singularLink callback in config for TurboModule!
};

const emitter = new NativeEventEmitter(NativeSingular);

emitter.addListener('SingularLinkHandler', (params) => {
  if (params.deeplink) {
    console.log('Deep link received:', params.deeplink);
    // Navigate to the appropriate screen
  }
  if (params.passthrough) {
    console.log('Passthrough data:', params.passthrough);
  }
});

skAdNetworkEnabled

Propriedade SingularConfig.skAdNetworkEnabled

Ativa ou desactiva a atribuição de SKAdNetwork no iOS. Quando ativado, o SDK tratará automaticamente da atribuição de SKAdNetwork. O valor predefinido é true.

Assinatura

skAdNetworkEnabled: boolean

Exemplo de utilização

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';

const config: SingularConfig = {
  apikey: 'API_KEY',
  secret: 'SECRET',
  skAdNetworkEnabled: true
};

waitForTrackingAuthorizationWithTimeoutInterval

Propriedade SingularConfig.waitForTrackingAuthorizationWithTimeoutInterval

Define um intervalo de tempo limite para aguardar a autorização ATT (App Tracking Transparency) no iOS. O SDK aguardará até este número de segundos para que o utilizador responda à solicitação ATT antes de continuar. O valor padrão é 0 (sem espera).

Assinatura

waitForTrackingAuthorizationWithTimeoutInterval: number

Exemplo de utilização

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';

const config: SingularConfig = {
  apikey: 'API_KEY',
  secret: 'SECRET',
  waitForTrackingAuthorizationWithTimeoutInterval: 300
};

Exemplo de configuração completa

Configuração completa do SDK

O exemplo a seguir demonstra como criar uma configuração abrangente encadeando vários métodos de configuração.

Exemplo completo

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
import { NativeEventEmitter } from 'react-native';

// Create comprehensive configuration
const config: SingularConfig = {
  apikey: 'YOUR_API_KEY',
  secret: 'YOUR_SECRET',

  // Basic options
  sessionTimeoutInSec: 120,
  loggingEnabled: true,

  // User identification
  customUserId: 'user123456',

  // Global properties
  globalProperties: {
    app_version: {
      Key: 'app_version',
      Value: '1.2.3',
      OverrideExisting: true
    },
    user_type: {
      Key: 'user_type',
      Value: 'premium',
      OverrideExisting: true
    }
  },

  // Privacy settings
  limitDataSharing: false,

  // Email attribution
  espDomains: ['mailchimp.com', 'sendgrid.net'],

  // Facebook integration
  facebookAppId: 'YOUR_FACEBOOK_APP_ID',

  // SKAdNetwork (iOS)
  skAdNetworkEnabled: true,
  waitForTrackingAuthorizationWithTimeoutInterval: 300,

  // Push notifications
  pushNotificationsLinkPaths: [
    ['data', 'deeplink'],
    ['notification', 'data', 'url']
  ],

  // Branded domains
  brandedDomains: ['yourcompany.com', 'go.yourcompany.com'],
};

// Initialize the SDK
NativeSingular.init(config);

// Use event emitter for all callbacks/handlers
const emitter = new NativeEventEmitter(NativeSingular);

// Singular Link (deep links)
emitter.addListener('SingularLinkHandler', (params) => {
  if (params.deeplink) {
    console.log('Deep link:', params.deeplink);
    // Handle deep link navigation
  }
  if (params.passthrough) {
    console.log('Passthrough data:', params.passthrough);
  }
});

// Attribution callback
emitter.addListener('DeviceAttributionCallbackHandler', (attributionData) => {
  console.log('Attribution:', attributionData);
});

// SDID callbacks (if needed)
emitter.addListener('DidSetSdidCallback', (result) => {
  console.log('SDID set:', result);
});
emitter.addListener('SdidReceivedCallback', (result) => {
  console.log('SDID received:', result);
});