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/jsNativeSingular';
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/jsNativeSingular';
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/jsNativeSingular';
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/jsNativeSingular';
const config: SingularConfig = {
apikey: 'API_KEY',
secret: 'SECRET',
oaidCollection: 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/jsNativeSingular';
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/jsNativeSingular';
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
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
// 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);
});
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/jsNativeSingular';
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');
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
// 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;
});
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
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
// 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);
});
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.
Assinatura
enableLogging: boolean
Exemplo de utilização
// 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
};
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withLoggingEnabled();
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
// 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']
};
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/jsNativeSingular';
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/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
}
}
};
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/jsNativeSingular';
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/jsNativeSingular';
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);
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/jsNativeSingular';
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/jsNativeSingular';
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
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
// 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);
});
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/jsNativeSingular';
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/jsNativeSingular';
import { NativeEventEmitter } from 'react-native';
const config: SingularConfig = {
apikey: 'API_KEY',
secret: 'SECRET',
sessionTimeoutInSec: 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/jsNativeSingular';
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/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);
}
});
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/jsNativeSingular';
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);
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/jsNativeSingular';
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/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);
});
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);