(57)【特許請求の範囲】
【請求項１】
タッチ入力ディスプレイを有するユーザデバイスでスワイプジェスチャ認識を使用し、ホスティングサーバによって提供されるコンテンツを操作する方法であって、
スワイプジェスチャ認識モジュールと組み合わされてハイパーテキストマークアップランゲージ（ＨＴＭＬ）ドキュメントを形成する前記コンテンツを対象とする第１のユニフォームリソースロケータを前記ホスティングサーバに格納し、前記スワイプジェスチャ認識モジュールが、ＨＴＭＬタグ、前記ＨＴＭＬドキュメント内の少なくとも１つの表示可能なコンテンツ要素及び識別子に関連付けられ、前記ＨＴＭＬタグが、前記第１のユニフォームリソースロケータを含み、前記少なくとも１つの表示可能なコンテンツ要素が、前記第１のユニフォームリソースロケータの位置とは異なる位置に格納されたイメージを対象とする第２のユニフォームリソースロケータを含み、
前記ホスティングサーバにおいて、前記ＨＴＭＬドキュメントを対象とする第３のユニフォームリソースロケータを介して、前記ユーザデバイスから前記ＨＴＭＬドキュメントの要求を受信し、
前記ユーザデバイスで実行しているウェブブラウザによって表示するため、前記ＨＴＭＬドキュメントを前記ホスティングサーバから前記ユーザデバイスに送信する、
ことを含み、
前記スワイプジェスチャ認識モジュールは、前記ウェブブラウザによって前記ＨＴＭＬドキュメントが前記ユーザデバイスに表示されると、前記少なくとも１つの表示可能なコンテンツ要素でスワイプジェスチャ認識を実行するように構成され、
前記スワイプジェスチャ認識は、
前記ユーザデバイスの前記タッチ入力ディスプレイからタッチ入力データを受信し、
前記ホスティングサーバ又は第２のサーバに格納されたスワイプジェスチャ判定モジュールをアクセスし、前記タッチ入力データを解析し、前記少なくとも１つの表示可能なコンテンツ要素でスワイプジェスチャが発生したか否かを判定し、
前記タッチ入力データの前記解析に基づいて、前記少なくとも１つの表示可能なコンテンツ要素でスワイプジェスチャが発生したと判定されると、前記少なくとも１つの表示可能なコンテンツ要素に所定のアクションを適用し、
前記タッチ入力データの前記解析に基づいて、前記少なくとも１つの表示可能なコンテンツ要素でスワイプジェスチャが発生したと判定されると、前記少なくとも１つの表示可能なコンテンツ要素に前記所定のアクションを適用することなく、前記スワイプジェスチャ認識を繰り返す、
方法。
【請求項２】
前記少なくとも１つの表示可能なコンテンツ要素は、他の表示コンテンツに重畳されたウインドウの形状である、
請求項１に記載の方法。
【請求項３】
前記少なくとも１つの表示可能なコンテンツ要素は、表示ウインドウの形状であり、他の表示コンテンツの一部を形成する、
請求項１に記載の方法。
【請求項４】
前記所定のアクションは、前記少なくとも１つの表示可能なコンテンツ要素の消去を含む、
請求項１に記載の方法。
【請求項５】
前記所定のアクションは、前記第１のユニフォームリソースロケータを起動することを含む、
請求項１に記載の方法。
【請求項６】
前記スワイプジェスチャ認識モジュールは、スクリプトオブジェクトを含むアプリケーションプログラミングインタフェース（ＡＰＩ）を含む、
請求項１に記載の方法。
【請求項７】
前記スワイプジェスチャ認識モジュールは、所定のスワイプジェスチャに応答して、前記タッチ入力ディスプレイを制御するコードを含む、
請求項６に記載の方法。
【請求項８】
前記コンテンツは、所定のスワイプジェスチャに応答して、前記タッチ入力ディスプレイを制御するコードを含む、
請求項６に記載の方法。
【請求項９】
前記スワイプジェスチャ判定モジュールは、前記スワイプジェスチャ認識モジュールにおける外部のスクリプトファイル参照タグの第４のユニフォームリソースロケータを使用してアクセスされる、
請求項１に記載の方法。
【請求項１０】
前記ユーザデバイスの前記タッチ入力ディスプレイから受信した前記タッチ入力データに基づいて、ユーザによるタッチ開始位置を検出し、
スワイプジェスチャであることを判定するため、タッチが開始されなければならない前記タッチ入力ディスプレイの領域を特定する開始要素が指定されたか否かを判定し、
前記開始要素が指定されたならば、前記ユーザによる前記タッチ開始位置が、前記指定された開始要素の境界内で発生したか否かを判定し、
前記ユーザによる前記タッチ開始位置が前記指定された開始要素の境界内であれば、スワイプジェスチャが発生したか否かを判定する解析のため、前記タッチ入力データの蓄積を開始するタッチ移動イベントを通知し、
前記ユーザによる前記タッチ開始位置が前記指定された開始要素の境界内でなければ、前記スワイプジェスチャ判定を終了し、
前記開始要素が指定されなければ、タッチ移動イベントを通知することで、
前記スワイプジェスチャ判定モジュールが、前記少なくとも１つの表示可能なコンテンツ要素でスワイプジェスチャが発生しているか否かを判定する、
請求項１に記載の方法。
【請求項１１】
前記ユーザデバイスの前記タッチ入力ディスプレイから受信した前記タッチ入力データに基づいて、ユーザによるタッチ終了位置を検出し、
スワイプジェスチャであることを判定するため、タッチが終了されなければならない前記タッチ入力ディスプレイの領域を特定する終了要素が指定されたか否かを判定し、
前記終了要素が指定されたならば、前記ユーザによる前記タッチ終了位置が、前記指定された終了要素の境界内で発生したか否かを判定し、
前記ユーザによる前記タッチ終了位置が前記指定された終了要素の境界内であれば、スワイプジェスチャが発生したか否かを判定するため、前記蓄積されたタッチ入力データの解析を開始するタッチ終了イベントを通知し、
前記ユーザによる前記タッチ終了位置が前記指定された終了要素の境界内でなければ、前記スワイプジェスチャ判定を終了し、
前記終了要素が指定されなければ、タッチ終了イベントを通知する、
ことを更に含む、請求項１０に記載の方法。
【請求項１２】
タッチ入力ディスプレイを有するユーザデバイスでスワイプジェスチャ認識を使用し、ホスティングサーバによって提供されるコンテンツを操作する方法を、プロセッサに実行させる命令を格納した非一時的な記録媒体であって、前記方法は、
スワイプジェスチャ認識モジュールと組み合わされてハイパーテキストマークアップランゲージ（ＨＴＭＬ）ドキュメントを形成する前記コンテンツを対象とする第１のユニフォームリソースロケータを前記ホスティングサーバに格納し、前記スワイプジェスチャ認識モジュールが、ＨＴＭＬタグ、前記ＨＴＭＬドキュメント内の少なくとも１つの表示可能なコンテンツ要素及び識別子に関連付けられ、前記ＨＴＭＬタグが、前記第１のユニフォームリソースロケータを含み、前記少なくとも１つの表示可能なコンテンツ要素が、前記第１のユニフォームリソースロケータの位置とは異なる位置に格納されたイメージを対象とする第２のユニフォームリソースロケータを含み、
前記ホスティングサーバにおいて、前記ＨＴＭＬドキュメントを対象とする第３のユニフォームリソースロケータを介して、前記ユーザデバイスから前記ＨＴＭＬドキュメントの要求を受信し、
前記ユーザデバイスで実行しているウェブブラウザによって表示するため、前記ＨＴＭＬドキュメントを前記ホスティングサーバから前記ユーザデバイスに送信する、
ことを含み、
前記スワイプジェスチャ認識モジュールは、前記ウェブブラウザによって前記ＨＴＭＬドキュメントが前記ユーザデバイスに表示されると、前記少なくとも１つの表示可能なコンテンツ要素でスワイプジェスチャ認識を実行するように構成され、
前記スワイプジェスチャ認識は、
前記ユーザデバイスの前記タッチ入力ディスプレイからタッチ入力データを受信し、
前記ホスティングサーバ又は第２のサーバに格納されたスワイプジェスチャ判定モジュールをアクセスし、前記タッチ入力データを解析し、前記少なくとも１つの表示可能なコンテンツ要素でスワイプジェスチャが発生したか否かを判定し、
前記タッチ入力データの前記解析に基づいて、前記少なくとも１つの表示可能なコンテンツ要素でスワイプジェスチャが発生したと判定されると、前記少なくとも１つの表示可能なコンテンツ要素に所定のアクションを適用し、
前記タッチ入力データの前記解析に基づいて、前記少なくとも１つの表示可能なコンテンツ要素でスワイプジェスチャが発生したと判定されると、前記少なくとも１つの表示可能なコンテンツ要素に前記所定のアクションを適用することなく、前記スワイプジェスチャ認識を繰り返す、
記録媒体。
【請求項１３】
前記少なくとも１つの表示可能なコンテンツ要素は、他の表示コンテンツに重畳されたウインドウの形状である、
請求項１２に記載の記録媒体。
【請求項１４】
前記少なくとも１つの表示可能なコンテンツ要素は、表示ウインドウの形状であり、他の表示コンテンツの一部を形成する、
請求項１２に記載の記録媒体。
【請求項１５】
前記所定のアクションは、前記少なくとも１つの表示可能なコンテンツ要素の消去を含む、
請求項１２に記載の記録媒体。
【請求項１６】
前記所定のアクションは、前記第１のユニフォームリソースロケータを起動することを含む、
請求項１２に記載の記録媒体。
【請求項１７】
前記スワイプジェスチャ認識モジュールは、スクリプトオブジェクトを含むアプリケーションプログラミングインタフェース（ＡＰＩ）を含む、
請求項１２に記載の記録媒体。
【請求項１８】
前記スワイプジェスチャ認識モジュールは、所定のスワイプジェスチャに応答して、前記タッチ入力ディスプレイを制御するコードを含む、
請求項１７に記載の記録媒体。
【請求項１９】
前記コンテンツは、所定のスワイプジェスチャに応答して、前記タッチ入力ディスプレイを制御するコードを含む、
請求項１７に記載の記録媒体。
【請求項２０】
前記スワイプジェスチャ判定モジュールは、前記スワイプジェスチャ認識モジュールにおける外部のスクリプトファイル参照タグの第４のユニフォームリソースロケータを使用してアクセスされる、
請求項１２に記載の記録媒体。
【請求項２１】
前記ユーザデバイスの前記タッチ入力ディスプレイから受信した前記タッチ入力データに基づいて、ユーザによるタッチ開始位置を検出し、
スワイプジェスチャであることを判定するため、タッチが開始されなければならない前記タッチ入力ディスプレイの領域を特定する開始要素が指定されたか否かを判定し、
前記開始要素が指定されたならば、前記ユーザによる前記タッチ開始位置が、前記指定された開始要素の境界内で発生したか否かを判定し、
前記ユーザによる前記タッチ開始位置が前記指定された開始要素の境界内であれば、スワイプジェスチャが発生したか否かを判定する解析のため、前記タッチ入力データの蓄積を開始するタッチ移動イベントを通知し、
前記ユーザによる前記タッチ開始位置が前記指定された開始要素の境界内でなければ、前記スワイプジェスチャ判定を終了し、
前記開始要素が指定されなければ、タッチ移動イベントを通知することで、
前記スワイプジェスチャ判定モジュールが、前記少なくとも１つの表示可能なコンテンツ要素でスワイプジェスチャが発生しているか否かを判定する、
請求項１２に記載の記録媒体。
【請求項２２】
前記ユーザデバイスの前記タッチ入力ディスプレイから受信した前記タッチ入力データに基づいて、ユーザによるタッチ終了位置を検出し、
スワイプジェスチャであることを判定するため、タッチが終了されなければならない前記タッチ入力ディスプレイの領域を特定する終了要素が指定されたか否かを判定し、
前記終了要素が指定されたならば、前記ユーザによる前記タッチ終了位置が、前記指定された終了要素の境界内で発生したか否かを判定し、
前記ユーザによる前記タッチ終了位置が前記指定された終了要素の境界内であれば、スワイプジェスチャが発生したか否かを判定するため、前記蓄積されたタッチ入力データの解析を開始するタッチ終了イベントを通知し、
前記ユーザによる前記タッチ終了位置が前記指定された終了要素の境界内でなければ、前記スワイプジェスチャ判定を終了し、
前記終了要素が指定されなければ、タッチ終了イベントを通知する、
命令を更に含む、請求項２１に記載の記録媒体。
【請求項２３】
前記スワイプジェスチャ判定モジュールは、前記タッチ入力データが直線からずれても、まだスワイプジェスチャが発生していると判定される許容範囲を定義するパラメータを含む、
請求項１に記載の方法。
【請求項２４】
前記スワイプジェスチャ判定モジュールは、前記タッチ入力データが直線からずれても、まだスワイプジェスチャが発生している判定される許容範囲を定義するパラメータを含む、
請求項１２に記載の記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、すべての開示内容が参照によって本願に組み込まれる、「スワイプジェスチャ認識技術を使用したコンテンツ操作」と題する、２０１３年７月１日に出願された米国特許出願番号１３／９３２，８９８号、及び、２０１２年１１月２８日に出願された米国特許仮出願番号６１／７３０，８９９号の利点を主張するものである。
【０００２】
開示の実施形態は、スワイプジェスチャ認識技術を使用したコンテンツ操作を対象とする。より詳細には、開示の実施形態は、ユーザデバイスにおけるスワイプジェスチャ認識技術を使用し、ホスティングサーバによって提供されるインターネットベースのコンテンツを操作するシステム及び方法を対象とする。
【背景技術】
【０００３】
例えば、スマートフォン、タブレット、電子書籍リーダ、タッチ対応ラップトップ、タッチ対応デスクトップコンピュータなど、タッチスクリーンベースのユーザコンピューティングデバイスは、一般に、インターネットを介して、サーバからコンテンツを要求するために使用されている。このようなコンテンツは、広告、又は、その広告の特定部分がユーザによってタッチされるまで、表示コンテンツに重畳された他のタイプの表示ウインドウを含むことができる。タッチされると広告を閉じる部分は、その広告の隅にある小さな「ｘ」であってもよい。
【０００４】
比較的小さなスクリーン、特に、スマートフォンのスクリーンでは、ユーザがスクリーンの指定部分を正確にタッチして広告を閉じることは、しばしば困難である。これは、閉じる「ボタン」の代わりに、ユーザが無意識に広告のアクティブな部分をタッチする結果となり、同様に、アニメーションの望まない起動、又は、別のウェブページへの望まないナビゲーションとなることがある。これは、ユーザにとって非常にイライラして迷惑する体験となる可能性がある。
【０００５】
特定のコストパークリック（ＣＰＣ）に基づいて広告の代金が支払われるので、このような広告主のウェブページの望まない起動は、広告主のコストを増加する可能性がある。このため、モバイルデバイスにおいてＣＰＣベースで広告を得る広告主は、非常に高いクリックスルー率（ＣＴＲ）を得るが、偶然のクリックスルーに起因して低い投資利益率（ＲＯＩ）を得ることとなる。これは、現在及び潜在的な顧客を悩ませる可能性があり、大規模なブランドへ大きな影響を与える、否定的なブランド認知となる可能性がある。
【発明の概要】
【０００６】
開示の実施形態は、スワイプジェスチャ認識技術を実装し、ホスティングサーバによってユーザデバイスに提供されるインターネットベースのコンテンツを操作する、システム、方法及びプロセッサ命令を提供する。
【０００７】
開示のシステム及び方法では、ユーザは、例えば、モバイルデバイスなど、コンピューティングデバイスを持つことができる。モバイルデバイスは、例えば、携帯電話機、タブレット、モバイルブラウザなどのソフトウエアの組み込みモバイルピース（mobile piece）を実行する家庭電化製品とすることができる。ブラウザは、コンテンツの一部を要求することができる。このコンテンツは、一般的に、ウェブページでホストされ、インターネットを介してアクセスされる。このような場合、ウェブページは、実際に、デバイスからコンテンツをホストするサーバへと要求する。コンテンツは、広告とその広告に適用する動作（behavior）とを含むことができる。サーバがコンテンツ要求を受信すると、スワイプジェスチャ動作及び要求コンテンツに関連情報を適用するために必要な技術パッケージなど、コンテンツ、広告、特定の関連情報の「パッケージ」を提供する。異なるタイプの広告は異なる方法でバンドルされてもよく、特に、コンテンツの特定部分とアセンブルされた、スワイプジェスチャ認識技術の異なる要素があってもよい。これらの決定がなされると、サーバは、少なくともスワイプジェスチャ認識技術ピース及び広告を含む、束（bundle）を送信する。
【０００８】
広告は、コンテンツサーバ（すなわち、ホスティングサーバ）以外のサーバから来ることができる。コンテンツサーバは、広告自体にアクセスできなくてもよい。むしろ、コンテンツサーバが広告について十分な情報を受信すると、コンテンツサーバが、ユーザのデバイスでスワイプジェスチャ認識技術を広告にどのように適用するかを判定することができる。
【０００９】
特定の実施形態では、コンテンツサーバによって受信された広告に関する情報は、スワイプ技術、例えば、ユニフォームリソースロケータ（ＵＲＬ）を適用することを予定（look）している特定のコンテンツパッケージの識別子とすることができる。この情報は、ユーザデバイスに広告がどのように表示されるか、例えば、広告はフルスクリーンであるか又はページの下部にあるウインドウバーか否かを示す、付加的なコンテキストデータを含むこともできる。コンテンツサーバによって受信された情報は、広告主によって望まれるプレゼンテーションのタイプの特定の詳細、及び、検出スワイプジェスチャに広告がどのように応答するつもりかを含むことができる。また、広告主は、スワイプが発生した通知（indication）のみを望むことができ、ユーザデバイスで動作しているソフトウエアにスワイプに対する応答を処理させることができる。
【００１０】
広告に関連するコンテンツサーバによって受信された情報は、広告がユーザデバイスに表示されるコンテキストを提供する。この情報は、スワイプジェスチャ認識技術から必要とされる特定の動作、スワイプ技術がプレゼンテーションコンポーネントを含む必要があるか否か、及び、そうであれば、どのプレゼンテーションコンポーネントが必要かを記述する。
【００１１】
コンテンツ、広告情報及びスワイプジェスチャ認識技術（例えば、コードのモジュールの形式で）を含むパッケージがアセンブルされると、それがユーザデバイスに配信される。このパッケージは、例えば、クライアントタイプのスクリプトの形式であってもよく、このスクリプトは、ユーザデバイスレベルで利用可能な情報に基づいて決定することができる。スワイプジェスチャ認識技術がユーザデバイスにあれば、スワイプジェスチャ認識技術は、どこに広告コンテンツがあるか、及び、ユーザデバイスにプレゼンテーションをどのように表示するかに関する詳細をすでに認識している。このため、表示動作はパッケージに基づく。とりわけ、スワイプジェスチャ認識技術は、コンテンツページの一部を介して「クロールし」、表示／制御するつもりである広告を見いだす。パッケージがプレゼンテーションコンポーネントに適用される必要があれば、この時点でそのように行われる。スワイプ技術はまた、ユーザのジェスチャを解釈するため、ユーザのジェスチャをリスニングし始める必要がある場所を判定し、例えば、クリック、ドラッグ又は他のジェスチャなど、ユーザがスワイプジェスチャをするつもりであったか、又は、ユーザが他のタイプの操作をするつもりであったかを決定する。
【００１２】
前述の準備がなされ、関連した決定のすべてが行なわれた後、スワイプジェスチャ認識技術は、ユーザがユーザデバイスのスクリーンをタッチすることを待つ、受動リスニングモードになる。ユーザがスクリーンにタッチし、そのタッチが、例えば、スワイプジェスチャ動作が適用されるスクリーンの部分内でのものであると、システムは、タッチがスワイプジェスチャであると見做すべきか否かを解釈しようと試みる。
【００１３】
このため、ユーザがスクリーンをタッチすると、スワイプジェスチャ認識技術は「目覚め」、ユーザの意図がタッチアクションに関するものであるかを把握しようとすることを開始する。行動分析をユーザの指の移動状態、例えば、何本の指が所定の位置にあるか、それらがどの方向に移動しているか、それらが移動していた時間の長さ、及び、様々な他の基準に適用することで、技術がこれを行なう。ユーザがスクリーンをタッチした後、スワイプ技術は、ジェスチャ及びユーザがスクリーンと持った対話を記録する。ユーザが指をスクリーンから離すと、スワイプ技術は、タッチデータの収集とバックグラウンドでなされていた分析を中止し、タッチデータ、例えば、タッチ位置及び時間データに基づく決定を開始する。
【００１４】
スワイプジェスチャ認識技術は、ユーザが指を使用してスクリーンで行ったタッチアクションを分析し、これらのアクションが、システムが期待及び応答するように構成された種類のスワイプジェスチャを構成するか否かを判定する。システムが、タッチアクションが探し求めていたスワイプジェスチャを意味しないと判定すれば、システムは、さらなるタッチアクションを待つ、受動的な「リスニング」モードに戻ることができる。
【００１５】
スワイプジェスチャ認識技術が「リスニング」している特定のスワイプジェスチャを検出したならば、ユーザデバイスにインストールされたパッケージの特定の本質（nature）に依存する異なるアクションをとる。一般的な場合には、システムが正式（bona fide）のスワイプジェスチャを検出すると、システムが、それをリスニングするようなことが起こる、任意のアプリケーション又はエンティティにこれを通知する。特定の実施形態では、スワイプジェスチャ認識技術はまた、ユーザデバイスにユーザインタフェースを実装することができる。このような場合、スワイプジェスチャが検出されると、システムは、アニメーションの方法で広告をスクリーンから取り外すことによって、例えば、重畳された表示可能なコンテンツ要素（例えば、広告）を消去するなど、特定のアクションをとる。パッケージが表示処理部なしでスワイプジェスチャ認識技術を含む実施形態では、適用されるスワイプジェスチャ認識を要求するパッケージの部分（例えば、広告コンテンツの原因となるエンティティによってコード化された部分）が、スワイプが発生した受信通知に基づいて、適切なアクションをとる原因となる。
【００１６】
開示の実施形態は、例えば、アプリケーションがあるタイプのアクションを表示広告に適用できるように、タッチスクリーンジェスチャをリスニングし、検出ジェスチャが適切であるか否かを判定し、その後、システムが、知る必要があるアプリケーションに通知することを確認する、システム及び方法を提供する。アプリケーションは、例えば、重畳広告を閉じ、広告によって特定される異なるサイトに広告を「介してスワイプ」し、又は、広告にアニメーション若しくは他の実施可能な要素を起動させることができる。例えば、広告がソフトドリンクに関するものであれば、スワイプジェスチャは、グラスに注がれている飲料を表示するアニメーションを実行させてもよい。このため、開示の実施形態の一態様は、すべてのタッチスクリーンデータを処理し、ユーザとの対話を実行する方法を解釈する能力である。
【００１７】
特定の実施形態では、ユーザのスクリーンタッチの検出後、システムは、スワイプジェスチャの「リスニング」を開始する。システムは、タッチが所定の領域、例えば、広告で行われたか否かを判定することができ、システムがスワイプジェスチャに応答又は単にそれを報告する原因があるか否かを判定することもできる。タッチが広告の上で行われなければ、システムは、リスニングを終了し、次のタッチ検出を待つ。タッチが広告の上で行われたならば、システムは、ユーザがスクリーンのタッチを終了するまで、タッチデータ、例えば、位置及び時間をキャプチャする。この時点で、システムは、ユーザの対話のパターンをスワイプジェスチャとして認識すべきか否か判定する。スワイプジェスチャでなければ、システムは、休止状態に戻り、次のタッチが発生することを待つ。例えば、ジェスチャが十分長く、適切な方向で、その軸からあまりずれず、かつ、適切な大きさを有していると判定されると、ジェスチャは、正式のスワイプジェスチャと見做される。この判定に基づいて、特定のアプリケーションに通知することができ、及び／又は、特定のアクションをとることができる。ホスティングサーバからユーザデバイスに配信されたパッケージのタイプに応じて、実行されるアクションは、広告の消去であってもよく、又は、アプリケーションへ通知して次のタッチイベントを待つだけでもよい。
【００１８】
特定の実施形態では、スワイプジェスチャ認識技術が、広告に取り付けられ、例えば、派生「パッケージ」が、ユーザデバイスに配信される。このパッケージは、コンテンツの一部として、コンテンツプロバイダ（すなわち、広告コンテンツの原因となるエンティティ）のスクリプトコンポーネントを含むことができる。コンテンツプロバイダのスクリプトがユーザのデバイスで実行されると、スクリプトを使用するアプリケーション又は他のエンティティは、特定の情報を設定して、スクリプトにそのコンテキストを知らせる。例えば、スワイプジェスチャ認識技術が取り付けられた広告である、「ＡＢＣＤ」と呼ばれる要素があってもよい。要素ＡＢＣＤの内部に、スワイプジェスチャが必要であり、システムがスワイプジェスチャをモニタすべき特定の領域としての要素を特定することをユーザに示す、矢印（又は他のシンボル）を有するサブ要素があってもよい。特定の領域は、異なる色に変化し、又は、ユーザが領域をスワイプする代わりに領域をタッチすると、他の種類の通知を提供することができる。特定の実施形態は、４つの異なる方向でスワイプジェスチャを検出するように構成される。システムは、スワイプジェスチャが左、右、上又は下に向かうことを確認する。一方、斜め方向のスワイプは、認識されない。
【００１９】
コアスワイプジェスチャ認識技術に関して問題となっている「パッケージ」は、そこに埋め込まれたスクリプトブロック（例えば、JavaScript（登録商標））に、例えば、テキスト、イメージ及びビデオコンテンツの組み合わせを有するＨＴＭＬファイルとし、アプリケーションプログラミングインタフェース（ＡＰＩ）として動作させることもできる。スワイプジェスチャ動作は、標準の<script>タグ（外部のライブラリを特定する“src”属性と共に）を使用した広告コンテンツによって参照される、外部のJavaScriptライブラリで定義することができる。ページのどの部分に取り付けるべきか、スワイプジェスチャ検出にどのオプションが使用されるべきか、及び、スワイプジェスチャが検出されると何をすべきかに関して、スワイプライブラリを指示するコンテンツのスクリプトブロックによって、動作が任意のＨＴＭＬコンテンツに取り付けられる。
【００２０】
同様にユーザ体験を提供するように構成されたスワイプ広告の場合、プロセスは同様に機能する。広告コンテンツをホスティングするサーバは、スワイプジェスチャ認識「ユーザ体験」を含むＨＴＭＬコンテンツのブロックを返送することができる。このＨＴＭＬコンテンツと広告コンテンツとの組み合わせは、上述したのと同様な方法（すなわち、スワイプ広告がユーザ体験自体を提供するように構成されていないのと同様な場合）で、スワイプジェスチャ動作を要求及び構成する。これらのユーザ体験提供スワイプ広告のそれぞれは、着信要求に動的に応答する何かというよりはむしろ、前もってアセンブルされたＨＴＭＬコードの静的ブロックであってもよい。
【００２１】
特定の実施形態では、コンテンツ、例えば、ウェブページは、スワイプジェスチャを全域で追跡したいアイテムを持つことができる。これは、特定の領域でユーザがスワイプジェスチャを行なったときいつでも通知するように、スワイプスクリプトに要求する。ユーザがスクリーンをタッチしているように、スワイプジェスチャ認識技術は、バックグラウンドで、ユーザがスワイプジェスチャをするつもりであるか否かを判定するため、タッチパターンの決定を行なっている。スワイプジェスチャが検出されると、システムは、任意のエンティティ、例えば、通知されることを要求したアプリケーション又はウェブページのＨＴＭＬコードに通知する。いくつかの実施形態では、通知を要求するエンティティは、単に検出動作自体を使用する第三者（third party）であってもよい。いくつかの実施形態では、通知を要求するエンティティは、第三者のアプリケーションに対していくつかの動作サポート及びユーザインタフェース（ＵＩ）を提供するスワイプ広告パッケージになるだろう。
【００２２】
特定の実施形態では、スワイプジェスチャが検出されると、すべてのエンティティに通知することができる。特定のエンティティがシステムに登録され包括的なパッケージを要求したものであれば、システムは、例えば、広告を閉じる又は広告を介してクリックするなど、検出スワイプジェスチャに応答して特定のアクションをとる。システムは、スワイプジェスチャの検出に必要なアクションは何でも実行することができ、その後、リスナー、すなわち、タッチ検出モニタを「解体（tear down）」することができる。なぜならば、タッチ検出モニタはもはや必要ないからである。これがなされると、ユーザデバイスの失効（drain）又はセッションのスピードダウンを回避することができる。
【００２３】
他の実施形態では、システムは、適切なアクションをとり、スワイプジェスチャをリスニングし続けることができる。例えば、ユーザがソーダボトルを横切ってスワイプすると、アニメーションはソフトドリンクがグラスに注がれて泡が放出することを表示する、ソフトドリンクに関する広告のように、スワイプジェスチャがアニメーションを開始するために使用される広告があってもよい。アニメーションが開始された後、ユーザが繰り返しアニメーションを開始できるように、リスナーは、そのままにしておくことができる。
【００２４】
一態様では、開示の発明は、タッチ入力ディスプレイを有するユーザデバイスでスワイプジェスチャ認識を使用し、ホスティングサーバによって提供されるコンテンツを操作する方法を提供する。この方法は、前記コンテンツのうちの少なくとも１つの表示可能なコンテンツ要素に関連付けられたスワイプジェスチャ認識モジュールと組み合わされてコンテンツパッケージを形成するコンテンツを前記ホスティングサーバに格納することを含む。この方法はさらに、前記ホスティングサーバにおいて、前記ユーザデバイスから前記コンテンツパッケージの要求を受信することと、前記ユーザデバイスで実行しているアプリケーションによって表示するため、前記コンテンツパッケージを前記ホスティングサーバから前記ユーザデバイスに送信することと、を含む。
【００２５】
また、開示の発明のこの形態に関して、スワイプジェスチャ認識モジュールは、前記少なくとも１つの表示可能なコンテンツ要素が前記ユーザデバイスに表示されると、スワイプジェスチャ認識を実行するように構成される。前記スワイプジェスチャ認識は、前記ユーザデバイスの前記タッチ入力ディスプレイからタッチ入力データを受信する。前記スワイプジェスチャ認識はさらに、前記スワイプジェスチャ認識モジュールを使用して、前記ホスティングサーバ又は第２のサーバに格納されたスワイプジェスチャ判定モジュールをアクセスし、前記タッチ入力データを解析し、前記少なくとも１つの表示可能なコンテンツ要素でスワイプジェスチャが発生したか否かを判定することを含む。前記スワイプジェスチャ認識はさらにまた、前記少なくとも１つの表示可能なコンテンツ要素でスワイプジェスチャが発生したと判定されると、前記少なくとも１つの表示可能なコンテンツ要素に所定のアクションを適用することを含む。
【００２６】
開示主題の上記及び他の目的及び利点は、同様な参照文字が全体を通して同様な部分を参照する添付図面と併せて、以下の詳細な説明を考慮すれば明らかであろう。
【図面の簡単な説明】
【００２７】
【図１】開示の発明に従って、ホスティングサーバによって提供されるインターネットベースのコンテンツを操作するスワイプジェスチャ認識技術を実装した、ユーザデバイス及びホスティングサーバで実行される方法のフローチャートである。
【図２】ユーザデバイスにおいて、スワイプジェスチャ認識及びコンテンツ操作を実行する方法のフローチャートである。
【図３】広告に関してユーザデバイスにおいて、スワイプジェスチャ認識及びコンテンツ操作を実行する方法のフローチャートである。
【図４Ａ】ユーザデバイスにおいてスワイプジェスチャ認識を実行する方法のフローチャートである。
【図４Ｂ】ユーザデバイスにおいてスワイプジェスチャ認識を実行する方法のフローチャートである。
【発明を実施するための形態】
【００２８】
図１は、ユーザデバイス及びホスティングサーバで実行される、表示コンテンツを操作する方法を示す。ユーザデバイスは、スワイプジェスチャ認識技術を実装し、ホスティングサーバによって提供され、ユーザデバイスに表示されるコンテンツを操作する。この技術は、例えば、ＨＴＭＬベースのスクリプト、コンパイルモジュール、プラグイン、アプレット、アプリケーションプログラムインタフェース（ＡＰＩ）など、様々な形式のスワイプジェスチャ認識ソフトウエアコードを含むことができる。
【００２９】
ユーザデバイスは、例えば、モバイル機器（例えば、スマートフォン、タブレットなど）、又は、ユーザがスワイプジェスチャを可能とするタッチスクリーン若しくはトラックパッドタイプの要素を備えた、パーソナルコンピュータ若しくはラップトップなど、任意のタイプのユーザコンピューティングデバイスとすることができる。ユーザデバイスは、例えば、インターネットを介して、ホスティングサーバにコンテンツ要求を開始する（１０５）。コンテンツ要求は、例えば、特定のウェブページを対象としたユニフォームリソースロケータ（ＵＲＬ）の形式とすることができる。
【００３０】
ホスティングサーバは、コンテンツ要求を受信すると、ユーザデバイスに送信するための要求コンテンツを作成する（１１０）。コンテンツの作成は、ハイパーテキストマークアック言語（ＨＴＭＬ）及びプラグイン、例えば、スクリプト若しくは他の実行可能な要素を使用したウェブページの構成物など、従来の態様を含む。作成されたコンテンツは、他のサーバから検索されるコンテンツを含む、広告コンテンツを含むこともできる。コンテンツの作成は、以下でさらに詳細に説明するように、ユーザデバイスで実行されるスワイプジェスチャにコンテンツがどのように反応するかを規定する、スワイプ技術構成の埋め込みを含むこともできる（１１５）。そして、コンテンツは、コンテンツ応答の形式で、ユーザデバイスに送信される（１２０）。
【００３１】
ユーザデバイスは、ホスティングサーバによって送信されたコンテンツ応答を受信し、例えば、ユーザデバイスに表示されるとコンテンツに重畳する広告などのコンテンツの要素に、スワイプ技術を添付する（１３０）。ユーザデバイスは、例えば、タッチスクリーンにコンテンツを表示し、スクリーンにタッチするユーザの検出を待つ（１３５）。タッチが検出されると、ユーザデバイスは、ジェスチャ入力、すなわち、検出されたタッチが実際にユーザによるスワイプジェスチャであるか否かを確定する基準を提供する、タッチデータの入力及び蓄積を実行し始める（１４０）。
【００３２】
ユーザがスクリーンをタッチすることをやめた後（１４５）、ユーザデバイスは、検出されたジェスチャを解釈し、派生アクションに適用する（１５０）。例えば、スクリーンのタッチが正式のスワイプジェスチャであると解釈されると、重畳された広告コンテンツがディスプレイから除去、例えば、広告が重畳されているコンテンツから広告を「一掃」することができる。様々な他のタイプのアクションは、スワイプジェスチャが原因となる可能性がある。例えば、スワイプジェスチャは、アニメーション又は表示コンテンツの他の実施可能な態様を開始することができる。派生アクションの後まもなく、ユーザは、基本的なコンテンツ、すなわち、「非スワイプ」コンテンツと対話することができる（１５５）。一方、スクリーンのタッチが正式のスワイプジェスチャであると解釈されないと、ユーザデバイスは、ユーザがスクリーンをタッチすることを再び待つ（１３５）。
【００３３】
図２は、ユーザデバイスの立場から、スワイプジェスチャ認識及びコンテンツ操作を実行する方法を示す。上述したように、ユーザデバイスは、ホスティングサーバに送信するコンテンツ要求を開始する（２０５）。次に、ユーザデバイスは、ホスティングサーバからのコンテンツ応答を待つ（２１０）。コンテンツが受信された後、スワイプジェスチャ認識技術が埋め込まれたコンテンツを表示する（２１５）。正式のスワイプジェスチャを検出して認識するため、ユーザデバイスによって実行されたステップの残りは、図１について上述した通りである。これらのステップは、ユーザがスクリーンをタッチすること（２２０）、ジェスチャ入力を開始すること（２２５）、ユーザがスクリーンをタッチするのを中止すること（２３０）、ジェスチャの解釈及びアクションの適用（application）（２３５）、非スワイプコンテンツとのユーザ対話（２４０）を含む。
【００３４】
図３は、他の表示コンテンツ、例えば、ウェブページに重畳された広告の特定の場合、ユーザデバイスにおいてスワイプジェスチャ認識及びコンテンツ操作を実行する方法を示す。上述のように、ユーザデバイスは、ホスティングサーバから表示するコンテンツを受信し、スワイプジェスチャ認識をコンテンツに添付する（３０５）。そして、ユーザデバイスは、デバイススクリーンをタッチするユーザの検出を待つ（３１０）。タッチが検出されると、ユーザデバイスは、ジェスチャ入力、すなわち、タッチデータの入力及び蓄積を実行し始める（３１５）。
【００３５】
ジェスチャ入力の一部として（３１５）、ユーザデバイスは、タッチが広告の上にあったか否かを決定する（３２０）。換言すると、タッチが所定の開始要素内、例えば、広告「ウインドウ」又は他の表示図形要素によって特定された領域内にあるか否かを判定する。そうであれば、ユーザデバイスは、ユーザがスクリーンをタッチすることを中止するまで、スクリーンタッチに関するデータ、例えば、位置及び時間データを連続してキャプチャする（３３０）。一方、タッチが広告の上になかったと判定されれば（３２５）、スワイプジェスチャ認識が中止され、次のユーザタッチが待たれる（３３５）。
【００３６】
スワイプジェスチャが完了した後、すなわち、ユーザがデバイスをタッチすることを中止した後（３３０）、検出ジェスチャが正式のスワイプジェスチャであるか否かを判定する分析が実行される。以下でより詳細に説明するように、分析は、スワイプ検出の間に収集されたタッチデータ、例えば、位置及び時間データに特定の基準を適用することを含む。タッチデータ、すなわち、タッチ「パターン」が適用基準を満たしていると判定されると（３４０）、スワイプを「リスニングしている」様々なアプリケーションに信号を出力する。一方、スワイプジェスチャがスワイプジェスチャとして認識されなければ（３４５）、ユーザデバイスは次のタッチを待つ（３５５）。
【００３７】
正式のスワイプジェスチャが検出されると、広告に添付されたスワイプ技術に「登録されている」所定のアクションが実行される（３６０）。例えば、登録アクションは、重畳広告ウインドウを閉じてもよい。登録アクションはまた、アニメーション又は他の実施可能要素の開始を含むことができる。登録アクションは、例えば、ＨＴＭＬベースのスクリプトなど、様々なソフトウエアコードの形式を使用して実装することができる。
【００３８】
特定の実施形態では、スワイプジェスチャの検出は、リスニングアプリケーションに通知することができるが、任意の更なるアクションは、広告に添付されたスワイプ技術によってというよりはむしろ、アプリケーション自体によって実行することができる。例えば、広告は、実行可能要素、例えば、Adobe Flash（登録商標）で作成されたモジュールを含む、表示コンテンツの一部であってもよく、この要素は、スワイプジェスチャが通知されると、重畳広告を消去する操作を処理することができる。このような場合、リスナーがスワイプの発生を通知された後（３５０）、添付スワイプ技術は、アクションを実行する代わりに、次のタッチを待つ（３６５）。
【００３９】
スワイプの検出に続いて（３５０）、添付スワイプ技術によってアクションが適用されると（３６０）、スワイプ技術が広告から切り離されてそのスワイプ検出機能が停止するステップ（３７０）、またその代わりに、スワイプ技術がスワイプ検出を継続して次のタッチを待つステップ（３７５）を実行することができる。
【００４０】
図４Ａ及び４Ｂは、ユーザデバイスでスワイプジェスチャ認識を実行する方法を示す。上述したように、スワイプジェスチャ認識は、ユーザデバイスのスクリーンをタッチするユーザから始まる（４０２）。ユーザデバイスの従来のタッチ検出電子装置によって、タッチすることを検出し、スワイプジェスチャ認識技術に通知することができる。スクリーンのタッチの検出は、「タッチ開始イベント」と呼ぶことができる（４０４）。タッチ開始イベントが検出されると、一連の基準は、基本的なタッチデータに適用される。タッチデータは、例えば、画面のタッチされた位置について、位置及び時間情報を含むことができる。
【００４１】
タッチデータに適用される第１の基準は、複数の指がスクリーンをタッチするのに使われたか否かの判定であってもよい（４０６）。これは、所定の優先度、例えば、コンテンツプロバイダによって設定された優先度に基づいて設定できるパラメータである、スワイプ検出のために複数の指のタッチが許可されているかの判定に従う（４０８）。問題となっている特定の構成で複数の指のタッチが許可されているならば、プロセスは、タッチハンドラ及びタイマを切り離し、次のタッチ開始イベントを待つ。
【００４２】
複数の指のスワイプジェスチャが許可されているならば、プロセスは、例えば、所定の領域（例えば、表示ウインドウ）を持つ重畳広告など、所定の「開始要素」があるか否かを決定する（４１０）。そうであれば、プロセスは、開始要素の境界内でタッチが始まったか否かを判定する（４１２）。タッチが開始要素で始まれば（又は、開始要素が構成されていなければ）、プロセスは、スクリーンをタッチする１つの指（又は複数の指）の動き及びタッチの終了を検出するルーチンである、「タッチ移動」イベント及び「タッチ終了」イベントリスナーを起動する（４１４，４１６）。これらのアクションは、ユーザデバイスの従来のタッチスクリーン検出システムによって通知することができる。また、タッチ移動イベントは、基本的なタッチ位置及び時間データの処理に基づいて検出することができる。
【００４３】
タッチ開始イベントが検出され、タッチ移動及びタッチ終了リスナーが添付された後、タイマが起動される。タッチ移動イベントが検出されずに、経過時間が所定のタイムリミットを越えると（４１８，４２０）、タッチ検出ハンドラ及びタイマが切り離され、プロセスは次のタッチを待つ（４２２）。
【００４４】
一方、タイムリミットを越える前に、タッチ移動イベントが検出されると（４２４）、以下の段落で説明するように、複数の基準をタッチ移動データに適用することができる。
【００４５】
プロセスは、タッチ移動イベント中に、任意の所定の要素がタッチされたか否かを判定する（４２６）。例えば、重畳広告を定義するウインドウは、「目的要素」として定義することができる。そして、プロセスは、移動中にタッチされた要素が目的要素であるか否かを判定する（４２８）。タッチされた要素が目的要素でなければ、プロセスは、タッチ（すなわち、スワイプジェスチャ）が目的要素にとどまる必要があるか否かを定義するパラメータに応じて（４３０）、タッチハンドラ及びタイマを切り離すことができる。一方、タッチされた要素が目標要素であれば、プロセスのこの分岐においてさらに処理する必要はない。
【００４６】
プロセスは、位置データと、特に、最新のタッチ移動データとに基づいて、タッチ移動の方向を算出する（４３２）。そして、プロセスは、算出された方向が前のタッチ移動データと一致するか否かを判定する（４３４）。換言すると、プロセスは、スワイプジェスチャが一方向に継続しているか否かを判定する。移動が直線又は特定の方向（例えば、スクリーンの水平方向）から変化することが許される程度は、例えば、コンテンツプロバイダ又はユーザの優先度に基づいて、パラメータを希望の値に設定することで規定することができる。この時点でプロセスに適用される方向の基準は、前の１組のタッチ移動データについて、１組のタッチ移動データに関連することに留意すべきである。これは、特定の移動の処理が継続することを可能にするにはあまりにも重要である、次へと向かう１つのデータ、例えば、１つのタッチ位置から次への方向変化で、移動をフィルタリング（filter out）するために使用される。以下で説明するように、さらなる１組の基準は、全体としてのスワイプジェスチャに適用することができる。
【００４７】
プロセスは、最新のタッチ移動データから距離を判定し（４３６）、算出された距離に基づいて移動速度を算出することもできる（４３８）。これは、例えば、正式のスワイプジェスチャであるには遅すぎる又は速すぎると見做されるスワイプ動作をフィルタリングするパラメータなど、様々なパラメータに適用することができる。このようなパラメータは、本明細書で説明したすべてのパラメータと同様に、コンテンツプロバイダ、ユーザ若しくはシステムデザイナの優先度又はこれらの組み合わせに基づいて、前もって設定することができる。
【００４８】
上述した様々な基準のタッチ移動データへの適用後、タッチ移動データは記録される（４４０）。より詳細には、記録されるタッチ移動データは、ユーザによってなされたスワイプジェスチャに沿ったスクリーン位置とすることができる。タッチ移動データの記録は、上述したように、適用基準によって「フィルタリング」の対象となる。ユーザが１つの指（又は、複数の指）をタッチスクリーンから離したことを意味する、タッチ終了イベントを受信するまで（４４２）、この記録プロセスは、ユーザがスワイプジェスチャを実行するものとして継続される。
【００４９】
タッチ終了イベントの受信後、プロセスは、スワイプジェスチャが終了したに違いない要素として（４４６）、特定の要素が特定されたことを意味する、「終了要素」が構成されたか否かを判定することができる（４４４）。例えば、スワイプジェスチャが重畳広告の近くでなされれば、パラメータは、全部のスワイプが広告の領域（例えば、表示ウインドウ）内にあることを要求する設定とすることができる。タッチ終了が所定の終了要素の上でなければ、スワイプジェスチャ認識プロセスを終了することができる（すなわち、タッチハンドラ及びタイマを切り離すことができ、次のタッチを待つ）。
【００５０】
終了要素基準の適用後、タッチ移動データ、すなわち、スワイプジェスチャの大部分又はすべてに関連するデータは解釈され（４４８）、スワイプジェスチャが正式と見做すべきか否かを判定する。これらの基準は、スワイプジェスチャが所定のタイムリミット内で実行された否かの決定を含むことができる（４５０）。また、所定の目標要素の外側に多すぎるタッチ位置があるか否かの判定があってもよい（４５２）。スワイプジェスチャが所定の最小距離にわたっているか否か（例えば、スワイプジェスチャが表示コンテンツと比較して十分長いか否か）の決定があってもよい（４５４）。
【００５１】
スワイプジェスチャ基準はまた、スワイプジェスチャが所定の許可方向、例えば、スクリーンの水平方向で実行されたか否かの判定を含むことができる（４５６）。この基準はまた、移動ラインが正式のスワイプと見做す直線に十分近いか否かの判定を含むことができる（４５８）。
【００５２】
スワイプジェスチャデータがすべての適用基準を満たしていれば、スワイプジェスチャが認識され、「リスナー」アプリケーションにスワイプジェスチャが起こったことが通知される（４６０）。
【００５３】
上述したアルゴリズムを実装したスワイプジェスチャ認識技術（又は、「スワイプ技術」）は、「スワイプ広告」又は「スワイプコンテンツ」パッケージの一部としてバンドルされたのと同様に、「スタンドアローン構成」で適用することができる１組の「動作」を含む。用語「動作」は、ユーザインタフェース入力機構、例えば、オブジェクト指向のソフトウエアに実装されたタッチスクリーンを介して、ユーザインタフェースがユーザによって開始されたスワイプジェスチャ及び他の入力を検出して応答する方法を指す。
【００５４】
スタンドアローンのスワイプ技術構成では、スクリプト、例えば、JavaScript、アプリケーションプログラミングインタフェース（ＡＰＩ）を介して、動作が露出、すなわち、プログラマが利用できるようになる。これは、動作が、例えば、表示される重畳又はポップアップイメージなど、ウェブページの任意の要素と対話するように構成することを可能とする。プログラマは、これらの動作要素を、ユーザにコンテンツを示すように構成するコードに組み込むことができる。このような場合、プログラマはまた、コード、例えば、スクリプトを含ませることができ、ＡＰＩを介して受信することができる様々なタイプの検出動作を処理することができる。
【００５５】
ＡＰＩは、ユーザデバイスにコンテンツを示すために使用されるＨＴＭＬコードに組み込まれた１組のJavaScriptオブジェクトを介して実装される。ＡＰＩはまた、ホスティングサーバ及び／又は制御されたパブリックコンテンツデリバリネットワーク（ＣＤＮ）に存在することができ、外部のJavaScriptファイルを参照するタグを含む。外部ファイルは、とりわけ、JavaScriptオブジェクトを介してスワイプジェスチャ検出情報を提供するために、上述したスワイプジェスチャ認識アルゴリズムを実装する。
【００５６】
バンドル構成では、動作要素と検出動作ハンドリングとの両方が、スワイプ広告又はスワイプコンテンツパッケージの一部としてバンドルされる。この構成では、スワイプ広告パッケージは、検出動作に応答してなされる動作及びアクションを定義する、外部のスクリプトファイルをアクセスするタグを含んだモジュラシステムとすることができる。他の機能はまた、例えば、ユーザデバイスにコンテンツを示す方法に関連した機能など、外部のファイルによって提供される。
【００５７】
スワイプ広告又はスワイプコンテンツパッケージによって提供されるバンドル機能は、コンテンツを作成するプログラマが、スワイプジェスチャ機能を備えたコンテンツをユーザに提示するために、JavaScriptオブジェクト及び外部のJavaScript参照を使用しながら、主としてＨＴＭＬで作業できるようにする。例えば、広告のようなコンテンツは、ＨＴＭＬタグ（例えば、イメージタグの周りのアンカータグ）を使用することによって、ＨＴＭＬファイルに含むことができる。そして、このタグ付きコンテンツは、スワイプジェスチャ機能を備えた、表示対象のスワイプ広告パッケージによってアクセスできる。
【００５８】
以下で説明するJavaScriptオブジェクトは、公知の名前付きの組、すなわち、論理的なグループ分けにおける列挙値を提供することで、スワイプジェスチャ認識技術の動作をサポートする。これらのオブジェクトのメンバは、スワイプジェスチャ動作のＡＰＩ機能と対話する場合、値として使用するために参照することができる。
【００５９】
次のオブジェクトは、適切なスワイプジェスチャと見做すため、検出ジェスチャが直線軌道を有しなければならない程度を定義する列挙値を提供する。
【００６０】
SoMo.Swipe.LineDetection
・Strict
・Even
・Loose
【００６１】
次のオブジェクトは、適切なスワイプジェスチャと見做すために、検出ジェスチャが向かう方向を定義する公知の値を提供する。
【００６２】
SoMo.Swipe.Direction
・Up
・Down
・Left
・Right
【００６３】
スワイプジェスチャ検出機能は、協働する２つの機能の形式でＡＰＩに表れ、所定のページ要素、例えば、重畳又はポップアップイメージでのスワイプジェスチャのための「オブザーバ」の追加と削除を可能にする。スワイプジェスチャオブザーバを追加すると、検出アルゴリズムの制御及び微調整を可能にする、１組のオプションを指定することができる。
【００６４】
オブザーバ追加機能の使用方法は次の通りである。
【００６５】
Somo.Swipe.addSwipeObserver
【００６６】
・targetElementId - （任意）スワイプジェスチャ検出が適用される、ドキュメントオブジェクトモデル（ＤＯＭ）要素の識別子である。指定しなければ、現在のドキュメントと見做す。
【００６７】
・startElementId - （任意）適切なスワイプジェスチャと見做すため、スワイプジェスチャが開始するＤＯＭ要素の識別子である。指定しなければ、制約が適用されない。
【００６８】
・endElementId - （任意）適切なスワイプジェスチャと見做すため、スワイプジェスチャが終了するＤＯＭ要素の識別子である。指定しなければ、制約が適用されない。
【００６９】
・ignoreSwipeElementIds - （任意）スワイプ検出に関与すべきでないＤＯＭ要素の識別子の配列である。これらの要素は、タッチイベントがスワイプ検出を処理することを許可しない。要素は、一般的に、例えば、広告イメージがクリックされるなど、他のジェスチャを主に受信することを目的とする場合、このオプションが指定される。指定しなければ、スワイプ検出は通常のイベント処理を使用して適用される。
【００７０】
・allowMultipleFingers - （任意）スワイプジェスチャが複数の指で実行され得るかを示すブール値である。指定しなければ、falseと見做される。
【００７１】
・maximumTouchesOffTarget - （任意）ジェスチャがまだスワイプであると見做されるため、目標要素の外側にあることが許可される指のタッチの総数である。指定しなければ、制約が適用されない。
【００７２】
・minimumDistanceVertical - （任意）有効な垂直スワイプジェスチャに必要とされる、ピクセル単位の最小距離である。指定しなければ、５０ピクセルの距離と見做される。
【００７３】
・minimumDistanceHorizontal - （任意）有効な水平スワイプジェスチャに必要とされる、ピクセル単位の最小距離である。指定しなければ、５０ピクセルの距離と見做される。
【００７４】
・maximunMoveInterval - （任意）有効なスワイプジェスチャを記録するため、図形の移動の間に経過することができる、ミリ秒単位の最大時間である。指定しなければ、２５０ミリ秒の間隔と見做される。
【００７５】
・maximumGestureInterval - （任意）スワイプと見做すため、ジェスチャの開始のタッチと終了のタッチとの間に経過することができる、ミリ秒単位の最大時間である。指定しなければ、１２５０ミリ秒の間隔と見做される。
【００７６】
・lineDetection - （任意）適用すべき線検出の厳密性である。これは、ジェスチャが直線であったと確認するときに使用する許容因子を表す、SoMo.Swipe.LineDetectionオブジェクトから公知の値、又は、浮動小数点パーセント値の形式をとることができる。指定しなければ、公知のLineDirection.Even値と見做される。
【００７７】
・allowedDirections - （任意）有効と見做されるため、スワイプジェスチを行なうことができる方向の配列である。この配列のメンバは、SoMo.Swipe.Directionオブジェクトから公知の値の形式をとる。指定しなければ、４つの基本的な方向と見做される。
【００７８】
・swipeCallbacks - （任意）所定のオプションを満たすスワイプジェスチャが検出されたとき、呼び出される関数の配列である。関数は、function（引数）のシグネチャーを有することが期待される。引数は、スワイプジェスチャが監視されるＤＯＭ要素とジェスチャ方向を夫々値とする、targetElement及びdirectionをメンバとして含むオブジェクトである。方向は、SoMo.Swipe.Directionオブジェクトから公知の値として表される。
【００７９】
戻り値：
スワイプオブザーバに割り当てられた固有のハンドル、及び、ジェスチャ検出に適用された、１組のオプションを表すオブジェクトである。このオブジェクトは、スワイプジェスチャを監視することを適切に停止するため、removeSwipeObserver関数に渡す必要がある。
【００８０】
次は、SoMo.Swipe.addSwipeObserverオブジェクトの使用例である。
var handle = SoMo.Swipe.addSwipeObserver(
{
targetElementId           : ‘myAdContainerId’,
ignoreSwipeElementIds     : [‘myAdImageId’],
lineDetection             : Somo.Swipe.LineDetection.Loose,
swipeCallbacks            : [function(args) { alert(‘swipe’); }]
});
var handle = SoMo.Swipe.addSwipeObserver(
{
targetElementId           : ‘santaImageId’,
startElementId            : ‘santaHatId’,
endElementId              : ‘santaBellyId’,
ignoreSwipeElementIds     : [‘myAdImageId’, ‘someOtherId’],
allowMultipleFingers      : true,
maximumTouchesOfftarget   : 5,
minimumDistanceVertical   : 100,
minimumDistanceHorizontal : 65,
maximumMoveInterval       : 200,
maximumGestureInterval    : 1100,
lineDetection             : SoMo.Swipe.LineDetection.Loose,
allowDirections           : [SoMo.Swipe.Direction.Up],
swipeCallbacks            : [handleSwipe]
});
【００８１】
オブザーバ除去関数の使用方法は下記のとおりである。
【００８２】
removeSwipeObserver
引数：addSwipeObserverが呼び出されたときに返される１組のオプションである。例えば、
var handle = SoMo.Swipe.addSwipeObserver(options);
SoMo.Swipe.removeSwipeObserver(handle);
である。
【００８３】
下記の事項は、JavaScriptオブジェクトを使用するための構造を定義する、JavaScriptインタフェース定義又はインタフェースコンタクトの形式で、上述したオブジェクト定義のリステートメントである。この定義は、例えば、線の検出及び方向のため、オブジェクトの引数として使用される特定の値の列挙を含む。
【００８４】
var SoMo = SoMo || {};
// Swipe Behaviors
/**
* A static class providing the public interface for swipe ad functionality.
* @class
*/
SoMo.Swipe = 
{
/**
* Adds an observer to be alerted when a swipe gesture is detected.
* @member Swipe
*
* @param options {object} A set of options for controlling swipe detection behavior.  The allowed options are:
* targetElementId {string} [OPTIONAL] Id of the DOM element that swipe detection is applied to.  If not specified, the screen is used
* startElementId {string} [OPTIONAL] Id of the DOM element that swipe gesture must begin on.  If not specified, no constraint is applied
* endElementId {string} [OPTIONAL] Id of the DOM element that the swipe gesture must end on.  If not specified, no constraint is applied
* ignoreSwipeElementIds {array} [OPTIONAL] A set of DOM element ids that should not particupate in swipe detection.  These elements will not allow the touch events to bubble.  If not specified, swipe detection will be applied using normal event bubbling
* allowMultipleFingers {boolean} [OPTIONAL] True if gesture with multiple fingers are eligible to be considered swipe gesture.  If not specified, false is assumed
* maximumTouchesOffTarget {int} [OPTIONAL] The total number of touches that are allowed to occure on an element that is not the target.  If not specified, no constraint is applied
* minimumDistanceVertical {int} [OPTIONAL] The minimum distance, in pixels, that are required for a vertical swipe gesture.  If not specified, a reasonable default is applied
* minimumDistanceHorizontal {int} [OPTIONAL] The minimum distance, in pixels, that are required for a horizontal swipe gesture.  If not specified, a reasonable default is applied
* maximumMoveInterval {int} [OPTIONAL] The maximum amount of time, in milliseconds, that may elapse between finger movements.  If not specified, a reasonable default is applied
* maximumGestureInterval {int} [OPTIONAL] The maximum amount of time, in milliseconds, that performing the gesture is allowed to take.  If not specified, a reasonable default is applied
* lineDetection {int|float} [OPTIONAL] The type of line detection strictness that should be applied.  If not specified, a reasonable default is applied
* allowedDirections {array} [OPTIONAL] The set of directions in which a swipe gesture is valid.  If not applied, the four primary directions are allowed
* swipeCallbacks {array} [OPTIONAL] The set of callback functions to alert when a swipe gesture is detected.  If not specified, no notification is performed
*
* @returns {object} The set of options received normalized with the default values for unspecified members
*/
addSwipeObsever : function Swipe$addSwipeObserver(options) {},
/**
* Removes a swipe observer.
* @member Swipe
*
* @param options {object} The set of options received as a return value when the swipe observer was added.
*/
removeSwipeObserver : function Swipe$removeSwipeObserver(options) {}
};
// Line Detection
SoMo.Swipe.LineDetection =
{
Strict      : 0,
Loose       : 2,
Even        : 4
};
// Direction
SoMo.Swipe.Direction =
{
Up          : 0,
Down        : 2,
Left        : 4,
Right       : 8
};
【００８５】
下記の事項は、ＨＴＭＬページに表れるようにする、スワイプ動作参照の一例である。
<script type=“text/javascript” src=http://ef2083a34f0ec9f817e8-64e501cf4fb3a4a144bedf4c4ec2f5da.r2.cf2.rackcdn.com/static/swipe-ads/somo-swipe-behaviors.js></script>
【００８６】
下記の事項は、ＨＴＭＬページに含まれる、スワイプコンテンツユニット（例えば、広告ユニット）の一例である。
<script type=“text/javascript”>
window.SwipeAdState =
{
Normal         : 0,
AdOnly         : 2,
DoNotDisplay   : 4,
AwaitCallback  : 8
};
window.currentSwipeAdId = ‘swipeAd9876789’;
window.swipeState              = window.SwipeAdState.Normal;
window.swipeQueue              = window.swipeQueue || [];
window.swipeQueue.push(window.currentSwipeAdId);
</script>
<div style=“display:none; position:absolute; top:-3000px; left:-3000px; z-index=-9999;”id=“adwrapper123454321”>
<!-- AD CREATIVE -->
<a
href=“http:// www.giftcards.com/?utm source= Swipe&utm medium=mobile&utm campaign=728x90”target=“_blank”><img src=“http:// www.swipeadvertising.com/ads/tablet-728x90.png”height=“90” width=“728” alt=“Ad Content” /></a>
<!-- END AD CREATIVE -->
</div>
<script type=“text/javascript” src=“http://ef2083a34f0ec9f817e8-64e501cf4fb3a4a144bedf4c4ec2f5da.r2.cf2.rackcdn.com/static/Awipe-ads/somo-bottom-728x90-close.js>”</script>
<script type=”text/javascript”>
(function(undefined)
{
var wrapperId    = ‘adWrapper123454321’;
var id           = window.currentSwipeAdId;
delete window.currentSwipeAdId;
var initialize = (function(id, wrapperId)
{
return function() {SoMo.SwipeAds.initializeAd[id](id, wrapperId); };
})(id, wrapperId);
if (window.swipeState === window.SwipeAdState.AwaitCallback)
{
SoMo.SwipeAds.addSwipeAdCompleteCallback(id, initialize);
window.swipeState = window.SwipeAdState.Normal:
}
else
{
SoMo.DOMReady.add(initialize);
}
})();
</script>
【００８７】
例示的な実施形態が本明細書及び図面で表示及び説明されているが、それらの原理及び精神から逸脱することなく、図示及び／又は説明する例示的な実施形態を変更できることは、当業者によって理解されるであろう。
【図１】
0006309020.tif 000002
【図２】
0006309020.tif 000003
【図３】
0006309020.tif 000004
【図４Ａ】
0006309020.tif 000005
【図４Ｂ】
0006309020.tif 000006