動的設定と動的更新アドレス¶
このドキュメントでは、React Native SDK のリモート設定、能動的更新、および動的な更新レポートアドレス機能について説明します。
動的設定¶
前提条件¶
FTMobileConfig.remoteConfiguration = true の場合にのみ、動的設定関連の機能が有効になります。
リモート設定の更新を監視する¶
リモート設定を有効にすると、SDK が自動的にトリガーするリモート設定の更新結果を監視できます。
/**
* ネイティブ SDK が自動的にトリガーするリモート設定の更新を監視します。
* 能動的な同期動的設定メソッドを呼び出した Promise の戻り値は、このイベントではコールバックされません。
*/
addRemoteConfigListener(
listener: (result: FTRemoteConfigResult) => void,
): EmitterSubscription;
使用例¶
能動的に動的設定を同期する¶
FTMobileReactNative を使用して、能動的に動的設定を同期します。自動更新が要件を満たさない場合、能動的な呼び出しによって更新タイミングを調整できます。
/**
* リモート設定を能動的に更新します。呼び出し頻度は FTMobileConfig.remoteConfigMiniUpdateInterval の影響を受けます。
*/
updateRemoteConfig(): Promise<FTRemoteConfigResult>;
/**
* リモート設定を能動的に更新します。グローバル最小更新間隔設定を無視できます。
* 前回の更新からの経過時間が指定された間隔より短い場合、更新操作は実行されません。
* @param interval 最小更新間隔、単位:秒
* @param rules リモート設定の上書きルール
*/
updateRemoteConfigWithMiniUpdateInterval(
interval: number,
rules?: Array<FTRemoteConfigOverrideRule>,
): Promise<FTRemoteConfigResult>;
使用例¶
// 基本的な能動的同期更新(グローバル最小間隔の制限を受ける)
FTMobileReactNative.updateRemoteConfig();
const rule: FTRemoteConfigOverrideRule = {
id: 'test_rule',
match: {
customKeys: {
custom_key: 'custom_value',
vip_user_id: {
contains: 'test_user_1001',
},
},
},
override: {
rumSampleRate: 1,
traceSampleRate: 1,
logSampleRate: 1,
logLevelFilters: ['info', 'warn'],
},
};
const result = await FTMobileReactNative.updateRemoteConfigWithMiniUpdateInterval(0, [rule]);
console.log('updateRemoteConfigWithMiniUpdateInterval result ', result);
FTMobileReactNative.updateRemoteConfigWithMiniUpdateInterval(0, null);
customKeys の値が通常の値の場合は完全一致として処理され、値が { contains: value } の場合は部分一致として処理されます。
contains は主に固定キーで特定ユーザーを一致させるシナリオに適用されます。例:vip_user_id。サーバー側の対応フィールドが以下のいずれかの形式を返す場合、いずれも一致します:
- 単一文字列、例:
"test_user_1001" - JSON 配列、例:
["test_user_1001", "test_user_1002"] - JSON 文字列配列、例:
"[\"test_user_1001\",\"test_user_1002\"]"
動的更新レポートアドレス¶
FTMobileReactNative を使用して、SDK 実行時にデータレポートアドレスを動的に切り替えます。設定が成功すると、以降のデータは新しいアドレスに従ってアップロードを続けます。
React Native SDK >= 0.4.1 でサポートされています。
setDatakitURLとsetDatawayURLはどちらか一方を使用してください。setDatawayURLを使用する場合は、新しいclientTokenを同時に渡す必要があります。
使用シナリオの説明¶
FTMobileConfig は初期化時に datakitUrl または datawayUrl を渡さないことをサポートしています。このシナリオでは、SDK は最初にデータ収集を実行しますが、アップロードは行いません。
その後、FTMobileReactNative.setDatakitURL(...) または FTMobileReactNative.setDatawayURL(..., ...) を呼び出して動的にレポートアドレスを設定すると、SDK はローカルキャッシュを消費し、データレポートを実行し始めます。
注意点として、アップロードアドレスが設定されていない間は、収集されたデータは引き続きローカルキャッシュの上限の制限を受けます。キャッシュ上限は主に以下の設定によって影響を受けます:
FTLogConfig.logCacheLimitCountFTRUMConfig.rumCacheLimitCountFTMobileConfig.enableLimitWithDbSizeに対応するデータベースキャッシュ上限
キャッシュが上限に達した場合、超過分のデータは破棄される可能性があります。そのため、このモードではできるだけ早くアップロードアドレスを補完するか、ビジネスシナリオに合わせてキャッシュ制限を適切に設定することをお勧めします。
/**
* 動的に Datakit レポートアドレスを設定します。設定が成功すると、SDK は新しい Datakit アドレスにデータをアップロードし続けます。
*/
setDatakitURL(datakitUrl: string): Promise<void>;
/**
* 動的に Dataway レポートアドレスと clientToken を設定します。設定が成功すると、SDK は新しい Dataway アドレスにデータをアップロードし続けます。
*/
setDatawayURL(datawayUrl: string, clientToken: string): Promise<void>;
使用例¶
await FTMobileReactNative.setDatakitURL('http://10.0.0.1:9529');
await FTMobileReactNative.setDatawayURL(
'https://open.dataway.url',
'your-client-token',
);
| メソッド名 | 型 | 必須 | 意味 |
|---|---|---|---|
| setDatakitURL | string | 必須 | 動的に Datakit レポートアドレスを設定します。設定が成功すると、SDK は新しい Datakit アドレスにデータをアップロードし続けます。 |
| setDatawayURL | string, string | 必須 | 動的に Dataway レポートアドレスと clientToken を設定します。設定が成功すると、SDK は新しい Dataway アドレスにデータをアップロードし続けます。 |