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/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';

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/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';

const config: SingularConfig = {
  apikey: 'YOUR_API_KEY',
  secret: 'YOUR_SECRET',
  brandedDomains: ['yourcompany.com', 'go.yourcompany.com']
};

clipboardAttribution

SingularConfig.clipboardAttribution プロパティ

iOSのクリップボードアトリビューションを有効にします。有効にすると、SDKはクリップボードのアトリビューションデータをチェックします。これはwithClipboardAttribution()メソッドを使用して有効にします。

シグネチャ

clipboardAttribution: boolean

使用例

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';

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

collectOAID

SingularConfig.collectOAID プロパティ

AndroidのOAID(Open Anonymous Device Identifier)収集を有効にします。 これは主に、Google Playサービスが利用できない中国でのトラッキングに使用されます。デフォルト値はfalseです。

シグネチャ

collectOAID: boolean

使用例

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';

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

conversionValueUpdatedHandler

SingularConfig.conversionValueUpdatedHandler プロパティ

SKAdNetworkのコンバージョン値が更新されたときに呼び出されるコールバックハンドラを設定します。これはiOSのコンバージョン値の変更をトラッキングするのに便利です。

シグネチャ

conversionValueUpdatedHandler: (conversionValue: number) => void

使用例

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

const emitter = new NativeEventEmitter(NativeSingular);

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

conversionValuesUpdatedHandler

SingularConfig.conversionValuesUpdatedHandler プロパティ

SKAdNetwork 4.0のコンバージョン値が更新されたときに呼び出されるコールバックハンドラを設定します。このコールバックは、iOS 16.1+のfine値、coarse値、ロックステータスを受け取ります。

シグネチャ

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

使用例

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

const emitter = new NativeEventEmitter(NativeSingular);

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

customSdid

SingularConfig.customSdid プロパティ

カスタムSDID(Singular Device ID)を設定します。これにより、Singularによって生成されたものを使用する代わりに、独自のデバイス識別子を提供することができます。

シグネチャ

customSdid: string

使用例

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
import { NativeEventEmitter } from 'react-native';

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

const emitter = new NativeEventEmitter(NativeSingular);

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

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

customUserId

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/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';

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

ddlTimeoutSec

SingularConfig.ddlTimeoutSec プロパティ

新規インストール後、Singularがディファードディープリンクを解決してsingularLinkHandlerを呼び出せる時間を設定します。デフォルトは60秒です。オンボーディングが長くユーザーがディープリンク先の画面に到達するまで時間がかかる場合は値を大きくし、古いディファードリンクでルーティングするより破棄したい場合は小さくしてください。

Android専用です。 iOSではwithDDLTimeoutInSec()はメッセージを出力するだけで、構成は変更されません。iOSでの相当機能はランタイムメソッドSingular.setDeferredDeepLinkTimeout()です。0以下の値は無視され、デフォルトの60秒が維持されます。

シグネチャ

ddlTimeoutSec: number

使用例

New ArchitectureOld Architecture
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';

const config: SingularConfig = {
  apikey: 'API_KEY',
  secret: 'SECRET',
  ddlTimeoutSec: 120 // seconds
};

deviceAttributionCallbackHandler

BETA機能- デバイスアトリビューションデータが利用可能になったときに呼び出されるコールバック関数を設定します。

SingularConfig.deviceAttributionCallbackHandler プロパティ

デバイスアトリビューションデータが利用可能になったときに呼び出されるコールバックハンドラを設定します。これにより、アトリビューションデータが解決されるとすぐにアクセスできるようになります。

値のあるフィールドのみが含まれるため、読み取る前にキーの有無を確認してください。ほとんどのインストールでは一部のフィールドのみが返され、どのフィールドが含まれるかは Singular が一致させたタッチポイントによって異なります。

