(57)【要約】      （修正有）【課題】リフレクションベースのプログラミング言語によるネイティブアプリケーションのための最適化の方法を提供する。【解決手段】ネイティブアプリケーションは、ディスプレイとプロセッサを含むコンピューティングデバイス上で実行可能であり、コンピューティングデバイスのディスプレイにユーザインターフェイスを表示する。方法は、ネイティブアプリケーションにジェネリックなコードを適用して、コンピューティングデバイスの外部のサーバと通信するよう修正されたネイティブアプリケーションを制作するステップと、サーバから修正されたネイティブアプリケーションをリモートで構成して、修正されたネイティブアプリケーションによって生成されるユーザインターフェイスのデータ、機能またはコンテンツを変更することができるように実行時に修正されたネイティブアプリケーションの構造および挙動を調査および修正するステップとを含む。【選択図】図１
2019215895.tif 000002
【特許請求の範囲】
【請求項１】
リフレクションベースのプログラミング言語でそのソフトウェアが書かれているネイティブアプリケーションのための最適化の方法であって、前記ネイティブアプリケーションはディスプレイおよびプロセッサを含むコンピューティングデバイス上で実行可能であり、前記ネイティブアプリケーションは前記コンピューティングデバイスの前記ディスプレイにユーザインターフェイスを表示するように構成され、前記方法は、
（ｉ）前記ネイティブアプリケーションにジェネリックなコードを適用して、前記コンピューティングデバイスの外部のサーバと通信するよう構成される修正されたネイティブアプリケーションを制作するステップと、
（ｉｉ）前記サーバから前記修正されたネイティブアプリケーションをリモートで構成して、前記修正されたネイティブアプリケーションによって生成されるユーザインターフェイスのデータ、機能またはコンテンツの１つ以上を変更することができるように実行時に前記修正されたネイティブアプリケーションの構造および挙動を調査および修正するステップとを含む、方法。
【請求項２】
前記ジェネリックなコードは、前記修正されたネイティブアプリケーションの最適化を可能にするよう前記ネイティブアプリケーションのソースコードに適用されるために必要とされる唯一のコードである、請求項１に記載の方法。
【請求項３】
前記ジェネリックなコードは、前記ネイティブアプリケーションの複数バージョンおよびインスタンス内において前記コードを変更することなしに、多数の種類の最適化が最適化システムのユーザインターフェイスにおいてリモートで構成されることを可能にする、請求項１または２に記載の方法。
【請求項４】
実行時に前記修正されたネイティブアプリケーションの前記構造および挙動を修正することは、前記修正されたネイティブアプリケーションの値、メタデータ、プロパティ、イメージおよび機能のうちの１つ以上を修正することを含む、任意の先行する請求項に記載の方法。
【請求項５】
前記コンピューティングデバイスは、モバイルデバイス、タッチスクリーンデバイス、スマートフォン、ビデオゲーム機、コンピュータ、スマートＴＶ、ＴＶセットトップボックス、またはインターネットに接続可能なデバイスである、任意の先行する請求項に記載の方法。
【請求項６】
前記コンピューティングデバイスは、インターネットに有線もしくは無線広域ネットワーク（ＷＡＮ）を介してまたは携帯電話ネットワークを介してサーバに接続可能である、任意の先行する請求項に記載の方法。
【請求項７】
最適化は、ユーザが所望のアクションを完了する確率を上げるために、オンザフライで各ユーザに対して視覚的エクスペリエンスを適合させることを含む、任意の先行する請求項に記載の方法。
【請求項８】
所望のアクションはクリックまたは発注である、請求項７に記載の方法。
【請求項９】
リフレクションベースのプログラミング言語は一般的なリフレクションベースのプログラミング言語である、任意の先行する請求項に記載の方法。
【請求項１０】
前記方法は、ユーザ挙動をターゲットとするか、プロファイリングするか、または解析することにおいて使用するために、前記ユーザ／デバイスについて１つ以上の属性を収集
することをさらに含む、任意の先行する請求項に記載の方法。
【請求項１１】
前記収集された属性は、以下の：前記デバイスへの接続タイプ（例えば、２Ｇ、３Ｇ、４Ｇ、Ｗｉ−Ｆｉ）；デバイスタイプ；アプリケーションバージョン；オペレーティングシステムタイプおよびバージョン；ロケーション（例えば、座標、都市、国、大陸、郵便番号による）；インターネットサービスプロバイダ；アプリへの過去の訪問の最近度および詳細；過去のアクションの最近度および詳細；特定の製品カテゴリとの過去のインタラクションなどのようなカスタムユーザ定義の属性；ユーザが様々なロケーションからアプリを起動する機会を有する照会ソース；日付、曜日、時間による訪問の時間、およびＣＲＭデータベースなどのような他のロケーションからインポートされるデータ、のうちの１つ以上である、請求項１０に記載の方法。
【請求項１２】
キャンペーンからビジター／デバイスを、それらの属性を用いて含むかまたは排除するステップをさらに含む、請求項１０または１１に記載の方法。
【請求項１３】
他のユーザセグメント情報のためのルールとの組合せにおいて、コンテンツを、ビジター／デバイスに対して、それらの属性に従って向けるよう、セグメンテーションルールを作成するステップをさらに含む、請求項１０〜１２のいずれか１項に記載の方法。
【請求項１４】
ネイティブアプリケーションパフォーマンスは前記キャンペーン中および前記キャンペーン後にも最適化される、任意の先行する請求項に記載の方法。
【請求項１５】
変更可能なユーザインターフェイスコンテンツは：
ｉ）シンプルテキストまたはイメージブロック（バナー、ページのヘッダ）、移動、リサイズ、ハイディング、再フォーマット；
ｊ）ボタンテキスト、移動、リサイズ、再フォーマット、およびハイディング；
ｋ）「通知プッシュ」頻度およびコンテンツ；
ｌ）表示されるピクチャ（ピクチャは外部サーバに記憶され得る）；
ｍ）新たなテキストまたはイメージブロック；
ｎ）リスト＆テーブル（順序づけ、いくつの項目を表示するか）；
ｏ）前記アプリケーション内のナビケーションパス（例えば、'add to cart'は、ユー
ザをカートページに向けるか、またはさらなる選択をなすためにカテゴリページに戻るか）、および
ｐ）最後のユーザ選択に基いたナビゲーションの表示、の１つ以上を含む、任意の先行する請求項に記載の方法。
【請求項１６】
前記ネイティブアプリケーションはライブラリを含む、任意の先行する請求項に記載の方法。
【請求項１７】
前記ライブラリはすべてのアプリケーションに対して静的である、請求項１６に記載の方法。
【請求項１８】
前記ライブラリは、コンテンツジェネレータに要求を送信し、コンテンツジェネレータから応答を受信するよう構成される、請求項１６〜１７のいずれかに記載の方法。
【請求項１９】
前記ライブラリは、前記ネイティブアプリケーションに含まれるネイティブアプリケーションキャッシュと対話する、請求項１６〜１８のいずれかに記載の方法。
【請求項２０】
前記ネイティブアプリケーションキャッシュは前記外部サーバからプッシュされたコンテンツを受信するように構成される、請求項１９に記載の方法。
【請求項２１】
前記ライブラリはネイティブアプリケーションスタートでコンテンツジェネレータに対して要求をなす、請求項１６〜２０のいずれかに記載の方法。
【請求項２２】
前記ライブラリはコンテンツジェネレータに対して要求をなすよう配され、前記要求はロケーションおよびユーザ属性をパラメータで含む、請求項１６〜１８のいずれかに記載の方法。
【請求項２３】
前記ライブラリは以下のモジュール：
９）ＣＧ要求モジュール；
１０）外部アセットモジュール（イメージトランザクション）；
１１）トラッキングモジュール（アクショントラッキング、ＣＧに対して結果を送信する）；
１２）アプリケーションオブジェクト識別モジュール；
１３）ＭＶＴモジュール（代替的なコンテンツビジュアライゼーションを実現する）；
１４）パーソナライゼーションモジュール；
１５）セグメンテーションモジュール、および
１６）管理制御コンソールモジュール、の１つ以上を含む、請求項１６〜２２のいずれかに記載の方法。
【請求項２４】
前記ライブラリは、コード命令において、指定されたオブジェクトおよびプロパティのみを修正することができる、請求項１６〜２３のいずれかに記載の方法。
【請求項２５】
前記ディスプレイに表示される選択可能なボタンを、前記選択可能なボタンのための少なくとも２つの代替物の中から最適化する、請求項１〜２４のいずれかに記載の前記方法の使用。
【請求項２６】
前記ディスプレイ上で、表示された製品を、最も最近使用されたフィルタオプションに基いて、前記表示された製品のための少なくとも２つの代替物の中から最適化する、請求項１〜２４のいずれかに記載の前記方法の使用。
【請求項２７】
前記ディスプレイ上で、表示された食物製品を、最も最近見られた食物カテゴリに基いて、前記表示された食物製品のための少なくとも２つの代替物の中から最適化する、請求項１〜２４のいずれかに記載の前記方法の使用。
【請求項２８】
前記ディスプレイ上で、表示された広告を、前記表示された広告に対する記録されたクリックスルー率に基いて、前記表示された広告のための少なくとも２つの代替物の中から最適化する、請求項１〜２４のいずれかに記載の前記方法の使用。
【請求項２９】
サーバと、ディスプレイおよびプロセッサを含むコンピューティングデバイスと、前記コンピューティングデバイス上で実行可能な修正されたネイティブアプリケーションとを備えるシステムであって、前記修正されたネイティブアプリケーションはリフレクションベースのプログラミング言語で書かれ、前記修正されたネイティブアプリケーションは前記コンピューティングデバイスの前記ディスプレイにユーザインターフェイスを表示するように構成され、ネイティブアプリケーションは、前記ネイティブアプリケーションにジェネリックなコードを適用して、前記コンピューティングデバイスの外部のサーバと通信するよう構成される修正されたネイティブアプリケーションを制作することによって修正されており、前記修正されたネイティブアプリケーションは、前記修正されたネイティブアプリケーションによって生成されるユーザインターフェイスのデータ、機能またはコンテンツの１つ以上を変更することができるように実行時に前記修正されたネイティブアプ
リケーションの構造および挙動を調査および修正するよう、前記サーバによってリモートで構成可能である、システム、
【請求項３０】
請求項１〜２４のいずれかに記載の方法を実行するよう構成されるシステム。
【請求項３１】
前記サーバは、さらに、ユーザ挙動をターゲットとするか、プロファイリングするか、または解析することにおいて使用するために、前記ユーザ／デバイスについて１つ以上の属性を収集するよう構成される、請求項２９または３０に記載のシステム。
【請求項３２】
前記サーバは、属性値によって、変換およびレベニューレポートを含む、レポートをフィルタ処理するようさらに構成される、請求項３１に記載のシステム。
【請求項３３】
前記サーバは、前記属性に基いて、変換率を上げるよう、異なるエクスペリエンスを必要とし得るセグメントを探索するようさらに構成される、請求項３１または３２に記載のシステム。
【請求項３４】
前記サーバは、より高い実行コンテンツ変数を自動的に検出し、それらのより高い実行コンテンツ変数を、より多くの今後のビジターに対して供するよう配するように構成される、請求項２９〜３３のいずれかに記載のシステム。
【請求項３５】
前記システムは、決定されたキャンペーンを、「当選者のみ」が待遇を受けるモードに切換える能力を含み、前記ネイティブアプリケーションサプライヤはコンテンツまたはユーザエクスペリエンスの当選変動を適用するために前記コードに更新をなす必要がないことを意味する、請求項２９〜３４のいずれかに記載のシステム。
【請求項３６】
前記システムは、各ユーザを、その個人にとって最良のオファーに自動的に駆り立てる、自己学習する予測的なアルゴリズムを含む、請求項２９〜３５のいずれかに記載のシステム。
【請求項３７】
前記システムは、解析プロセスを自動化して、全体的な当選者とは異なるエクスペリエンスを必要とするユーザセグメントを探索して、当該セグメントのための手段に抗してパフォーマンスを上げるよう、セグメント探索プロセスを含む、請求項２８〜３６のいずれかに記載のシステム。
【請求項３８】
前記システムは多変量のテストを与える、請求項２９〜３７のいずれかに記載のシステム。
【請求項３９】
前記サーバは前記ネイティブアプリケーションにセグメンテーションルールを送信するように構成される、請求項２９〜３８のいずれかに記載のシステム。
【請求項４０】
前記システムは、以下の：
ｆ）具体的なスクリーンのビュー、例えば、注文完了において示されるスクリーン；
ｇ）ボタンクリック、または指／スタイラスで軽く叩く；
ｈ）従属ウェブサイトページ上でのトラッキング；
ｉ）オーディオ／ビデオプレイヤー再生時間、ならびに
ｊ）アクション属性およびアクション値機会（例えば、£／＄／EURまたは他の通貨に
おける販売価格を測定するために）、の１つ以上をトラッキングするよう構成される、請求項２９〜３９のいずれかに記載のシステム。
【請求項４１】
前記システムは前記アプリケーションにおける変化に対するユーザの応答を測定するよ
うに構成される、請求項２９〜４０のいずれかに記載のシステム。
【請求項４２】
保持された製品または製品を買う顧客の傾向などのような履歴上の顧客情報を用いて、ネイティブアプリケーション上で各顧客に対して最良のパーソナライズされたエクスペリエンスを動的に推進できる、請求項２９〜４１のいずれかに記載のシステムの使用。
【請求項４３】
ディスプレイおよびプロセッサを含むコンピューティングデバイスであって、前記コンピューティングデバイスは、リフレクションベースのプログラミング言語でそのソフトウェアが書かれている修正されたネイティブアプリケーションを含み、前記修正されたネイティブアプリケーションは、前記デバイス上で実行可能であり、前記修正されたネイティブアプリケーションは前記コンピューティングデバイスの前記ディスプレイにユーザインターフェイスを表示するように構成され、前記修正されたネイティブアプリケーションは、ネイティブアプリケーションにジェネリックなコードを適用して、前記コンピューティングデバイスの外部のサーバと通信するよう構成される前記修正されたネイティブアプリケーションを制作することによって修正されており、前記修正されたネイティブアプリケーションは、前記修正されたネイティブアプリケーションによって生成されるユーザインターフェイスのデータ、機能またはコンテンツの１つ以上を変更することができるように実行時に前記修正されたネイティブアプリケーションの構造および挙動を調査および修正するよう、前記サーバによってリモートで構成可能である、コンピューティングデバイス。
【請求項４４】
コンピューティングデバイスと通信するように構成されたサーバであって、前記コンピューティングデバイスはディスプレイおよびプロセッサを含み、前記コンピューティングデバイスは、リフレクションベースのプログラミング言語でそのソフトウェアが書かれている修正されたネイティブアプリケーションを含み、前記修正されたネイティブアプリケーションは、前記コンピューティングデバイス上で実行可能であり、前記修正されたネイティブアプリケーションは前記コンピューティングデバイスの前記ディスプレイにユーザインターフェイスを表示するように構成され、前記修正されたネイティブアプリケーションは、ネイティブアプリケーションにジェネリックなコードを適用して、前記コンピューティングデバイスの外部にあるサーバと通信するよう構成される前記修正されたネイティブアプリケーションを制作することによって修正されており、前記サーバは、前記修正されたネイティブアプリケーションによって生成されるユーザインターフェイスのデータ、機能またはコンテンツの１つ以上を変更することができるように実行時に前記修正されたネイティブアプリケーションの構造および挙動を調査および修正するよう、前記修正されたネイティブアプリケーションをリモートで構成するよう配される、サーバ。
【請求項４５】
サーバと、ディスプレイおよびプロセッサを各々が含む複数のコンピューティングデバイスと、前記複数のコンピューティングデバイス上で実行可能な修正されたネイティブアプリケーションとを備えるシステムであって、前記修正されたネイティブアプリケーションはリフレクションベースのプログラミング言語で書かれ、前記修正されたネイティブアプリケーションは前記複数のコンピューティングデバイスの各々の前記ディスプレイにユーザインターフェイスを表示するように構成され、ネイティブアプリケーションは、前記ネイティブアプリケーションにジェネリックなコードを適用して、前記複数のコンピューティングデバイスの外部のサーバと通信するよう構成される修正されたネイティブアプリケーションを制作することによって修正されており、前記修正されたネイティブアプリケーションは、前記修正されたネイティブアプリケーションによって生成されるユーザインターフェイスのデータ、機能またはコンテンツの１つ以上を変更することができるように実行時に前記修正されたネイティブアプリケーションの構造および挙動を調査および修正するよう、前記サーバによってリモートで構成可能であり、前記サーバは、複数の修正されたネイティブアプリケーションを前記複数のコンピューティングデバイス上で複数の異
なる構成で構成し、ユーザアクションの測定値を前記複数のコンピューティングデバイスにおいて前記複数の異なる構成に関連して記録するよう配される、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の背景
１．発明の分野
この発明の分野は、ネイティブアプリケーションのための最適化の方法、そのようなネイティブアプリケーションが実行可能なコンピューティングデバイスを含むシステム、そのようなネイティブアプリケーションが実行可能なコンピューティングデバイス、およびそのようなネイティブアプリケーションが実行可能なコンピューティングデバイスと通信するように構成されたサーバに関する。
【背景技術】
【０００２】
２．技術的な背景
コンピューティングデバイス上におけるアプリケーションの最適化は挑戦的であり、なぜならば、アプリケーションが書かれているときに、そのようなアプリケーションが将来使用に対して所望され得る使用のすべてを予見することは通常は可能ではないからである。従来、アプリケーションは、ソフトウェアリリースの後に発見されるバグ、アプリケーションが対話するのが望ましくあり得る新たなサービスのリリース、またはソフトウェアにおいて新たに発見されたセキュリティの欠陥に対する保護するなどのような、様々な出来事の発生に応じて更新されてきた。しかしながら、典型的に、アプリケーションの更新は、元のソフトウェアバージョンの代わりに、関連付けられるコンピューティングデバイスにおけるインストールのために、ソフトウェアのサプライヤからの更新されたソフトウェアバージョンの供給を必要としていた。さらなる局面は、アプリケーションの開発者は、アプリケーションパフォーマンスを並行して比較して、アプリケーションの２つ以上のバージョンのうちのどれが例えばセールスまたはアクションに対してよりよいパフォーマンスを有するかを評価する可能性を持たないということである。
【０００３】
３．関連技術の議論
ＥＰ１３５２３２２（Ａ２）およびＥＰ１３５２３２２Ｂ１には、ソフトウェアアプリケーションの時間最適化された置換、および特に、使用中の古いソフトウェアを新たなソフトウェアで置換するための方法が開示されており、それは、ソフトウェアの最大利用可能性を可能にする。この方法は、準備段階とアクティブ段階とに下位分割される。準備段階は古いソフトウェアの動作中に生ずる。アクティブ段階は、単に、ＭＯＶＥコマンドの実行により特徴付けられる。
【０００４】
ＦＲ２８４１０１４Ａ１およびＦＲ２８４１０１４（Ｂ１）には、イベントのグループに属する、生ずるイベントに応答して、第１の予め定められた段階と第２の予め定められた段階との間において遷移を引起すコンピュータプログラムを最適化するための方法が開示されており、そこにおいては、この方法は、以下のステップ：イベントのグループから選択されるイベントのサブグループを読出すステップと、イベントのグループのイベントが自己生成グループに属さない場合には、レジスタを用い、かつ第１の判断グラフと等価である第２の判断グループをモデル化するステップと、遷移モデル化のためのソフトウェア機能の生成のステップとを有する。さらに開示されるのは、コンピュータプログラムを最適化するための装置である。
【０００５】
しかしながら、ソフトウェアアプリケーションを最適化することにおいて、より速い速度および柔軟性を提供することが望ましい。さらに、アプリケーションにおける変更に対するユーザの応答の正確な測定を達成することも望ましい。
【発明の概要】
【課題を解決するための手段】
【０００６】
発明の概要
この発明の第１の局面によれば、リフレクションベースのプログラミング言語でそのソフトウェアが書かれているネイティブアプリケーションのための最適化の方法が提供され、ネイティブアプリケーションはディスプレイおよびプロセッサを含むコンピューティングデバイス上で実行可能であり、ネイティブアプリケーションはコンピューティングデバイスのディスプレイにユーザインターフェイスを表示するように構成され、方法は、
（ｉ）ネイティブアプリケーションにジェネリックなコードを適用して、コンピューティングデバイスの外部のサーバと通信するよう構成される修正されたネイティブアプリケーションを制作するステップと、
（ｉｉ）サーバから修正されたネイティブアプリケーションをリモートで構成して、修正されたネイティブアプリケーションによって生成されるユーザインターフェイスのデータ、機能またはコンテンツの１つ以上を変更することができるように実行時に修正されたネイティブアプリケーションの構造および挙動を調査および修正するステップとを含む。
【０００７】
利点は、ネイティブアプリケーションの新たなバージョンのインストールを実行せずに、修正されたネイティブアプリケーションをさらに修正することができるということである。さらなる利点は、修正されたネイティブアプリケーションをさらに非常に迅速に修正することができるということであり、なぜならば、それはリモートサーバからリモートで構成可能であるからである。さらなる利点は、リモートサーバにおいて判断されたファクタに応じて、修正されたネイティブアプリケーションをさらに修正することができるということであり、なぜならば、修正されたネイティブアプリケーションはリモートサーバからリモートで構成可能であるからである。さらなる利点は、修正されたネイティブアプリケーションを提供するためにネイティブアプリケーションが容易に修正されるということである。さらなる利点は、アプリケーションにおける変更に対するユーザの応答の正確な測定値が提供され得るということである。コンピューティングデバイスの外部でプロセスに技術的な影響があり、なぜならば、サーバは修正されたネイティブアプリケーションをリモートで構成することができるからである。コンピュータは新たな態様で動作し、なぜならば、変更されたユーザインターフェイスがネイティブアプリケーションの新たなバージョンのインストールなしに、修正されたネイティブアプリケーションによって形成されるからである。コンピュータはよりよいコンピュータであり、なぜならば、修正されたネイティブアプリケーションは、その動作が典型的には新たなソフトウェアバージョンのインストールと関連付けられる態様で中断されずに、さらに修正され得るからである。
【０００８】
この方法は、ジェネリックなコードは、修正されたネイティブアプリケーションの最適化を可能にするようネイティブアプリケーションのソースコードに適用されるために必要とされる唯一のコードである方法であってもよい。利点は、ネイティブアプリケーションの修正が単純になされるということである。
【０００９】
この方法は、ジェネリックなコードは、ネイティブアプリケーションの複数バージョンおよびインスタンス内においてコードを変更することなしに、多数の種類の最適化が最適化システムのユーザインターフェイスにおいてリモートで構成されることを可能にする方法であってもよい。利点はネイティブアプリケーションの複数バージョンおよびインスタンスを修正する必要がないということである。
【００１０】
この方法は、実行時に修正されたネイティブアプリケーションの構造および挙動を修正することは、修正されたネイティブアプリケーションの値、メタデータ、プロパティ、イメージおよび機能のうちの１つ以上を修正することを含む方法であってもよい。利点は、修正されたネイティブアプリケーションを多数の態様で修正することができるということ
である。
【００１１】
この方法は、コンピューティングデバイスは、モバイルデバイス、タッチスクリーンデバイス、スマートフォン、ビデオゲーム機、コンピュータ、スマートＴＶ、ＴＶセットトップボックス、またはインターネットに接続可能なデバイスである方法であってもよい。利点は、この方法は、あるとしてもめったに更新されないデバイスを含む多数のタイプのデバイスに適用されてもよいということである。
【００１２】
この方法は、コンピューティングデバイスは、インターネットに有線もしくは無線広域ネットワーク（ＷＡＮ）を介してまたは携帯電話ネットワークを介してサーバに接続可能である方法であってもよい。利点は、この方法を異なるタイプの接続に対して用いることができるということである。
【００１３】
この方法は、最適化は、ユーザが所望のアクションを完了する確率を上げるために、オンザフライで各ユーザに対して視覚的エクスペリエンスを適合させることを含む方法であってもよい。利点は、増大されたユーザインタラクションが得られ得るということである。
【００１４】
この方法は、所望のアクションはクリックまたは発注である方法であってもよい。利点は、増大されたユーザインタラクションが得られ得るということである。
【００１５】
この方法は、リフレクションベースのプログラミング言語は一般的なリフレクションベースのプログラミング言語である方法であってもよい。利点は、そのような言語は容易に用いられるということである。
【００１６】
この方法は、ユーザ挙動をターゲットとするか、プロファイリングするか、または解析することにおいて使用するために、ユーザ／デバイスについて１つ以上の属性を収集することをさらに含む方法であってもよい。利点は、ユーザカスタマイズされたユーザインターフェイス出力が提供され得るということである。
【００１７】
この方法は、収集された属性は、以下の：デバイスへの接続タイプ（例えば、２Ｇ、３Ｇ、４Ｇ、Ｗｉ−Ｆｉ（登録商標））；デバイスタイプ；アプリケーションバージョン；オペレーティングシステムタイプおよびバージョン；ロケーション（例えば、座標、都市、国、大陸、郵便番号による）；インターネットサービスプロバイダ；アプリへの過去の訪問の最近度および詳細；過去のアクションの最近度および詳細；特定の製品カテゴリとの過去のインタラクションなどのようなカスタムユーザ定義の属性；ユーザが様々なロケーションからアプリを起動する機会を有する照会ソース；日付、曜日、時間による訪問の時間、およびＣＲＭデータベースなどのような他のロケーションからインポートされるデータ、のうちの１つ以上である方法であってもよい。利点は、ユーザカスタマイズされたユーザインターフェイス出力が提供され得るということである。
【００１８】
この方法は、キャンペーンからビジター／デバイスを、それらの属性を用いて含むかまたは排除するステップをさらに含む方法であってもよい。利点は、関連するユーザへの改善されたフォーカスが得られ得るということである。
【００１９】
この方法は、他のユーザセグメント情報のためのルールとの組合せにおいて、コンテンツを、ビジター／デバイスに対して、それらの属性に従って向けるよう、セグメンテーションルールを作成するステップをさらに含む方法であってもよい。利点は、関連するユーザへの改善されたフォーカスが得られ得るということである。
【００２０】
この方法は、ネイティブアプリケーションパフォーマンスはキャンペーン中およびキャンペーン後にも最適化される方法であってもよい。利点は、産み出された利益がより長い期間にわたって産み出されるということである。
【００２１】
この方法は、変更可能なユーザインターフェイスコンテンツは：
ａ）シンプルテキストまたはイメージブロック（バナー、ページのヘッダ）、移動、リサイズ、ハイディング、再フォーマット；
ｂ）ボタンテキスト、移動、リサイズ、再フォーマット、およびハイディング；
ｃ）「通知プッシュ」頻度およびコンテンツ；
ｄ）表示されるピクチャ（ピクチャは外部サーバに記憶され得る）；
ｅ）新たなテキストまたはイメージブロック；
ｆ）リスト＆テーブル（順序づけ、いくつの項目を表示するか）；
ｇ）アプリケーション内のナビケーションパス（例えば、'add to cart'は、ユーザを
カートページに向けるか、またはさらなる選択をなすためにカテゴリページに戻るか）、および
ｈ）最後のユーザ選択に基いたナビゲーションの表示、の１つ以上を含む方法であってもよい。
【００２２】
利点は、広範囲のユーザインターフェイスコンテンツが変更され得るということである。
【００２３】
この方法は、ネイティブアプリケーションはライブラリを含む方法であってもよい。利点は、コンテンツを、反復使用のために、または間欠的な接続性の間の使用のために、コンピューティングデバイスにローカルに記憶することができるということである。
【００２４】
この方法は、ライブラリはすべてのアプリケーションに対して静的である方法であってもよい。
【００２５】
この方法は、ライブラリは、コンテンツジェネレータに要求を送信し、コンテンツジェネレータから応答を受信するよう構成される方法であってもよい。利点は、ライブラリが最も最近の構成データを用いてもよいということである。利点は、ライブラリ更新が自動化され得るということである。
【００２６】
この方法は、ライブラリは、ネイティブアプリケーションに含まれるネイティブアプリケーションキャッシュと対話する方法であってもよい。利点は、コンテンツおよびそれと対話するユーザのための一意の識別子を、反復使用のために、または間欠的な接続性の間の使用のために、コンピューティングデバイスにローカルに記憶することができるということである。
【００２７】
この方法は、ネイティブアプリケーションキャッシュは外部サーバからプッシュされたコンテンツを受信するように構成される方法であってもよい。
【００２８】
この方法は、ライブラリはネイティブアプリケーションスタートでコンテンツジェネレータに対して要求をなす方法であってもよい。利点は、ライブラリのデータが可能な限り最新であるということ、およびユーザは最も最新のユーザインターフェイスコンテンツのみを見ることになる、ということである。
【００２９】
この方法は、ライブラリはコンテンツジェネレータに対して要求をなすよう配され、要求はロケーションおよびユーザ属性をパラメータで含む方法であってもよい。利点は改善されたカスタマイゼーションである。
【００３０】
この方法は、ライブラリは以下のモジュール：
１）ＣＧ要求モジュール；
２）外部アセットモジュール（イメージトランザクション）；
３）トラッキングモジュール（アクショントラッキング、ＣＧに対して結果を送信する）；
４）アプリケーションオブジェクト識別モジュール；
５）ＭＶＴモジュール（代替的なコンテンツビジュアライゼーションを実現する）；
６）パーソナライゼーションモジュール；
７）セグメンテーションモジュール、および
８）管理制御コンソールモジュール、の１つ以上を含む方法であってもよい。
【００３１】
この方法は、ライブラリは、コード命令において、指定されたオブジェクトおよびプロパティのみを修正することができる方法であってもよい。
【００３２】
この発明の第２の局面によれば、ディスプレイに表示される選択可能なボタンを、選択可能なボタンのための少なくとも２つの代替物の中から最適化するよう、この発明の第１の局面の任意の局面に従う方法の使用が提供される。利点は、最も適切なボタンが表示され得るということである。
【００３３】
この発明の第３の局面によれば、ディスプレイ上で、表示された製品を、最も最近使用されたフィルタオプションに基いて、表示された製品のための少なくとも２つの代替物の中から最適化するよう、この発明の第１の局面の任意の局面に従う方法の使用が提供される。利点は、最も適切な製品が表示され得るということである。
【００３４】
この発明の第４の局面によれば、ディスプレイ上で、表示された食物製品を、最も最近見られた食物カテゴリに基いて、表示された食物製品のための少なくとも２つの代替物の中から最適化する、この発明の第１の局面の任意の局面に従う方法の使用が提供される。利点は、最も適切な製品が表示され得るということである。
【００３５】
この発明の第５の局面によれば、ディスプレイ上で、表示された広告を、表示された広告に対する記録されたクリックスルー率に基いて、表示された広告のための少なくとも２つの代替物の中から最適化する、この発明の第１の局面の任意の局面に従う方法の使用が提供される。利点は、最も適切な広告が表示され得るということである。
【００３６】
この発明の第６の局面によれば、サーバと、ディスプレイおよびプロセッサを含むコンピューティングデバイスと、コンピューティングデバイス上で実行可能な修正されたネイティブアプリケーションとを備えるシステムが提供され、修正されたネイティブアプリケーションはリフレクションベースのプログラミング言語で書かれ、修正されたネイティブアプリケーションはコンピューティングデバイスのディスプレイにユーザインターフェイスを表示するように構成され、ネイティブアプリケーションは、ネイティブアプリケーションにジェネリックなコードを適用して、コンピューティングデバイスの外部のサーバと通信するよう構成される修正されたネイティブアプリケーションを制作することによって修正されており、修正されたネイティブアプリケーションは、修正されたネイティブアプリケーションによって生成されるユーザインターフェイスのデータ、機能またはコンテンツの１つ以上を変更することができるように実行時に修正されたネイティブアプリケーションの構造および挙動を調査および修正するよう、サーバによってリモートで構成可能である。
【００３７】
利点は、ネイティブアプリケーションの新たなバージョンのインストールを実行せずに
、修正されたネイティブアプリケーションをさらに修正することができるということである。さらなる利点は、修正されたネイティブアプリケーションをさらに非常に迅速に修正することができるということであり、なぜならば、それはリモートサーバからリモートで構成可能であるからである。さらなる利点は、リモートサーバにおいて判断されたファクタに応じて、修正されたネイティブアプリケーションをさらに修正することができるということであり、なぜならば、修正されたネイティブアプリケーションはリモートサーバからリモートで構成可能であるからである。さらなる利点は、アプリケーションにおける変更に対するユーザの応答の正確な測定値が提供され得るということである。
【００３８】
このシステムはこの発明の第１の局面の任意の局面に従う方法を実行するように構成されてもよい。
【００３９】
このシステムは、サーバは、さらに、ユーザ挙動をターゲットとするか、プロファイリングするか、または解析することにおいて使用するために、ユーザ／デバイスについて１つ以上の属性を収集するよう構成されるシステムであってもよい。
【００４０】
このシステムは、サーバは、属性値によって、変換およびレベニューレポートを含む、レポートをフィルタ処理するようさらに構成されるシステムであってもよい。
【００４１】
このシステムは、サーバは、属性に基いて、変換率を上げるよう、異なるエクスペリエンスを必要とし得るセグメントを探索するようさらに構成されるシステムであってもよい。
【００４２】
このシステムは、サーバは、より高い実行コンテンツ変異型を自動的に検出し、それらのより高い実行コンテンツ変異型を、より多くの今後のビジターに対して供するよう配するように構成されるシステムであってもよい。
【００４３】
このシステムは、決定されたキャンペーンを、「当選者のみ」が待遇を受けるモードに切換える能力を含み、ネイティブアプリケーションサプライヤはコンテンツまたはユーザエクスペリエンスの当選変動を適用するためにコードに更新をなす必要がないことを意味するシステムであってもよい。
【００４４】
このシステムは、各ユーザを、その個人にとって最良のオファーに自動的に駆り立てる、自己学習する予測的なアルゴリズムを含むシステムであってもよい。
【００４５】
このシステムは、解析プロセスを自動化して、全体的な当選者とは異なるエクスペリエンスを必要とするユーザセグメントを探索して、当該セグメントのための手段に抗してパフォーマンスを上げるよう、セグメント探索プロセスを含むシステムであってもよい。
【００４６】
このシステムは、多変量のテストを与えるシステムであってもよい。
このシステムは、サーバはネイティブアプリケーションにセグメンテーションルールを送信するように構成されるシステムであってもよい。
【００４７】
このシステムは、以下の：
ａ）具体的なスクリーンのビュー、例えば、注文完了において示されるスクリーン；
ｂ）ボタンクリック、または指／スタイラスで軽く叩く；
ｃ）従属ウェブサイトページ上でのトラッキング；
ｄ）オーディオ／ビデオプレイヤー再生時間、ならびに
ｅ）アクション属性およびアクション値機会（例えば、£／＄／EURまたは他の通貨に
おける販売価格を測定するために）、の１つ以上をトラッキングするよう構成されるシス
テムであってもよい。
【００４８】
このシステムは、アプリケーションにおける変化に対するユーザの応答を測定するように構成されるシステムであってもよい。利点は、アプリケーションにおける変更に対するユーザの応答の正確な測定値が得られ得るということである。
【００４９】
この発明の第７の局面によれば、この発明の第６の局面の任意の局面のシステムの使用が提供され、保持された製品または製品を買う顧客の傾向などのような履歴上の顧客情報を用いて、ネイティブアプリケーション上で各顧客に対して最良のパーソナライズされたエクスペリエンスを動的に推進できる。
【００５０】
この発明の第８の局面によれば、ディスプレイおよびプロセッサを含むコンピューティングデバイスが提供され、コンピューティングデバイスは、リフレクションベースのプログラミング言語でそのソフトウェアが書かれている修正されたネイティブアプリケーションを含み、修正されたネイティブアプリケーションは、デバイス上で実行可能であり、修正されたネイティブアプリケーションはコンピューティングデバイスのディスプレイにユーザインターフェイスを表示するように構成され、修正されたネイティブアプリケーションは、ネイティブアプリケーションにジェネリックなコードを適用して、コンピューティングデバイスの外部のサーバと通信するよう構成される修正されたネイティブアプリケーションを制作することによって修正されており、修正されたネイティブアプリケーションは、修正されたネイティブアプリケーションによって生成されるユーザインターフェイスのデータ、機能またはコンテンツの１つ以上を変更することができるように実行時に修正されたネイティブアプリケーションの構造および挙動を調査および修正するよう、サーバによってリモートで構成可能である。
【００５１】
この発明の第９の局面によれば、コンピューティングデバイスと通信するように構成されたサーバが提供され、コンピューティングデバイスはディスプレイおよびプロセッサを含み、コンピューティングデバイスは、リフレクションベースのプログラミング言語でそのソフトウェアが書かれている修正されたネイティブアプリケーションを含み、修正されたネイティブアプリケーションは、コンピューティングデバイス上で実行可能であり、修正されたネイティブアプリケーションはコンピューティングデバイスのディスプレイにユーザインターフェイスを表示するように構成され、修正されたネイティブアプリケーションは、ネイティブアプリケーションにジェネリックなコードを適用して、コンピューティングデバイスの外部にあるサーバと通信するよう構成される修正されたネイティブアプリケーションを制作することによって修正されており、サーバは、修正されたネイティブアプリケーションによって生成されるユーザインターフェイスのデータ、機能またはコンテンツの１つ以上を変更することができるように実行時に修正されたネイティブアプリケーションの構造および挙動を調査および修正するよう、修正されたネイティブアプリケーションをリモートで構成するよう配される。
【００５２】
この発明の第１０の局面によれば、サーバと、ディスプレイおよびプロセッサを各々が含む複数のコンピューティングデバイスと、複数のコンピューティングデバイス上で実行可能な修正されたネイティブアプリケーションとを備えるシステムが提供され、修正されたネイティブアプリケーションはリフレクションベースのプログラミング言語で書かれ、修正されたネイティブアプリケーションは複数のコンピューティングデバイスの各々のディスプレイにユーザインターフェイスを表示するように構成され、ネイティブアプリケーションは、ネイティブアプリケーションにジェネリックなコードを適用して、複数のコンピューティングデバイスの外部のサーバと通信するよう構成される修正されたネイティブアプリケーションを制作することによって修正されており、修正されたネイティブアプリケーションは、修正されたネイティブアプリケーションによって生成されるユーザインタ
ーフェイスのデータ、機能またはコンテンツの１つ以上を変更することができるように実行時に修正されたネイティブアプリケーションの構造および挙動を調査および修正するよう、サーバによってリモートで構成可能であり、サーバは、複数の修正されたネイティブアプリケーションを複数のコンピューティングデバイス上で複数の異なる構成で構成し、ユーザアクションの測定値を複数のコンピューティングデバイスにおいて複数の異なる構成に関連して記録するよう配される。利点は、アプリケーションにおける変更に対するユーザの応答の正確な測定値が提供され得るということである。
【００５３】
図面の簡単な説明
この発明の上記および他の局面が、ここで、以下の図を参照して例のみとして記載される。
【図面の簡単な説明】
【００５４】
【図１】テストがどのようにアプリケーション内で動作するかの例を示す。
【図２】最適化システムの作成の例をテーブル形式で示す。
【図３】仕様の例を示す。
【図４】仕様の例を示す。
【図５】仕様の例を示す。
【図６】仕様の例を示す。
【図７】仕様の例を示す。
【図８】仕様の例を示す。
【図９】仕様の例を示す。
【図１０】仕様の例を示す。
【図１１】仕様の例を示す。
【図１２】仕様の例を示す。
【図１３】仕様の例を示す。
【図１４】仕様の例を示す。
【図１５】一旦キャンペーンがセットアップされると、それが公開される際にインプリメンテーションから開始してライブまでを通過し得る状態の例を示す。
【図１６】属性の例を示す。
【発明を実施するための形態】
【００５５】
詳細な説明
ネイティブアプリケーションのための最適化の方法が提供される。
【００５６】
Maxymiserは、スマートフォンからビデオゲーム機、ＰＣ、スマートＴＶおよびＴＶセ
ットトップボックスまでの範囲にわたる多くのタイプのインターネット接続されたデバイス上に存在するネイティブソフトウェアアプリケーションを最適化する新たなアプローチを創出した。一例において、最適化は、クリックまたは発注のように、ユーザが所望のアクションを完了する確率を上げるために、オンザフライで各ユーザに対して視覚的エクスペリエンスを適合させることを意味する。
【００５７】
この発明は、リフレクションベースのプログラミング言語（reflection based programing language）、例えば、任意の一般的なリフレクションベースのプログラミング言語でそのソフトウェアが書かれているネイティブアプリケーションのための最適化の方法に関する。コンピューターサイエンスでは、リフレクションは、実行時にプログラムの構造および挙動（例えば、値、メタデータ、プロパティ、および機能）を調査および修正するコンピュータプログラムの能力である。ネイティブアプリケーションは、インターネットに典型的には有線もしくは無線広域ネットワーク（ＷＡＮ）または携帯電話ネットワークを介してサーバに接続されるコンピュータ、ビデオゲームステーション、スマートフォンま
たは任意の他の種類のデバイス上で動作し得る。
【００５８】
ネイティブアプリケーションのための最適化の方法は、ネイティブアプリケーション最適化システムをネイティブアプリケーションと統合するステップを、ネイティブアプリケーションのソースコードに適用されるために必要とされる唯一のコードであるジェネリックなコードをネイティブアプリケーションに適用することによって、ネイティブアプリケーション最適化システムによるネイティブアプリケーションの最適化を可能にすることをネイティブアプリケーションにおけるユーザインターフェイス（ＵＩ）のデータ、機能またはコンテンツアセットの１つ以上を変更することによって可能にすることによって、含んでもよい。これは、最適化システムがジェネリックなコードを統合に対して用いて統合されることができた最初であり、それは、次いで、ネイティブアプリケーションの複数バージョンおよびインスタンス内においてコードを変更することなしに、多数の種類の最適化が最適化システムのユーザインターフェイスにおいてリモートで構成されることを可能にする。以前の方法は、各最適化キャンペーンに適用される新たなコードを必要とし、最適化が開始し得る前にサーバからユーザによってダウンロードされるべき新たなリリースバージョンに対する要件を作り出した。本発明の新たな方法は、そのような要件を取除き、それによって、最適化プログラムを、より高速かつより洗練されたものにする。
【００５９】
この方法は、さらに、ユーザ挙動をターゲットとするか、プロファイリングするか、または解析することにおいて使用するために、ユーザ／デバイスについて以下の属性を収集することができてもよい。
【００６０】
・デバイスタイプ、アプリケーションバージョンおよびオペレーティングシステムバージョン
・ロケーション（例えば、座標、都市、国、大陸、郵便番号による）
・インターネットサービスプロバイダおよび接続タイプ
・アプリへの過去の訪問の最近度および詳細
・過去のアクションの最近度および詳細
・特定の製品カテゴリとの過去のインタラクションなどのようなカスタムユーザ定義の属性
・ユーザが様々なロケーションからアプリを起動する機会を有する照会ソース
・日付、曜日、時間、放送時間区分による訪問の時間
・ＣＲＭデータベースなどのような他のロケーションからインポートされるデータ
新システムは、ネイティブアプリケーションを最適化するためにMaxymiserのプラット
フォームに対してエンハンスメントを含んでもよい。これらのエンハンスメントは以下の特徴を含んでもよい：
・キャンペーンからビジター／デバイスを、それらの属性を用いて含むかまたは排除する。
【００６１】
・他のユーザセグメント情報のためのルールとの組合せにおいて、コンテンツを、ビジター／デバイスに対して、それらの属性に従って目標として向けるよう、セグメンテーションルールを作成する。
【００６２】
・属性値によって、変換およびレベニューレポートを含む、レポートをフィルタ処理する。
【００６３】
・属性に基づいて、変換率を上げるよう、異なるエクスペリエンスを必要とし得るセグメントを探索する。
【００６４】
テストは、より高い実行コンテンツ変異型を自動的に検出し、次いでそれらをより多くの今後のビジターに対して供するよう構成され得る。これは、全体のアプリパフォーマンスがキャンペーン中およびキャンペーン後にも最適化されることを意味する。これは動的最適化として公知である。
【００６５】
システムは、決定されたキャンペーンを、「当選者のみ」が待遇を受けるモードに切換える能力を含み、アプリケーション所有者はコンテンツまたはユーザエクスペリエンスの当選変動を適用するためにコードに更新をなす必要がないことを意味してもよい。アプリコードに対して更新を行うことは、アプリ開発者にとって、非常に大きな投資であることが多く、なぜならば、アプリをテストし、それを承認のためにアプリケーションディストリビュータ（例えば、Apple Appstore）に提出し、それからそれを配給することを必要とし、それは、スマートテレビの場合においては次の計画されたソフトウェア更新配信までに何ヶ月か待機することを伴い得、そのタイミングは、ハードウェア製造業者の手にあり、アプリケーション開発者の手にはないからである。
【００６６】
加えて、MaxymiserのFull Managed Services（完全管理サービス）は、モバイルデバイスにわたって、創造的な設計、ウェブ開発、レポート解析／および品質管理を含む、ネイティブアプリケーションのためのサポートを提供する。
【００６７】
ネイティブアプリケーションでのテストは、Maxymiserによる開発物である。ネイティ
ブアプリケーションデバイスはSilverlightをサポートしないので、On Page Consoleはネイティブアプリケーションテストに対しては提供されない。
【００６８】
ネイティブアプリケーションに対するテストは以下を含んでもよい：
・マーケティング担当者が彼らのネイティブアプリケーションに対して変更をなすためにＩＴのない環境を作り出すOneTouchプラットフォーム。
【００６９】
・アフィニティパターンに基いた推奨、および各ユーザを、その個人にとって最良のオファーに自動的に駆り立てる、自己学習する予測的なアルゴリズムを含む、ネイティブアプリケーションに適用することができる、ある幅のプラットフォーム能力。
【００７０】
・解析プロセスを自動化して、全体的な当選者とは異なるエクスペリエンスを必要とするユーザセグメントを探索して、当該セグメントのために同意された手段に抗してパフォーマンスを上げる、セグメント探索。これは、ここで、ネイティブアプリケーションによって識別されてもよいセグメントに対しても当てはまる。
【００７１】
・保持された製品または製品を買う顧客の傾向などのような履歴上の顧客情報を用いて、ネイティブアプリケーション上で各顧客に対して最良のパーソナライズされたエクスペリエンスを動的に推進できる。
【００７２】
仕様
テスト可能なものの例：
ａ）シンプルテキストまたはイメージブロック（バナー、ページのヘッダ）、移動、リサイズ、ハイディング、再フォーマット。
【００７３】
ｂ）ボタンテキスト、移動、リサイズ、再フォーマット、およびハイディング。
ｃ）「通知プッシュ」頻度およびコンテンツ
ｄ）表示されるピクチャ（ピクチャは外部サーバに記憶され得る）。
【００７４】
ｅ）新たなテキストまたはイメージブロック。
ｆ）リスト＆テーブル（順序づけ、いくつの項目を表示するか）。
【００７５】
ｇ）アプリケーション内のナビケーションパス（例えば、'add to cart'は、ユーザを
カートページに向けるか、またはさらなる選択をなすためにカテゴリページに戻るか）
ｈ）最後のユーザ選択に基いたナビゲーションの表示。
【００７６】
ｉ）上記のもののセグメンテーションおよびパーソナライゼーション（これらの項目を全体のユーザベースではなくユーザセグメントに対して調整する）。
【００７７】
トラッキングすることが可能なものの例：
ａ）具体的なスクリーンのビュー、例えば、注文完了において示されるスクリーン。
【００７８】
ｂ）ボタンクリック、または指／スタイラスで軽く叩く。
ｃ）従属ウェブサイトページ上でのトラッキング。
【００７９】
ｄ）オーディオ／ビデオプレイヤー再生時間。
ｅ）アクション属性およびアクション値機会（例えば、£／＄／EURまたは他の通貨に
おける販売価格を測定するために）。
【００８０】
テストがアプリケーションの内部でどのように動作し得るかの例において、モバイルデバイスは、コンテンツ生成サービスを含むコンテンツジェネレータに要求を送信し、およびそのコンテンツジェネレータから応答を受信できる。モバイルデバイスはモバイルアプリケーションを含む。モバイルアプリケーションはすべてのアプリケーションに対して静的であるライブラリを含む。ライブラリは、コンテンツジェネレータに要求を送信し、コンテンツジェネレータから応答を受信するよう構成される。ライブラリは、モバイルアプリケーションに含まれるモバイルアプリケーションキャッシュと対話する。コンテンツアセット（例えば、イメージ）を伴う外部サーバは、モバイルアプリケーションキャッシュにコンテンツをプッシュすることができる。図１は、テストがどのようにアプリケーション内で動作するかの例を示す。
【００８１】
多変量テスト（ＭＶＴ）例
１）「モバイルバージョン」ライブラリはアプリケーションスタートでコンテンツジェネレータ（ＣＧ）に対して要求をなす。
【００８２】
２）ＣＧは現在のドメインのコンテンツがJavaScript（登録商標） Object Notation（ＪＳＯＮ）フォーマットにある状態で応答を作成する：
・ロケーションリスト。
【００８３】
・各ロケーションに対する生成された変数。
・必要とされる変数に対するコンテンツ。
【００８４】
・設定およびロケーションマッピングを伴うアクションリスト。
３）ユーザはアクションでビュー開くよう進む。
【００８５】
・「モバイルバージョン」ライブラリは対応するロケーションを見出す。
・「モバイルバージョン」ライブラリはリンクされるアクションを読出す。
【００８６】
・「モバイルバージョン」ライブラリは、それが必要な場合、イベントトラッカーを加える。
【００８７】
・「モバイルバージョン」ライブラリは必要な値および属性を計算する。
・「モバイルバージョン」ライブラリは、ロケーションおよびアクションがパラメータにある状態で、ＣＧに対して、キャッシュに入れられた要求をなす。
【００８８】
４）ユーザはどのようなアクションまたはエレメントもなしでビュー開くよう進む。
・「モバイルバージョン」ライブラリは対応するロケーションを見出す。
【００８９】
・「モバイルバージョン」ライブラリは、ロケーションとともに、ＣＧに対して、キャッシュに入れられた要求をなす。
【００９０】
５）ユーザはエレメントでビュー開くよう進む。
・「モバイルバージョン」ライブラリは対応するロケーションを見出す。
【００９１】
・「モバイルバージョン」ライブラリはリンクされる変数を読出す。
・「モバイルバージョン」ライブラリはエレメントのコンテンツを示す。
【００９２】
・「モバイルバージョン」ライブラリは、ロケーションおよび示された変数がパラメータにある状態で、ＣＧに対して、キャッシュに入れられた要求をなす。
【００９３】
ある例が図１に示される。
パーソナライゼーション例
１）「モバイルバージョン」ライブラリはアプリケーションスタートでＣＧに対して要求をなす。
【００９４】
２）ＣＧは現在のドメインのコンテンツがＪＳＯＮフォーマットにある状態で応答を作成する：
・ロケーションリスト。
【００９５】
・設定およびロケーションマッピングを伴うユーザ属性。
３）ユーザはユーザ属性でビュー開くよう進む。
【００９６】
・「モバイルバージョン」ライブラリは対応するロケーションを見出す。
・「モバイルバージョン」ライブラリはリンクされるユーザ属性を読出す。
【００９７】
・「モバイルバージョン」ライブラリは必要な値を計算し、対応するユーザ属性にそれを置く。
【００９８】
・「モバイルバージョン」ライブラリは、ロケーションおよびユーザ属性がパラメータにある状態で、ＣＧに対して、キャッシュに入れられた要求をなす。
【００９９】
ある例が図１に示される。
セグメンテーション例
ａ）「モバイルバージョン」ライブラリはアプリケーションスタートでＣＧに対して要求をなす。
【０１００】
ｂ）ＣＧは現在のドメインのコンテンツがＪＳＯＮフォーマットにある状態で応答を作成する：
・ロケーションリスト。
【０１０１】
・値を伴うユーザ属性。
・設定を伴うセグメンテーションルール。
【０１０２】
・各ロケーションに対する生成された変数。
・必要とされる変数に対するコンテンツ。
【０１０３】
ｃ）ユーザはエレメントでビュー開くよう進む。
・「モバイルバージョン」ライブラリは対応するロケーションを見出す。
【０１０４】
・「モバイルバージョン」ライブラリは、セグメンテーションルールをチェックし、セグメントを選択する。
【０１０５】
・「モバイルバージョン」ライブラリは必要な変数を指定する。
・「モバイルバージョン」ライブラリはエレメントのコンテンツを示す。
【０１０６】
・「モバイルバージョン」ライブラリは、ロケーション、セグメントおよび示された変数がパラメータにある状態で、ＣＧに対して、キャッシュに入れられた要求をなす。
【０１０７】
ある例が図１に示される。
マネージャが管理制御コンソールにおいてできることの例
ａ）コンソール実行のために、ユーザはデバイスＩＤをMaxymiser(MM)UIに登録するべ
きである。
【０１０８】
技術的要件／詳細例。
「モバイルバージョン」ライブラリモジュール：
１）ＣＧ要求モジュール。
【０１０９】
２）外部アセットモジュール（イメージトランザクション）。
３）トラッキングモジュール（アクショントラッキング、ＣＧに対して結果を送信する）。
【０１１０】
４）アプリケーションオブジェクト識別モジュール。
５）ＭＶＴモジュール（代替的なコンテンツビジュアライゼーションを実現する）。
【０１１１】
６）パーソナライゼーションモジュール。
７）セグメンテーションモジュール。
【０１１２】
８）管理制御コンソールモジュール。
モバイルバージョンに対する市場的位置決め
モバイルスマートフォンの採用は急速な速度で増大している。大きな投資がモバイルアプリケーションにおいてなされて、展開の速いマーケットに遅れないようにしている。貴方の手をモバイルデバイスに伸ばすことはチャンスであるが、それは、そのような小さなスクリーンで真に効果的であるためには、最適化されたエクスペリエンスを必要とする。
【０１１３】
Maxymiserのモバイルバージョンはモバイル最適化に革新をもたらした−それは、モバ
イル市場に時間および予算を投資するすべてのブランドにとって必須である。モバイルバージョンは、マーケティング担当者が、コンテンツを効果的にテストおよびターゲットとし、パーソナライズされたエクスペリエンスをモバイルデバイスのために作り出して、変換率を上げることを可能にする。バナー広告、データ発信形態、サイトレイアウト、プロモーションまたは任意の他のコンテンツを含む貴方のモバイルコンテンツのすべてを迅速に最適化して、各個人ユーザ毎に最も関連のあるエクスペリエンスをドライブし、貴方のブランドに対するレベニューを増大させる。
【０１１４】
モバイルアプリを含むようモバイルマーケティングストラテジを必要とはしていないか？活動的な消費者は自分のお気に入りのアプリが自分の指先にあることを楽しむ。モバイルバージョンで、貴方は、Ａ／Ｂおよび多変量テストをモバイルアプリに対して実行することにより、アプリに対するエンドユーザ更新を必要とすることなくユーザエクスペリエンスを改善することができる。季節的な変更が生ずると、新たなウイニングエクスペリエンスを識別し、エンドユーザをアプリに対する過剰な更新で阻害することなく、ユーザエクスペリエンスを動的に変更する。または、モバイルバージョンに新たなウイナーを自動的に適合および判断させて、最も関連のあるエクスペリエンスを経時的にドライブする。
【０１１５】
モバイルバージョンの報告および解析論は、貴方に、モバイルユーザのエクスペリエンスへの洞察力を与え、各ユーザセグメントに対するウイニングエクスペリエンスを識別し、異なるエクスペリエンスを必要とする新たなセグメントを識別する。貴方は、適切なエクスペリエンスを識別し、全体的なキャンペーン効果をウェブサイトおよびモバイルデバイスにわたって測定することになる。
【０１１６】
最適化システムの作成の一例においては、ＳＤＫ仕様を作成するためのステージ０において、仕様が、プロジェクトタイムラインおよび要件収集とともに作成される。ステージ１では、ＳＤＫ開発およびＵＩ調整のために、ライブラリが作成され、ＭＭ  ＵＩ修正およびウェブサービス開発が生じ、アプリストアとのインタラクションが生ずる。デバッグのためのステージ２では、ＭＭ  ＵＩ  ＆  ＳＤＫ統合がスマートフォンアプリでテストされ、内部品質保証およびバグ修正が生じ、ユーザビリティテストが生じ、改善および変更要求が生じ、プロダクションプロセス構築のドラフトが実行される。ステージ３では、ベータテストが生ずる。テスト仕様が作成され、ベータアプリ内の統合およびテスト作成が実行され、ベータクライアントテストが実行され、改善および変更要求がベータフィードバックに基づいて生成され、プロダクションプロセス構築が最終決定される。図２は、最適化システムの作成の例をテーブル形式で示す。
【０１１７】
ｉＰｈｏｎｅ（登録商標）のＳＤＫまたは他のスマートフォンＳＤＫを伴う例
概要
ｉＰｈｏｎｅのＳＤＫ（または他のスマートフォンＳＤＫ）機能は、顧客のアプリケーションへの容易なライブラリ統合を可能にすべきである。統合命令が占めるのは１ページ以下であるべきである。それは、既存のMaxymiserテストキャンペーン作成コンセプトに
対応すべきである。それは、プロダクションおよびサンドボックスモードを可能にすべきである。それらは、（ブラウザクッキーと同様の）ユーザパーソナライゼーションデータを記憶すべきである。それはオフライン測定を可能にすべきである。
【０１１８】
モバイル管理制御コンソールは以下を可能にすべきである：
・モードをサンドボックスからプロダクションに変更することおよび変更し戻すこと；
・インターフェイスオブジェクトおよびプロパティを見ることおよび選択すること；
・プロパティ値を変更すること；
・選択されたプロパティおよび値を記憶すること；
・選択されたプロパティおよび値をMaxymiser UIにエクスポートすること；
フレームワーク．ウェブサービスコールライブラリ例
ウェブサービスクラスを生成するために、一例においては、http://sudzc.com/が用い
られる。
【０１１９】
ＭＭ  ＣＧ  ウェブサービスコールが提供されてもよい。オフラインコール（オンラインになると、キューおよび延期されたコールをコールする）。
【０１２０】
フレームワーク．イメージロードライブラリ例
イメージローディング機能が提供されてもよい。イメージキャッシングが提供されてもよい（変更されたイメージのみをロードすべきである）。
【０１２１】
ＭＭコア（MMCore）ライブラリ例
mmcore.jsと同様にメソッドおよびプロパティのセットが提供されてもよい。
・MMCore.CGRequest();
・MMCore.setAction();
・MMCore.renderLocationElements();
・MMCore.setUserAttribute();
・MMCore.setUserDefaults();
・MMCore.setLocation();
・MMCore.addMVTConstraint();
・MMCore.domain;
・MMCore.server;
・MMCore.CGRequestCallback;
ウェブサービスコールライブラリ、イメージロードライブラリ、ＭＶＴライブラリ、MAConsoleライブラリをカプセル化する。異なるロードコンテンツモード：同期、非同期が
提供されてもよい。読出し、ユーザパーソナライゼーション基準を設定することを可能にしてもよい。
【０１２２】
ＭＶＴライブラリ例
ＣＧコンテンツに従って変更プロパティ値が提供されてもよい。プロパティタイプおよびプロパティ存在妥当性検査が提供されてもよい。ユーザ制約のインプリメンテーションが与えられてもよい。
【０１２３】
・ライブラリは何も修正することができない；
・ライブラリはすべてを修正することができる；
・ライブラリは、（コード命令において、）指定されたオブジェクトおよびプロパティのみを修正することができる。
【０１２４】
・ライブラリは、（Admin UIにおいて、）指定されたオブジェクトおよびプロパティのみを修正することができる。
【０１２５】
エレメント変数はプロパティのセットおよびそれらの値を含むべきである。
コンテンツが準備されていない（未だＣＧからロードされていない）場合には、デフォルトコンテンツが示されるべきである。
【０１２６】
MAConsoleライブラリ例
MAConsole（モバイル管理制御コントロール）は、インターフェイスオブジェクトおよ
びプロパティを発見し、見て、選択することを与えるべきである。選択されたプロパティおよび値をAdmin UIにエクスポートすることを与えてもよい。MAConsoleは、ユーザが企
業ＩＰにあって何らかの具体的な接触をなすとき、またはデバッグモードがアプリケーションにセットされているときに示されるべきである。
【０１２７】
ＭＭ  ＣＧウェブサービス例
データを返しアプリケーションとのインタラクションを実現すべきＣＧウェブサービス（CG JSRendererと同様）
Admin UI例
新たなAdmin UI機能：
１．「モバイルバージョン」キャンペーンタイプ。
【０１２８】
２．「オブジェクト指向型」エレメントタイプ。
３．「オブジェクト指向型」エレメントタイプの変数のためのエディタ。
【０１２９】
４．キャンペーンレベルプロパティ制約。
統合例
MaxymiserＭＶＴライブラリを単純なビューベースのアプリケーションに統合する方法
の例。統合前に、貴方は、必要なキャンペーンが既にMaxymiser.UIツール内に既に作成されていることを確実にする必要がある。
【０１３０】
１．貴方のＸコードプロジェクトにおける「グループおよびファイル」リストの下で、MMCoreクラスファイルをクラスフォルダにコピーする。クラスファイルはダウンロードすることができる…
２．appDelegateクラスヘッダへのMMCoreクラスヘッダを含む。
【０１３１】
#import "MMCore.h"
３．以下を、貴方のappDelegateインプリメンテーションファイルのapplicationDidFinishLaunching（アプリケーションは起動を終了した）イベントハンドラに付加する。
【０１３２】
[MMCore init: self domain: @"YOUR_DOMAIN"];
[MMCore setServer: @" cg_global.maxymiser.com/cg_v5/"];
[MMCore setConstraintMode: @"allowAll"];
[MMCore CGRequest];
４．以下を、貴方のviewContorllerインプリメンテーションファイルのすべてについてviewDidApear（ビューが現われた）イベントハンドラに付加する。
【０１３３】
[MMCore setLocation: self];
５．貴方が追加のロケーションを設定したいと思うたび毎に、以下の機能を用いる。
【０１３４】
[MMCore setLocation: @"YourLocationName"];
６．貴方は以下の方法を用いて追加のデータを報告することができる。
【０１３５】
[MMCore setAction: @"YourActionName"];
７．コンテンツ変動はロケーションが変更するときに実現する。貴方はエレメントレンダリングをいつでも以下の機能によってコールすることができる。
【０１３６】
[MMCore renderLocationElements: @"YourLocationName"];
８．貴方は、修正のためにアクセス可能となるプロパティ範囲を付加することができる。
【０１３７】
[MMCore setConstraintMode: @"allowSpecified"];
[MMCore addMVTConstraint: @"object1/*"];
[MMCore addMVTConstraint: @"object2/*"];
９．アプリケーションを構築し実行する。
【０１３８】
製品シナリオ例
Maxymiserスマートフォン（例えば、ｉＰｈｏｎｅ）ＭＶＴを作成する方法の例
Maxymiser UIにおいて
１．ドメインを選択する。
２．「モバイルバージョン」キャンペーンを作成する。
３．自身のＩＰを企業ＩＰに付加する。
スマートフォン（例えば、ｉＰｈｏｎｅ）アプリケーションにおいて
４．必要なスマートフォン（例えば、ｉＰｈｏｎｅ）アプリケーションを「モバイルバージョン」ライブラリで実行する。
５．貴方がキャンペーンに含ませたいインターフェイスエレメントを発見する。
６．MAConsoleに切換えて承認する。「Sandbox」モードに進む。
７．マーキングツールを用いる。
８．インターフェイスエレメントおよびそのプロパティを選択する。プロパティをブックマークに付加する。
９．他のプロパティのために５〜８を再び行う。
【０１３９】
貴方はエレメントの作成のためにブックマークを用いることができる。以下を行う：
スマートフォン（例えば、ｉＰｈｏｎｅ）アプリケーションにおいて
１．ブックマークリストに進む。リストからブックマークを選択する。「エレメントを作成する」を押す。
２．貴方のセッションが終わる場合、貴方は承認を必要とする。次いで、キャンペーンを選択し、エレメント名を指定し、「保存する」を押す。貴方がエレメントを保存するとシステムは（ロケーションが存在しない場合）自動的にロケーションを形成し、エレメントをロケーションにリンクする。
【０１４０】
貴方はエレメントに対する変数の作成のためにブックマークを用いることができる。以下を行う：
スマートフォン（例えば、ｉＰｈｏｎｅ）アプリケーションにおいて
１．貴方が修正したいインターフェイスエレメントを発見する。
２．MAConsoleに切換えて承認する。「Sandbox」モードに進む。
３．リストからエレメントを選択する（システムはエレメントからブックマークにプロパティを付加する）。
４．ブックマークからプロパティを選択し、プロパティ値を変更する。
５．他のプロパティのために３を行う。
６．「変数を作成する」を押す。
７．貴方のセッションが終わる場合、貴方は承認を必要とする。次いで、変数名を指定し、「保存する」を押す。
【０１４１】
貴方はアプリケーションにおいて変数をプレビューすることができる。以下を行う：
スマートフォン（例えば、ｉＰｈｏｎｅ）アプリケーションにおいて
１．必要なスマートフォン（例えば、ｉＰｈｏｎｅ）アプリケーションを「モバイルバージョン」で実行する。
２．貴方がプレビューしたいインターフェイスエレメントを発見する。
３．MAConsoleに切換えて承認する。「Sandbox」モードに進む。
４．リストからエレメントを選択し、変数を選択し、MAConsoleを閉じる。その後、貴方
はスクリーン上で変数を見ることになる。
【０１４２】
仕様の例
仕様の例では、一次アクションは「Order」であり、それは、アプリケーションを介し
て出された注文をトラッキングする。「Value」は注文のＧＢＰにおける値をキャプチャ
する。属性は、「delivery」＝注文は、ピザが配達されるよう出された、および「collection」＝注文は、ピザがピザ店から集められるよう出された、である。二次アクションでは、「Clicks」は、「カスタマイズ」ボタン上におけるクリックをトラッキングする。ある例が図３に示される。テスト変数では、異なるボタンスタイルおよび色が「カスタマイ
ズ」ボタンのためにテストされる。ある例が図４に示される。
【０１４３】
仕様の例では、一次アクションは「Order」であり、それは、アプリケーションを介し
て出された注文をトラッキングする。「Value」は注文のＧＢＰにおける値をキャプチャ
する。属性は、「delivery」＝注文は、ピザが配達されるよう出された、および「collection」＝注文は、ピザがピザ店から集められるよう出された、である。二次アクションでは、「Add to Cart」はカスタマイズされたピザがユーザのカートに加えられたかどうか
をトラッキングする。ある例が図５に示される。
【０１４４】
仕様の例では、一次アクションは「Purchase」であり、それは、アプリケーションを介して出された注文をトラッキングする。「Value」は注文のＧＢＰにおける値をキャプチ
ャする。二次アクションでは、「ProdViews」はアプリケーション内における製品ページ
のビューをトラッキングする。一例が図６に示される。テスト変数においては、ユーザがカテゴリ閲覧ページにナビゲートすると、結果が、最後に用いられたフィルタオプションによってフィルタ処理される。変数は、例えば、タイトルによってでもよく、価格によってでもよく、またはリリースによってでもよい。図７に例が示される。
【０１４５】
仕様の一例においては、一次アクションは「FoodViews」であり、それは、アプリケー
ション食物パッケージの１つのビューをトラッキングする。一例では、食物カテゴリページおよび食物詳細ページの両方がトラッキングされる。図８に例が示される。図８の左側は食物カテゴリページの一例を示す。図８の右側は食物詳細ページの一例を示す。パーソナライゼーション基準の一例では、最後に見られた食物カテゴリがパーソナライゼーション基準「FoodPreference」に保存される。可能な値は、ケーキ、朝食、昼食、マフィン、サラダ、サンドイッチ、ヨーグルトまたはブランクである。図９に例が示される。
【０１４６】
仕様の一例では、一次アクションは「RadioPlay」であり、それは、ユーザがラジオ局
を聞くかどうかをトラッキングする。属性はラジオが聞かれた分数をトラッキングし、それは、以下の可能な値：０〜３０、３０〜６０、＞６０にグループ分けされてもよい。二次アクションでは、「BannerClicks」はアプリケーションページの一番上にある外部バナー上におけるクリックをトラッキングする。一例が図１０に示される。一例においては、３つのバナー変数がテストに含まれる。３つのバナー変数は'no advert（広告なし）', 'one advert（広告１つ）'および'two adverts（広告２つ）'であってもよい。一例が図１１に示される。
【０１４７】
仕様の一例では、一次アクションは「BookClicks」であり、それは「Book」ボタン上のクリックをトラッキングする。「Value」はブッキングのコストをキャプチャする。属性
はブッキングされた旅行のエージェントを、例えば、Opodoをトラッキングする。二次ア
クションでは、「BookingComplete」はアプリ内ウェブサイトを通して完了されたブッキ
ングをトラッキングする。二次アクションでは、「Search」は、アプリケーションにおいて実行されるサーチをトラッキングする−サーチ結果ページのビュー。図１２に例が示される。
【０１４８】
仕様の一例では、一次アクションは「Purchase」であり、それは、アプリケーションを通してなされた完了された購入をトラッキングする。Valueは購入の値をキャプチャする
。属性は、取引が購入された都市をトラッキングする。一例が図１３に示される。
【０１４９】
テストページの例では、テストページはカテゴリ閲覧ページのうちの任意のものであってもよい。テストページのある領域においては、テストエレメントはbuy色テストエレメ
ントであってもよい。テストページのある領域においては、テストエレメントはボタンテストエレメントであってもよい。テストページのある領域においては、テストエレメント
はイメージテストエレメントであってもよい。テストページのある領域においては、テストエレメントはレイアウトテストエレメントであってもよい。一例が図１４に示される。
【０１５０】
モバイルアプリテスト：サイト作成のための命令
モバイルアプリテストのためにサイトを作成する方法の例（ＡＰＩメソッド）
我々は、モバイルアプリテストに対してライセンスを付与されるクライアントのためにサイトをセットアップするためのガイドを提供する。キャンペーン作成については他の部分に記載する。
【０１５１】
意図されるオーディエンスはクライアントのためにサイトを定期的に設定する管理者である。以下のステップを実行して、モバイルアプリテストのためのサイトを準備する：
１．Maxymiser Admin UIにおいて「管理／サイト管理」セクションを通して新たなサイトを付加する。
【０１５２】
サイトの名称はこのパターンに従って設定されるべきである：
<ドメインなしクライアントの名称>.app
例えば、Maxymiser.app
次に新たなサイトのための以下のパラメータをセットすべきである：
“ビジュアルキャンペーンビルダ”−ディスエーブル；
“第一者クッキーを用いる”−チェック済み；
“モバイルアプリテストサイト”−チェック済み。
【０１５３】
２．「キャンペーン」タブにおいてこのサイトを選択する。「サイト設定／サイトブラウザルール」に進む。
【０１５４】
３．「カスタムブラウザルールを定義する」タブを開いて、カスタム包含ブラウザルールを次のパラメータで付加する：
ブラウザ−任意、ＯＳ−任意、デバイスタイプ−任意、バージョン−エンプティ
４．「サイト設定／パーソナライゼーション基準」に進む。
【０１５５】
５．３つのパーソナライゼーション基準を以下の名称で付加する：
ＯＳバージョン、アプリバージョン、接続タイプ
６．「サイト設定／サイトページ」に進む。
【０１５６】
７．２つのサイトページを付加する：
１つの含まれるマスク"Generations"を伴う"GenerationPage"と称されるページ；
１つの含まれるマスク"Actions"を伴う"ActionsPage"と称されるページ；
「ＵＲＬをプレビューする」というフィールドは用いられず、妥当性検査に合格するよう任意のＵＲＬで事前設定できる。
【０１５７】
８．キャンペーンが作成されるとページ"GenerationPage"のみを付加する（以下の記載をさらに参照のこと）。
【０１５８】
開発者のためのMaxymiserモバイルアプリテスト用ＡＰＩおよびＳＤＫインプリメンテ
ーションガイド−例
１  導入
このインプリメンテーションガイドは、Maxymiserモバイルアプリケーションテスト用
ソリューション「MMTApp」を統合するためのステップを提供する。それは、Ａ／Ｂテストキャンペーンがどのようにして実現され、スマートフォンオペレーションシステム、例えばｉＯＳ（登録商標）などのために開発されたネイティブモバイルアプリケーション内で
動作し得るかを記述する。このガイドは、貴方が例えばｉＯＳのようなスマートフォンオペレーティングシステムのためにアプリを作成することに慣れていることを仮定する。
【０１５９】
２  開始
ＡＰＩを用い、それをアプリと統合するための前提条件：
・Ｘコードがインストールされた開発環境。
【０１６０】
・貴方が貴方のアプリをデバイス上においてテスト目的で動作させる場合、貴方はApple Development Program（アップル開発プログラム）アカウントを有することを必要とす
ることになる。
【０１６１】
・オブジェクティブ−ＣおよびネイティブｉＯＳアプリを用いる開発に精通していること。
【０１６２】
注：我々のＳＤＫはｉＯＳ７以降をサポートする。ｉＯＳ６以前については、ＳＤＫは貴方のアプリと統合され得るが、ＳＤＫはアクティブとはならず、貴方はMaxymiserの特
徴を用いることはできないことになる。
【０１６３】
３  統合ガイド
我々の統合ガイドは６つのステップを通して、貴方に、ｉＯＳアプリ内においてＡ／Ｂテストのセットアップを完了させる。
【０１６４】
３．１  キャンペーン作成
我々は我々の現在のMaxymiser UIドキュメンテーションに対して多数のリンクを提供した。これは貴方がモバイルアプリテストを設定し維持するところである。我々の用語注については付録１を参照されたく、我々の用語集は付録３において見ることができる。
【０１６５】
３．１．１  テストのためにキャンペーンを設定する。
１．Max Testキャンペーンを作成する−完全なドキュメンテーションが我々のヘルプガイドに見ることができる。
【０１６６】
２．貴方のキャンペーンを、アプリテストのために、Maxymiser UIにおいて作成されたページにマッピングする−全ドキュメンテーションが我々のヘルプガイドに見ることができる。貴方のキャンペーンを絶対に他のページにはマッピングしないようにして頂きたく、なぜならば、予め定義されたページはアプリテストのために設定される特別なプロパティを有するからである。
【０１６７】
３．貴方が貴方のアプリケーション内においてトラッキングしたい少なくとも１つのアクションを作成する−全ドキュメンテーションが我々のヘルプガイドに見られる。モバイルアプリテストのためにサポートされるユーザ属性のリストについては付録２を参照されたい。
【０１６８】
４．貴方のユーザエクスペリエンスの変数を含むことになるエレメントを作成する−全ドキュメンテーションが我々のヘルプガイドに見られる。一例では、多変量テストはサポートされず、したがって、僅かに１つのエレメントのみがキャンペーンにつき作成されることを確実にされたい。
【０１６９】
５．貴方のユーザエクスペリエンスのエレメントのために少なくとも１つの変数を作成する−全ドキュメンテーションが我々のヘルプガイドに見ることができる。
【０１７０】
６．変数重みを指定および制御−全ドキュメンテーションが我々のヘルプガイドに見ることができる。
【０１７１】
例えば：
我々は、背景色を変更して、どれがより高い変換率を有するかを検証したい。貴方のユーザエクスペリエンスの２つの変数を、デフォルトに加えて作成し、なぜならば、これは自動的に作成され得るからである。デフォルト変数（制御変数）は白い背景を有する。
【０１７２】
変数１−緑の背景を有し、変数２は青い背景を有する。
ここで我々は変数重み付けを設定することを必要とする。
【０１７３】
デフォルト−５０％。
変数１−２５％。
【０１７４】
変数２−２５％。
これは、以下を意味する：すべてのユーザのうちの半分はＵＩにおいてどのような変化も見ず、キャンペーンに参加しないことになる。ユーザの４分の１は緑の背景を見、４分の１は青の背景を見ることになる。
【０１７５】
３．２  ＳＤＫ統合
ここで、キャンペーンがMaxymiser UIにおいて構成されたので、我々はＳＤＫを統合するプロセスを開始することができる。
【０１７６】
１．このドキュメンテーションに沿って配布されるMMTAppライブラリジップファイルを見つけ出し抽出する。
【０１７７】
２．ＳＤＫパッケージのコンテンツを抽出する。
３．Ｘコードを起動し、テストされるべきｉＯＳアプリケーションを開く。
【０１７８】
４．以下のファイルをＳＤＫパッケージから貴方のアプリケーションに付加する：
MMTApp.h
MMTApi.h
MMTExperiences.h
MMTLogger.h
libMMTApp.a
５．貴方のアプリのターゲットを以下のライブラリとリンクする：
CoreData.framework
SystemConfiguration.framework
libMMTApp.a
６．'#import "MMTApp.h"'ディレクティブを貴方のプロジェクトのワーキングファイルの一番上に挿入する。MMTAppはＡＰＩに対するエントリポイントである。
【０１７９】
７．ＡＰＩを作成および構成する：
ａ）  貴方のアプリケーションデリゲートにおいて以下を挿入する：
//'myapp'サイトのためのＡＰＩを作成
id <MMTApi> api = [MMTApp apiForSite:@"myapp"];
//プロダクションではなく、Sandbox構成を用いる
[api useSandbox:YES];
ｂ）  'myapp'をMaxymiser UIにおける貴方のサイトの名称と置き換える。
【０１８０】
ｃ）  その後、貴方は[MMTApp defaultApi]によって最初に作成されたＡＰＩを参照す
ることができ、したがって、作成されたＡＰＩに対する参照を保持する必要はない。
【０１８１】
さらなる構成オプションについてはＡＰＩリファレンスを参照されたい。
３．３  エクスペリエンスフェッチング
以下のコードは、後で用いるために、すべてのキャンペーンおよびそれらの変数をフェッチしキャッシュすることになる。
【０１８２】
//隙間のページを示す。
[[MMTApp defaultApi] fetchExpenences:^{
//隙間のページを隠し、ホームページを表示する
}];
第１の因数は、一旦エクスペリエンスがフェッチされると我々が呼び出すことになるブロックである。ＵＩをこのブロック内において更新することは安全であり、なぜならば、それはメインスレッド上において呼び出されることになるからである。
【０１８３】
注：レイテンシのため、Maxymiserからの応答を表示すべき変数の詳細とともに受信す
ることにおいては短い遅延があるかもしれないことを意識されたい。したがって、我々は、エクスペリエンスを、貴方のアプリにおいて、ユーザが遅延を自然に経験する場所、例えば隙間のページまたはサーチターム／ログイン入力ページにおいてフェッチすることをお勧めする。我々は、エクスペリエンスをアプリ起動でフェッチすることをお勧めする。
【０１８４】
３．４  コンテンツ変換
エクスペリエンスがフェッチされると、貴方はそれらを用いてコンテンツを変換することができる。
【０１８５】
コンテンツ変換を実現するために貴方が選択できる２つの方法がある。
３．４．１  変数名
貴方のアプリケーションの判断ロジックを変数名に基づかせる。この場合、ビューエレメントに対するユーザエクスペリエンスの変数は、以下の例に示されるフォーマットを用いる。
【０１８６】
変数名がデフォルトであるとき、変数コンテンツは空である。
変数名がVariant1であるとき、変数コンテンツは空である。
【０１８７】
変数名がVariant2であるとき、変数コンテンツは空である。
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
UIColor *color = nil;
NSString *variantName = [[[MMTApp defaultApi] getExperiences]
getVariantNameForCampaign:@"Campaign" element:@"View"];if ([@"Variant1" isEqualToString:variantName]) {
color = [UIColor greenColor];
} else if ([@"Variant2" isEqualToString:variantName]) {
color = [UIColor blueColor];
} else {
color = [UIColor whiteColor];
}
self.view.backgroundColor = color;
[[MMTApp defaultApi] trackContentSeen:@"Campaign"];
}
３．４．２  変数コンテンツ
貴方はコンテンツ変換を変数コンテンツに記述することができる。ビューエレメントのためのユーザエクスペリエンスの変数は以下の例に示されるフォーマットを用いるであろう。
【０１８８】
変数ネームがデフォルトであるとき、変数コンテンツはwhiteColorである。
変数名がVariant1であるとき変数コンテンツはgreenColorである。
【０１８９】
変数名がVariant2であるとき変数コンテンツはblueColorである。
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
NSString *variantContent = [[[MMTApp defaultApi] getExperiences]
getVariantContentForCampaign:@"Campaign" element:@"View"];
if(variantContent != nil){
self.view.backgroundColor = [UIColor performSelector:NSSelectorFromString(variantContent)];
} else {
self.view.backgroundColor = [UIColor whiteColor];
}
[[MMTApp defaultApi] trackContentSeen:@"Campaign"];
}
重要：
ユーザがキャンペーンからのコンテンツを示されると、Maxymiserプラットフォームは
[[MMTApp defaultApi] trackContentSeen:%CampaignName%
をコールすることによって通知されなければならない
このステップを実行しないことは、報告が破損されることを意味し、なぜならば、どのようなユーザもキャンペーンに入るとして認識されることにならないからである。
【０１９０】
３．５  アクショントラッキング
すべてのテストキャンペーンは、貴方がユーザエクスペリエンスの変更のインパクトをトラッキングして、例えば、販売への変換をトラッキングすることができるように、少なくとも１つのアクションを必要とする。
【０１９１】
以下のコードを用いてアクションをトラッキングする：
[[MMTApp defaultApi] trackAction:@"Purchase" value:100 attribute:nil];
Maxymiserへの接続が利用可能でない場合には、アクションはキャッシュされ、一旦接
続が再開されると送信される。
【０１９２】
３．６  ＱＣ＆ライブになる
環境
Maxymiser UIは２つの環境：Sandboxおよびプロダクションをサポートする
３．６．１  Sandbox
Sandboxはキャンペーンが作成され構成される開発テスト環境である。貴方のアプリケ
ーション上におけるすべてのテストがSandboxで実行されるべきである。Sandboxトラフィックは予め定義された企業ＩＰから供される。
【０１９３】
品質制御（ＱＣ）テスト目的のためにアプリ内の特定の変数をプレビューするために：
１．MaxymiserＹ−キャンペーン設定＞キャンペーンコンテンツ＞エレメント＆変数ペ
ージを用いて、すべての変数の重み付けを「０」にセットする。
【０１９４】
２．貴方がプレビューしたい変数の重みを「１００」にセットする。貴方のアプリケーションを動作させて、変換が正しく適用されること、および他の機能が期待通りに動作することを確認する。
【０１９５】
３．これらのステップをユーザエクスペリエンスにおけるすべての変数に対して繰返す。
【０１９６】
４．すべての構成されたアクションをトリガするよう必要な段階を完了する。
５．アクションログレポートをチェックして、アクションの値およびアクションの属性が正しくログされていることを確認する。
【０１９７】
注：SandboxモードにおいてキャプチャされるデータはMaxymiser UI一般レポートには
現われない。このモードはＱＣテスト目的に対して存在する。アプリはテストがSandbox
環境に接続された状態でリリースされてはならず、なぜならば、サービスレベル同意（Service Level Agreement）（ＳＬＡ）はサポートされず、報告は利用可能とはならないか
らである。
【０１９８】
３．６．２  プロダクション
プロダクションはプロダクション（ライブユーザ）トラフィックに供されるよう用いられる環境である。
【０１９９】
この環境から集められたデータは、どの変異型が最もよいパフォーマであるかを判断するために、解析のために、報告領域（Maxymiser UI−解析タブを参照のこと）において利用可能にされる。
【０２００】
MMTAppは環境が以下のように切換えられることを可能にする：
#ifdef DEBUG
[api useSandbox:YES];
#endif
重要：Sandbox環境に依然として接続されているキャンペーンを含むアプリをエンドユ
ーザに絶対にリリースしないこと。
【０２０１】
３．６．３  公開
公開は、Sandbox状態とプロダクション状態との間においてキャンペーンを移動させる
のに必要である−全ドキュメンテーションが我々のヘルプガイドに見ることができる。
【０２０２】
一旦キャンペーンがセットアップされると、それは、それが公開されるときにインプリメンテーションから開始してライブまでの状態を通過し得る。これらの状態は図１５に示されるテーブルに記載される。
【０２０３】
３．６．４  キャンペーンを終了する
キャンペーンの終わりで（当選者エクスペリエンス変数が識別されると）、ウイニング変数は、キャンペーンが再公開される前にMaxymiser UIにおいて１００に重み付けされることができ−これによって、確実に、ウイニング変数のみがユーザに表示される。キャンペーンは、一旦キャンペーンが終了すると'Not Collecting Data（データを収集していな
い）'が推奨され、したがってパフォーマンスデータは今後の参照のために凍結される。
【０２０４】
キャンペーン特化コードは、当選者エクスペリエンス変数が（例えば、次のリリースで）アプリコードベースにコード化されると、アプリから除去されるべきである。
【０２０５】
我々のトラブルシューティングガイドについては付録４を参照されたい。
４  ＡＰＩリファレンス
MMTApp
ＳＤＫトップレベルクラス。サイトのためにＡＰＩを作成することを容易にすること、およびＳＤＫ構成のための方法を含むことを与える。
【０２０６】
タスク
ＡＰＩを管理する
+ defaultApi
+ setDefaultApi:
+ apiForSite:
構成
+ setLogger:
+ setLogLevel:
クラスメソッド
+ defaultApi
デフォルトＡＰＩを返す。
+ (id <MMTApi>)defaultApi;
戻り値
ＡＰＩオブジェクトは+setDefaultApiで明示的に設定される:または作成された第１のＡ
ＰＩオブジェクトが+apiForSiteで作成される:そうでなければニルを返す。
+ setDefaultApi:
デフォルトＡＰＩを設定する。
+ (void)setDefaultApi:(id <MMTApi>)api;
パラメータ
api
デフォルトとして設定されるＡＰＩオブジェクト。
+ apiForSite:
所与のサイトに対する新たなＡＰＩを作成する。
+ (id <MMTApi>)apiForSite:(NSString *)site;
パラメータ
サイト
サイトの名称。
戻り値
所与のサイトとリンクされるＡＰＩオブジェクト。
+ setLogger:
ＳＤＫによって用いられるロガーを設定する。
+ (void) setLogger:(id <MMTLogger>)logger;
パラメータ
ロガー
使用すべきロガー。
+ setLogLevel:
ロギングレベルを設定する。
+ (void)setLogLevel:(MMTLogLevel)level;
パラメータ
レベル
ロギングレベル。
MMTApi
エクスペリエンスをフェッチし、アクションをトラッキングするよう用いられるプロトコル
タスク
構成
- setRequestTimeOut:
- setWiFiOnly:
- useSandbox:
エクスペリエンス
- fetchExperiences:
- fetchExperiences: forPage:
- getExperiences
トラッキング
- trackAction: value: attribute:
- trackAction: value: attribute: forPage:
- trackContentSeen:
インスタンスメソッド
- setRequestTimeOut:
我々サーバに要求を行うのに費やすことができる最大時間を設定する。デフォルトは３秒である。その時間を超えるときに、エクスペリエンスをフェッチする試みは停止し、先のユーザエクスペリエンスが選択されることになる。
- (void)setRequestTimeOut:(NSTimeInterval)timeout;
パラメータ
タイムアウト
使用すべきタイムアウト。
- setWiFiOnly:
ユーザがＷｉ−Ｆｉネットワークに接続されるときにのみ新たなエクスペリエンスがフェッチされることができるかどうか明示する。デフォルトによって、任意の利用可能なネットワークが用いられる。
- (void)setWiFiOnly:(BOOL)wifiOnly;
パラメータ
wifiOnly
ＹＥＳでＷｉ−Ｆｉネットワークのみを用い、ＮＯで任意の利用可能なネットワークを用いる。
- useSandbox:
Sandbox構成が用いられるべきかどうか明示する。デフォルトによって、プロダクション
構成が用いられる。
- (void)useSandbox:(BOOL)sandbox;
パラメータ
sandbox
ＹＥＳでSandbox構成を用い、ＮＯでプロダクション構成を用いる。
- fetchExperiences:
「Generations」と名付けられたデフォルトページに対してMaxymiserプラットフォームから新たなエクスペリエンスをフェッチする。フェッチすることはバックグラウンドスレッド上で実行される。
- (void)fetchExperiences:(void(^)()) handler;
パラメータ
ハンドラ
一旦エクスペリエンスがフェッチされると呼び出されるブロック。
- fetchExperiences: forPage:
特定されたページに対してMaxymiserプラットフォームから新たなエクスペリエンスをフ
ェッチする。フェッチすることはバックグラウンドスレッド上で実行される。
- (void)fetchExperiences:(void (^)())handler forPage:(NSString *)page;
パラメータ
ハンドラ
一旦エクスペリエンスがフェッチされると呼び出されるブロック。
ページ
貴方がエクスペリエンスをフェッチしたいページ。
- getExperiences
コンテンツ変換に対して用いられるべきフェッチされたエクスペリエンスを返す。
- (id <MMTExperiences>)getExperiences;
戻り値
先にMaxymiserプラットフォームからフェッチされたエクスペリエンス。エクスペリエン
スがフェッチされなかった場合、ニル。
- trackAction: value: attribute:
「アクション」と名付けられたデフォルトページに対してユーザアクションをトラッキングする。
- (void)trackAction:(NSString *)name value: (NSInteger)value attribute:(NSString
*)attr;
パラメータ
名称
Maxymiser UIにおけるサイト構成に存在するべきアクションに対する名称。
値
アクションの整数値。これは量および和などのような各種パラメータのトラッキングに対して用いることができる。
attr
アクション属性。これはアクションと関連した様々な付加的情報のトラッキングに対して用いることができる。
- trackAction: value: attribute: forPage:
指定されたページに対するユーザアクションをトラッキングする。
- (void)trackAction:(NSString *)name value:(NSInteger)value attribute:(NSString *)attr forPage:(NSString *)page;
パラメータ
名称
Maxymiser UIにおけるサイト構成に存在するべきアクションに対する名称。
値
アクションの整数値。これは量および和などのような各種パラメータのトラッキングに対して用いることができる。
attr
アクション属性。これはアクションと関連した様々な付加的情報のトラッキングに対して用いることができる。
ページ
貴方がアクションをトラッキングしたいページ
- trackContentSeen:
ユーザがコンテンツを供されたという確認に対する特別なタイプのアクションをトラッキングする。
- (void)trackContentSeen:(NSString *)campaign;
パラメータ
キャンペーン
コンテンツが供されたキャンペーン名。
MMTExperiences
フェッチされたエクスペリエンスに対して生成された変数を検索するよう用いられるプロトコル。
タスク
変数
- getVariantNameForCampaign: element:
- getVariantContentForCampaign: element:
インスタンスメソッド
- getVariantNameForCampaign: element:
キャンペーンに対して生成された変数名およびMaxymiser UIにおいてテスト構成と関するエレメントを検索する。
- (NSString *)getVariantNameForCampaign:(NSString *) campaign element:(NSString *)element;
パラメータ
キャンペーン
貴方が変数名を得たいキャンペーンの名称。
エレメント
貴方が変数名を得たいキャンペーンにおけるエレメントの名称。
戻り値
キャンペーンにおけるエレメントに対する生成された変数の名称。
以下の場合に対してはニルを返す：キャンペーンが開始されない、キャンペーンが終了される、キャンペーンが休止される、または、サイトが不能化される。これらの状況のいずれにおいても、デフォルトコンテンツをレンダリングするプロセスが適所に置かれるべきである。
- getVariantContentForCampaign: element:
キャンペーンに対して生成された変数コンテンツおよびMaxymiser UIにおいてテスト構成と関するエレメントを検索する。
- (NSString *)getVariantContentForCampaign:(NSString *)campaign element:(NSString *) element;
パラメータ
キャンペーン
貴方が変数コンテンツを得たいキャンペーンの名称。
エレメント
貴方が変数コンテンツを得たいキャンペーンにおけるエレメントの名称。
戻り値
キャンペーンにおけるエレメントに対する生成された変数のコンテンツ。
以下の場合に対してはニルを返す：キャンペーンが開始されない、キャンペーンが終了される、キャンペーンが休止される、または、サイトが不能化される。これらの状況のいずれにおいても、デフォルトコンテンツをレンダリングするプロセスが適所に置かれるべきである。
MMTLogger
ＳＤＫからメッセージをロギングするために用いられるプロトコル。このプロトコルのインプリメンテーションはＭＭＴＡｐｐクラスに提供することができる。
タスク
ロギング
- debug:
- info:
- warning:
- error:
インスタンスメソッド
- debug:
ログレベルデバッグを伴うメッセージをログする。
- (void)debug:(NSString *)message;
パラメータ
メッセージ
ログすべきメッセージ。
- info:
ログレベル情報を伴うメッセージをログする。
- (void)info:(NSString *)message;
パラメータ
メッセージ
ログすべきメッセージ。
- warning:
ログレベル警告を伴うメッセージをログする。
- (void)warning:(NSString *)message;
パラメータ
メッセージ
ログすべきメッセージ。
- error:
ログレベルエラーを伴うメッセージをログする。
- (void) error:(NSString *)message;
パラメータ
メッセージ
ログすべきメッセージ。
【０２０７】
５  可能なシステム制限の例
一例においては、Maxymiserモバイルライブラリは以下のシステム制限を有する：
・各アプリは１つのMaxymiserサイトエンティティに接続することができる。
【０２０８】
・サイトは１０個より多いキャンペーンを含むことができない。
・ユーザインターフェイスは何らかのウェブ特定用語を含み、上記のガイドはサポートされる設定をカバーし、Maxymiser UIにおける他のすべてのものは無視され得る。疑わしい場合には、MaxymiserはキャンペーンＱＣプロセスで支援することができる。
【０２０９】
・キャンペーンは１つより多いエレメントを含んではならない。
・多変量テストは現在はサポートされない。
【０２１０】
・エレメントは１０個より多い変数を含むことはできない。
・セグメンテーション、MaxPredict、MaxRecommendおよびＶＣＢはサポートされない。
【０２１１】
・一例において、すべてのユーザ属性がこのバージョンにおいて十分にサポートされるわけではなく、したがって、いくつかの属性は「ヌル」またはさらには無意味な値をも示すことになる。サポートされる属性のリストについては付録２を参照のこと。
【０２１２】
・照会ＵＲＬによるフィルタアクションおよびＵＲＬパラメータによるフィルタアクションはモバイルアプリテスト内においてはサポートされない。
【０２１３】
６  付録
６．１  付録１−用語注
モバイルアプリテストのためのＵＩはウェブサイトテストから目的変更されており、したがって、ウェブサイトテストに依然として当てはまるある部分および用語が存在する。
【０２１４】
・Maxymiser UIは用語（ウェブ）サイトを用い、これはモバイルアプリテストにおいてアプリ名として読出され得る
・Maxymiser UIが「ページ」を指す場合、これはエクスペリエンスおよびアクションのためのコンテナとして考えられ得る。
【０２１５】
６．２  付録２−属性
アプリキャンペーンにおいてキャプチャされるコア属性は以下に記載されるようにウェブキャンペーンにおいてキャプチャされるものとは異なる。
【０２１６】
注：以下にリスト化されない属性は、依然として、報告ユーザインターフェイスに見られるかもしれず、「null」または無意味な値を含み得る。これらは無視されるべきであり、解析に対して用いられるべきではない。
【０２１７】
６．２．１  アプリに対してのみ新規−例
デバイスに対する接続タイプである属性'Connection'−２Ｇ、３Ｇ、４Ｇ、Wi-Fi。
【０２１８】
オペレーティングシステムタイプおよびバージョンである属性'OS'。
アプリバージョンである属性'App Version'。
【０２１９】
６．２．２  アプリおよびウェブに存在
これらの例は図１６の表に示される。
【０２２０】
６．３  付録３−用語集
Ａ／Ｂテスト：アプリの１つの領域における変更をテストする方法。アプリビジターはコンテンツ「Ａ」または「Ｂ」を無作為に示される。コンテンツに対する応答を解析して、それらの間の違いが有意であるかどうかを見る。Ａ／Ｂテストは単に２つの変数に制限されず、Ａ／Ｂ／Ｃ／Ｄ…［ｎ］テストの省略形として一般的に用いられる。
【０２２１】
アクション：ビジターにより実行される変換イベント、例えば、購入またはクリックスルー。
【０２２２】
キャンペーン：統計的に信頼性のある結果を得るためにキャンペーンが実行される必要がある期間。
【０２２３】
キャンペーンレベル設定：個々のキャンペーンに当てはまるコア構成。
コンテンツジェネレータ（ＣＧ）：Maxymiserシステムのコアコンポーネント：それは
アプリテスト中における主要な動作を実行するエンジンである。コンテンツジェネレータは変数を供し、すべての選択されたアクションおよびパーソナライゼーション基準をトラッキングする。
【０２２４】
コンテンツ変数：Maxymiser UIにおいて作成され、テストプロセス中にビジターに供される代替的コンテンツ。各エレメントは少なくとも２つの変数を有する（それらの１つは制御変数として指定される）。
【０２２５】
変換：いくつの変換アクションが現在のコンテンツ変数とともになされたかについてのデータ。
【０２２６】
デフォルト変数：テスト前にページ上に表示されるコンテンツ。Maxymiserテスト報告
は現在の（デフォルト／制御）コンテンツをキャンペーンにおいて変動されたコンテンツと比較する。
【０２２７】
エレメント：ランディングページイメージ、バナーのサイズ、またはテストされるべきアクションに対するコールボタンのコピーなどのような、識別可能なアプリの一部。
【０２２８】
エクスペリエンス：エクスペリエンスは、１つ以上のページにわたる特定の変数のセットからなる。例えば、ある考えられ得るエクスペリエンスは、イメージを伴わないウエルカムページ、中程度サイズのバナー、および'View Our Best Offers'というアクションに対するコールボタンである。
【０２２９】
インプリメンテーション（ステータス）：キャンペーンが未だライブになっていないことを反映するキャンペーンステータス。
【０２３０】
ライブ：現在アプリにおいて動作中のキャンペーン構成を指す。
Maxymiser UI：ビジネスユーザが協力して動作してMaxymiserの最適化ソルーションを
用いることができる指定されたワークスペース。
【０２３１】
ページ：テストされるべきエレメントを含むウェブサイトまたはアプリ上におけるページに対応するMaxymiserサイトページ。
【０２３２】
プロダクション：ビジターがキャンペーンコンテンツを見る環境。
公開：キャンペーン構成を、Sandbox環境（ＱＣテスト領域）から、キャンペーンコン
テンツがウェブサイトまたはアプリビジターにとって可視であるプロダクション環境（ウェブサイト／アプリ）に転送するプロセス。
【０２３３】
公開センター：キャンペーンコンテンツがライブのウェブサイトに転送されるMaxymiser UIの領域。
【０２３４】
公開に対する用意：キャンペーン構成が完成し、キャンペーンが公開される用意がある旨を公開者に知らせるよう用いられる特徴。
【０２３５】
Sandbox：キャンペーンが作成され構成されるテスト環境。
変数（コンテンツ変数）：エレメントの変数はその特定のエレメントの考えられ得る構成である。すべてのエレメントに対して少なくとも２つの変数：デフォルト（または「制御」）および少なくとも１つのチャレンジャー変数がある。
【０２３６】
変数重み：コンテンツ変数を供されるトラフィックの割合を判断するよう用いられる値。我々は２つのコンテンツ変数「Ａ」および「Ｂ」を有するとしよう。「Ａ」は１０の重みを有し、「Ｂ」は３０の重みを有する。この場合、「Ａ」はキャンペーントラフィックの２５％を得、「Ｂ」は７５％を得る。
【０２３７】
ビジター：キャンペーンに入り（第一者クッキーを介してトラッキングされ）コンテンツを見るユーザ。
【０２３８】
ビジター属性：ウェブサイトまたはアプリビジターを識別する、例えば、彼らの地理的ロケーション、サイト上のアクティビティ、オペレーティングシステムおよびパーソナライゼーション基準、例えば性別など、を識別する特性。
【０２３９】
６．４  付録４−トラブルシューティング
６．４．１  デバックロギング機構
MMTAppライブラリは、標準的なNSLog出力に基づくデバックロギング機構を提供する。
クエリ構築、送信要求および応答解析のようなすべての要求はNSLogメッセージによって
反映される。したがって、このライブラリ挙動のログを出力ウインドウにおいて、Ｘコードで見、それをエラーに関して監視することが可能である。生成されたログメッセージは"MMTApp:"を接頭辞として付される。
【０２４０】
６．４．２  緊急キャンペーン停止
キャンペーンが停止される必要がある状況では、貴方は、このドキュメンテーションの「公開」セクションにおいて参照されるように、キャンペーンの状態をユーザインターフェイスにおいて'Pause'または'Finished'に変更することによって、キャンペーンを'Pause'または'Finish'することができる。
【０２４１】
例えば、キャンペーンは不正確に構成またはプログラミングされて、予測されないアプリケーションの挙動に至ったかも知れない。一旦キャンペーンが休止または終了されると、我々のＡＰＩはニル値に戻ることになる。
【０２４２】
重要：アプリは、ニル応答が正しく処理されデフォルトユーザエクスペリエンスが示されるようにコード化されることを確実にすること。
【０２４３】
６．４．３  報告
貴方がレポートにおいてデータを見ない場合には、プロダクション構成を用いるようMMTAppを構成することを確実にされたく、なぜならば、'Sandbox'構成は報告をサポートし
ないからである。さらに、[[MMTApp defaultApi] trackContentSeen: %CampaignName%]]
をコールすることによって、Maxymiserプラットフォームはコンテンツが供されている（
ユーザによって見られる）ことについて通知されることを確実にされたい。
【０２４４】
７  開発サポート
貴方がさらなる支援を必要とする場合には、ZenDeskチケットを上げるか、または関係
のある場合には以下の詳細を提供する貴方のアカウントマネージャと接触されたい：
１．環境構成。
【０２４５】
ａ．開発マシーン−ＯＳ／Ｘコードバージョン。
ｂ．展開目標−シミュレータまたはデバイス、これがデバイスである場合には、タイプおよびｉＯＳバージョンを述べて下さい。
【０２４６】
２．問題を再生するステップ。
３．MMTAppからのデバッグレベルログ。
【０２４７】
４．適用可能である場合にはアプリケーションコードの関係のあるセクションのコピー。
【０２４８】
注
上で参照された構成は、本発明の原理に対する適用の例示に過ぎないことが理解されるべきである。多数の修正物および代替構成が、この発明の精神および範囲から逸脱することなく工夫され得る。本発明は、本発明の最も実用的でありかつ好ましい例として現在見なされているものとの関連において特定性および詳細とともに図面に示され上記に十分に記載されたが、当業者にとっては、多数の修正が、ここに述べられるこの発明の原理およ
び概念から逸脱することなくなされ得ることが明らかとなる。
【図１】
2019215895.tif 000003
【図２】
2019215895.tif 000004
【図３】
2019215895.tif 000005
【図４】
2019215895.tif 000006
【図５】
2019215895.tif 000007
【図６】
2019215895.tif 000008
【図７】
2019215895.tif 000009
【図８】
2019215895.tif 000010
【図９】
2019215895.tif 000011
【図１０】
2019215895.tif 000012
【図１１】
2019215895.tif 000013
【図１２】
2019215895.tif 000014
【図１３】
2019215895.tif 000015
【図１４】
2019215895.tif 000016
【図１５】
2019215895.tif 000017
【図１６】
2019215895.tif 000018
【手続補正書】
【提出日】令和1年8月29日(2019.8.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
リフレクションベースのプログラミング言語でそのソフトウェアが書かれているネイティブアプリケーションのための最適化の方法であって、前記ネイティブアプリケーションはディスプレイおよびプロセッサを含むコンピューティングデバイス上で実行可能であり、前記ネイティブアプリケーションは前記コンピューティングデバイスの前記ディスプレイにユーザインターフェイスを表示するように構成され、前記方法は、
前記ネイティブアプリケーションがジェネリックなコードを含むように修正して、前記コンピューティングデバイスの外部のサーバと通信するよう構成される修正されたネイティブアプリケーションを生成するステップを含み、前記ジェネリックなコードは前記ネイティブアプリケーションのソースコードに適用される唯一のコードであり、前記方法はさらに、
前記サーバから前記修正されたネイティブアプリケーションをリモートで構成して、前記修正されたネイティブアプリケーションによって生成されるユーザインターフェイスのデータ、機能またはコンテンツの１つ以上を変更することができるように実行時に前記修正されたネイティブアプリケーションの構造および挙動を調査および修正するステップを含み、
実行時に前記修正されたネイティブアプリケーションの前記構造および挙動を修正することは、前記修正されたネイティブアプリケーションの値、メタデータ、プロパティ、イメージおよび機能のうちの１つ以上を修正することを含む、方法。
【請求項２】
前記ジェネリックなコードは、前記ネイティブアプリケーションの複数バージョンおよびインスタンス内において前記コードを変更することなしに、多数の種類の最適化が最適化システムのユーザインターフェイスにおいてリモートで構成されることを可能にする、請求項１に記載の方法。
【請求項３】
最適化は、ユーザが所望のアクションを完了する確率を上げるために、オンザフライで各ユーザに対して視覚的エクスペリエンスを適合させることを含む、請求項１または２に記載の方法。
【請求項４】
前記方法は、ユーザ挙動をターゲットとするか、プロファイリングするか、または解析することにおいて使用するために、ユーザ／デバイスについて１つ以上の属性を収集することをさらに含む、請求項１〜３のいずれか１項に記載の方法。
【請求項５】
前記収集された属性は、以下の：前記デバイスへの接続タイプ（例えば、２Ｇ、３Ｇ、４Ｇ、Ｗｉ−Ｆｉ）；デバイスタイプ；アプリケーションバージョン；オペレーティングシステムタイプおよびバージョン；ロケーション（例えば、座標、都市、国、大陸、郵便番号による）；インターネットサービスプロバイダ；アプリへの過去の訪問の最近度および詳細；過去のアクションの最近度および詳細；特定の製品カテゴリとの過去のインタラクションなどのようなカスタムユーザ定義の属性；ユーザが様々なロケーションからアプリを起動する機会を有する照会ソース；日付、曜日、時間による訪問の時間、およびＣＲＭデータベースなどのような他のロケーションからインポートされるデータ、のうちの１つ以上である、請求項４に記載の方法。
【請求項６】
キャンペーンからビジター／デバイスを、それらの属性を用いて含むかまたは排除するステップと、
他のユーザセグメント情報のためのルールとの組合せにおいて、ビジター／デバイスの属性に従って、当該ビジター／デバイスに対するコンテンツを対象とするセグメンテーションルールを作成するステップとをさらに含む、請求項４または５に記載の方法。
【請求項７】
変更可能なユーザインターフェイスコンテンツは：
ａ）シンプルテキストまたはイメージブロック（バナー、ページのヘッダ）、移動、リサイズ、ハイディング、再フォーマット；
ｂ）ボタンテキスト、移動、リサイズ、再フォーマット、およびハイディング；
ｃ）「通知プッシュ」頻度およびコンテンツ；
ｄ）表示されるピクチャ（ピクチャは外部サーバに記憶され得る）；
ｅ）新たなテキストまたはイメージブロック；
ｆ）リスト＆テーブル（順序づけ、いくつの項目を表示するか）；
ｇ）前記アプリケーション内のナビケーションパス（例えば、'add to cart'は、ユーザをカートページに向けるか、またはさらなる選択をなすためにカテゴリページに戻るか）、および
ｈ）最後のユーザ選択に基いたナビゲーションの表示、の１つ以上を含む、請求項１〜６のいずれか１項に記載の方法。
【請求項８】
前記ネイティブアプリケーションはライブラリを含む、請求項１〜７のいずれか１項に記載の方法。
【請求項９】
前記ライブラリはすべてのアプリケーションに対して静的である、請求項８に記載の方法。
【請求項１０】
前記ライブラリは、
コンテンツジェネレータに要求を送信し、当該コンテンツジェネレータから応答を受信するステップと、
ネイティブアプリケーションのスタートでコンテンツジェネレータに対して要求をなすステップと、
コンテンツジェネレータに対して要求をなすステップであって、当該要求はロケーションおよびユーザ属性をパラメータで含んでいるステップと、
ネイティブアプリケーションに含まれるネイティブアプリケーションキャッシュと対話するステップとのうち、１つ以上を実行するように構成される、請求項８または９に記載の方法。
【請求項１１】
前記ネイティブアプリケーションキャッシュは前記外部サーバからプッシュされたコンテンツを受信するように構成される、請求項１０に記載の方法。
【請求項１２】
前記ライブラリは以下のモジュール：
１）ＣＧ要求モジュール；
２）外部アセットモジュール（イメージトランザクション）；
３）トラッキングモジュール（アクショントラッキング、ＣＧに対して結果を送信する）；
４）アプリケーションオブジェクト識別モジュール；
５）ＭＶＴモジュール（代替的なコンテンツビジュアライゼーションを実現する）；
６）パーソナライゼーションモジュール；
７）セグメンテーションモジュール、および
８）管理制御コンソールモジュール、の１つ以上を含む、請求項８〜１１のいずれか１項に記載の方法。
【請求項１３】
前記ライブラリは、コード命令において、指定されたオブジェクトおよびプロパティのみを修正することができる、請求項８〜１２のいずれか１項に記載の方法。
【請求項１４】
請求項１〜１３のいずれか１項に記載の方法を実行するよう構成されるシステム。
【請求項１５】
請求項１〜１３のいずれか１項に記載の方法をコンピュータに実行させる、プログラム。
【外国語明細書】
2019215895000001.pdf