概要
PageSense SDKには、初期化時に設定できる設定オプションがあります。これにより、ログ出力の動作や、SDKが更新されたプロジェクト設定を取得する頻度を制御できます。これらのオプションはネイティブモジュールで設定し、AndroidとiOSの両方に適用されます。
ポーリング間隔
ポーリング間隔では、SDKがPageSenseサーバーから更新されたプロジェクト設定を取得する頻度を制御します。これにより、アプリケーションを再起動せずに、実験や目標の設定変更をどの程度すばやくアプリケーションに反映するかが決まります。
初期設定の動作
ポーリング間隔を設定しない場合、SDKに組み込まれている初期設定が使用されます。カスタム間隔を設定すると、この初期設定が上書きされます。
設定
ポーリング間隔は、PageSenseSDKOptionsオブジェクトで、SDKの初期化前に分単位で設定します。
Android(Kotlin)
kotlin
valpageSenseSDKOptions = PageSenseSDKOptions()
pageSenseSDKOptions.pollingInterval = 5 // 更新された設定を5分ごとに取得
iOS(Swift)
swift
letpageSenseSDKOptions = PageSenseSDKOptions()
pageSenseSDKOptions.pollingInterval = 5 // 更新された設定を5分ごとに取得
メモ
ログレベル
ログレベルでは、PageSense SDKのログの詳細度を制御します。適切なログレベルを設定すると、開発時のデバッグに役立ち、本番環境で不要なログを減らせます。
使用可能なログレベル
|
ログレベル
|
説明
|
|
TRACE
|
最も詳細です。内部状態の遷移を含むSDKのすべての動作を記録します。詳細なデバッグにのみ使用してください。
|
|
DEBUG
|
開発や連携時に役立つ詳細な診断情報を記録します。開発ビルドでの使用をおすすめします。
|
|
INFO
|
SDKが想定どおりに動作していることを確認するための一般的な動作メッセージを記録します。
|
|
WARN
|
SDKの動作を妨げないものの、問題になる可能性がある状況を記録します。
|
|
ERROR
|
SDKの特定の処理が失敗する可能性があるエラーイベントを記録します。
|
|
SEVERE
|
重大な障害のみを記録します。最も簡潔なログレベルです。本番ビルドでの使用をおすすめします。
|
設定
ログレベルは、PageSenseSDKOptionsオブジェクトで、SDKの初期化前に設定します。
Android(Kotlin)
kotlin
valpageSenseSDKOptions = PageSenseSDKOptions()
pageSenseSDKOptions.logLevel = LogLevel.DEBUG
iOS(Swift)
swift
letpageSenseSDKOptions = PageSenseSDKOptions()
pageSenseSDKOptions.logLevel = .DEBUG
メモ
-
開発中はDEBUGを使用すると、実験の有効化、パターンの割り当て、目標の追跡を確認するために役立つ詳細なログを取得できます。
-
本番環境では、ログ出力を最小限に抑えるためにSEVEREまたはERRORを使用します。
-
ログレベルはSDKの機能には影響しません。ログ出力に書き込まれる内容のみが変わります。
初期化時のSDKオプションの適用
pollingIntervalとlogLevelの両方が、SDKの初期化呼び出しに渡されるPageSenseSDKOptionsオブジェクトに設定されます。この設定は、PageSenseClientインスタンスの有効期間中適用されます。
Android(Kotlin)
- kotlin
- valpageSenseSDKOptions = PageSenseSDKOptions()
- pageSenseSDKOptions.logLevel = LogLevel.DEBUG
- pageSenseSDKOptions.pollingInterval = 5
- PageSenseClientBuilder.createNewPageSenseClient(
- accountId,
- sdkKey,
- projectName,
- pageSenseSDKOptions,
- object: ProjectSettingsCallBack {
- override fun onFailure(message: String?,code: Int?) {
- println('SDKの初期化に失敗しました:$message')
- promise.resolve(false)
- }
- override fun onSuccess(data: PageSenseClient?) {
- if (data!= null) {
- client = data
- isInitialized = true
- println('SDKが正常に初期化されました')
- promise.resolve(true)
- } else {
- promise.resolve(false)
- }
- }
- }
- )
iOS(Swift)
- swift
- letpageSenseSDKOptions = PageSenseSDKOptions()
- pageSenseSDKOptions.logLevel = .DEBUG
- pageSenseSDKOptions.pollingInterval = 5
- PageSense.shared.createNewPageSenseClient(
- sdkAccountIDForDC:accountId,
- sdkKey:sdkKey,
- projectname:projectName,
- sdkOptions:pageSenseSDKOptions
- ) {pagesenseclient in
- guard letclient = pagesenseclient else {
- print('PageSenseClient initialization failed')
- resolve(false)
- return
- }
- self.client = client
- self.isInitialized = true
- print('PageSenseClient initialized successfully')
- resolve(true)
- }
ベストプラクティス
-
開発および組み込み時には、logLevelをDEBUGに設定すると、実験の有効化、バリエーションの割り当て、目標トラッキングに関する問題の診断に役立ちます。
-
本番環境にリリースする前に、logLevelをSEVEREまたはERRORに設定して、過剰なログ出力を避けてください。
-
アプリケーションで許容できるネットワーク通信量と実験設定の最新性のバランスを考慮して、ポーリング間隔を設定してください。
-
PageSenseSDKOptionsは、初期化関数を呼び出す前に設定する必要があります。初期化後にオプションを変更しても反映されません。