PageSense iOS SDKの初期化

PageSense iOS SDKの初期化

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

開始する前に  

PageSenseClientは、テストの有効化、バリエーションの取得、目標の追跡など、すべての処理の中核となるインターフェースです。これらの機能を使用するには、SDKを初期化する必要があります。
初期化すると、PageSenseサーバーからプロジェクトの設定が取得され、デバイス上にローカルでキャッシュされます。対象は次のとおりです。
  • プロジェクトに設定されているすべてのフルスタックテスト。
  • 各テストの現在のステータス。
  • トラフィックの割り当てとオーディエンスのターゲティングルール。

メソッド  

  1. swift
  2. import PageSenseFramework
  3. PageSense.shared.createNewPageSenseClient(
  4.     sdkAccountIDForDC: String,
  5.     sdkKey: String,
  6.     projectname: String,
  7.     sdkOptions:PageSenseSDKOptions
  8. ) {client in
  9.     ifclient != nil {
  10.         print('PageSense SDKの初期化に成功しました')
  11.     } else {
  12.         print('初期化に失敗しました')
  13.     }
  14. }
  15.  

パラメーター  

パラメーター
種類
説明
sdkAccountIDForDC
String
PageSenseアカウントの識別子です。
sdkKey
String
環境のSDKキーです。フルスタックプロジェクトの設定ページの[SDKの設定]で確認できます。
projectname
String
テストが含まれているPageSenseプロジェクトです。
sdkOptions
PageSenseSDKOptions
任意です。ログ記録、ポーリング間隔、その他のSDKの動作を設定します。

初期化中の処理  

createNewPageSenseClient()が呼び出されると、次の処理が行われます。
  1. SDKからPageSenseにネットワーク要求が送信され、プロジェクトの設定が取得されます。
  2. 設定が解析され、デバイス上にローカルでキャッシュされます。
  3. PageSenseClientインスタンスが作成され、完了ハンドラーを通じて返されます。
これ以降、クライアントでテストの評価とイベントの追跡を実行できるようになります。
認証情報が正しくない、ネットワークに接続できない、プロジェクトの設定がないなどの理由で初期化に失敗した場合、返されるクライアントはnilになります。

使用例  

  1. swift
  2. import PageSenseFramework
  3. // クライアントをクラス変数として宣言する
  4. varpageSenseClient: PageSenseClient?
  5. // SDKオプションを作成する
  6. letpageSenseSDKOptions = PageSenseSDKOptions()
  7. // SDKを初期化する
  8. PageSense.shared.createNewPageSenseClient(
  9.     sdkAccountIDForDC: 'YOUR_ACCOUNT_ID',
  10.     sdkKey: 'YOUR_SDK_KEY',
  11.     projectname: 'YOUR_PROJECT_NAME',
  12.     sdkOptions:pageSenseSDKOptions
  13. ) {client in
  14.     guard letclient = client else {
  15.         print('PageSenseClientの初期化に失敗しました')
  16.         return
  17.     }
  18.     self.pageSenseClient = client
  19.     print('PageSenseClientが正常に初期化されました')
  20. }

即時初期化と遅延初期化

即時初期化(推奨)
遅延初期化
即時初期化(推奨)
ユーザーが操作する前に、アプリの起動時に初期化します。これにより、最初の画面が読み込まれた時点でテスト設定を利用できます。ユーザーは開始時から一貫してグループに振り分けられます。
初期画面やアプリの主要な動作にテストが影響する場合に使用します。

遅延初期化
特定の機能や画面で必要になった場合にのみ初期化します。起動時の負荷は軽減されますが、設定の取得に遅延が生じる可能性があります。
テストがアプリ内の特定のセクションに限定されており、ネットワーク呼び出しを遅らせたい場合に使用します。
ほとんどのアプリでは、即時初期化が適切です。早い段階で初期化することで、SDKの準備完了とテストの評価の間で競合状態が発生するのを防げます。


スレッドセーフティ

SDKはマルチスレッド環境でも安全に使用できますが、次の点に注意してください。
  • 負荷の高いSDK処理をメインスレッドで実行しないでください。
  • 初期化されたクライアントは完了ハンドラーで受け取ります。UIの描画がブロックされることはありません。
  • 再初期化せず、PageSenseClientインスタンスをアプリ全体で保存して再利用してください。
  • バリエーションの結果に基づくUIの更新は、必ずメインスレッドで行ってください。
  1. swift
  2. DispatchQueue.main.async {
  3.     // 割り当てられたバリエーションに基づいてUIの変更を適用する
  4. }
留意事項
  • createNewPageSenseClient()は非同期です。結果は完了ハンドラー内で処理してください。
  • AppDelegate、SceneDelegate、またはSwiftUI Appのイニシャライザーで初期化してください。
  • クライアントがnilの場合に備えて必ずガード処理を行い、初期化が成功したと想定しないでください。



このドキュメントは、すべての手順を分かりやすく進められるように作成されています。さらにサポートが必要な場合やご質問がある場合は、support@zohopagesense.com - までお気軽にお問い合わせください。いつでもお手伝いいたします!