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
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
const config: SingularConfig = {apikey: 'YOUR_API_KEY', secret: 'YOUR_SECRET'}
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('YOUR_API_KEY', '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
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
const config: SingularConfig = {
apikey: 'YOUR_API_KEY',
secret: 'YOUR_SECRET',
brandedDomains: ['yourcompany.com', 'go.yourcompany.com']
};
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET');
config.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
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
const config: SingularConfig = {
apikey: 'API_KEY',
secret: 'SECRET',
clipboardAttribution: true // This property enables clipboard attribution
};
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withClipboardAttribution();
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
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
const config: SingularConfig = {
apikey: 'API_KEY',
secret: 'SECRET',
collectOAID: true // Enables OAID Collection
};
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withOAIDCollection();
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
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import { NativeEventEmitter } from 'react-native';
const emitter = new NativeEventEmitter(NativeSingular);
emitter.addListener("ConversionValueUpdatedHandler", (conversionValue) => {
console.log('conversion value updated to:', conversionValue);
});
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withConversionValueUpdatedHandler((conversionValue) => {
console.log('Conversion value updated:', 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
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import { NativeEventEmitter } from 'react-native';
const emitter = new NativeEventEmitter(NativeSingular);
emitter.addListener("ConversionValuesUpdatedHandler", (values) => {
console.log('Conversion values updated:', values);
});
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withConversionValuesUpdatedHandler((values) => {
console.log('Conversion values updated:', values);
});
customSdid
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
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
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);
});
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withCustomSdid(
'custom-device-id-12345',
(sdid) => {
console.log('SDID was set:', sdid);
},
(sdid) => {
console.log('SDID received:', sdid);
}
);
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
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
const config: SingularConfig = {
apikey: 'API_KEY',
secret: 'SECRET',
customUserId: 'user123456'
};
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withCustomUserId('user123456');
ddlTimeoutSec
Propriedade SingularConfig.ddlTimeoutSec
Define por quanto tempo após uma instalação nova o Singular ainda resolverá um deep link diferido e chamará o seu singularLinkHandler. O padrão é 60 segundos. Aumente esse valor se o seu fluxo de onboarding fizer os usuários chegarem tarde à tela do deep link; reduza-o se preferir descartar um link diferido desatualizado em vez de roteá-lo.
Somente Android. No iOS, withDDLTimeoutInSec() registra uma mensagem e deixa a configuração inalterada. O equivalente no iOS é o método de runtime Singular.setDeferredDeepLinkTimeout(). Um valor igual ou menor que 0 é ignorado e o padrão de 60 segundos é mantido.
Assinatura
ddlTimeoutSec: number
Exemplo de utilização
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
const config: SingularConfig = {
apikey: 'API_KEY',
secret: 'SECRET',
ddlTimeoutSec: 120 // seconds
};
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withDDLTimeoutInSec(120);
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.
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 |
number | Presente quando o touchpoint o fornece. Microssegundos epoch — divida por 1.000.000 para obter segundos. |
Assinatura
deviceAttributionCallbackHandler: (attributes: Record<string, any>) => void
Exemplo de uso
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
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;
});
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withDeviceAttributionCallbackHandler((attributes) => {
console.log('Attribution data received:', attributes);
const campaign = attributes.campaign;
const source = attributes.source;
});
didSetSdidCallback
- 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
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
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);
});
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withCustomSdid(
'custom-device-id',
(result) => {
console.log('SDID was set:', result);
},
(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.
Plataforma: Android e iOS. O suporte a iOS foi adicionado no SDK do React Native 4.3.0; as versões anteriores ignoravam esta propriedade no iOS. Combine-a com o logLevel para controlar o nível de detalhe.
Assinatura
enableLogging: boolean
Exemplo de utilização
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
const config: SingularConfig = {
apikey: 'API_KEY',
secret: 'SECRET',
enableLogging: true
};
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withLoggingEnabled();
enableOdmWithTimeoutInterval
Propriedade SingularConfig.enableOdmWithTimeoutInterval
Habilita o On-Device Measurement (ODM) do Google e define quantos segundos o SDK aguardará pelo token de atribuição do Google antes de enviar a primeira sessão. O padrão é -1, que desativa o ODM. É obrigatório para o Google Ads iOS Integrated Conversion Measurement (ICM).
Somente iOS, e atrasa a primeira sessão. O SDK bloqueia a sessão até que o Google retorne um token de atribuição ou o intervalo se esgote, então os callbacks de deep link são adiados em até esse número de segundos. O ODM também exige o SDK de ODM do Google, a flag de linkagem -ObjC e o SDK do React Native v3.9.0 ou posterior. Configure-o na integração inicial, em vez de adicioná-lo depois.
Assinatura
enableOdmWithTimeoutInterval: number
Exemplo de utilização
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
const config: SingularConfig = {
apikey: 'API_KEY',
secret: 'SECRET',
enableOdmWithTimeoutInterval: 10 // seconds
};
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withEnableOdmWithTimeoutInterval(10);
espDomains
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
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
const config: SingularConfig = {
apikey: 'API_KEY',
secret: 'SECRET',
espDomains: ['mailchimp.com', 'sendgrid.net', 'campaign-monitor.com']
};
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withEspDomains(['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
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
const config: SingularConfig = {
apikey: 'API_KEY',
secret: 'SECRET',
facebookAppId: 'YOUR_FACEBOOK_APP_ID'
};
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withFacebookAppId('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
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
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
}
}
};
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withGlobalProperty('app_version', '1.2.3', true)
.withGlobalProperty('user_type', 'premium', 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
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
const config: SingularConfig = {
apikey: 'API_KEY',
secret: 'SECRET',
limitAdvertisingIdentifiers: true
};
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withLimitAdvertisingIdentifiers(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
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
const config: SingularConfig = {
apikey: 'API_KEY',
secret: 'SECRET',
limitDataSharing: true
};
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withLimitDataSharing(true);
logLevel
Propriedade SingularConfig.logLevel
Define o nível de detalhe da saída de log do SDK. Só tem efeito quando enableLogging é true. Os valores são as constantes padrão do Android android.util.Log, em que um número menor é mais detalhado: 2 VERBOSE, 3 DEBUG, 4 INFO, 5 WARN, 6 ERROR, 7 ASSERT. O padrão é 6 (ERROR).
Suporte a iOS adicionado na 4.3.0. As versões anteriores ignoravam tanto o logLevel como o enableLogging no iOS. A partir da 4.3.0, o bridge de iOS mapeia o valor no estilo Android para o nível de log nativo do iOS: 2 Verbose, 3 Debug, 4 Info, 5 Warning, 6 Error, e 7 desativa o registo. Qualquer outro valor, incluindo um negativo, volta para Error.
Observe a diferença no topo do intervalo: no Android, 7 é ASSERT, enquanto no iOS desativa o registo por completo.
Assinatura
logLevel: number
Exemplo de utilização
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
const config: SingularConfig = {
apikey: 'API_KEY',
secret: 'SECRET',
enableLogging: true,
logLevel: 3 // DEBUG
};
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withLoggingEnabled()
.withLogLevel(3); // DEBUG
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
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
const config: SingularConfig = {
apikey: 'API_KEY',
secret: 'SECRET',
manualSkanConversionManagement: true
};
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withManualSkanConversionManagement();
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
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
const config: SingularConfig = {
apikey: 'API_KEY',
secret: 'SECRET',
pushNotificationsLinkPaths: [
['data', 'deeplink'],
['notification', 'data', 'url'],
['custom', 'link']
]
};
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withPushNotificationsLinkPaths([
['data', 'deeplink'],
['notification', 'data', 'url'],
['custom', 'link']
]);
sdidReceivedCallback
- 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
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
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);
});
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withCustomSdid(
'custom-device-id',
(result) => { console.log('SDID set:', result); },
(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
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
import { NativeEventEmitter } from 'react-native';
const config: SingularConfig = {
apikey: 'API_KEY',
secret: 'SECRET'
};
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('YOUR_API_KEY', 'YOUR_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
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
import { NativeEventEmitter } from 'react-native';
const config: SingularConfig = {
apikey: 'API_KEY',
secret: 'SECRET',
sessionTimeout: 120 // 2 minutes
};
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withSessionTimeoutInSec(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
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
import { NativeEventEmitter } from 'react-native';
const config: SingularConfig = {
apikey: 'API_KEY',
secret: 'SECRET',
shortLinkResolveTimeout: 15
};
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withShortLinkResolveTimeout(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
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
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);
}
});
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withSingularLink((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
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
const config: SingularConfig = {
apikey: 'API_KEY',
secret: 'SECRET',
skAdNetworkEnabled: true
};
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withSkAdNetworkEnabled(true);
userDetails
Propriedade SingularConfig.userDetails
Anexa um endereço de e-mail e/ou número de telefone hasheados à primeira sessão que o SDK envia. Atribua um objeto SingularUserDetails ou defina-o com o builder withUserDetails(). O SDK normaliza e aplica hash SHA-256 aos valores em texto simples no dispositivo, pelo que o endereço de e-mail e o número de telefone originais nunca são transmitidos. Definindo um ID de usuário e User Details hasheados
Disponibilidade: Versão 4.3.0 e superiores do SDK do React Native.
Assinatura
userDetails: SingularUserDetails
Exemplo de utilização
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
const config: SingularConfig = {
apikey: 'API_KEY',
secret: 'SECRET',
userDetails: {
email: 'user@example.com',
phoneNumber: '+15551234567'
}
};import { SingularConfig, SingularUserDetails } from 'singular-react-native';
const userDetails = new SingularUserDetails()
.setEmail('user@example.com')
.setPhoneNumber('+15551234567');
const config = new SingularConfig('API_KEY', 'SECRET')
.withUserDetails(userDetails);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
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
const config: SingularConfig = {
apikey: 'API_KEY',
secret: 'SECRET',
waitForTrackingAuthorizationWithTimeoutInterval: 300
};
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withWaitForTrackingAuthorizationWithTimeoutInterval(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
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
import { NativeEventEmitter } from 'react-native';
// Create comprehensive configuration
const config: SingularConfig = {
apikey: 'YOUR_API_KEY',
secret: 'YOUR_SECRET',
// Basic options
sessionTimeout: 120,
enableLogging: 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);
});
import { Singular, SingularConfig } from 'singular-react-native';
// Create comprehensive configuration
const config = new SingularConfig('YOUR_API_KEY', 'YOUR_SECRET')
// Basic options
.withSessionTimeoutInSec(120)
.withLoggingEnabled()
// User identification
.withCustomUserId('user123456')
// Global properties
.withGlobalProperty('app_version', '1.2.3', true)
.withGlobalProperty('user_type', 'premium', true)
// Deep links
.withSingularLink((params) => {
if (params.deeplink) {
console.log('Deep link:', params.deeplink);
// Handle deep link navigation
}
})
.withShortLinkResolveTimeout(10)
// Attribution callback
.withDeviceAttributionCallbackHandler((attributionData) => {
console.log('Attribution:', attributionData);
})
// Privacy settings
.withLimitDataSharing(false)
// Email attribution
.withEspDomains(['mailchimp.com', 'sendgrid.net'])
// Facebook integration
.withFacebookAppId('YOUR_FACEBOOK_APP_ID')
// SKAdNetwork (iOS)
.withSkAdNetworkEnabled(true)
.withWaitForTrackingAuthorizationWithTimeoutInterval(30)
// Push notifications
.withPushNotificationsLinkPaths([
['data', 'deeplink'],
['notification', 'data', 'url']
])
// Branded domains
.withBrandedDomains(['yourcompany.com', 'go.yourcompany.com']);
// Initialize the SDK
Singular.init(config);