キー 備考
network string コールバックが呼び出されるときは常に含まれます。タッチポイントが一致しなかった場合は "Organic" です。
campaign_id string タッチポイントが提供する場合に含まれます。
campaign_name string タッチポイントが提供する場合に含まれます。
subcampaign_id string タッチポイントが提供する場合に含まれます。すべてのソースで提供されるわけではありません。
subcampaign_name string タッチポイントが提供する場合に含まれます。すべてのソースで提供されるわけではありません。
creative_id string タッチポイントが提供する場合に含まれます。すべてのソースで提供されるわけではありません。
creative_name string タッチポイントが提供する場合に含まれます。すべてのソースで提供されるわけではありません。
passthrough string リンクにパススルー値が付与されている場合に含まれます。
match_type string タッチポイントが提供する場合に含まれます。値の一覧が必要な場合は Singular にお問い合わせください。
click_timestamp number タッチポイントが提供する場合に含まれます。エポックマイクロ秒で、秒に変換するには 1,000,000 で割ってください。

シグネチャ

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

使用例

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
import { NativeEventEmitter } from 'react-native';

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

const emitter = new NativeEventEmitter(NativeSingular);

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

didSetSdidCallback

- カスタム 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/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
import { NativeEventEmitter } from 'react-native';

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

const emitter = new NativeEventEmitter(NativeSingular);

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

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

enableLogging

SingularConfig.enableLogging プロパティ

デバッグ目的でSDKロギングを有効にします。これは開発中やトラブルシューティング中に便利です。本番ビルドではロギングを無効にすることを推奨します。デフォルト値はfalseです。

プラットフォーム: Android および iOS。iOS 対応は React Native SDK 4.3.0 で追加されました。それ以前のバージョンでは iOS でこのプロパティは無視されていました。詳細度を制御するには logLevel と併用してください。

シグネチャ

enableLogging: boolean

使用例

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';

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

enableOdmWithTimeoutInterval

SingularConfig.enableOdmWithTimeoutInterval プロパティ

GoogleのOn-Device Measurement(ODM)を有効にし、最初のセッションを送信する前にGoogleのアトリビューショントークンを待機する秒数を設定します。デフォルトは-1で、ODMは無効です。Google Ads iOS Integrated Conversion Measurement(ICM)に必要です。

iOS専用で、最初のセッションが遅延します。 SDKはGoogleがアトリビューショントークンを返すか設定した秒数が経過するまでセッションをブロックするため、ディープリンクのコールバックが最大でその秒数だけ遅延します。ODMにはGoogleのODM SDK、-ObjCリンカーフラグ、React Native SDK v3.9.0以降も必要です。後から追加するのではなく、初回の統合時に設定してください。

シグネチャ

enableOdmWithTimeoutInterval: number

使用例

New ArchitectureOld Architecture
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';

const config: SingularConfig = {
  apikey: 'API_KEY',
  secret: 'SECRET',
  enableOdmWithTimeoutInterval: 10 // seconds
};

espDomains

SingularConfig.espDomains プロパティ

EメールアトリビューションのESP(Eメールサービスプロバイダ)ドメインを設定します。 これにより、どのEメールドメインをアトリビューショントラッキングの対象とするかを指定できます。

シグネチャ

espDomains: Array<string>

使用例

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';

const config: SingularConfig = {
  apikey: 'API_KEY',
  secret: 'SECRET',
  espDomains: ['mailchimp.com', 'sendgrid.net', 'campaign-monitor.com']
};

facebookAppId

SingularConfig.facebookAppId プロパティ

Facebookアトリビューション統合用のFacebookアプリIDを設定します。これにより、SDKがFacebookキャンペーンのアトリビューションをトラッキングできるようになります。

署名

facebookAppId: string

使用例

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';

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

globalProperties

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/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';

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

limitAdvertisingIdentifiers

SingularConfig.limitAdvertisingIdentifiers プロパティ

このオプションは、SDKがトラッキングのためにデバイス識別子を収集し使用する方法に影響します。デフォルト値はfalseです。

シグネチャ

limitAdvertisingIdentifiers: boolean

