SDK de React Native - Referencia de métodos de configuración

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

New ArchitectureOld Architecture
// 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

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

New ArchitectureOld Architecture
// 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']
};

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

New ArchitectureOld Architecture
// 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
};

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

New ArchitectureOld Architecture
// 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
};

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

New ArchitectureOld Architecture
// 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);
});

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

New ArchitectureOld Architecture
// 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);
});

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

New ArchitectureOld Architecture
// 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);
});

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

New ArchitectureOld Architecture
// 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'
};

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

New ArchitectureOld 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',
  ddlTimeoutSec: 120 // seconds
};

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

New ArchitectureOld Architecture
// 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;
});

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

New ArchitectureOld Architecture
// 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);
});

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

New ArchitectureOld Architecture
// 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
};

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

New ArchitectureOld 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',
  enableOdmWithTimeoutInterval: 10 // seconds
};

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

New ArchitectureOld Architecture
// 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']
};

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

New ArchitectureOld Architecture
// 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'
};

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

New ArchitectureOld Architecture
// 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
    }
  }
};

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

New ArchitectureOld Architecture
// 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
};

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

New ArchitectureOld Architecture
// 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
};

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

New ArchitectureOld 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,
  logLevel: 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

New ArchitectureOld Architecture
// 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
};

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

New ArchitectureOld Architecture
// 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']
  ]
};

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

New ArchitectureOld Architecture
// 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);
});

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

New ArchitectureOld Architecture
// 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

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

New ArchitectureOld Architecture
// 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
};

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

New ArchitectureOld Architecture
// 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
};

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

New ArchitectureOld Architecture
// 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);
  }
});

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

New ArchitectureOld Architecture
// 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
};

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

New ArchitectureOld Architecture
// 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'
  }
};

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

New ArchitectureOld Architecture
// 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
};

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

New ArchitectureOld Architecture
// 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);
});