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

Documento

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/jsNativeSingular';

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/jsNativeSingular';

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/jsNativeSingular';

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

collectOAID

Propiedad collectOAID de SingularConfig

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/jsNativeSingular';

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

conversionValueUpdatedHandler

Propiedad conversionValueUpdatedHandler de SingularConfig

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/jsNativeSingular';
import { NativeEventEmitter } from 'react-native';

const emitter = new NativeEventEmitter(NativeSingular);

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

conversionValuesUpdatedHandler

Propiedad conversionValuesUpdatedHandler de SingularConfig

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/jsNativeSingular';
import { NativeEventEmitter } from 'react-native';

const emitter = new NativeEventEmitter(NativeSingular);

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

customSdid

Función para empresas: póngase en contacto con su gestor de éxito de clientes para activar esta función para su cuenta.

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/jsNativeSingular';
import { NativeEventEmitter } from 'react-native';

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

const emitter = new NativeEventEmitter(NativeSingular);

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

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

customUserId

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/jsNativeSingular';

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

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 deviceAttributionCallbackHandler de SingularConfig

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.

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/jsNativeSingular';
import { NativeEventEmitter } from 'react-native';

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

const emitter = new NativeEventEmitter(NativeSingular);

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

didSetSdidCallback

Función de empresa - Callback que se invoca cuando se establece un SDID personalizado.

Propiedad didSetSdidCallback de SingularConfig

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/jsNativeSingular';
import { NativeEventEmitter } from 'react-native';

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

const emitter = new NativeEventEmitter(NativeSingular);

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

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

enableLogging

Propiedad enableLogging de SingularConfig

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.

Firma

enableLogging: boolean

Ejemplo de uso

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

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

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/jsNativeSingular';

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/jsNativeSingular';

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/jsNativeSingular';

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

limitAdvertisingIdentifiers

Propiedad limitAdvertisingIdentifiers de SingularConfig

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/jsNativeSingular';

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

limitDataSharing

Propiedad limitDataSharing de SingularConfig

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/jsNativeSingular';

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

manualSkanConversionManagement

Propiedad manualSkanConversionManagement de SingularConfig

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/jsNativeSingular';

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

pushNotificationsLinkPaths

Propiedad pushNotificationsLinkPaths de SingularConfig

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/jsNativeSingular';

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

sdidReceivedCallback

Función de empresa - 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/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);
});

secreto

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/jsNativeSingular';
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/jsNativeSingular';
import { NativeEventEmitter } from 'react-native';

const config: SingularConfig = {
  apikey: 'API_KEY',
  secret: 'SECRET',
  sessionTimeoutInSec: 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/jsNativeSingular';
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/jsNativeSingular';
import { NativeEventEmitter } from 'react-native';

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

const emitter = new NativeEventEmitter(NativeSingular);

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

skAdNetworkEnabled

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/jsNativeSingular';

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

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/jsNativeSingular';

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