使用例

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';

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

limitDataSharing

SingularConfig.limitDataSharing プロパティ

初期化時のデータ共有制限ステータスを設定します。ユーザーの同意やプライバシー要件に基づいてデータ共有を制限する場合に使用します。デフォルト値はnull。

シグネチャ

limitDataSharing: boolean | null

使用例

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';

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

logLevel

SingularConfig.logLevel プロパティ

SDKのログ出力の詳細度を設定します。enableLoggingtrueの場合にのみ有効です。値はAndroidのandroid.util.Log標準定数で、数値が小さいほど詳細になります。2 VERBOSE、3 DEBUG、4 INFO、5 WARN、6 ERROR、7 ASSERT。デフォルトは6(ERROR)です。

4.3.0 で iOS 対応が追加されました。 以前のバージョンでは、iOS で logLevelenableLogging のどちらも無視されていました。4.3.0 以降、iOS ブリッジは Android 形式の値をネイティブ iOS のログレベルにマッピングします: 2 Verbose、3 Debug、4 Info、5 Warning、6 Error、7 はロギングを無効にします。負の値を含むそれ以外の値は Error にフォールバックします。

範囲の上限が異なる点にご注意ください:Android では 7 は ASSERT ですが、iOS ではロギングが完全に無効になります。

シグネチャ

logLevel: number

使用例

New ArchitectureOld Architecture
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';

const config: SingularConfig = {
  apikey: 'API_KEY',
  secret: 'SECRET',
  enableLogging: true,
  logLevel: 3 // DEBUG
};

manualSkanConversionManagement

SingularConfig.manualSkanConversionManagement プロパティ

SKAdNetworkのコンバージョン値の手動管理を有効にする。有効にすると、コンバージョン値の更新は手動で行います。デフォルト値はfalse。

シグネチャ

manualSkanConversionManagement: boolean

使用例

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';

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

pushNotificationsLinkPaths

SingularConfig.pushNotificationsLinkPaths プロパティ

プッシュ通知ペイロードからディープリンクを抽出するためのカスタムパスを構成します。これにより、通知ペイロードのどこにディープリンクがあるかを指定できます。

シグネチャ

pushNotificationsLinkPaths: Array<Array<string>>

使用例

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';

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

sdidReceivedCallback

- 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/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
import { NativeEventEmitter } from 'react-native';

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

const emitter = new NativeEventEmitter(NativeSingular);

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

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

secret

SingularConfig.secret プロパティ

あなたのSingular SDKの秘密。これは設定の初期化時に設定されなければならない必須プロパティです。

署名

secret: string

使用例

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
import { NativeEventEmitter } from 'react-native';

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

sessionTimeout

SingularConfig.sessionTimeout プロパティ

セッションタイムアウトを秒単位で設定します。これは、アプリがバックグラウンドに移行した後、ユーザーセッションが継続する時間を決定します。デフォルト値は-1(デフォルトのタイムアウト60秒を使用)。

シグネチャ

sessionTimeout: number

使用例

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
import { NativeEventEmitter } from 'react-native';

const config: SingularConfig = {
  apikey: 'API_KEY',
  secret: 'SECRET',
  sessionTimeout: 120 // 2 minutes
};

shortLinkResolveTimeout

SingularConfig.shortLinkResolveTimeout プロパティ

ショートリンク解決のタイムアウトを秒単位で設定します。これは、SDKがショートリンクの解決を待つ時間を決定します。デフォルト値は10秒です。

シグネチャ

shortLinkResolveTimeout: number

使用例

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
import { NativeEventEmitter } from 'react-native';

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

singularLinkHandler

SingularConfig.singularLinkHandler プロパティ

シンギュラーリンク(ディープリンク)のコールバックハンドラを設定します。このコールバックは、ディープリンクが解決されたときに呼び出され、アプリケーションでディープリンクデータを処理できるようにします。

シグネチャ

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

使用例

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
import { NativeEventEmitter } from 'react-native';

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

