React Native SDK - メソッドリファレンス
この包括的なリファレンスは、React Nativeアプリケーション用のSingular SDKで利用可能なすべてのメソッドを文書化したものです。SDKは、初期化、イベントトラッキング、収益レポート、アトリビューション、データプライバシーコンプライアンス、設定のための機能を提供します。各メソッドには説明、署名、実用的な使用例が記載されており、開発者がSingularのSDK機能をReact Nativeアプリケーションに統合するのに役立ちます。
adRevenue
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(文字列):アプリケーション内で広告が配置された場所の名前または場所識別子 (例: 'level_complete'、'main_menu')。 -
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(文字列):広告収益データの精度または正確さのレベル(例:'estimated'、'precision'、'publisher_defined')。 -
ad_placement_id(文字列):アプリケーション内の広告掲載位置の一意識別子。
使用例
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
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/js/NativeSingular';
// Clear all global properties
NativeSingular.clearGlobalProperties();
import { Singular } from 'singular-react-native';
// Clear all global properties
Singular.clearGlobalProperties();
clearUserDetails
Singular.clearUserDetails
保存されているハッシュ化 User Details を削除します。値はデバイス上に永続化されるため(iOS では Keychain、Android では暗号化ストレージ)、削除するまでアプリの起動をまたいで保持されます。ログアウト時、またはユーザーが同意を撤回したときに呼び出してください。
対応バージョン: React Native SDK バージョン 4.3.0 以降。このメソッドは init() より前では効果がなく、ネイティブ SDK はエラーを記録して処理を返します。また、React Native から保存済みの User Details を削除する唯一の方法です。setUserDetails() に空のオブジェクトを渡しても削除されません。
シグネチャ
static clearUserDetails(): void
使用例
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
// Remove stored user details on logout
NativeSingular.clearUserDetails();import { Singular } from 'singular-react-native';
// Remove stored user details on logout
Singular.clearUserDetails();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/js/NativeSingular';
// 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/js/NativeSingular';
// 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/js/NativeSingular';
// 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/js/NativeSingular';
// 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メソッド
指定した名前と追加のカスタム属性を持つイベントを追跡します。 詳細なパラメータを持つユーザーアクションを追跡するには、このメソッドを使用します。
シグネチャ
static eventWithArgs(
eventName: string,
args: Record<string, any>
): void
使用例
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
// 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(): SerializableObject
使用例
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
// Get all global properties
NativeSingular.getGlobalProperties();
import { Singular } from 'singular-react-native';
// Get all global properties
Singular.getGlobalProperties();
getLimitDataSharing
Singular.getLimitDataSharingメソッド
現在のデータ共有制限ステータスを取得します。このメソッドは、データ共有が現在制限されているかどうかを示すブール値に解決するプロミスを返します。
シグネチャ
static getLimitDataSharing(): boolean
使用例
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
// Check if data sharing is limited
NativeSingular.getLimitDataSharing();
import { Singular } from 'singular-react-native';
// Check if data sharing is limited
Singular.getLimitDataSharing();
handlePushNotification
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/js/NativeSingular';
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);
}
inAppPurchase
Singular.inAppPurchaseメソッド
Singularに収益を報告し、バックエンドで領収書の検証を行います(有効な場合)。購入オブジェクトはSingularIOSPurchaseまたはSingularAndroidPurchaseタイプでなければなりません。
シグネチャ
static inAppPurchase(
eventName: string,
purchase: SingularIOSPurchase | SingularAndroidPurchase
): void
SingularIOSPurchase Purchaseクラスのコンストラクタ
constructor(
revenue: number,
currency: string,
productId: string,
transactionId: string,
receipt: string
)
SingularAndroidPurchase Purchase クラスコンストラクタ
constructor(
revenue: number,
currency: string,
receipt: string,
signature: string
)
使用例
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
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 Purchaseクラスのコンストラクタ
constructor(
revenue: number,
currency: string,
productId: string,
transactionId: string,
receipt: string
)
SingularAndroidPurchase Purchase クラスコンストラクタ
constructor(
revenue: number,
currency: string,
receipt: string,
signature: string
)
使用例
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
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/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
// 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(): boolean
使用例
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
// 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/js/NativeSingular';
// 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/js/NativeSingular';
// 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/js/NativeSingular';
// 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/js/NativeSingular';
// 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/js/NativeSingular';
// 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');
setDeferredDeepLinkTimeout
Singular.setDeferredDeepLinkTimeoutメソッド
新規インストール後、Singularがディファードディープリンクを解決してsingularLinkHandlerを呼び出せる時間を設定します。デフォルトは60秒です。
iOS専用で、Singular.init()より前に呼び出す必要があります。 この時間は最初のセッション送信時に評価されるため、初期化後に呼び出してもそのインストールには影響しません。Androidではこのメソッドはメッセージを出力するだけで何もしないため、ddlTimeoutSec構成プロパティを使用してください。5秒未満の値は無視され、以前の値が維持されます。
シグネチャ
static setDeferredDeepLinkTimeout(duration: number): void
使用例
import NativeSingular from 'singular-react-native/js/NativeSingular';
// Call before initializing the SDK
NativeSingular.setDeferredDeepLinkTimeout(120);
import { Singular, SingularConfig } from 'singular-react-native';
// Call before initializing the SDK
Singular.setDeferredDeepLinkTimeout(120);
const config = new SingularConfig('API_KEY', 'SECRET');
Singular.init(config);
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/js/NativeSingular';
// 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
): boolean
使用例
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
// 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/js/NativeSingular';
// 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);
setUserDetails
Singular.setUserDetails
初期化後に、ハッシュ化されたメールアドレスや電話番号を Singular に送信します。SDK がデバイス上で平文の値を正規化し SHA-256 でハッシュ化するため、元のメールアドレスと電話番号は送信されません。代わりに最初のセッションに User Details を添付する場合は、ユーザーIDとハッシュ化 User Details の設定 を参照して init() より前に SingularConfig.userDetails を設定してください。
対応バージョン: React Native SDK バージョン 4.3.0 以降。このメソッドは init() より前では効果がなく、ネイティブ SDK はエラーを記録して処理を返します。null または未指定の引数は JavaScript レイヤーで拒否されるため、保存済みの値を削除するには clearUserDetails() を使用してください。
シグネチャ
static setUserDetails(userDetails: SingularUserDetails): void
使用例
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
// Cleartext values, hashed on the device by the SDK
NativeSingular.setUserDetails({
email: 'user@example.com',
phoneNumber: '+15551234567'
});
// Or supply your own SHA-256 hashes
NativeSingular.setUserDetails({
emailSTD: 'b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514',
phoneE164: '8a59780bb8cd2ba022bfa5ba2ea3b6e07af17a7d8b30c1f9b3390e36f69019e4'
});import { Singular, SingularUserDetails } from 'singular-react-native';
// Cleartext values, hashed on the device by the SDK
const userDetails = new SingularUserDetails()
.setEmail('user@example.com')
.setPhoneNumber('+15551234567');
Singular.setUserDetails(userDetails);
// Or supply your own SHA-256 hashes
const hashed = new SingularUserDetails()
.setEmailSTD('b4c9a289323b21a01c3e940f150eb9b8c542587f1abfd8f0e1cc1ffc5e475514')
.setPhoneE164('8a59780bb8cd2ba022bfa5ba2ea3b6e07af17a7d8b30c1f9b3390e36f69019e4');
Singular.setUserDetails(hashed);setUninstallToken
Singular.setUninstallTokenメソッド
アンインストール追跡用にプッシュ通知トークンを登録します。このメソッドは、アンインストール追跡を有効にするために、プッシュ通知トークンで呼び出される必要があります。
シグネチャ
static setUninstallToken(token: string): void
使用例
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
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(): number | null
使用例
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import { Platform } from 'react-native';
// Get the current SKAdNetwork conversion value (iOS only)
if (Platform.OS === 'ios') {
const conversionValue = 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 = 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/js/NativeSingular';
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): boolean
使用例
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import { Platform } from 'react-native';
// Update the SKAdNetwork conversion value (iOS only)
if (Platform.OS === 'ios') {
const success = 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 = 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/js/NativeSingular';
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/js/NativeSingular';
// 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/js/NativeSingular';
// 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/js/NativeSingular';
// 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を削除します。ユーザがログアウトしたとき、または現在のユーザIDにイベントを関連付けたくなくなったときにこのメソッドを呼び出します。
シグネチャ
static unsetCustomUserId(): void
使用例
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
// 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/js/NativeSingular';
// Remove a global property
NativeSingular.unsetGlobalProperty('user_tier');
import { Singular } from 'singular-react-native';
// Remove a global property
Singular.unsetGlobalProperty('user_tier');