Optimizely アプリSDKの処理実行順序 | Optimizely 正規代理店イー・エージェンシー

Optimizely X ヘルプ

  • 最終更新日:2017年02月23日

Optimizely アプリSDKの処理実行順序

この記事の概要:

  • どのようにOptimizely SDKがアプリ内で実行されるか理解する。
  • テストが実行される際の処理順序を理解する。

アプリSDKの処理実行順序

下記の図は、Optimizelyによりテストがどのように実効化されるか示したものです。

Optimizely アプリSDKの処理実行順序

①. アプリが起動すると、Optimizely SDKは初期化されます。
   ↓
②. OptimizelyはJSONファイルをダウンロードします。このデータファイル(JSON)ファイルにはすべてのテストデータが含まれています。
   ↓
③. ②のデータファイルダウンロードには2秒のタイムアウトが課せられています。
もしデータファイルがダウンロードできない場合、キャッシュされたデータが使われます。
   ↓
④. もしダウンロードもできず、キャッシュされたデータも見つからなかった場合はテストは実行されません。
   ↓
⑤. アプリが作動している間、Optimizelyは新しいデータファイルを2分起きに取得しに行きます。(設定により変更可能)
   ↓
⑥. ダウンロードが終了すると、それぞれのテストが実行可能か否かチェックされます。
   ↓
⑦. まず最初に、SDKはターゲティング条件に合致するかチェックします。もし合致していれば、チェックを、ユーザーの割当、バリエーション選出へと進めていきます。
   ↓
⑧. 一度、表示バリエーションが選ばれると、その情報は保存され、ユーザーは以降同じバリエーションを見続けます。
   ↓
⑨. 最終チェックとして、SDKは他テストとのコンフリクトがないか否かをチェックします。もしあれば、テストはロックされ実行されません。
   ↓
⑩. すべてのチェックを合格して、ようやくテストは実行できるようになります。

メモ:

◆ テスト同士でコンフリクトを起こした場合:
複数テストにおいて同一ビュー、変数、もしくはコードブロックを編集すると、テスト同士はコンフリクトを起こすことがあります。
この場合、テストの実行がロックされます。verboseLoggingを確認することでコンフリクトが存在するか否か確認して頂けます。

◆ テストが再実行されるタイミングで、テストの開始・停止が切り替わります:
アプリが再開、もしくはbackgroundだった状態がforegroundとなったとき、Optimizely SDKは上記のプロセスが再実行されます。(データファイルのダウンロードは除く)
そのため、その際のチェックにより、それ以前に実行されていたテストの中には停止されるものがあったり、実行されていなかったテストが開始されることがあります。

TIPS1:

refreshExperimentsを利用することで、アプリの作動中にターゲティング条件の再チェックをすることが可能です。(アプリはforegroundとなる必要はありません。)

アプリテストのステータス

さきほどの図は、どのようにテストが実効化され、「実行中」のステータスに入るかを示しています。
”ステータス”について説明します。

Optimizelyのアプリテストには、下記のような3種類のステータスがあります。

  • 一時停止中
  • 実行中
  • 無効

一時停止中:

Optimizelyダッシュボードからテストが停止された状態です。

実行中:

テストが実行中であり、訪問者に閲覧されることができる状態です。

無効:

テストが実行化に失敗した状態、もしくは他のテストとコンフリクトしロックされた状態です。

TIPS2:

iOS SDKでは、ステータスの確認に下記のAPIをご利用頂けます。

[[Optimizely sharedInstance] allExperiments]

このAPIをコールすると、OptimizelyExperimentData配列オブジェクト※1を返します。
(※1. SDKが検知している全テストを表示するオブジェクトです。)

[[Optimizely sharedInstance] visitedExperiments]

このAPIをコールすると、OptimizelyExpermentData配列オブジェクト※2を返します。
※2 全セッションを通じて、訪問者によりアクセスされた全テストを表示するオブジェクトです。)

この記事はOptimizely社提供のヘルプ記事を翻訳したものです。
How Optimizely’s SDKs Work: SDK Order of execution, experiment activation, and goals

Optimizelyのサポートに関するお問い合わせはこちらまで

コメントは受け付けていません。

ヘルプの関連記事

Optimizely X Full Stack 実行順序
投稿日: 2017年06月02日
結果画面のセグメントの種類とカスタムセグメント(Optimizely X)
投稿日: 2017年03月29日
Optimizely X カスタムコードの特性について(Optimizely X)
投稿日: 2017年03月29日
自分をテスト対象から除外する方法 オプトアウト
投稿日: 2016年10月21日
リダイレクト実験:個別URLのテスト
投稿日: 2016年09月16日

ヘルプのよく読まれている記事