React Native SDK - 메서드 레퍼런스
이 포괄적인 참조 문서에는 React Native 애플리케이션용 Singular SDK에서 사용 가능한 모든 메서드가 설명되어 있습니다. SDK는 초기화, 이벤트 추적, 구매 보고, 어트리뷰션, 데이터 개인정보 보호 규정 준수 및 구성을 위한 기능을 제공합니다. 각 메서드에는 설명, 서명, 실제 사용 예시가 함께 제공되어 개발자가 Singular의 SDK 기능을 React Native 애플리케이션에 연동하는 데 도움이 됩니다.
광고 구매
Singular.adRevenue 메서드
자세한 광고 데이터 정보로 광고 구매 이벤트를 추적합니다. 이 메서드를 사용하면 애플리케이션에 표시된 광고에서 발생한 구매을 다양한 파라미터와 함께 보고하여 광고 성과를 분류하고 분석할 수 있습니다.
서명
static adRevenue(adData: {
ad_platform: string;
ad_currency: string;
ad_revenue: number;
[key: string]: any;
}): void
필수 속성
-
ad_platform(문자열): 광고 구매이 발생한 광고 플랫폼(예: 'AdMob', 'Facebook', 'UnityAds'). -
ad_currency(문자열): 광고 구매이 보고되는 통화 코드(ISO 4217 형식)입니다(예: 'USD', 'EUR'). -
ad_revenue(숫자): 광고 노출에서 발생한 구매 금액입니다.
선택적 속성
-
ad_unit_id(문자열): 광고가 게재된 광고 단위의 고유 식별자입니다. -
ad_type(문자열): 광고의 유형 또는 형식(예: '보상형', '전면 광고', '배너')입니다. -
ad_placement_name(문자열): 애플리케이션 내에서 광고가 게재된 위치의 이름 또는 위치 식별자(예: '레벨_완료', '메인 메뉴')입니다. -
ad_mediation_platform(문자열): 광고를 게재하는 데 사용된 광고 중개 플랫폼(예: 'admob', 'ironsource', 'max'). -
ad_impression_id(문자열): 특정 광고 노출 이벤트의 고유 식별자입니다. -
ad_group_type(문자열): 광고 그룹의 유형 또는 카테고리 분류입니다. -
ad_unit_name(문자열): 광고 단위에 할당된 사람이 읽을 수 있는 이름입니다. -
ad_group_id(문자열): 이 노출과 연결된 광고 그룹의 고유 식별자입니다. -
ad_group_name(문자열): 사람이 읽을 수 있는 광고 그룹의 이름입니다. -
ad_group_priority(숫자): 미디에이션 워터폴 순서를 위해 광고 그룹에 할당된 숫자 우선 순위 수준입니다. -
ad_precision(문자열): 광고 구매 데이터의 정밀도 또는 정확도 수준(예: '추정', '정확', '퍼블리셔_정의'). -
ad_placement_id(문자열): 애플리케이션 내 광고 게재 위치에 대한 고유 식별자입니다.
사용 예시
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
const adData = {
ad_platform: 'AdMob',
ad_currency: 'USD',
ad_revenue: 0.05,
ad_unit_id: 'ca-app-pub-1234567890123456',
ad_type: 'Rewarded',
ad_placement_name: 'level_complete'
};
NativeSingular.adRevenue(adData);
import { Singular } from 'singular-react-native';
// Track ad revenue event
const adData = {
ad_platform: 'AdMob',
ad_currency: 'USD',
ad_revenue: 0.05,
ad_unit_id: 'ca-app-pub-1234567890123456',
ad_type: 'Rewarded',
ad_placement_name: 'level_complete'
};
Singular.adRevenue(adData);
clearGlobalProperties
Singular.clearGlobalProperties 메서드
이전에 설정된 모든 글로벌 속성을 제거합니다. 사용자가 애플리케이션에서 로그아웃하는 경우와 같이 전역 속성을 재설정해야 할 때 유용합니다.
서명
static clearGlobalProperties(): void
사용 예시
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
// Clear all global properties
NativeSingular.clearGlobalProperties();
import { Singular } from 'singular-react-native';
// Clear all global properties
Singular.clearGlobalProperties();
createReferrerShortLink
Singular.createReferrerShortLink 메서드
공유 및 어트리뷰션에 사용할 수 있는 리퍼러 정보가 포함된 짧은 링크를 생성합니다. 이 메서드는 사용자와 공유할 수 있는 추적 가능한 링크를 생성하여 설치 및 활동을 특정 리퍼럴 소스에 어트리뷰션할 수 있도록 합니다.
서명
static createReferrerShortLink(
baseLink: string,
referrerName: string,
referrerId: string,
passthroughParams: Record<string, any>,
completionHandler: (data: string | null, error?: string) => void
): void
사용 예시
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
// Create a short link for referral
NativeSingular.createReferrerShortLink(
'https://sample.sng.link/B4tbmv8fp',
'John Doe',
'aq239897',
{ channel: 'sms', campaign: 'summer_promo' },
(result: string, error: string) => {
if (error) {
console.error('Short link creation failed:', error);
} else {
console.log('Short link created successfully:', result);
}
}
);
import { Singular } from 'singular-react-native';
// Create a short link for referral
Singular.createReferrerShortLink(
'https://sample.sng.link/B4tbmv8fp',
'John Doe',
'aq239897',
{ channel: 'sms', campaign: 'summer_promo' },
(link, error) => {
if (error) {
console.error('Error creating short link:', error);
} else if (link) {
console.log('Generated short link:', link);
// Share the link with users
}
}
);
customRevenue
Singular.customRevenue 메서드
지정된 이벤트 이름, 통화 및 금액으로 사용자 지정 구매 이벤트를 추적합니다. 이를 통해 사용자 지정 이벤트 이름으로 보다 구체적인 구매을 추적할 수 있습니다.
서명
static customRevenue(
eventName: string,
currency: string,
amount: number
): void
사용 예시
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
// Track a custom revenue event
NativeSingular.customRevenue('premium_subscription', 'USD', 9.99);
import { Singular } from 'singular-react-native';
// Track a custom revenue event
Singular.customRevenue('premium_subscription', 'USD', 9.99);
customRevenueWithArgs
Singular.customRevenueWithArgs 메서드
지정된 이벤트 이름, 통화, 금액 및 추가 속성을 사용하여 사용자 지정 구매 이벤트를 추적합니다. 이를 통해 사용자 지정 매개변수를 사용하여 보다 상세한 구매 추적이 가능합니다.
서명
static customRevenueWithArgs(
eventName: string,
currency: string,
amount: number,
args: Record<string, any>
): void
사용 예시
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
// Track a custom revenue event with attributes
NativeSingular.customRevenueWithArgs(
'in_app_purchase',
'USD',
5.99,
{
product_id: 'com.app.gems_pack_small',
quantity: 1
}
);
import { Singular } from 'singular-react-native';
// Track a custom revenue event with attributes
Singular.customRevenueWithArgs(
'in_app_purchase',
'USD',
5.99,
{
product_id: 'com.app.gems_pack_small',
quantity: 1
}
);
event
Singular.event 메서드
지정된 이름의 이벤트를 추적합니다. 이 메서드를 사용하여 애플리케이션 내에서 사용자 행동과 참여를 추적하세요.
서명
static event(eventName: string): void
사용 예시
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
// Track a simple event
NativeSingular.event('level_completed');
import { Singular } from 'singular-react-native';
// Track a simple event
Singular.event('level_completed');
eventWithArgs
Singular.eventWithArgs 메서드
지정된 이름과 추가 사용자 정의 속성으로 이벤트를 추적합니다. 이 메서드를 사용하여 세부 매개변수로 사용자 행동을 추적합니다.
Signature
static eventWithArgs(
eventName: string,
args: Record<string, any>
): void
사용 예시
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
// Track an event with additional parameters
NativeSingular.eventWithArgs('level_completed', {
level_id: 5,
score: 12500,
time_spent: 120,
difficulty: 'medium'
});
import { Singular } from 'singular-react-native';
// Track an event with additional parameters
Singular.eventWithArgs('level_completed', {
level_id: 5,
score: 12500,
time_spent: 120,
difficulty: 'medium'
});
getGlobalProperties
Singular.getGlobalProperties 메서드
현재 설정된 모든 글로벌 속성을 검색합니다. 이 메서드는 SDK에 설정된 모든 전역 프로퍼티가 포함된 객체로 확인되는 프로미스를 반환합니다.
서명
static getGlobalProperties(): Promise<Record<string, any>>
사용 예시
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
// Get all global properties
NativeSingular.getGlobalProperties();
import { Singular } from 'singular-react-native';
// Get all global properties
Singular.getGlobalProperties();
getLimitDataSharing
Singular.getLimitDataSharing 메서드
현재 데이터 공유 제한 상태를 검색합니다. 이 메서드는 현재 데이터 공유가 제한되어 있는지 여부를 나타내는 부울로 확인되는 프로미스를 반환합니다.
서명
static getLimitDataSharing(): Promise<boolean>
사용 예시
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
// Check if data sharing is limited
NativeSingular.getLimitDataSharing();
import { Singular } from 'singular-react-native';
// Check if data sharing is limited
Singular.getLimitDataSharing();
핸들 푸시 알림
Singular.handlePushNotification 메서드
어트리뷰션을 위한 푸시 알림 페이로드를 처리합니다. 앱이 푸시 알림을 수신할 때 이 메서드를 호출해야 Singular가 올바르게 어트리뷰션할 수 있습니다. 이 메서드는 iOS 전용입니다.
서명
static handlePushNotification(
pushNotificationPayload: Record<string, any>
): void
사용 예시
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
import { Platform } from 'react-native';
// Handle a received push notification (iOS only)
if (Platform.OS === 'ios') {
const userInfo = remoteMessage.data;
NativeSingular.handlePushNotification(userInfo);
}
import { Singular } from 'singular-react-native';
import { Platform } from 'react-native';
// Handle a received push notification (iOS only)
if (Platform.OS === 'ios') {
const userInfo = remoteMessage.data;
Singular.handlePushNotification(userInfo);
}
인앱 구매
Singular.inAppPurchase 메서드
Singular에 구매을 보고하고 백엔드에서 영수증 유효성 검사(활성화된 경우)를 수행합니다. 구매 객체는 SingularIOSPurchase 또는 SingularAndroidPurchase 유형이어야 합니다.
서명
static inAppPurchase(
eventName: string,
purchase: SingularIOSPurchase | SingularAndroidPurchase
): void
SingularIOSPurchase 구매 클래스 생성자
constructor(
revenue: number,
currency: string,
productId: string,
transactionId: string,
receipt: string
)
SingularAndroidPurchase 구매 클래스 생성자
constructor(
revenue: number,
currency: string,
receipt: string,
signature: string
)
사용 예시
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
import { SingularIOSPurchase, SingularAndroidPurchase } from 'singular-react-native';
import { Platform } from 'react-native';
// iOS Example
if (Platform.OS === 'ios') {
const iosPurchase = new SingularIOSPurchase(
99.99, // revenue
'USD', // currency
'premium_bundle', // productId
'trans_12345', // transactionId
'base64receipt...' // receipt
);
// Convert to plain object for TurboModule
NativeSingular.inAppPurchase('purchase', iosPurchase.toSpecObject());
}
// Android Example
if (Platform.OS === 'android') {
const androidPurchase = new SingularAndroidPurchase(
99.99, // revenue
'USD', // currency
'purchaseDataJSON', // receipt
'signatureString' // signature
);
// Convert to plain object for TurboModule
NativeSingular.inAppPurchase('purchase', androidPurchase.toSpecObject());
}
import { Singular, SingularIOSPurchase, SingularAndroidPurchase } from 'singular-react-native';
import { Platform } from 'react-native';
// iOS Example
if (Platform.OS === 'ios') {
const iosPurchase = new SingularIOSPurchase(
99.99, // revenue
'USD', // currency
'premium_bundle', // productId
'trans_12345', // transactionId
'base64receipt...' // receipt
);
Singular.inAppPurchase('purchase', iosPurchase);
}
// Android Example
if (Platform.OS === 'android') {
const androidPurchase = new SingularAndroidPurchase(
99.99, // revenue
'USD', // currency
'purchaseDataJSON', // receipt
'signatureString' // signature
);
Singular.inAppPurchase('purchase', androidPurchase);
}
inAppPurchaseWithArgs
Singular.inAppPurchaseWithArgs 메서드
추가 속성과 함께 구매을 Singular에 보고하고 백엔드에서 영수증 유효성 검사(활성화된 경우)를 수행합니다. 구매 객체는 SingularIOSPurchase 또는 SingularAndroidPurchase 유형이어야 합니다.
서명
static inAppPurchaseWithArgs(
eventName: string,
purchase: SingularIOSPurchase | SingularAndroidPurchase,
args: Record<string, any>
): void
SingularIOSPurchase 구매 클래스 생성자
constructor(
revenue: number,
currency: string,
productId: string,
transactionId: string,
receipt: string
)
SingularAndroidPurchase 구매 클래스 생성자
constructor(
revenue: number,
currency: string,
receipt: string,
signature: string
)
사용 예제
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
import { SingularIOSPurchase, SingularAndroidPurchase } from 'singular-react-native';
import { Platform } from 'react-native';
// iOS Example - Track IAP with additional attributes
if (Platform.OS === 'ios') {
const iosPurchase = new SingularIOSPurchase(
99.99, // revenue
'USD', // currency
'premium_bundle', // productId
'trans_12345', // transactionId
'base64receipt...' // receipt
);
// Convert to plain object for TurboModule
NativeSingular.inAppPurchaseWithArgs(
'purchase',
iosPurchase.toSpecObject(),
{
product_category: 'premium_content',
is_first_purchase: true,
user_tier: 'gold'
}
);
}
// Android Example - Track IAP with additional attributes
if (Platform.OS === 'android') {
const androidPurchase = new SingularAndroidPurchase(
99.99, // revenue
'USD', // currency
'purchaseDataJSON', // receipt
'signatureString' // signature
);
// Convert to plain object for TurboModule
NativeSingular.inAppPurchaseWithArgs(
'purchase',
androidPurchase.toSpecObject(),
{
product_category: 'premium_content',
is_first_purchase: true,
user_tier: 'gold'
}
);
}
import { Singular, SingularIOSPurchase, SingularAndroidPurchase } from 'singular-react-native';
import { Platform } from 'react-native';
// iOS Example - Track IAP with additional attributes
if (Platform.OS === 'ios') {
const iosPurchase = new SingularIOSPurchase(
99.99, // revenue
'USD', // currency
'premium_bundle', // productId
'trans_12345', // transactionId
'base64receipt...' // receipt
);
Singular.inAppPurchaseWithArgs('purchase', iosPurchase, {
product_category: 'premium_content',
is_first_purchase: true,
user_tier: 'gold'
});
}
// Android Example - Track IAP with additional attributes
if (Platform.OS === 'android') {
const androidPurchase = new SingularAndroidPurchase(
99.99, // revenue
'USD', // currency
'purchaseDataJSON', // receipt
'signatureString' // signature
);
Singular.inAppPurchaseWithArgs('purchase', androidPurchase, {
product_category: 'premium_content',
is_first_purchase: true,
user_tier: 'gold'
});
}
init
Singular.init 메서드
제공된 구성으로 Singular SDK를 초기화합니다. Singular SDK 사용을 시작하기 위해 가장 먼저 호출해야 하는 메서드입니다.
서명
static init(singularConfig: SingularConfig): void
사용 예제
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
// Create configuration object
const config: SingularConfig = {
apikey: 'YOUR_API_KEY',
secret: 'YOUR_SECRET',
customUserId: 'user-123456',
sessionTimeout: 60,
enableLogging: true,
logLevel: 3,
}
// Initialize the SDK
NativeSingular.init(config);
import { Singular, SingularConfig } from 'singular-react-native';
// Create configuration object
const config = new SingularConfig('YOUR_API_KEY', 'YOUR_SECRET');
// Configure additional options if needed
config.customUserId = 'user-123456';
config.sessionTimeout = 60;
config.enableLogging = true;
config.logLevel = 3;
// Initialize the SDK
Singular.init(config);
isAllTrackingStopped
Singular.isAllTrackingStopped 메서드
현재 모든 추적이 중지되었는지 확인합니다. 이 메서드는 현재 추적이 중지되었는지 여부를 나타내는 부울로 확인되는 프로미스를 반환합니다.
서명
static isAllTrackingStopped(): Promise<boolean>
사용 예시
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
// Check if tracking is stopped
NativeSingular.isAllTrackingStopped();
import { Singular } from 'singular-react-native';
// Check if tracking is stopped
Singular.isAllTrackingStopped();
limitDataSharing
Singular.limitDataSharing 메서드
데이터 공유 제한 상태를 설정합니다. 사용자 동의 또는 개인정보 보호 요구 사항에 따라 데이터 공유를 제한하려면 이 메서드를 사용합니다.
서명
static limitDataSharing(limitDataSharingValue: boolean): void
사용 예시
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
// To limit data sharing (e.g., when user opts out)
NativeSingular.limitDataSharing(true);
// To enable full data sharing (e.g., when user opts in)
NativeSingular.limitDataSharing(false);
import { Singular } from 'singular-react-native';
// To limit data sharing (e.g., when user opts out)
Singular.limitDataSharing(true);
// To enable full data sharing (e.g., when user opts in)
Singular.limitDataSharing(false);
resumeAllTracking
Singular.resumeAllTracking 메서드
이전에 중지된 모든 추적 활동을 재개합니다. 추적이 중지된 후 다시 활성화하려면 이 메서드를 사용합니다.
서명
static resumeAllTracking(): void
사용 예시
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
// Resume tracking when user opts back in
NativeSingular.resumeAllTracking();
import { Singular } from 'singular-react-native';
// Resume tracking when user opts back in
Singular.resumeAllTracking();
revenue
Singular.revenue 메서드
통화와 금액으로 구매 이벤트를 추적합니다. 이를 통해 애플리케이션의 기본 구매 추적이 가능합니다.
서명
static revenue(currency: string, amount: number): void
사용 예시
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
// Track revenue with currency and amount
NativeSingular.revenue('USD', 9.99);
import { Singular } from 'singular-react-native';
// Track revenue with currency and amount
Singular.revenue('USD', 9.99);
revenueWithArgs
Singular.revenueWithArgs 메서드
통화, 금액 및 추가 속성으로 구매 이벤트를 추적합니다. 이를 통해 사용자 지정 매개변수를 사용하여 포괄적인 구매 추적이 가능합니다.
시그니처
static revenueWithArgs(
currency: string,
amount: number,
args: Record<string, any>
): void
사용 예시
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
// Track revenue with additional attributes
NativeSingular.revenueWithArgs('USD', 19.98, {
product_id: 'premium_gems',
quantity: 2
});
import { Singular } from 'singular-react-native';
// Track revenue with additional attributes
Singular.revenueWithArgs('USD', 19.98, {
product_id: 'premium_gems',
quantity: 2
});
setCustomUserId
Singular.setCustomUserId 메서드
현재 사용자에 대한 사용자 지정 사용자 ID를 설정합니다. 이를 통해 Singular 데이터를 자체 사용자 식별 시스템과 연결할 수 있습니다.
서명
static setCustomUserId(customUserId: string): void
사용 예
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
// Set custom user ID after user logs in
NativeSingular.setCustomUserId('user123456');
import { Singular } from 'singular-react-native';
// Set custom user ID after user logs in
Singular.setCustomUserId('user123456');
setDeviceCustomUserId
엔터프라이즈 기능 - 계정에 이 기능을 사용 설정하려면 고객 성공 매니저에게 문의하세요.
Singular.setDeviceCustomUserId 메서드
디바이스 수준에서 사용자 지정 사용자 ID를 설정합니다. 이를 통해 장치 수준에서 Singular 데이터를 자체 사용자 식별 시스템과 연결할 수 있습니다.
서명
static setDeviceCustomUserId(customUserId: string): void
사용 예
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
// Set device-level custom user ID
NativeSingular.setDeviceCustomUserId('device_user_123456');
import { Singular } from 'singular-react-native';
// Set device-level custom user ID
Singular.setDeviceCustomUserId('device_user_123456');
setGlobalProperty
Singular.setGlobalProperty 메서드
모든 이벤트와 함께 전송할 글로벌 프로퍼티를 설정합니다. 이를 통해 매번 속성을 지정하지 않고도 모든 이벤트에 일관된 속성을 추가할 수 있습니다.
서명
static setGlobalProperty(
key: string,
value: string,
overrideExisting: boolean
): Promise<boolean>
사용 예시
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
// Set a global property
NativeSingular.setGlobalProperty(
'user_tier',
'premium',
true
);
import { Singular } from 'singular-react-native';
// Set a global property
Singular.setGlobalProperty(
'user_tier',
'premium',
true
);
setLimitAdvertisingIdentifiers
Singular.setLimitAdvertisingIdentifiers 메서드
제한된 광고 식별자 모드를 활성화 또는 비활성화합니다. 이 옵션은 SDK가 추적을 위해 디바이스 식별자를 수집하고 사용하는 방식에 영향을 줍니다.
서명
static setLimitAdvertisingIdentifiers(enabled: boolean): void
사용 예시
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
// Enable limited identifiers mode
NativeSingular.setLimitAdvertisingIdentifiers(true);
// Disable limited identifiers mode
NativeSingular.setLimitAdvertisingIdentifiers(false);
import { Singular } from 'singular-react-native';
// Enable limited identifiers mode
Singular.setLimitAdvertisingIdentifiers(true);
// Disable limited identifiers mode
Singular.setLimitAdvertisingIdentifiers(false);
setUninstallToken
Singular.setUninstallToken 메서드
제거 추적을 위한 푸시 알림 토큰을 등록합니다. 이 메서드는 제거 추적을 활성화하려면 푸시 알림 토큰과 함께 호출해야 합니다.
서명
static setUninstallToken(token: string): void
사용 예시
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
import messaging from '@react-native-firebase/messaging';
// Register device token for uninstall tracking
NativeSingular.setUninstallToken(token);
import { Singular } from 'singular-react-native';
import messaging from '@react-native-firebase/messaging';
// Register device token for uninstall tracking
Singular.setUninstallToken(token);
skanGetConversionValue
Singular.skanGetConversionValue 메서드
현재 SKAdNetwork 전환 값을 가져옵니다. 이 메서드는 SKAdNetwork 어트리뷰션에 사용된 현재 전환 값으로 확인되는 프로미스를 반환합니다. 이 메서드는 iOS 전용입니다.
서명
static skanGetConversionValue(): Promise<number | null>
사용 예시
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
import { Platform } from 'react-native';
// Get the current SKAdNetwork conversion value (iOS only)
if (Platform.OS === 'ios') {
const conversionValue = await NativeSingular.skanGetConversionValue();
console.log('Current conversion value:', conversionValue ?? 0);
}
import { Singular } from 'singular-react-native';
import { Platform } from 'react-native';
// Get the current SKAdNetwork conversion value (iOS only)
if (Platform.OS === 'ios') {
const conversionValue = await Singular.skanGetConversionValue();
console.log('Current conversion value:', conversionValue ?? 0);
}
skanRegisterAppForAdNetworkAttribution
Singular.skanRegisterAppForAdNetworkAttribution 메서드
SKAdNetwork 어트리뷰션을 위해 앱을 등록합니다. 이 메서드는 iOS에서 SKAdNetwork 어트리뷰션을 활성화하기 위해 호출해야 합니다. 이 메서드는 iOS 전용입니다.
서명
static skanRegisterAppForAdNetworkAttribution(): void
사용 예시
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
import { Platform } from 'react-native';
// Register for SKAdNetwork attribution (iOS only)
if (Platform.OS === 'ios') {
NativeSingular.skanRegisterAppForAdNetworkAttribution();
}
import { Singular } from 'singular-react-native';
import { Platform } from 'react-native';
// Register for SKAdNetwork attribution (iOS only)
if (Platform.OS === 'ios') {
Singular.skanRegisterAppForAdNetworkAttribution();
}
skanUpdateConversionValue
Singular.skanUpdateConversionValue 메서드
SKAdNetwork 전환 값을 업데이트합니다. 이 메서드를 사용하면 SKAdNetwork 어트리뷰션에 사용되는 전환 값을 수동으로 업데이트할 수 있습니다. 이 메서드는 iOS 전용입니다.
서명
static skanUpdateConversionValue(conversionValue: number): Promise<boolean>
사용 예시
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
import { Platform } from 'react-native';
// Update the SKAdNetwork conversion value (iOS only)
if (Platform.OS === 'ios') {
const success = await NativeSingular.skanUpdateConversionValue(5);
if (success) {
console.log('Conversion value updated successfully');
}
}
import { Singular } from 'singular-react-native';
import { Platform } from 'react-native';
// Update the SKAdNetwork conversion value (iOS only)
if (Platform.OS === 'ios') {
const success: boolean = await Singular.skanUpdateConversionValue(5);
if (success) {
console.log('Conversion value updated successfully');
}
}
skanUpdateConversionValues
Singular.skanUpdateConversionValues 메서드
미세값, 거친값, 잠금 파라미터를 사용하여 SKAdNetwork 4.0 전환값을 업데이트합니다. 이 메서드는 iOS 16.1 이상용이며 iOS 전용입니다.
서명
static skanUpdateConversionValues(
conversionValue: number,
coarse: number,
lock: boolean
): void
사용 예시
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
import { Platform } from 'react-native';
// Update SKAdNetwork 4.0 conversion values (iOS 16.1+)
if (Platform.OS === 'ios') {
NativeSingular.skanUpdateConversionValues(
5, // fine value (0-63)
1, // coarse value (0=low, 1=medium, 2=high)
false // lock
);
}
import { Singular } from 'singular-react-native';
import { Platform } from 'react-native';
// Update SKAdNetwork 4.0 conversion values (iOS 16.1+)
if (Platform.OS === 'ios') {
Singular.skanUpdateConversionValues(
5, // fine value (0-63)
1, // coarse value (0=low, 1=medium, 2=high)
false // lock
);
}
stopAllTracking
Singular.stopAllTracking 메서드
모든 추적 활동을 중지합니다. 이 메서드를 사용하면 사용자가 옵트아웃할 때 또는 개인 정보 보호를 준수하기 위해 추적을 비활성화할 수 있습니다.
서명
static stopAllTracking(): void
사용 예시
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
// Stop tracking when user opts out
NativeSingular.stopAllTracking();
import { Singular } from 'singular-react-native';
// Stop tracking when user opts out
Singular.stopAllTracking();
trackingOptIn
Singular.trackingOptIn 메서드
사용자가 추적에 옵트인했음을 나타냅니다. 사용자가 추적 및 데이터 수집에 명시적으로 동의할 때 이 메서드를 호출합니다.
서명
static trackingOptIn(): void
사용 예시
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
// User has opted in to tracking
NativeSingular.trackingOptIn();
import { Singular } from 'singular-react-native';
// User has opted in to tracking
Singular.trackingOptIn();
trackingUnder13
Singular.trackingUnder13 메서드
사용자가 13세 미만임을 나타냅니다. 이 메서드를 호출하면 13세 미만 사용자에 대한 COPPA 및 기타 규정을 준수할 수 있습니다.
서명
static trackingUnder13(): void
사용 예시
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
// Notify Singular the user is under 13 years old
NativeSingular.trackingUnder13();
import { Singular } from 'singular-react-native';
// Notify Singular the user is under 13 years old
Singular.trackingUnder13();
unsetCustomUserId
Singular.unsetCustomUserId 메서드
이전에 설정된 사용자 지정 사용자 아이디를 제거합니다. 사용자가 로그아웃하거나 이벤트를 더 이상 현재 사용자 ID에 연결하지 않으려는 경우 이 메서드를 호출하세요.
서명
static unsetCustomUserId(): void
사용 예시
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
// Clear custom user ID when user logs out
NativeSingular.unsetCustomUserId();
import { Singular } from 'singular-react-native';
// Clear custom user ID when user logs out
Singular.unsetCustomUserId();
unsetGlobalProperty
Singular.unsetGlobalProperty 메서드
이전에 설정된 전역 속성을 제거합니다. 특정 글로벌 프로퍼티를 더 이상 이벤트와 함께 전송하지 않으려면 이 메서드를 호출하세요.
서명
static unsetGlobalProperty(key: string): void
사용 예시
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/jsNativeSingular';
// Remove a global property
NativeSingular.unsetGlobalProperty('user_tier');
import { Singular } from 'singular-react-native';
// Remove a global property
Singular.unsetGlobalProperty('user_tier');