React Native SDK - 구성 방법 참조

문서

React Native SDK - 구성 레퍼런스

이 문서는 React Native 애플리케이션용 Singular SDK에서 사용할 수 있는 모든 구성 옵션에 대한 포괄적인 참조를 제공합니다. SingularConfig 객체를 사용하면 추적 설정, 어트리뷰션 옵션, 개인 정보 보호 제어 등을 포함하여 SDK의 동작을 사용자 정의할 수 있습니다. 각 구성 속성은 설명, 서명 및 실제 사용 예제와 함께 제공됩니다.

apikey

SingularConfig.apikey 속성

Singular API 키입니다. 구성 초기화 중에 설정해야 하는 필수 속성입니다.

서명

apikey: string

사용 예

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

SingularConfig.brandedDomains 속성

웹-투-앱 어트리뷰션에 대한 브랜드 도메인을 설정합니다. 이를 통해 어트리뷰션 목적으로 추적해야 하는 사용자 지정 도메인을 지정할 수 있습니다.

서명

brandedDomains: Array<string>

사용 예시

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

Singular컨피규어 클립보드 어트리뷰션 속성

iOS에 클립보드 어트리뷰션을 활성화합니다. 활성화하면 SDK가 클립보드에서 어트리뷰션 데이터를 확인합니다. 이 기능은 withClipboardAttribution() 메서드를 사용하여 활성화할 수 있습니다.

서명

clipboardAttribution: boolean

사용 예시

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

SingularConfig.collectOAID 속성

안드로이드에 대해 OAID(익명 기기 식별자) 수집을 활성화합니다. 주로 구글 플레이 서비스를 사용할 수 없는 중국에서의 추적에 사용됩니다. 기본값은 false입니다.

서명

collectOAID: boolean

사용 예시

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

전환 값 업데이트 핸들러

Singular 컨피규어 전환값 업데이트 핸들러 속성

SKAdNetwork 전환 값이 업데이트될 때 호출되는 콜백 핸들러를 설정합니다. iOS에서 전환 값 변경을 추적할 때 유용합니다.

서명

conversionValueUpdatedHandler: (conversionValue: number) => void

사용 예시

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

Singular 컨피규어 컨버전스 값 업데이트 핸들러 속성

SKAdNetwork 4.0 전환 값이 업데이트될 때 호출되는 콜백 핸들러를 설정합니다. 이 콜백은 iOS 16.1+의 미세값, 거친값, 잠금 상태를 수신합니다.

서명

conversionValuesUpdatedHandler: (updatedValues: Record<string, any>) => void

사용 예시

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

엔터프라이즈 기능 - 계정에 이 기능을 사용 설정하려면 고객 성공 매니저에게 문의하세요.

SingularConfig.customSdid 속성

사용자 지정 SDID(Singular 장치 ID)를 설정합니다. 이를 통해 Singular에서 생성된 장치 식별자를 사용하는 대신 고유한 장치 식별자를 제공할 수 있습니다.

서명

customSdid: string

사용 예

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

SingularConfig.customUserId 속성

SDK 초기화 중에 사용자 지정 사용자 ID를 설정합니다. 이를 통해 Singular 데이터를 처음부터 자체 사용자 식별 시스템과 연결할 수 있습니다.

서명

customUserId: string

사용 예시

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'
};

장치 어트리뷰션 콜백 핸들러

베타 기능 - 디바이스 어트리뷰션 데이터를 사용할 수 있을 때 호출할 콜백 함수를 설정합니다.

SingularConfig.deviceAttributionCallbackHandler 속성

디바이스 어트리뷰션 데이터를 사용할 수 있을 때 호출되는 콜백 핸들러를 설정합니다. 이를 통해 어트리뷰션 데이터가 확인되는 즉시 어트리뷰션 데이터에 액세스할 수 있습니다.

서명

deviceAttributionCallbackHandler: (attributes: Record<string, any>) => void

사용 예시

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

엔터프라이즈 기능 - 사용자 지정 SDID가 설정될 때 호출되는 콜백입니다.

SingularConfig.didSetSdidCallback 속성

사용자 지정 SDID가 설정되었을 때 호출할 콜백 함수를 설정합니다. customSdid 프로퍼티와 함께 사용됩니다.

서명

didSetSdidCallback: (result: string) => void

사용 예

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

SingularConfig.enableLogging 속성

디버깅 목적으로 SDK 로깅을 활성화합니다. 이는 개발 및 문제 해결 중에 유용합니다. 프로덕션 빌드에서는 로깅을 비활성화하는 것이 좋습니다. 기본값은 false입니다.

서명

enableLogging: boolean

사용 예

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

SingularConfig.espDomains 속성

이메일 어트리뷰션에 사용할 ESP(이메일 서비스 제공업체) 도메인을 설정합니다. 이를 통해 어트리뷰션 추적에 고려할 이메일 도메인을 지정할 수 있습니다.