const emitter = new NativeEventEmitter(NativeSingular);

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

skAdNetworkEnabled

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/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';

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

userDetails

SingularConfig.userDetails プロパティ

SDK が送信する最初のセッションに、ハッシュ化されたメールアドレスや電話番号を添付します。SingularUserDetails オブジェクトを割り当てるか、withUserDetails() ビルダーで設定してください。SDK がデバイス上で平文の値を正規化し SHA-256 でハッシュ化するため、元のメールアドレスと電話番号は送信されません。 ユーザーIDとハッシュ化 User Details の設定

対応バージョン: React Native SDK バージョン 4.3.0 以降。

シグネチャ

userDetails: SingularUserDetails

使用例

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
const config: SingularConfig = {
  apikey: 'API_KEY',
  secret: 'SECRET',
  userDetails: {
    email: 'user@example.com',
    phoneNumber: '+15551234567'
  }
};

waitForTrackingAuthorizationWithTimeoutInterval

SingularConfig.waitForTrackingAuthorizationWithTimeoutInterval プロパティ

iOSでATT(App Tracking Transparency)認可を待つためのタイムアウト間隔を設定します。SDKは、続行する前に、ユーザーがATTプロンプトに応答するまで最大この秒数まで待機します。デフォルト値は0(待機なし)です。

シグネチャ

waitForTrackingAuthorizationWithTimeoutInterval: number

使用例

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';

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

完全な構成例

総合SDKコンフィギュレーション

次の例は、複数の設定 メ ソ ッ ド を連結 し て包括的な設定を作成す る 方法を示 し ます。

完全な例

New ArchitectureOld Architecture
// TurboModule direct API (React Native 0.76+ New Architecture)
import NativeSingular from 'singular-react-native/js/NativeSingular';
import type { SingularConfig } from 'singular-react-native/js/NativeSingular';
import { NativeEventEmitter } from 'react-native';

// Create comprehensive configuration
const config: SingularConfig = {
  apikey: 'YOUR_API_KEY',
  secret: 'YOUR_SECRET',

  // Basic options
  sessionTimeout: 120,
  enableLogging: true,

  // User identification
  customUserId: 'user123456',

  // Global properties
  globalProperties: {
    app_version: {
      Key: 'app_version',
      Value: '1.2.3',
      OverrideExisting: true
    },
    user_type: {
      Key: 'user_type',
      Value: 'premium',
      OverrideExisting: true
    }
  },

  // Privacy settings
  limitDataSharing: false,

  // Email attribution
  espDomains: ['mailchimp.com', 'sendgrid.net'],

  // Facebook integration
  facebookAppId: 'YOUR_FACEBOOK_APP_ID',

  // SKAdNetwork (iOS)
  skAdNetworkEnabled: true,
  waitForTrackingAuthorizationWithTimeoutInterval: 300,

  // Push notifications
  pushNotificationsLinkPaths: [
    ['data', 'deeplink'],
    ['notification', 'data', 'url']
  ],

  // Branded domains
  brandedDomains: ['yourcompany.com', 'go.yourcompany.com'],
};

// Initialize the SDK
NativeSingular.init(config);

// Use event emitter for all callbacks/handlers
const emitter = new NativeEventEmitter(NativeSingular);

// Singular Link (deep links)
emitter.addListener('SingularLinkHandler', (params) => {
  if (params.deeplink) {
    console.log('Deep link:', params.deeplink);
    // Handle deep link navigation
  }
  if (params.passthrough) {
    console.log('Passthrough data:', params.passthrough);
  }
});

// Attribution callback
emitter.addListener('DeviceAttributionCallbackHandler', (attributionData) => {
  console.log('Attribution:', attributionData);
});

// SDID callbacks (if needed)
emitter.addListener('DidSetSdidCallback', (result) => {
  console.log('SDID set:', result);
});
emitter.addListener('SdidReceivedCallback', (result) => {
  console.log('SDID received:', result);
});