SDK de React Native - Referencia de configuración
Este documento proporciona una referencia completa de todas las opciones de configuración disponibles en el SDK Singular para aplicaciones React Native. El objeto SingularConfig permite personalizar el comportamiento del SDK, incluidos los ajustes de seguimiento, las opciones de atribución, los controles de privacidad y mucho más. Cada propiedad de configuración se presenta con una descripción, firma y ejemplos prácticos de uso.
apikey
Propiedad SingularConfig.apikey
Su clave de API de Singular. Se trata de una propiedad obligatoria que debe establecerse durante la inicialización de la configuración.
Firma
apikey: string
Ejemplo 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
Propiedad SingularConfig.brandedDomains
Establece los dominios de marca para la atribución de web a aplicación. Permite especificar dominios personalizados que deben rastrearse a efectos de atribución.
Firma
brandedDomains: Array<string>
Ejemplo 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',
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
Propiedad SingularConfig.clipboardAttribution
Activa la atribución de portapapeles para iOS. Cuando está activada, el SDK comprueba si hay datos de atribución en el portapapeles. Se activa mediante el método withClipboardAttribution().
Firma
clipboardAttribution: boolean
Ejemplo 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',
clipboardAttribution: true // This property enables clipboard attribution
};
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withClipboardAttribution();
collectOAID
Propiedad SingularConfig.collectOAID
Habilita la recopilación de OAID (Open Anonymous Device Identifier) para Android. Esto se utiliza principalmente para el seguimiento en China, donde Google Play Services no está disponible. El valor predeterminado es false.
Firma
collectOAID: boolean
Ejemplo 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',
collectOAID: true // Enables OAID Collection
};
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withOAIDCollection();
conversionValueUpdatedHandler
Propiedad SingularConfig.conversionValueUpdatedHandler
Establece un controlador de devolución de llamada que se invoca cuando se actualiza el valor de conversión de SKAdNetwork. Esto es útil para realizar un seguimiento de los cambios del valor de conversión en iOS.
Firma
conversionValueUpdatedHandler: (conversionValue: number) => void
Ejemplo de uso
// 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
Propiedad SingularConfig.conversionValuesUpdatedHandler
Establece un controlador de devolución de llamada que se invoca cuando se actualizan los valores de conversión de SKAdNetwork 4.0. Esta devolución de llamada recibe el valor fino, el valor grueso y el estado de bloqueo para iOS 16.1+.
Firma
conversionValuesUpdatedHandler: (updatedValues: Record<string, any>) => void
Ejemplo de uso
// 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
Propiedad SingularConfig.customSdid
Establece un SDID (identificador de dispositivo de Singular) personalizado. Esto le permite proporcionar su propio identificador de dispositivo en lugar de utilizar el generado por Singular.
Firma
customSdid: string
Ejemplo 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
Propiedad SingularConfig.customUserId
Establece un identificador de usuario personalizado durante la inicialización del SDK. Esto le permite asociar los datos de Singular con su propio sistema de identificación de usuarios desde el principio.
Firma
customUserId: string
Ejemplo 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
Propiedad SingularConfig.ddlTimeoutSec
Define durante cuánto tiempo después de una instalación nueva Singular seguirá resolviendo un deep link diferido e invocando tu singularLinkHandler. El valor predeterminado es 60 segundos. Auméntalo si tu flujo de onboarding hace que los usuarios lleguen tarde a la pantalla del deep link; redúcelo si prefieres descartar un link diferido obsoleto en lugar de enrutar con él.
Solo Android. En iOS, withDDLTimeoutInSec() registra un mensaje y deja la configuración sin cambios. El equivalente en iOS es el método de runtime Singular.setDeferredDeepLinkTimeout(). Un valor de 0 o menor se ignora y se conserva el valor predeterminado de 60 segundos.
Firma
ddlTimeoutSec: number
Ejemplo de uso
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
Característica BETA: establece una función de devolución de llamada a la que se llamará cuando estén disponibles los datos de atribución del dispositivo.
Propiedad SingularConfig.deviceAttributionCallbackHandler
Establece una función de devolución de llamada que se invoca cuando están disponibles los datos de atribución del dispositivo. Esto permite acceder a los datos de atribución en cuanto se resuelven.
Solo se incluyen los campos que tienen valor, así que verifica que la clave exista antes de leerla. La mayoría de las instalaciones devuelve un subconjunto: los campos presentes dependen del touchpoint que Singular haya encontrado.
| Clave | Tipo | Notas |
|---|---|---|
network |
string | Siempre presente cuando se ejecuta el callback. "Organic" cuando no se encontró ningún touchpoint. |
campaign_id |
string | Presente cuando el touchpoint lo proporciona. |
campaign_name |
string | Presente cuando el touchpoint lo proporciona. |
subcampaign_id |
string | Presente cuando el touchpoint lo proporciona. No está disponible en todas las fuentes. |
subcampaign_name |
string | Presente cuando el touchpoint lo proporciona. No está disponible en todas las fuentes. |
creative_id |
string | Presente cuando el touchpoint lo proporciona. No está disponible en todas las fuentes. |
creative_name |
string | Presente cuando el touchpoint lo proporciona. No está disponible en todas las fuentes. |
passthrough |
string | Presente cuando el enlace llevaba valores de passthrough. |
match_type |
string | Presente cuando el touchpoint lo proporciona. Contacta a Singular si necesitas el conjunto de valores. |
click_timestamp |
number | Presente cuando el touchpoint lo proporciona. Microsegundos epoch: divide entre 1.000.000 para obtener segundos. |
Firma
deviceAttributionCallbackHandler: (attributes: Record<string, any>) => void
Ejemplo 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 se invoca cuando se establece un SDID personalizado.
Propiedad SingularConfig.didSetSdidCallback
Establece una función de devolución de llamada que se invocará cuando se establezca el SDID personalizado. Se utiliza junto con la propiedad customSdid.
Firma
didSetSdidCallback: (result: string) => void
Ejemplo 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'
};
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
Propiedad SingularConfig.enableLogging
Habilita el registro del SDK con fines de depuración. Esto es útil durante el desarrollo y la resolución de problemas. Se recomienda desactivar el registro en las compilaciones de producción. El valor por defecto es false.
Plataforma: Android e iOS. La compatibilidad con iOS se agregó en el SDK de React Native 4.3.0; las versiones anteriores ignoraban esta propiedad en iOS. Combínala con logLevel para controlar el nivel de detalle.
Firma
enableLogging: boolean
Ejemplo 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',
enableLogging: true
};
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withLoggingEnabled();
enableOdmWithTimeoutInterval
Propiedad SingularConfig.enableOdmWithTimeoutInterval
Habilita On-Device Measurement (ODM) de Google y define cuántos segundos esperará el SDK el token de atribución de Google antes de enviar la primera sesión. El valor predeterminado es -1, que desactiva ODM. Es obligatorio para Google Ads iOS Integrated Conversion Measurement (ICM).
Solo iOS, y retrasa la primera sesión. El SDK bloquea la sesión hasta que Google devuelve un token de atribución o transcurre el intervalo, por lo que los callbacks de deep link se retrasan hasta esa cantidad de segundos. ODM también requiere el SDK de ODM de Google, el flag de enlazado -ObjC y el SDK de React Native v3.9.0 o posterior. Configúralo durante tu integración inicial en lugar de agregarlo después.
Firma
enableOdmWithTimeoutInterval: number
Ejemplo de uso
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
Propiedad SingularConfig.espDomains
Establece los dominios ESP (proveedor de servicios de correo electrónico) para la atribución de correo electrónico. Esto permite especificar qué dominios de correo electrónico deben tenerse en cuenta para el seguimiento de atribución.
Firma
espDomains: Array<string>
Ejemplo 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',
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
Propiedad SingularConfig.facebookAppId
Establece el ID de la aplicación de Facebook para la integración de atribución de Facebook. Esto permite al SDK realizar un seguimiento de la atribución de campañas de Facebook.
Firma
facebookAppId: string
Ejemplo 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
Propiedad SingularConfig.globalProperties
Establece las propiedades globales durante la inicialización del SDK. Estas propiedades se enviarán con todos los eventos seguidos por el SDK.
Firma
globalProperties: Record<string, { Key: string; Value: any; OverrideExisting: boolean }>
Ejemplo 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',
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
Propiedad SingularConfig.limitAdvertisingIdentifiers
Activa el modo de identificadores de publicidad limitados en aplicaciones de público mixto. Esta opción afecta al modo en que el SDK recopila y utiliza los identificadores de dispositivo para el seguimiento. El valor predeterminado es false.
Firma
limitAdvertisingIdentifiers: boolean
Ejemplo 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',
limitAdvertisingIdentifiers: true
};
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withLimitAdvertisingIdentifiers(true);
limitDataSharing
Propiedad SingularConfig.limitDataSharing
Establece el estado de limitación de compartición de datos en la inicialización. Utilícela para limitar el uso compartido de datos en función del consentimiento del usuario o de requisitos de privacidad. El valor predeterminado es null.
Firma
limitDataSharing: boolean | null
Ejemplo 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',
limitDataSharing: true
};
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withLimitDataSharing(true);
logLevel
Propiedad SingularConfig.logLevel
Define el nivel de detalle de los logs del SDK. Solo tiene efecto cuando enableLogging es true. Los valores son las constantes estándar de Android android.util.Log, donde un número menor es más detallado: 2 VERBOSE, 3 DEBUG, 4 INFO, 5 WARN, 6 ERROR, 7 ASSERT. El valor predeterminado es 6 (ERROR).
Compatibilidad con iOS agregada en 4.3.0. Las versiones anteriores ignoraban tanto logLevel como enableLogging en iOS. A partir de 4.3.0, el bridge de iOS asigna el valor de estilo Android al nivel de log nativo de iOS: 2 Verbose, 3 Debug, 4 Info, 5 Warning, 6 Error, y 7 desactiva el registro. Cualquier otro valor, incluido uno negativo, vuelve a Error.
Observa la diferencia en el extremo superior del rango: en Android, 7 es ASSERT, mientras que en iOS desactiva el registro por completo.
Firma
logLevel: number
Ejemplo de uso
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
Propiedad SingularConfig.manualSkanConversionManagement
Habilita la gestión manual de los valores de conversión de SKAdNetwork. Cuando está habilitada, el usuario es responsable de actualizar manualmente los valores de conversión. El valor por defecto es false.
Firma
manualSkanConversionManagement: boolean
Ejemplo 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',
manualSkanConversionManagement: true
};
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withManualSkanConversionManagement();
pushNotificationsLinkPaths
Propiedad SingularConfig.pushNotificationsLinkPaths
Configura rutas personalizadas para extraer enlaces profundos de las cargas útiles de notificaciones push. Permite especificar en qué parte de la carga útil de la notificación se encuentra el enlace profundo.
Firma
pushNotificationsLinkPaths: Array<Array<string>>
Ejemplo 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 se invoca cuando se recibe el SDID.
Propiedad SingularConfig.sdidReceivedCallback
Establece una función callback que se invocará cuando se reciba el SDID del servidor. Se utiliza junto con la propiedad customSdid.
Firma
sdidReceivedCallback: (result: string) => void
Ejemplo 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'
};
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
Propiedad SingularConfig.secret
Su secreto de Singular SDK. Se trata de una propiedad obligatoria que debe establecerse durante la inicialización de la configuración.
Firma
secret: string
Ejemplo 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
Propiedad SingularConfig.sessionTimeout
Establece el tiempo de espera de la sesión en segundos. Determina cuánto tiempo dura una sesión de usuario después de que la aplicación pase a segundo plano. El valor por defecto es -1 (utiliza un tiempo de espera por defecto de 60 segundos).
Firma
sessionTimeout: number
Ejemplo 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',
sessionTimeout: 120 // 2 minutes
};
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withSessionTimeoutInSec(120); // 2 minutes
shortLinkResolveTimeout
Propiedad SingularConfig.shortLinkResolveTimeout
Establece el tiempo de espera en segundos para la resolución de enlaces cortos. Determina cuánto tiempo esperará el SDK a que se resuelva un enlace corto. El valor predeterminado es 10 segundos.
Firma
shortLinkResolveTimeout: number
Ejemplo 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
Propiedad SingularConfig.singularLinkHandler
Establece un manejador de callback para Singular Links (enlaces profundos). Esta llamada de retorno se invoca cuando se resuelve un enlace profundo, lo que le permite manejar los datos del enlace profundo en su aplicación.
Firma
singularLinkHandler: (params: Record<string, any>) => void
Ejemplo 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',
// 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
Propiedad SingularConfig.skAdNetworkEnabled
Activa o desactiva la atribución SKAdNetwork en iOS. Si está activada, el SDK gestionará automáticamente la atribución de SKAdNetwork. El valor por defecto es true.
Firma
skAdNetworkEnabled: boolean
Ejemplo 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',
skAdNetworkEnabled: true
};
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withSkAdNetworkEnabled(true);
userDetails
Propiedad SingularConfig.userDetails
Adjunta una dirección de correo electrónico y/o un número de teléfono hasheados a la primera sesión que envía el SDK. Asigna un objeto SingularUserDetails o configúralo con el builder withUserDetails(). El SDK normaliza y hashea con SHA-256 los valores en texto plano en el dispositivo, por lo que la dirección de correo electrónico y el número de teléfono originales nunca se transmiten. Establecer un ID de usuario y User Details hasheados
Disponibilidad: Versión 4.3.0 y superiores del SDK de React Native.
Firma
userDetails: SingularUserDetails
Ejemplo 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',
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
Propiedad SingularConfig.waitForTrackingAuthorizationWithTimeoutInterval
Establece un intervalo de tiempo de espera para la autorización ATT (App Tracking Transparency) en iOS. El SDK esperará hasta este número de segundos a que el usuario responda a la solicitud de ATT antes de continuar. El valor predeterminado es 0 (sin espera).
Firma
waitForTrackingAuthorizationWithTimeoutInterval: number
Ejemplo 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',
waitForTrackingAuthorizationWithTimeoutInterval: 300
};
import { SingularConfig } from 'singular-react-native';
const config = new SingularConfig('API_KEY', 'SECRET')
.withWaitForTrackingAuthorizationWithTimeoutInterval(300);
Ejemplo de configuración completa
Configuración completa del SDK
El siguiente ejemplo muestra cómo crear una configuración completa encadenando varios métodos de configuración.
Ejemplo 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);