서명

espDomains: Array<string>

사용 예시

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

SingularConfig.facebookAppId 속성

페이스북 어트리뷰션 연동을 위한 페이스북 앱 ID를 설정합니다. 이를 통해 SDK가 페이스북 캠페인 어트리뷰션을 추적할 수 있습니다.

서명

facebookAppId: string

사용 예시

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'
};

글로벌 프로퍼티

SingularConfig.globalProperties 속성

SDK 초기화 중 글로벌 프로퍼티를 설정합니다. 이 프로퍼티는 SDK가 추적하는 모든 이벤트와 함께 전송됩니다.

서명

globalProperties: Record<string, { Key: string; Value: any; OverrideExisting: boolean }>

사용 예시

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

SingularConfig.limitAdvertisingIdentifiers 속성

혼합 오디언스 앱에서 제한된 광고 식별자 모드를 활성화합니다. 이 옵션은 SDK가 추적을 위해 디바이스 식별자를 수집하고 사용하는 방식에 영향을 줍니다. 기본값은 false입니다.

서명

limitAdvertisingIdentifiers: boolean

사용 예

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

SingularConfig.limitDataSharing 속성

초기화 시 데이터 공유 제한 상태를 설정합니다. 이를 사용하여 사용자 동의 또는 개인정보 보호 요구 사항에 따라 데이터 공유를 제한할 수 있습니다. 기본값은 null입니다.

서명

limitDataSharing: boolean | null

사용 예시

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

SingularConfig.manualSkanConversionManagement 속성

수동 SKAdNetwork 전환 값 관리를 활성화합니다. 활성화하면 전환 값을 수동으로 업데이트해야 합니다. 기본값은 false입니다.

서명

manualSkanConversionManagement: boolean

사용 예시

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

푸시 알림 링크 경로

SingularConfig.pushNotificationsLinkPaths 속성

푸시 알림 페이로드에서 딥링크를 추출하기 위한 사용자 지정 경로를 구성합니다. 이를 통해 알림 페이로드에서 딥링크가 위치한 위치를 지정할 수 있습니다.

서명

pushNotificationsLinkPaths: Array<Array<string>>

사용 예

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

엔터프라이즈 기능 - SDID가 수신될 때 호출되는 콜백입니다.

SingularConfig.sdidReceivedCallback 속성

서버에서 SDID를 수신할 때 호출할 콜백 함수를 설정합니다. 이 프로퍼티는 customSdid 프로퍼티와 함께 사용됩니다.

서명

sdidReceivedCallback: (result: string) => void

사용 예

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

secret

SingularConfig.secret 속성

Singular SDK 비밀. 구성 초기화 중에 설정해야 하는 필수 속성입니다.

서명

secret: string

사용 예시

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'
};

세션타임아웃

Singular 컨피규어 세션 타임아웃 속성

세션 시간 제한을 초 단위로 설정합니다. 앱이 백그라운드로 전환된 후 사용자 세션이 지속되는 시간을 결정합니다. 기본값은 -1입니다(기본 시간 제한 60초 사용).

서명

sessionTimeout: number

사용 예시

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

짧은 링크 해결 시간 제한

Singular 컨피규어 단축 링크 해결 시간 제한 속성

짧은 링크 확인을 위한 시간 제한을 초 단위로 설정합니다. 이 값은 SDK가 짧은 링크가 해결될 때까지 기다리는 시간을 결정합니다. 기본값은 10초입니다.

서명

shortLinkResolveTimeout: number

사용 예

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

Singular 컨피규어 Singular링크 핸들러 속성

Singular 링크(딥링크)에 대한 콜백 핸들러를 설정합니다. 이 콜백은 딥링크가 확인될 때 호출되어 애플리케이션에서 딥링크 데이터를 처리할 수 있도록 합니다.

서명

singularLinkHandler: (params: Record<string, any>) => void

사용 예시

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

SingularConfig.skAdNetworkEnabled 속성

iOS에서 SKAdNetwork 어트리뷰션을 활성화 또는 비활성화합니다. 활성화하면 SDK가 SKAdNetwork 어트리뷰션을 자동으로 처리합니다. 기본값은 true입니다.

서명

skAdNetworkEnabled: boolean

사용 예시

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

SingularConfig.waitForTrackingAuthorizationWithTimeoutInterval 속성

iOS에서 ATT(앱 추적 투명성) 승인을 기다리는 타임아웃 간격을 설정합니다. SDK는 사용자가 ATT 프롬프트에 응답할 때까지 최대 이 시간(초)을 기다린 후 계속 진행합니다. 기본값은 0(대기 없음)입니다.

서명

waitForTrackingAuthorizationWithTimeoutInterval: number

사용 예시

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

전체 구성 예제

포괄적인 SDK 구성

다음 예는 여러 구성 방법을 연결하여 포괄적인 구성을 만드는 방법을 보여줍니다.

전체 예제

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