(58)【調査した分野】(Int.Cl.,DB名)
前記モバイル・アプリケーションに関連付けられた前記第1のコンテンツ・アイテムは、前記コンテンツ・アイテム・オークションの前に前記1組の適格なコンテンツ・アイテムからフィルタされる、請求項1に記載の方法。
前記アプリケーション・ストアは前記コンテンツ・アイテム・オークションを実施するエンティティとは別々のエンティティにより制御される、請求項5に記載の方法。
前記生成されたデバイス・フィルタは複数のタプルを含み、1組の前記複数のタプルは、前記モバイル・アプリケーションを識別する第1の一意な識別子、前記モバイル・アプリケーションと非互換である前記複数の既知のモバイルデバイスの1つまたは複数の対応する1つを識別する第2の一意な識別子、およびオペレーティング・システムバージョンを識別する第3の一意な識別子を含む、請求項1に記載の方法。
前記モバイル・アプリケーションに関連付けられた前記第1のコンテンツ・アイテムは前記コンテンツ・アイテム・オークションの前に前記1組の適格なコンテンツ・アイテムからフィルタされる、請求項10に記載のシステム。
前記アプリケーション・ストアは前記コンテンツ・アイテム・オークションを実施するエンティティとは別々のエンティティにより制御される、請求項13に記載のシステム。
前記生成されたデバイス・フィルタは複数のタプルを含み、1組の前記複数のタプルは、前記モバイル・アプリケーションを識別する第1の一意な識別子および前記モバイル・アプリケーションと非互換である前記複数の既知のモバイルデバイスの1つまたは複数の対応する1つを識別する第2の一意な識別子を含む、請求項10に記載のシステム。
前記要求はさらに前記モバイルデバイスのモバイルキャリアを識別するデータを含み、前記1つまたは複数の記憶デバイスは、前記1つまたは複数のプロセッサにより実行されたとき、
前記モバイルデバイスの前記モバイルキャリアを識別する前記データの、前記モバイル・アプリケーションに対する1組の適格な国との比較に基づいて、第4のコンテンツ・アイテムを前記コンテンツ・アイテム・オークションに対する前記1組の適格なコンテンツ・アイテムからフィルタして除外するステップと、
をさらに含む動作を前記1つまたは複数のプロセッサに実施させる命令を格納する、
請求項10に記載のシステム。
前記複数の既知のモバイルデバイスの各々に対する前記1組の特徴はモデル名、製造業者、およびオペレーティング・システムを含む、請求項18に記載のコンピュータ可読記憶デバイス。
前記生成されたデバイス・フィルタは複数のタプルを含み、1組の前記複数のタプルは、前記モバイル・アプリケーションを識別する第1の一意な識別子および前記モバイル・アプリケーションと非互換である前記複数の既知のモバイルデバイスの1つまたは複数の対応する1つを識別する第2の一意な識別子を含む、請求項19に記載のコンピュータ可読記憶デバイス。
【発明を実施するための形態】
【0008】
図面の一部または全部は例示の目的のための略表現であることは認識される。図面は、それらが添付の諸請求項の範囲または意味を限定するために使用されないという明示的な理解とともに1つまたは複数の実施形態を示す目的で提供される。
【0009】
以下は、コンピュータ・ネットワーク上で情報を提供するための方法、装置、およびシステムの実装に関連する様々な概念のより詳細な説明である。当該説明した概念は実装の任意の特定の方式に限定されないので、上で導入し以下でさらに詳細に説明する様々な概念を任意の多数の方法で実装してもよい。特定の実装およびアプリケーションの例は主に例示的な目的のために提供されている。
【0010】
I:概要
コンピューティングデバイス(例えば、クライアントデバイス)は、ウェブページ、ドキュメント、アプリケーション等のようなリソースを参照することができる。幾つかの実装では、当該コンピューティングデバイスは、リソースに対応するウェブページサーバのようなサーバと通信することによって、インターネットを介してリソースにアクセスしてもよい。リソースは、第1のパーティコンテンツプロバイダからのリソースの主題である第1のパーティコンテンツを含み、また、広告または他のコンテンツのような、追加のサードパーティが提供したコンテンツを含んでもよい。1実装では、ウェブページにアクセスするための要求を受信したことに応答して、ウェブページサーバおよび/またはクライアントデバイスは、例えば、リソースとともに提供されるサードパーティコンテンツ・アイテムを要求するためのリソースのコードの実行を通じて、コンテンツ・アイテム選択システムのようなデータ処理システムと通信して、当該要求されたウェブページが提供されるコンテンツ・アイテムを要求することができる。コンテンツ・アイテム選択システムは、サードパーティコンテンツ・アイテムを選択し、クライアントデバイスのディスプレイ上の当該要求されたウェブページで当該コンテンツ・アイテムの提示に影響を及ぼすデータを提供することができる。幾つかの事例では、当該コンテンツ・アイテムが選択され、検索クエリ応答に関連付けられたリソースが提供される。例えば、検索エンジンは検索結果を検索結果ウェブページに返してもよく、当該検索結果ウェブページの1つまたは複数のコンテンツ・アイテムスロット内の当該検索クエリに関連するサードパーティコンテンツ・アイテムを含んでもよい。
【0011】
サードパーティコンテンツ・アイテムは、当該コンテンツ・アイテムのクリックのようにサードパーティコンテンツ・アイテムと対話するとき、データを取り出しかつ/または当該データをリンクにより示されるアドレスを送信するようにコンピューティングデバイスに指示するリンクを含んでもよい。例えば、幾つかのコンテンツ・アイテムは、サードパーティコンテンツ・アイテムのサードパーティのウェブページに対するリンク、サードパーティのアプリケーションをインストールするためのアプリケーション・ストアまたはウェブサイトへのリンク、および/またはデータをコンテンツ・アイテム選択システムに送信するためのコンテンツ・アイテム選択システムへのリンクを有してもよい。当該リンクは次いで、サードパーティコンテンツ・アイテムのサードパーティのウェブページのような後続の宛先にコンピューティングデバイスをリダイレクトする。
【0012】
コンピューティングデバイス(例えば、クライアントデバイス)はまた、モバイル・アプリケーションのようなアプリケーションを参照するかまたは実行するために使用されてもよい。当該アプリケーションは第1のパーティコンテンツプロバイダからの当該アプリケーションの主題である第1のパーティコンテンツを含んでもよく、また、広告または他のコンテンツのようなコンテンツを提供された追加のサードパーティを含んでもよい。1実装では、当該アプリケーションの使用に応答して、リソースサーバおよび/またはクライアントデバイスは、コンテンツ・アイテム選択システムのようなデータ処理システムと通信して、当該アプリケーションのユーザインタフェースとともに提供されるコンテンツ・アイテムを要求することができる。コンテンツ・アイテム選択システムは、サードパーティコンテンツ・アイテムを選択し、当該アプリケーションとともに当該コンテンツ・アイテムをクライアントデバイスのディスプレイに提示することに影響を及ぼすデータを提供することができる。
【0013】
幾つかの事例では、デバイス識別子はクライアントデバイスに関連付けられてもよい。当該デバイス識別子は、リソースおよび/またはコンテンツ・アイテムに対する後続の要求中に当該デバイスを識別するためのクライアントデバイスに関連付けられたランダム化された数であってもよい。幾つかの事例では、当該デバイス識別子は、クライアントデバイスに関連する情報を格納し、かつ/または、クライアントデバイスにクライアントデバイスに関連する情報をコンテンツ・アイテム選択システムおよび/またはリソースサーバ(例えば、センサデータ、ウェブブラウザタイプ、オペレーティング・システム、履歴リソース要求、履歴コンテンツ・アイテム要求等の値)に送信させるように構成されてもよい。
【0014】
本明細書で説明するシステムがユーザに関する個人情報を収集する、または個人情報を利用しうる状況では、当該ユーザに、プログラムまたは機能が、ユーザ情報(例えば、ユーザのソーシャルネットワーク、ソーシャルアクションまたはアクティビティ、職業、ユーザの嗜好、またはユーザの現在の位置に関する情報)を収集するかどうかを制御し、または、当該ユーザにより関連するコンテンツを当該コンテンツサーバから受信するかどうかおよび/またはその方法を制御するための機会を与えてもよい。さらに、特定のデータを、個人的に識別可能な情報が除去されるように、それが格納または使用される前に1つまたは複数の方法で処理してもよい。例えば、ユーザのアイデンティティを、個人的に識別可能な情報をユーザに対して決定できず、またはユーザの地理的位置を位置情報が取得される場所に(例えば都市、郵便番号、または州レベルに)一般化しうるユーザの特定の位置を決定できないように扱ってもよい。したがって、ユーザは、どのように情報がユーザについて収集されコンテンツサーバにより使用されるかを制御することができる。
【0015】
幾つかの実装では、当該デバイス識別子は、広告主向け識別子(IDFA)またはAdIDのような普遍的に一意なデバイス識別子(UDID)であってもよい。他の実装では、当該デバイス識別子は、モバイル機器識別子(MEID)、国際モバイル機器識別子(IMEI)、集積回路カード識別子(ICCID)、デバイスシリアルナンバーのような当該デバイスのハードウェアおよび/またはソフトウェア特性に関連付けられた識別子、当該デバイスのハードウェアおよび/またはソフトウェア特性に基づいて生成された識別子(例えば、オペレーティング・システムバージョン、デバイスモデル、ファームウェアバージョン(複数可)、インストールされたアプリケーション(複数可)、メモリ容量、および/または記憶空間に少なくとも部分的に基づく識別子)等であってもよい。かかるデバイス識別子を、コンテンツ・アイテムと対話するときにクッキーまたは他の識別子として使用してもよい。
【0016】
サードパーティコンテンツプロバイダは、インターネットまたは他のネットワークを介して、要求されたリソースを提示するためのサードパーティコンテンツ・アイテムを提供するとき、コンテンツ・アイテム管理サービスを利用して、サードパーティコンテンツ・アイテムの選択および提供を制御しまたはそれらに影響を及ぼしてもよい。例えば、サードパーティコンテンツプロバイダは、サードパーティコンテンツ・アイテムの選択において使用される(キーワードのような)選択基準および対応する入札値を指定してもよい。当該入札値を、オークションにおいて、リソースとともに提供するためのコンテンツ・アイテムを選択し提供するためにコンテンツ・アイテム選択システムにより利用してもよい。例えば、サードパーティコンテンツプロバイダは、ユーザが当該プロバイダのコンテンツ・アイテムと対話する場合に特定の金額を支払うことの同意(例えば、ユーザが当該プロバイダのコンテンツ・アイテムをクリックした場合に、当該プロバイダが$3を支払うことに同意する)に対応する入札を当該オークションで行ってもよい。他の例では、サードパーティコンテンツプロバイダは、当該コンテンツ・アイテムが選択され提供される場合に特定の金額を支払うことの同意(例えば、コンテンツ・アイテムが選択され提供されるたびに$0.005支払うことに当該プロバイダが同意するかまたはコンテンツ・アイテムが選択またはクリックされるたびに$0.05を支払うことに当該プロバイダが同意する)に対応する入札を当該オークションで行ってもよい。幾つかの事例では、コンテンツ・アイテム選択システムはコンテンツ・アイテム対話データを使用して、サードパーティコンテンツプロバイダのコンテンツ・アイテムの性能を決定する。例えば、ユーザは、他に対して特定のウェブページ上のサードパーティコンテンツ・アイテムをよりクリックしたいかもしれない。したがって、サードパーティコンテンツ・アイテムに対するオークション入札は高いパフォーマンスのウェブページ、ウェブページのカテゴリ、および/または他の基準に対して高くてもよく、当該入札は低いパフォーマンスのウェブページ、ウェブページのカテゴリ、および/または他の基準に対して低くてもよい。
【0017】
幾つかの事例では、サードパーティコンテンツ・アイテムに対する1つまたは複数の性能メトリックを決定してもよく、かかる性能メトリックの指示を、当該コンテンツ・アイテム管理アカウントに対するユーザインタフェースを介してサードパーティコンテンツプロバイダに提供してもよい。例えば、当該性能メトリックはインプレッション単価(CPI)または1000回当たりインプレッション単価(CPM)を含んでもよい。インプレッションを、例えば、コンテンツ・アイテムが選択されリソースとともに提示されるべきとき常にカウントしてもよい。幾つかの事例では、当該性能メトリックは、コンテンツ・アイテムのクリックの数をインプレッションの数で除したものとして定義された、クリック率(CTR)を含んでもよい。アクション単価(CPA)のようなさらに他の性能メトリック(アクションは当該コンテンツ・アイテムまたはその中のリンクのクリック、製品の購入、当該コンテンツ・アイテムの照会等であってもよい)、変換率(CVR)、クリック率(CPC)(コンテンツ・アイテムがクリックされたときにカウントされる)、コストパーセール(CPS)、コストパーリード(CPL)、有効CPM(eCPM)、および/または他の性能メトリックが使用されてもよい。
【0018】
幾つかの事例では、ウェブページまたは(例えば、アプリケーションのような)他のリソースは、選択され提供されたサードパーティコンテンツ・アイテムが表示されうる1つまたは複数のコンテンツ・アイテムスロットを含む。ウェブページまたは他のリソースに対するコンテンツ・アイテムスロットを定義する当該コード(例えば、Java(登録商標)スクリプト「登録商標」、HTML等)は、当該ウェブページで提供されるコンテンツ・アイテム選択システムからのサードパーティコンテンツ・アイテムを要求する命令を含んでもよい。幾つかの実装では、当該コードは、1つまたは複数のパラメータ(例えば、/page/content item?devid=abc123&devnfo= A34r0)を含みうるコンテンツ・アイテム要求URLを有する画像要求を含んでもよい。かかるパラメータは、幾つかの実装では、「devid=abc123」および/または「devnfo=A34r0」のような符号化された文字列であってもよい。
【0019】
コンテンツ・アイテム選択システムによりリソースで提供されるべきサードパーティコンテンツ・アイテムの選択が、予測されたクリック率(pCTR)、予測された変換率(pCVR)、当該コンテンツ・アイテムに関連付けられた入札等のような幾つかの影響因子に基づいてもよい。かかる影響因子はスコアのような値を生成するために使用されてもよい。当該スコアに対して、他のコンテンツ・アイテムに対する他のスコアを、オークションを通じてコンテンツ・アイテム選択システムにより比較してもよい。
【0020】
ウェブページのようなリソースに対するコンテンツ・アイテムスロットに対するオークションの間に、幾つかの異なるタイプの入札値を、様々なサードパーティコンテンツ・アイテムに対するサードパーティコンテンツプロバイダにより利用してもよい。例えば、オークションは、ユーザがサードパーティコンテンツ・アイテムをクリックしたかどうか、ユーザがサードパーティコンテンツ・アイテムの提供に基づいて特定のアクションを実施したかどうか、サードパーティコンテンツ・アイテムが選択され提供されたかどうか、および/または他のタイプの入札に基づく入札を含んでもよい。例えば、サードパーティコンテンツ・アイテムが選択され提供されるかどうかに基づく入札が低い入札(例えば、$0.005)であってもよく、ユーザが特定のアクションを実施したかどうかに基づく入札がより高い入札(例えば、$5)であってもよい。幾つかの事例では、当該入札を、入札のタイプに関連付けられた可能性を説明するように調節してもよく、かつ/または、他の理由で調節してもよい。例えば、ユーザが当該特定のアクションを実施した可能性が0.2%のように低くてもよく、当該選択され提供されたサードパーティコンテンツ・アイテムの可能性が100%であってもよい(例えば、当該選択され提供されたコンテンツ・アイテムは、それが当該オークション中に選択された場合に発生し、したがって当該入札は調節されない)。したがって、スコアのような値または正規化された値は、当該入札値および当該可能性または別の修正値に基づいて当該オークションで使用するために生成されてもよい。以前の例では、サードパーティコンテンツ・アイテムが選択され提供されたかどうかに基づく入札に対する値またはスコアは$0.005*1.00=0.005であってもよく、ユーザが特定のアクションを実施したかどうかに基づく入札に対する値またはスコアは$5*0.002=0.01であってもよい。生み出された収入を最大化するために、コンテンツ・アイテム選択システムは、最高値を有するサードパーティコンテンツ・アイテムを当該オークションから選択してもよい。以上の例では、コンテンツ・アイテム選択システムは、その入札に関連付けられたより高い値またはスコアに起因して、ユーザが当該特定のアクションを実施したかどうかに基づいて、当該入札に関連付けられたコンテンツ・アイテムを選択してもよい。
【0021】
サードパーティコンテンツ・アイテムがコンテンツ・アイテム選択システムにより選択されると、サードパーティコンテンツ・アイテムのクライアントデバイスのディスプレイへの提示に影響を及ぼすデータを、ネットワークを用いてクライアントデバイスに提供してもよい。
【0022】
幾つかの事例では、コンテンツ・アイテムはクライアントデバイスに対するモバイル・アプリケーションに関連付けられてもよい。当該コンテンツ・アイテムは、(例えば、モバイル・アプリケーションをダウンロードするためのランディングページへのリンクおよび/またはモバイル・アプリケーションのアプリケーション・ストアのランディングページへのリンクを有する)クリックしてダウンロードするタイプのコンテンツ・アイテムであってもよい。多種多様なクライアントデバイスが消費者に利用可能となると、特定のモバイル・アプリケーションは1つまたは複数のクライアントデバイスと非互換となりうる。例えば、モバイル・アプリケーションは、1つまたは複数のクライアントデバイスと、当該1つまたは複数のクライアントデバイスのオペレーティング・システム、オペレーティング・システムバージョン、ハードウェア構成等に基づいて非互換であるかもしれない。クライアントデバイスが当該コンテンツ・アイテムに関連付けられたモバイル・アプリケーションと非互換である場合、それは、当該コンテンツ・アイテムを選択しそのクライアントデバイスに提供するためにあまり有用でないかもしれない。さらに、それは、当該適格なコンテンツ・アイテムのオークションを実施する前に、クライアントデバイスに対して非互換なモバイル・アプリケーションに関連付けられたコンテンツ・アイテムを除去するためのレイテンシを削減しうる。即ち、当該要求クライアントデバイスとの非互換性に基づくコンテンツ・アイテムの除去は当該オークションにおける適格なコンテンツ・アイテムの数を減らす可能性があり、それにより、コンテンツ・アイテム選択システムがクライアントデバイスからの要求に応答してコンテンツ・アイテムを選択し提供しうる速度が増大する。
【0023】
クライアントデバイスとの対応するモバイル・アプリケーションの非互換性に基づいてコンテンツ・アイテムを除去するために、当該対応するモバイル・アプリケーションに対する1組の要求された特徴を幾つかの既知のモバイルデバイスおよび当該既知のモバイルデバイスの各々に対する関連付けられた特徴のセットを識別するデータ構造からのデータと比較することによって、デバイス・フィルタを生成することができる。幾つかの事例では、モバイル・アプリケーションに対する1組の要求された特徴はモバイルデバイスの最小オペレーティング・システムバージョン、1つまたは複数の適格な国、および/または1つまたは複数の特徴を含んでもよい。当該デバイス・フィルタは、当該比較に基づくモバイル・アプリケーションと非互換である当該既知のモバイルデバイスに対する1組の識別子を含むことができ、要求モバイルデバイスに対する1組のデバイス特徴を識別するデータまたはモバイルデバイスに対する識別子に基づいて、コンテンツ・アイテムをフィルタして除外するために使用することができる。
【0024】
当該デバイス・フィルタは、したがって、機械学習に基づいてモバイルデバイスを受動的に識別するのみではなく、当該コンテンツ・アイテムを変換(例えば、対応するモバイル・アプリケーションをインストールする)できないモバイルデバイスを積極的に識別することができる。さらに、コンテンツ・アイテムに対して変換できないモバイルデバイスの積極的な識別は、コンテンツ・アイテムを非互換のデバイスに提供することにより生成されるであろう追加のデータを排除することに基づいて、機械学習モデルの速度を高めることができる。
【0025】
以上では、当該コンテンツ・アイテムに関連付けられたモバイル・アプリケーションとのクライアントデバイスの非互換性に基づいて適格なコンテンツ・アイテムのセットからコンテンツ・アイテムをフィルタする概要を提供したが、かかるシステムを実装するためのより具体的な実装およびシステムを次に説明する。
【0026】
II:コンテンツ・アイテムを選択し提供するためのシステムの実装の概要
図1はネットワーク106のような少なくとも1つのコンピュータ・ネットワークを介して情報を提供するためのシステム100の実装のブロック図である。ネットワーク106はローカル・エリア・ネットワーク(LAN)、広帯域ネットワーク(WAN)、電話ネットワーク、のような公衆交換電話ネットワーク(PSTN)、ワイヤレスリンク、イントラネット、インターネット、またはその組合せを含んでもよい。システム100はまた、コンテンツ・アイテム選択システム108のような少なくとも1つのデータ処理システムを含むことができる。コンテンツ・アイテム選択システム108は、ネットワーク106を介して、例えばリソースサーバ104、クライアントデバイス110、および/またはサードパーティコンテンツサーバ102と通信するためのデータプロセッサを有するコンピューティングデバイスのような少なくとも1つの論理デバイスを含むことができる。コンテンツ・アイテム選択システム108は、本明細書で説明する1つまたは複数の動作を実施するためのメモリデバイスに格納された命令を実行するように構成されたコンテンツ配置プロセッサのような1つまたは複数のデータプロセッサを含むことができる。換言すれば、コンテンツ・アイテム選択システム108の当該1つまたは複数のデータプロセッサおよび当該メモリデバイスは処理モジュールを形成しうる。当該プロセッサはマイクロプロセッサ、特殊用途向け集積回路(ASIC)、フィールド−プログラム可能ゲート・アレイ(FPGA)等、またはその組合せを含んでもよい。当該メモリは、電子、光、磁気、またはプロセッサにプログラム命令を提供できる任意の他の記憶または送信デバイスを含んでもよいがこれらに限られない。当該メモリは、フロッピーディスク、コンパクトディスク読取専用メモリ(CD−ROM)、デジタル多用途ディスク(DVD)、磁気ディスク、メモリチップ、読取専用メモリ(ROM)、ランダム・アクセスメモリ(RAM)、電気的消去可能プログラム可能読取専用メモリ(EEPROM)、消去可能プログラム可能読取専用メモリ(EPROM)、フラッシュ・メモリ、光媒体、またはプロセッサがそこから命令を読むことができる任意の他の適切なメモリを含んでもよい。当該命令は任意の適切なコンピュータプログラミング言語からのコードを含んでもよく、その例には、アクションスクリプト「登録商標」、C、C++、C#、Java「登録商標」、Java(登録商標)スクリプト「登録商標」、JSON、Perl「登録商標」、HTML、HTML5、XML、Python「登録商標」、およびVisualBasic「登録商標」があるがこれらに限られない。当該プロセッサは命令を処理し、1つまたは複数のコンテンツ・アイテムの提示に影響を及ぼすデータをリソースサーバ104および/またはクライアントデバイス110に出力してもよい。当該処理回路に加えて、コンテンツ・アイテム選択システム108はデータを格納するように構成された1つまたは複数のデータベースを含んでもよい。コンテンツ・アイテム選択システム108はまた、ネットワーク106を介してデータを受信し、コンテンツ・アイテム選択システム108からネットワーク106上の他のデバイスの何れかに提供するように構成されたインタフェースを含んでもよい。コンテンツ・アイテム選択システム108は広告サーバのようなサーバを含むことができる。
【0027】
クライアントデバイス110は、コンピュータ、ラップトップ、デスクトップ、スマートフォン、タブレット、携帯情報端末、テレビセット向けセットトップボックス、スマートテレビ、またはネットワーク106を介して他のデバイスと通信するように構成されたサーバデバイスのような1つまたは複数のデバイスを含むことができる。当該デバイスは、データプロセッサおよびメモリを含む任意の形態のポータブル電子デバイスであってもよい。当該メモリは、プロセッサにより実行されたとき、当該プロセッサに本明細書で説明する動作の1つまたは複数を実施させるマシン命令を格納してもよい。当該メモリはまた、コンピューティングデバイス上の1つまたは複数のリソース、コンテンツ・アイテム等の提供に影響を及ぼすデータを格納してもよい。当該プロセッサはマイクロプロセッサ、特殊用途向け集積回路(ASIC)、フィールド・プログラム可能ゲート・アレイ(FPGA)等、またはその組合せを含んでもよい。当該メモリは、電子、光、磁気、またはプロセッサにプログラム命令を提供できる任意の他の記憶または送信デバイスを含んでもよいがこれらに限られない。当該メモリは、フロッピーディスク、コンパクトディスク読取専用メモリ(CD−ROM)、デジタル多用途ディスク(DVD)、磁気ディスク、メモリチップ、読取専用メモリ(ROM)、ランダム・アクセスメモリ(RAM)、電気的消去可能プログラム可能読取専用メモリ(EEPROM)、消去可能プログラム可能読取専用メモリ(EPROM)、フラッシュ・メモリ、光媒体、またはプロセッサがそこから命令を読むことができる任意の他の適切なメモリを含んでもよい。当該命令は任意の適切なコンピュータプログラミング言語からのコードを含んでもよく、その例には、アクションスクリプト「登録商標」、C、C++、C#、HTML、Java「登録商標」、Java(登録商標)スクリプト「登録商標」、Perl「登録商標」、Python「登録商標」、VisualBasic「登録商標」、およびXMLがあるがこれらに限られない。
【0028】
クライアントデバイス110は、ソフトウェアアプリケーション(例えば、ウェブブラウザまたは他のアプリケーション)を実行して、コンテンツを他のコンピューティングデバイスからネットワーク106上で取り出すことができる。かかるアプリケーションは、第1のパーティコンテンツをリソースサーバ104から取り出すように構成されてもよい。幾つかのケースでは、クライアントデバイス110で実行されているアプリケーション自体は第1のパーティコンテンツ(例えば、ゲーム、媒体プレイヤ等)であってもよい。1実装では、クライアントデバイス110は、クライアントデバイスのディスプレイ上にブラウザウィンドウを提供するウェブブラウザアプリケーションを実行してもよい。当該ブラウザウィンドウを提供するウェブブラウザアプリケーションは、入力デバイス(例えば、ポインティングデバイス、キーボード、タッチ・スクリーン、または別の形態の入力デバイス)からウェブアドレスのようなユニフォーム・リソース・ロケータ(URL)の入力を受信することで動作してもよい。応答して、当該ウェブブラウザアプリケーションからの命令を実行するクライアントデバイスの1つまたは複数のプロセッサは、当該URLアドレス(例えば、リソースサーバ104)により参照されるネットワーク106に接続された別のデバイスからデータを要求してもよい。当該他のデバイスは次いで、ウェブページデータおよび/または他のデータをクライアントデバイス110に提供してもよい。クライアントデバイス110は視覚兆候をクライアントデバイス110の当該ディスプレイにより表示させる。したがって、当該ブラウザウィンドウは、様々なウェブサイトからのウェブページのような取り出された第1のパーティコンテンツを表示して、第1のパーティコンテンツとのユーザ対話を促進する。
【0029】
リソースサーバ104は、ウェブページまたは他のリソース(例えば、記事、コメントスレッド、音楽、ビデオ、グラフィックス、検索結果、情報フィード等)のようなリソースをホストするように構成されたサーバのようなコンピューティングデバイスを含むことができる。リソースサーバ104は、コンピュータサーバ(例えば、ファイル転送プロトコル(FTP)サーバ、ファイル共有サーバ、ウェブサーバ等)またはサーバの組合せ(例えば、データセンタ、クラウドコンピューティングプラットフォーム等)であってもよい。リソースサーバ104は、リソースデータまたは他のコンテンツ(例えば、テキストドキュメント、PDFファイル、および他の形態の電子ドキュメント)をクライアントデバイス110に提供することができる。1実装では、クライアントデバイス110は、ネットワーク106を介して、リソースサーバ104にアクセスしてリソースサーバ104のリソースの提示に影響を及ぼすためのデータを要求することができる。
【0030】
1つまたは複数のサードパーティコンテンツプロバイダは、ネットワーク106を介して、サードパーティコンテンツ・アイテムに対するデータをコンテンツ・アイテム選択システム108および/または他のコンピューティングデバイスに直接または間接に提供するサードパーティコンテンツサーバ102を有してもよい。当該コンテンツ・アイテムは、クライアントデバイス110のディスプレイに表示できる任意のフォーマット、例えば、グラフィカル、テキスト、画像、オーディオ、ビデオ等であってもよい。当該コンテンツ・アイテムはまた、当該フォーマットの組合せ(ハイブリッド)であってもよい。当該コンテンツ・アイテムは、バナーコンテンツ・アイテム、侵入型コンテンツ・アイテム、ポップアップコンテンツ・アイテム、リッチメディアコンテンツ・アイテム、ハイブリッドコンテンツ・アイテム、Flash「登録商標」コンテンツ・アイテム、クロスドメインiフレームコンテンツ・アイテム等であってもよい。当該コンテンツ・アイテムはまた、ハイパーリンク、メタデータ、リンク、マシン実行可能命令、アノテーション等のような組み込み情報を含んでもよい。幾つかの事例では、サードパーティコンテンツサーバ102をコンテンツ・アイテム選択システム108に統合してもよく、かつ/または、サードパーティコンテンツ・アイテムに対するデータをコンテンツ・アイテム選択システム108のデータベースに格納してもよい。
【0031】
1実装では、コンテンツ・アイテム選択システム108は、ネットワーク106を介して、リソースとともに提供するためのコンテンツ・アイテムの要求を受信することができる。当該受信された要求をリソースサーバ104、クライアントデバイス110、および/または任意の他のコンピューティングデバイスから受信してもよい。リソースサーバ104を、コンテンツ・アイテム選択システム108がサードパーティコンテンツ・アイテムに第1のパーティコンテンツプロバイダの1つまたは複数のリソースをリソースサーバ104上で提供するための命令を含みうる第1のパーティコンテンツプロバイダにより所有または実行してもよい。1実装では、リソースはウェブページを含んでもよい。クライアントデバイス110は(デバイス識別子により表された)ユーザにより操作されるコンピューティングデバイスであってもよい。ユーザは、リソースサーバ104のリソースにアクセスするときに、例えば、リソースとともに提供されるコンテンツ・アイテムに対する要求をコンテンツ・アイテム選択システム108に行うことができる。当該コンテンツ・アイテム要求は、要求デバイス情報(例えば、ウェブブラウザタイプ、オペレーティング・システム・タイプ、当該要求デバイスからの1つまたは複数の以前のリソース要求、当該要求デバイスにより受信された1つまたは複数の以前のコンテンツ・アイテム、当該要求デバイスに対する言語設定、当該要求デバイスの地理的位置、当該要求デバイスの時刻、当該要求デバイスの曜日、当該要求デバイスの日付、当該要求デバイスの1年のうちの日付等)およびリソース情報(例えば、当該要求されたリソースのURL、当該要求されたリソースのコンテンツの1つまたは複数のキーワード、リソースのコンテンツのテキスト、リソースのタイトル、リソースのカテゴリ、リソースのタイプ等)を含むことができる。コンテンツ・アイテム選択システム108が受信する情報は、クライアントデバイス110を表すデバイス識別子(例えば、ランダムな数)を含むハイパーテキスト転送プロトコル(HTTP)クッキーを含むことができる。幾つかの実装では、当該デバイス情報および/またはリソース情報をコンテンツ・アイテム要求URLに付加してもよい(例えば、content item/page/content item?devid=abc123&devnfo=A34r0)。幾つかの実装では、当該コンテンツ・アイテム要求URLに付加される前に、当該デバイス情報および/またはリソース情報を符号化してもよい。当該要求デバイス情報および/またはリソース情報を、当該要求されたリソースを提供されクライアントデバイス110のディスプレイに表示されるサードパーティコンテンツ・アイテムを選択するために、コンテンツ・アイテム選択システム108により利用してもよい。
【0032】
幾つかの事例では、リソースサーバ104のリソースは検索エンジン特徴を含んでもよい。当該検索エンジン特徴は、入力特徴(入力テキスト・ボックス等)を介して検索クエリ(例えば、テキストの文字列)を受信してもよい。当該検索エンジンは、当該検索クエリに基づく関連する検索結果を求めるために、ドキュメントのインデックス(例えば、ウェブページ等のような他のリソース)を検索してもよい。当該検索結果を、検索結果ウェブページのような関連する検索結果をクライアントデバイス110のディスプレイに表示するための第2のリソースとして送信してもよい。当該検索結果はウェブページタイトル、ハイパーリンク等を含んでもよい。1つまたは複数のサードパーティコンテンツ・アイテムをまた、当該検索結果ウェブページのコンテンツ・アイテムスロット内に当該検索結果とともに表示してもよい。したがって、リソースサーバ104および/またはクライアントデバイス110は、当該検索結果ウェブページの当該コンテンツ・アイテムスロットに表示するための1つまたは複数のコンテンツ・アイテムをコンテンツ・アイテム選択システム108に要求してもよい。当該コンテンツ・アイテム要求は、ユーザデバイス情報、リソース情報、コンテンツ・アイテムの量、当該コンテンツ・アイテムに対するフォーマット、当該検索クエリ文字列、当該検索クエリ文字列のキーワード、当該クエリに関連する情報(例えば、地理的位置情報および/または時間的な情報)等のような追加の情報を含んでもよい。幾つかの実装では、混乱を避けるために、線引きを当該検索結果およびサードパーティコンテンツ・アイテムの間で行ってもよい。
【0033】
幾つかの実装では、サードパーティコンテンツプロバイダが、コンテンツ・アイテム選択システム108によるコンテンツ・アイテムの当該選択および提供を管理してもよい。例えば、サードパーティコンテンツプロバイダは、コンテンツ・アイテムの提供に関する1つまたは複数のコンテンツ・アイテム条件または制約を含みうるユーザインタフェースを介して入札値および/または選択基準を設定してもよい。サードパーティコンテンツプロバイダは、コンテンツ・アイテムおよび/または1組のコンテンツ・アイテムが、特定の地理的位置または領域、特定の言語、特定のオペレーティング・システム、特定のウェブブラウザ等に関連付けられたデバイス識別子を有するユーザデバイス110に対して選択され提供されるべきであると指定してもよい。別の実装では、サードパーティコンテンツプロバイダは、コンテンツを含むウェブページ、ドキュメント等のようなリソースが特定のキーワード、フレーズ等にマッチするかまたは関連するとき、コンテンツ・アイテムまたは1組のコンテンツ・アイテムを選択し提供すべきであると指定してもよい。サードパーティコンテンツプロバイダは、幾つかのコンテンツ・アイテムに対する単一の入札値、コンテンツ・アイテムのサブセットに対して設定された入札値、および/またはコンテンツ・アイテムごとに設定された入札値を設定してもよい。サードパーティコンテンツプロバイダはまた、ユーザがサードパーティコンテンツ・アイテムをクリックしたかどうか、サードパーティコンテンツ・アイテムの提供に基づいてユーザが特定のアクションを実施かどうか、サードパーティコンテンツ・アイテムが選択され提供されたかどうかに基づく入札、および/または他のタイプの入札のような入札値のタイプを設定してもよい。
【0034】
III:コンテンツ・アイテムのデバイスベースのフィルタリングのためのシステムの実装
以上ではコンテンツ・アイテムを選択しクライアントデバイス110に提供するためのシステム100の概要を提供したが、デバイスベースのフィルタを用いてクライアントデバイスに対するコンテンツ・アイテムをフィルタし、選択し、および提供するためのシステムの実装を、
図2乃至5を参照してさらに詳細に説明する。
【0035】
図2は、スマートフォンまたはタブレットのようなモバイルクライアントデバイス200を示す。モバイルクライアントデバイス200上に、リソース210がクライアントデバイス200のディスプレイ202により表示されてもよい。リソース210は、クライアントデバイス200で実行されているモバイルウェブブラウザを介して表示されたウェブページであることができ、または、リソース210はクライアントデバイス200で実行されているアプリケーションであることができる。幾つかの実装では、クライアントデバイス200は、リソース210がモバイルウェブブラウザを介して第1のパーティコンテンツ212(例えば、ウェブページ、ウェブサイト、またはアプリケーションコンテンツ)をクライアントデバイス200のディスプレイ202に表示するためのコードを実行してもよい。幾つかの実装では、リソース210はまた、第1のパーティコンテンツ212とともに表示される1つまたは複数のサードパーティコンテンツ・アイテム214を要求するためのコードを含んでもよい。応答して、当該命令を実行するクライアントデバイスの1つまたは複数のプロセッサ200は、データ302を、ネットワーク106のようなネットワークに接続された別のデバイス(例えば、コンテンツ・アイテム選択システム108)に要求してもよい。他のデバイスはついで、サードパーティコンテンツ・アイテム214を表示するためのデータ304をクライアントデバイス200に提供してもよい。クライアントデバイス200は、視覚兆候をクライアントデバイス200のディスプレイ202により表示させる。
【0036】
幾つかの事例では、クライアントデバイス200のユーザはサードパーティコンテンツ・アイテム214と対話してもよい。サードパーティコンテンツ・アイテム214との対話は、サードパーティコンテンツ・アイテム214に関連付けられたリンクを含んでもよい。当該リンクは、サードパーティコンテンツ・アイテム214に関連付けられたウェブページまたはサードパーティコンテンツ・アイテム214のサードパーティに対するメインウェブページのようなサードパーティリソースへのリンクであってもよく、または当該リンクは、アプリケーション・ストアまたは別々のウェブサイトからモバイル・アプリケーションに対するランディングページへのリンクのような、モバイル・アプリケーションに対する実行可能ファイルをダウンロードするためのランディングページであってもよい。サードパーティコンテンツ・アイテム214との対話の際、当該モバイルウェブブラウザは、当該リンクのウェブページに対するデータを取り出し、モバイル・アプリケーションに対する実行可能ファイルをダウンロードするためのランディングページを取り出し、またはモバイル・アプリケーションに対する当該実行可能ファイルをダウンロードしてもよい。
【0037】
図3は、モバイル・アプリケーションに関連付けられたコンテンツ・アイテムのデバイスベースのフィルタリングのためのコンテンツ・アイテム選択モジュール120およびコンテンツ・アイテムフィルタモジュール130を含む、
図1のコンテンツ・アイテム選択システム108の一部の実装のブロック図を示す。コンテンツ・アイテム選択システム108はまた、アプリケーションデータベース140、デバイスデータベース150、デバイス・フィルタデータベース160、および/または分析データベース170のような1つまたは複数のデータベースを含む。
【0038】
データベース140、150、160、170は、コンテンツ・アイテムフィルタモジュール130のためのデータを格納し、かつ/または、データをコンテンツ・アイテムフィルタモジュール130に提供してもよい。データベース140、150、160、170は、ROM、固体状態ドライブ(SSD)、フラッシュ・メモリ(例えば、EEPROM、EPROM等)、磁気ディスク、光ディスク等、複数の静的記憶デバイス、クラウド記憶システム、サーバ、および/またはデータを格納し提供できる任意の他の電子デバイスのような静的記憶デバイスを含んでもよい。
図3に示す実装はデータベース140、150、160、170を別々のデータベースとして示すが、データベース140、150、160、170が単一のデータベースまたはデータベースのセットに結合されてもよいことは理解されるべきである。
【0039】
コンテンツ・アイテム選択モジュール120はネットワーク106を介してコンテンツ・アイテム要求302を受信するように構成される。
図1のクライアントデバイス110または
図2のクライアントデバイス200のようなクライアントデバイス、または、リソースサーバ104のようなリソースサーバはネットワーク106を介してコンテンツ・アイテム要求302をコンテンツ・アイテム選択システム108に送信してもよい。コンテンツ・アイテム要求302は、クライアントデバイスの特性(例えば、クライアントデバイスに関連付けられた一意な識別子、クライアントデバイスのタイプ、クライアントデバイスのディスプレイタイプ、ディスプレイの次元等)および/またはコンテンツ・アイテムに提供すべきリソースの特性(例えば、リソースのURL、リソースのコンテンツの1つまたは複数のキーワード、リソースのコンテンツのテキスト、リソースのタイトル、リソースのカテゴリ、リソースのタイプ、リソースのプロパティ、リソースの対話レベル、リソースのランキング、リソースの人気度、リソースに関連付けられたパブリッシャのカテゴリ、リソースに関連付けられたパブリッシャのタイプ、リソースに関連付けられたパブリッシャのプロパティ等)を表す1つまたは複数のパラメータを含んでもよい。幾つかの実装では、以上のパラメータをコンテンツ・アイテム要求URL(例えば、/page/content item?devid=abc123&devnfo=A34r0)に付加するかまたはそれに含めてもよい。
【0040】
コンテンツ・アイテム要求302に応答して、コンテンツ・アイテム選択モジュール120はコンテンツ・アイテム304を選択し提供するように構成される。幾つかの実装では、コンテンツ・アイテム選択モジュール120はオークションを実施するように構成される。即ち、コンテンツ・アイテム選択モジュール120は、1つまたは複数のコンテンツ・アイテムに対するスコアのような1つまたは複数の値を少なくとも部分的にコンテンツ・アイテム要求302に基づいて生成し、提供されるべき1つまたは複数のコンテンツ・アイテムを選択してもよい。幾つかの事例では、コンテンツ・アイテム選択モジュール120は、当該値を順位付け(例えば、最高乃至最低)、当該ランキングに基づく値に関連付けられたコンテンツ・アイテムを選択することができる(例えば、最高ランクの値またはスコアに関連付けられたコンテンツ・アイテムを選択する)。
【0041】
当該選択されたコンテンツ・アイテム304を表示するためのデータがコンテンツ・アイテム選択モジュール120によりクライアントデバイスおよび/またはリソースサーバにネットワーク106を介して送信または提供されてもよい。当該データは、データベースからアクセスできるグラフィカルデータ、テキストデータ、画像データ、オーディオデータ、ビデオデータ等を含むことができる。
【0042】
幾つかの実装では、コンテンツ・アイテムフィルタモジュール130は、コンテンツ・アイテム選択モジュール120により実施されるオークションのための1組の適格なコンテンツ・アイテムからコンテンツ・アイテムをフィルタしてもよい。コンテンツ・アイテムフィルタモジュール130は、当該要求デバイスがコンテンツ・アイテムに関連付けられたアプリケーションをインストールできるかどうかに基づいてコンテンツ・アイテムを1組の適格なコンテンツ・アイテムから除去する。即ち、
図2のクライアントデバイス200のようなクライアントデバイスがコンテンツ・アイテムに関連付けられたアプリケーションをインストールできない場合、コンテンツ・アイテムフィルタモジュール130は、当該オークションを実施するときにコンテンツ・アイテム選択モジュール120が当該除去されたコンテンツ・アイテムすら考慮しないように、コンテンツ・アイテムを当該1組の適格なコンテンツ・アイテムから除去する。
【0043】
コンテンツ・アイテムフィルタモジュール130は、1つまたは複数のデバイス・フィルタに基づいてコンテンツ・アイテムを当該1組の適格なコンテンツ・アイテムからフィルタする。当該1つまたは複数のデバイス・フィルタを、デバイス・フィルタデータベース160に格納でき、かつ/または、デバイス・フィルタデータベース160からアクセスすることができる。当該デバイス・フィルタはタプルのセットまたはリストを含んでもよい。当該タプルは、<ApplnID、DeviceID>のような、当該アプリケーションと互換なアプリケーションに関連付けられた第1の一意な識別子および対応する既知のモバイルデバイスを識別する第2の一意な識別子を含むことができる。幾つかの事例では、当該タプルはさらに、当該アプリケーションに対する最小オペレーティング・システムバージョンを識別する第3の一意な識別子を含むことができる。幾つかの事例では、幾つかの既知のモバイルデバイスを、当該幾つかの既知のモバイルデバイスが同様な特徴、同様なオペレーティング・システムバージョン等を有するときに、単一の一意な識別子に関連付けることができる。幾つかの事例では、対応する既知のモバイルデバイスを識別する各一意な識別子がデバイスモデル、デバイス製造業者、デバイスブランド、および/またはデバイス特徴に基づいてもよい。
【0044】
コンテンツ・アイテム選択システム108により受信されたコンテンツ・アイテム要求302はモバイルデバイスに対する1組のデバイス特徴を識別するデータまたは識別子を含んでもよい。幾つかの実装では、コンテンツ・アイテムフィルタモジュール130は、当該対応する既知のモバイルデバイスに対する一意な識別子を決定するためのモバイルデバイスに対する識別子(例えば、IMEI、ESN、MEID等)を使用することができる。幾つかの事例では、モバイルデバイスに対する識別子は、当該対応する既知のモバイルデバイスに対する一意な識別子を決定するために使用されうるデバイスモデル、製造業者、および/またはブランドに対応してもよい。他の実装では、コンテンツ・アイテムフィルタモジュール130は、当該1組のデバイス特徴を識別する当該データをデバイスデータベース150からの1組の既知のデバイスと比較して、当該対応する既知のモバイルデバイスに対する一意な識別子を決定してもよい。
【0045】
当該対応する既知のモバイルデバイスに対する一意な識別子が決定されると、コンテンツ・アイテムフィルタモジュール130は、当該対応する既知のモバイルデバイスに対する一意な識別子をデバイス・フィルタデータベース160に格納された当該タプルの識別子と比較して、当該要求を送信する当該既知のモバイルデバイスと非互換であるアプリケーションに関連付けられた1組の識別子を決定することができる。アプリケーションに関連付けられたコンテンツ・アイテムは、当該関連付けられたアプリケーションの一意な識別子に対するメタデータのような、コンテンツ・アイテムを当該アプリケーションと関連付けるデータを含むことができる。コンテンツ・アイテムフィルタモジュール130は、当該オークションに対する1組の適格なコンテンツ・アイテムを非互換のアプリケーションに関連付けられた1組の識別子と比較し、当該比較に基づいて1つまたは複数のコンテンツ・アイテムを当該1組の適格なコンテンツ・アイテムからフィルタして除外する。残りのまたはフィルタされた1組のコンテンツ・アイテムを次いで、当該オークションに対するコンテンツ・アイテム選択モジュール120に送信することができる。コンテンツ・アイテム選択モジュール120は、コンテンツ・アイテム・オークションを介して、コンテンツ・アイテムを当該フィルタされた1組の適格なコンテンツ・アイテムから選択し、当該要求に応答して当該選択されたコンテンツ・アイテム304を当該既知のモバイルデバイスに提供する。
【0046】
コンテンツ・アイテムフィルタモジュール130はまた、デバイス・フィルタデータベース160の1つまたは複数のコンテンツ・アイテムフィルタを生成してもよい。当該1つまたは複数のコンテンツ・アイテムフィルタのタプルを生成するために、コンテンツ・アイテムフィルタモジュール130は、アプリケーションに対する1組の要求された特徴にアプリケーションデータベース140からアクセスする。幾つかの事例では、アプリケーションデータベース140がローカルデータベースであってもよいかまたはアプリケーションデータベース140がコンテンツ・アイテムフィルタモジュール130に対するリモートデータベースであってもよい。幾つかの事例では、アプリケーションデータベース140はアプリケーション・ストアであってもよい。幾つかの実装では、当該アプリケーション・ストアは、コンテンツ・アイテム・オークションを実施するエンティティからの別々のエンティティにより制御される。当該1組の要求された特徴を、アプリケーション・ストアと対話するためのAPIを用いて取り出してもよい。他の実装では、当該1組の要求された特徴に、当該アプリケーション・ストアのアプリケーションに対するランディングページからの情報を介してアクセスしてもよい。当該1組の要求された特徴は、1つまたは複数のハードウェア特徴(例えば、カメラ、特定のカメラ拡大レベル、近接場通信等)、1つまたは複数のソフトウェア特徴(例えば、他のアプリケーション、プラグイン等)、オペレーティング・システム・タイプ、最小オペレーティング・システムバージョン、リストまたは1組の適格な郡等を含んでもよい。
【0047】
コンテンツ・アイテムフィルタモジュール130はまた、それぞれ1組の特徴に関連付けられる1つまたは複数の既知のモバイルデバイスを識別するデータ構造にアクセスする。当該データ構造は、当該既知のモバイルデバイスの各々に対する(または1組の同様なモバイルデバイスに対する)一意な識別子および当該既知のモバイルデバイスに対する1組の特徴を示すデータまたは他のデータを含む表または他のデータ構造であってもよい。例えば、当該1組の特徴は1つまたは複数のハードウェア特徴、1つまたは複数のソフトウェア特徴、オペレーティング・システム・タイプ、オペレーティング・システムバージョン、モバイルキャリア、モデル名、製造業者等を含むことができる。当該データ構造の当該1組の特徴を、1つまたは複数のデバイス製造業者により提供してもよく、かつ/または、別のデータベースから取り出してもよい。
【0048】
アプリケーションに対する当該アクセスされた1組の要求された特徴および当該1つまたは複数の既知のモバイルデバイスに対する当該データ構造の当該1組の特徴を用いて、コンテンツ・アイテムフィルタ130は、当該1組の要求された特徴を既知のモバイルデバイスの各々に対する関連付けられた1組の特徴の各々と比較することにより、デバイス・フィルタを生成する。即ち、当該既知のモバイルデバイスの各々に対するセット特徴が当該アプリケーションに対する当該1組の要求された特徴にマッチしないかまたはそれを超えない場合、当該既知のモバイルデバイスに対する一意な識別子(または1組のモバイルデバイス)が(例えば、アプリケーション識別子とデバイス識別子のタプルを追加することで)当該デバイス・フィルタに追加される。既知のモバイルデバイスに対する当該セット特徴が、当該アプリケーションに対する当該1組の要求された特徴にマッチしないかまたはそれを超えない場合、当該既知のモバイルデバイスに対する一意な識別子は当該デバイス・フィルタに含まれない。
【0049】
幾つかの実装では、コンテンツ・アイテムフィルタ130は、コンテンツ・アイテム要求302がクライアントデバイスから受信されたときおよび/またはアプリケーションに関連付けられたコンテンツ・アイテムが当該1組の適格なコンテンツ・アイテムの一部であるときに取り出すために、生成されたデバイス・フィルタをデバイス・フィルタデータベース160に格納する。
【0050】
幾つかの実装では、分析データベース170はまた、コンテンツ・アイテムフィルタ130によりアクセスされてもよい。分析データベース170は、1つまたは複数のコンテンツ・アイテムのインプレッションおよび当該1つまたは複数のコンテンツ・アイテムに対する変換を示すデータを含んでもよい。当該デバイス・フィルタの1つまたは複数の主題であるアプリケーションに関連付けられたコンテンツ・アイテムに対して、コンテンツ・アイテムフィルタ130は、当該デバイス・フィルタに含まれた既知のモバイルデバイスの1つまたは複数に対応する変換(例えば、ダウンロードおよび/またはインストール)の数を決定するために分析データベース170にアクセスしてもよい。変換の数が所定の数(例えば、10)より大きい場合、当該既知のモバイルデバイスに対する識別子を当該デバイス・フィルタから除去してもよい。したがって、当該分析データを、フィルタされたデバイスが当該アプリケーションと非互換であるかどうかをチェックするために使用してもよく、または、所定の変換の数が発生したかどうかに基づかなくてもよい。
【0051】
幾つかの実装では、コンテンツ・アイテムフィルタ130はまた、最小オペレーティング・システムバージョン、当該要求デバイスに関連付けられた位置、および/または当該要求デバイスのキャリアに基づいて、コンテンツ・アイテムをフィルタしてもよい。例えば、コンテンツ・アイテムフィルタ130は、モバイル・アプリケーションに対する1組の要求された特徴の最小オペレーティング・システムバージョンを、要求デバイスから受信された1組のデバイス特徴のオペレーティング・システムバージョンおよび/または要求デバイスに対する当該識別子に関連付けられたオペレーティング・システムバージョンを比較することに基づいて、モバイル・アプリケーションに関連付けられたコンテンツ・アイテムを1組の適格なコンテンツ・アイテムからフィルタして除外することができる。幾つかの実装では、コンテンツ・アイテムフィルタ130は、アプリケーションの最小オペレーティング・システムバージョンを既知のモバイルデバイスの各々に対する最小オペレーティング・システムバージョンと比較することにより、別々の最小オペレーティング・システムバージョンデバイス・フィルタを生成してもよい。最小オペレーティング・システムバージョンデバイス・フィルタを、コンテンツ・アイテム要求302がクライアントデバイスから受信されたときおよび/またはアプリケーションに関連付けられたコンテンツ・アイテムが当該1組の適格なコンテンツ・アイテムの一部であるときに取り出すために、当該デバイス・フィルタをデータベース160に格納することができる。
【0052】
コンテンツ・アイテムフィルタ130は、モバイル・アプリケーションに対する1組の適格な国(または、幾つかの事例では、1組の不適格な国)の要求デバイスから受信された位置を識別するデータおよび/または要求デバイスに対する当該モバイルキャリアを識別するデータとの比較に基づいて、モバイル・アプリケーションに関連付けられたコンテンツ・アイテムを1組の適格なコンテンツ・アイテムからフィルタして除外することができる。当該キャリアを識別するデータはモバイルデバイスのホーム位置を示すことができる(例えば、Verizon「登録商標」は米国でのホーム位置を有するモバイルデバイスを示しており、O2はイギリスでのホーム位置を有するモバイルデバイスを示している等)。
【0053】
幾つかの実装では、コンテンツ・アイテム要求302がクライアントデバイスから受信されたとき、コンテンツ・アイテムフィルタ130は、当該要求クライアントデバイスが最小オペレーティング・システムバージョン要件を満たさないコンテンツ・アイテムを最初にフィルタして除外してもよい。例えば、コンテンツ・アイテムフィルタ130は、モバイル・アプリケーションに対する1組の要求された特徴の最小オペレーティング・システムバージョンを要求デバイスから受信された1組のデバイス特徴のオペレーティング・システムバージョンおよび/または要求デバイスに対する当該識別子に関連付けられたオペレーティング・システムバージョンと比較することができる。幾つかの実装では、コンテンツ・アイテムフィルタ130は、デバイス・フィルタデータベース160から最小オペレーティング・システムバージョンデバイス・フィルタを取り出し、それを使用して、最小オペレーティング・システムバージョンに基づいてコンテンツ・アイテムを当該1組の適格なコンテンツ・アイテムからフィルタして除外してもよい。
【0054】
コンテンツ・アイテムフィルタ130はついで、当該要求クライアントデバイスが当該1組の適格な国を満たさない残りの1組の適格なコンテンツ・アイテムからコンテンツ・アイテムをフィルタして除外してもよい。コンテンツ・アイテムフィルタ130は、モバイル・アプリケーションに対する1組の適格な国(または、幾つかの事例では、1組の不適格な国)を当該要求デバイスから受信された位置を識別するデータおよび/または当該要求デバイスに対するモバイルキャリアを識別するデータと比較する。
【0055】
最後に、コンテンツ・アイテムフィルタ130は、1つまたは複数のデバイス・フィルタに基づいて、コンテンツ・アイテムを当該残りの1組の適格なコンテンツ・アイテムからフィルタして除外してもよい。即ち、コンテンツ・アイテムフィルタ130は要求デバイスに対する識別子(例えば、IMEI、ESN、MEID等)を使用して、対応する既知のモバイルデバイスに対する一意な識別子を決定することができる。幾つかの事例では、要求デバイスに対する当該識別子は、当該対応する既知のモバイルデバイスに対する一意な識別子を決定するために使用されうるデバイスモデル、製造業者、および/またはブランドに対応してもよい。他の実装では、コンテンツ・アイテムフィルタモジュール130は、1組のデバイス特徴を識別するデータをデバイスデータベース150からの1組の既知のデバイスと比較して、当該対応する既知のモバイルデバイスに対する一意な識別子を決定する。当該要求デバイスに対して当該対応する既知のモバイルデバイスの一意な識別子が決定されると、コンテンツ・アイテムフィルタモジュール130は、当該対応する既知のモバイルデバイスに対する一意な識別子をデバイス・フィルタデータベース160に格納されたタプルの識別子と比較して、当該要求を送信した当該既知のモバイルデバイスと非互換であるアプリケーションに関連付けられた1組の識別子を決定する。非互換のアプリケーションに関連付けられた当該1組の識別子に関連付けられた任意のコンテンツ・アイテムが次いで当該残りの1組の適格なコンテンツ・アイテムからフィルタされる。
【0056】
結果の1組の残りの適格なコンテンツ・アイテム(または一意なコンテンツ・アイテムIDのようなコンテンツ・アイテムに対する識別子)が次いでコンテンツ・アイテム選択モジュール120に送信される。コンテンツ・アイテム要求302に応答して、コンテンツ・アイテム選択モジュール120は、例えばオークションを実施することを介してコンテンツ・アイテム304を選択し提供する。即ち、コンテンツ・アイテム選択モジュール120は、少なくとも部分的にコンテンツ・アイテム要求302に基づいて、当該残りの1組の適格なコンテンツ・アイテムの1つまたは複数のコンテンツ・アイテムに対するスコアのような1つまたは複数の値を生成し、提供されるべき1つまたは複数のコンテンツ・アイテムを選択する。幾つかの事例では、コンテンツ・アイテム選択モジュール120は、当該値(例えば、最高乃至最低)を順位付けし、当該ランキングに基づく値に関連付けられたコンテンツ・アイテムを選択する(例えば、最高ランクの値またはスコアに関連付けられたコンテンツ・アイテムを選択する)。
【0057】
選択されたコンテンツ・アイテム304を表示するためのデータが、ネットワーク106を介して、コンテンツ・アイテム選択モジュール12により当該要求デバイスおよび/またはリソースサーバへ送信または提供される。当該データは、データベースからアクセスできるグラフィカルデータ、テキストデータ、画像データ、オーディオデータ、ビデオデータ等を含むことができる。
【0058】
図4は、デバイス・フィルタを生成するためにコンテンツ・アイテム選択システムにより実装しうる例示的なプロセス400を示す。プロセス400はアプリケーションに対する1組の要求された特徴にアクセスするステップを含む(ブロック402)。当該1組の要求された特徴にアプリケーションデータベースからアクセスすることができる。幾つかの事例では、当該アプリケーションデータベースはローカルデータベースであってもよいまたは当該アプリケーションデータベースはコンテンツ・アイテム選択システムに対するリモートデータベースであってもよい。幾つかの事例では、当該アプリケーションデータベースはアプリケーション・ストアであってもよい。幾つかの実装では、当該アプリケーション・ストアは、コンテンツ・アイテム・オークションを実施するコンテンツ・アイテム選択システムからの別々のエンティティにより制御される。当該1組の要求された特徴を、当該アプリケーション・ストアと対話するためのAPIを用いて取り出してもよい。他の実装では、当該1組の要求された特徴に、当該アプリケーション・ストアのアプリケーションに対するランディングページからの情報を介してアクセスしてもよい。当該1組の要求された特徴は、1つまたは複数のハードウェア特徴(例えば、カメラ、特定のカメラ拡大レベル、近接場通信等)、1つまたは複数のソフトウェア特徴(例えば、他のアプリケーション、プラグイン等)、オペレーティング・システム・タイプ、最小オペレーティング・システムバージョン、リストまたは1組の適格な郡等を含んでもよい。
【0059】
プロセス400は、各々が1組の特徴に関連付けられた、複数の既知のモバイルデバイスを示すデータ構造にアクセスするステップを含む(ブロック404)。当該データ構造は、当該既知のモバイルデバイスの各々に対する(または1組の同様なモバイルデバイスに対する)一意な識別子および当該既知のモバイルデバイスに対する1組の特徴を示すデータまたは他のデータを含む表または他のデータ構造であってもよい。例えば、当該1組の特徴は、1つまたは複数のハードウェア特徴、1つまたは複数のソフトウェア特徴、オペレーティング・システム・タイプ、オペレーティング・システムバージョン、モバイルキャリア、モデル名、製造業者等を含むことができる。当該データ構造の当該1組の特徴を1つまたは複数のデバイス製造業者により提供してもよく、かつ/または、別のデータベースから取り出すことができる。
【0060】
プロセス400はデバイス・フィルタを生成するステップを含む(ブロック406)。当該デバイス・フィルタの生成は、当該1組の要求された特徴を、当該データ構造の当該1組の既知のモバイルデバイスの各々に対する当該データ構造の関連付けられた1組の特徴と比較することに基づく。幾つかの実装では、当該デバイス・フィルタは、当該比較に基づくモバイル・アプリケーションと非互換である、当該1組の既知のモバイルデバイスの1つまたは複数に対する1組の識別子を含む。即ち、当該既知のモバイルデバイスの各々に対するセット特徴が当該アプリケーションに対する1組の要求された特徴にマッチしないかまたはそれを超えない場合、当該既知のモバイルデバイスに対する一意な識別子(または1組のモバイルデバイス)が(例えば、当該アプリケーション識別子および当該デバイス識別子のタプルを追加することで)当該デバイス・フィルタに追加される。既知のモバイルデバイスに対する当該セット特徴が、当該アプリケーションに対する当該1組の要求された特徴にマッチしないかまたはそれを超えない場合、当該既知のモバイルデバイスに対する一意な識別子は当該デバイス・フィルタに含まれない。
【0061】
当該デバイス・フィルタはタプルのセットまたはリストを含んでもよい。当該タプルは、<ApplnID、DeviceID>のような、当該アプリケーションと非互換であるアプリケーションに関連付けられた第1の一意な識別子および対応する既知のモバイルデバイスを識別する第2の一意な識別子を含むことができる。幾つかの事例では、当該タプルはさらに、当該アプリケーションに対する最小オペレーティング・システムバージョンを識別する第3の一意な識別子を含むことができる。幾つかの事例では、当該幾つかの既知のモバイルデバイスが同様な特徴、同様なオペレーティング・システムバージョン等を有するとき、幾つかの既知のモバイルデバイスを単一の一意な識別子に関連付けることができる。幾つかの事例では、対応する既知のモバイルデバイスを識別する各一意な識別子がデバイスモデル、デバイス製造業者、デバイスブランド、および/またはデバイス特徴に基づいてもよい。
【0062】
プロセス400はさらに当該生成されたデバイス・フィルタを格納するステップを含む(ブロック408)。当該生成されたデバイス・フィルタを、
図3のデバイス・フィルタデータベース160のようなデバイス・フィルタデータベースに格納することができる。
【0063】
図5は、デバイスベースのフィルタを用いてコンテンツ・アイテムをフィルタするコンテンツ・アイテム選択システムにより実装しうる例示的なプロセス500を示す。プロセス500は、アプリケーションに対する1組の要求された特徴にアクセスするステップを含む(ブロック502)。当該1組の要求された特徴に、アプリケーションデータベースからアクセスすることができる。幾つかの事例では、当該アプリケーションデータベースはローカルデータベースであってもよく、または当該アプリケーションデータベースはコンテンツ・アイテム選択システムに対するリモートデータベースであってもよい。幾つかの事例では、当該アプリケーションデータベースはアプリケーション・ストアであってもよい。幾つかの実装では、当該アプリケーション・ストアはコンテンツ・アイテム・オークションを実施するコンテンツ・アイテム選択システムからの別々のエンティティにより制御される。当該1組の要求された特徴を、当該アプリケーション・ストアと対話するためのAPIを用いて取り出してもよい。他の実装では、当該1組の要求された特徴に、当該アプリケーション・ストアのアプリケーションに対するランディングページからの情報を介してアクセスしてもよい。当該1組の要求された特徴は、1つまたは複数のハードウェア特徴(例えば、カメラ、特定のカメラ拡大レベル、近接場通信等)、1つまたは複数のソフトウェア特徴(例えば、他のアプリケーション、プラグイン等)、オペレーティング・システム・タイプ、最小オペレーティング・システムバージョン、リストまたは1組の適格な郡等を含んでもよい。
【0064】
プロセス500は、各々が1組の特徴に関連付けられた、複数の既知のモバイルデバイスを示すデータ構造にアクセスするステップを含む(ブロック504)。当該データ構造は、当該既知のモバイルデバイスの各々に対する(または1組の同様なモバイルデバイスに対する)一意な識別子および当該既知のモバイルデバイスに対する1組の特徴を示すデータまたは他のデータを含む表または他のデータ構造であってもよい。例えば、当該1組の特徴は、1つまたは複数のハードウェア特徴、1つまたは複数のソフトウェア特徴、オペレーティング・システム・タイプ、オペレーティング・システムバージョン、モバイルキャリア、モデル名、製造業者等を含むことができる。当該データ構造の当該1組の特徴を、1つまたは複数のデバイス製造業者により提供してもよく、かつ/または、別のデータベースから取り出してもよい。
【0065】
プロセス500は、デバイス・フィルタを生成するステップを含む(ブロック506)。当該デバイス・フィルタの生成は、当該1組の要求された特徴の、当該データ構造の当該1組の既知のモバイルデバイスの各々に対する当該データ構造の当該関連付けられた1組の特徴との比較に基づく。幾つかの実装では、当該デバイス・フィルタは、当該比較に基づくモバイル・アプリケーションと非互換である、当該1組の既知のモバイルデバイスの1つまたは複数に対する1組の識別子を含む。即ち、当該既知のモバイルデバイスの各々に対するセット特徴が当該アプリケーションに対する当該1組の要求された特徴にマッチしないかまたはそれを超えない場合、当該既知のモバイルデバイスに対する一意な識別子(または1組のモバイルデバイス)が(例えば、当該アプリケーション識別子および当該デバイス識別子のタプルを追加することで)当該デバイス・フィルタに追加される。既知のモバイルデバイスに対する当該セット特徴が、当該アプリケーションに対する当該1組の要求された特徴にマッチしないかまたはそれを超えない場合、当該既知のモバイルデバイスに対する一意な識別子は当該デバイス・フィルタに含まれない。
【0066】
当該デバイス・フィルタはタプルのセットまたはリストを含んでもよい。当該タプルは、<ApplnID、DeviceID>のような、当該アプリケーションと非互換であるアプリケーションに関連付けられた第1の一意な識別子および対応する既知のモバイルデバイスを識別する第2の一意な識別子を含むことができる。幾つかの事例では、当該タプルはさらに、当該アプリケーションに対する最小オペレーティング・システムバージョンを識別する第3の一意な識別子を含むことができる。幾つかの事例では、当該幾つかの既知のモバイルデバイスが同様な特徴、同様なオペレーティング・システムバージョン等を有するとき、幾つかの既知のモバイルデバイスを単一の一意な識別子に関連付けることができる幾つかの事例では、対応する既知のモバイルデバイスを識別する各一意な識別子がデバイスモデル、デバイス製造業者、デバイスブランド、および/またはデバイス特徴に基づいてもよい。
【0067】
幾つかの実装では、当該1組の要求された特徴にアクセスするステップ(ブロック502)、当該データ構造にアクセスするステップ(ブロック504)および当該デバイス・フィルタを生成するステップ(ブロック508)を省略してもよく、プロセス500は、生成されたデバイス・フィルタにアクセスすることで、例えば、デバイス・フィルタデータベースに格納された当該生成されたデバイス・フィルタにアクセスすることで、開始してもよい。
【0068】
プロセス500はコンテンツ・アイテムの要求をモバイルデバイスから受信するステップを含む(ブロック508)。当該要求はモバイルデバイスに対する1組のデバイス特徴を識別するデータまたは識別子を含んでもよい。当該1組のデバイス特徴は、1つまたは複数のハードウェア特徴、1つまたは複数のソフトウェア特徴、オペレーティング・システム・タイプ、オペレーティング・システムバージョン、モバイルキャリア、モデル名、製造業者等を含んでもよい。モバイルデバイスに対する識別子はIMEI、ESN、MEID、デバイスモデル、製造業者、および/またはブランドを含んでもよい。
【0069】
プロセス500は、最小オペレーティング・システムバージョンに基づいて、モバイル・アプリケーションに関連付けられたコンテンツ・アイテムをフィルタして除外するステップを含んでもよい(ブロック510)。コンテンツ・アイテムを1組の適格なコンテンツ・アイテムからフィルタして除外するステップは、当該1組の要求された特徴の最小オペレーティング・システムバージョンを当該1組のデバイス特徴のオペレーティング・システムバージョンまたはモバイルデバイスに対する当該識別子に関連付けられたオペレーティング・システムバージョンと比較することに基づく。幾つかの実装では、事前生成された最小オペレーティング・システムバージョンデバイス・フィルタを取り出し、当該フィルタを、当該要求モバイルデバイスが非互換であるコンテンツ・アイテムをフィルタして除外するために使用してもよい。
【0070】
プロセス500はまた、1組の適格な国に基づいてコンテンツ・アイテムをフィルタして除外するステップを含んでもよい(ブロック512)。当該1組の適格な国に基づいてコンテンツ・アイテムからフィルタするステップは、モバイル・アプリケーションに対する1組の適格な国(または、幾つかの事例では、1組の不適格な国)を、要求デバイスから受信された位置を識別するデータおよび/または要求デバイスに対する当該モバイルキャリアを識別するデータと比較することに基づく。当該キャリアを識別するデータはモバイルデバイスのホーム位置を示すことができる(例えば、Verizon「登録商標」は米国でのホーム位置を有するモバイルデバイスを示しており、O2はイギリスでのホーム位置を有するモバイルデバイスを示している等)。当該位置データはGPSデータ、不明瞭なGPSデータ、無線アクセス・ポイントデータ等であってもよい。
【0071】
プロセス500は1つまたは複数のデバイス・フィルタに基づいてコンテンツ・アイテムをフィルタして除外するステップを含む(ブロック514)。1つまたは複数のデバイス・フィルタに基づいてコンテンツ・アイテムからフィルタするステップは、当該生成されたデバイス・フィルタと、当該要求のモバイルデバイスに対する、1組のデバイス特徴を識別するデータまたは識別子とに基づく。モバイルデバイスに対する識別子(例えば、IMEI、ESN、MEID等)を、当該要求デバイスに対応する既知のモバイルデバイスに対する一意な識別子を決定するために使用することができる。幾つかの事例では、モバイルデバイスに対する識別子は、当該対応する既知のモバイルデバイスに対する一意な識別子を決定するために使用されうるデバイスモデル、製造業者、および/またはブランドに対応しうる。他の実装では、当該1組のデバイス特徴を識別するデータをデバイスデータベースからの1組の既知のデバイスと比較することを、当該対応する既知のモバイルデバイスに対する一意な識別子を決定するために実施してもよい。当該対応する既知のモバイルデバイスに対する一意な識別子が決定されると、プロセス500は、当該対応する既知のモバイルデバイスに対する一意な識別子を、タプルのような当該デバイス・フィルタの識別子と比較して、当該要求を送信した既知のモバイルデバイスと非互換であるアプリケーションに関連付けられた1組の識別子を決定する。アプリケーションに関連付けられたコンテンツ・アイテムは、当該関連付けられたアプリケーションの一意な識別子に対するメタデータのような、コンテンツ・アイテムをアプリケーションと関連付けるデータを含むことができる。プロセス500は、当該オークションに対する1組の適格なコンテンツ・アイテムを非互換のアプリケーションに関連付けられた1組の識別子と比較し、当該比較に基づいて1つまたは複数のコンテンツ・アイテムを当該1組の適格なコンテンツ・アイテムからフィルタして除外する。
【0072】
プロセス500は、コンテンツ・アイテム・オークションを介して、コンテンツ・アイテムを、フィルタされた1組の適格なコンテンツ・アイテムから選択するステップを含む(ブロック516)。プロセス500はまた、受信された要求に応答して当該選択されたコンテンツ・アイテムをモバイルデバイスに提供するステップを含む(ブロック518)。当該選択されたコンテンツ・アイテムを表示するデータは、ネットワークを介して当該要求デバイスおよび/またはリソースサーバに送信または提供される。当該データはデータベースからアクセスできるグラフィカルデータ、テキストデータ、画像データ、オーディオデータ、ビデオデータ等を含むことができる。
【0073】
図6は、クライアントデバイス110、コンテンツ・アイテム選択システム108、サードパーティコンテンツサーバ102、リソースサーバ104等を実装するために使用することができるコンピュータシステム600のブロック図である。コンピューティングシステム600は、情報を通信するためのバス605または他の通信コンポーネントおよび情報を処理するためのバス605に接続されるプロセッサ610を含む。コンピューティングシステム600はまた、情報を処理するための当該バスに接続される1つまたは複数のプロセッサ610を含むことができる。コンピューティングシステム600はまた、情報、およびプロセッサ610により実行される命令を格納するためのバス605に接続されるRAMまたは他の動的記憶デバイスのようなメイン・メモリ615を含む。メイン・メモリ615をまた、プロセッサ610による命令の実行中に位置情報、一時的変数、または他の中間情報を格納するために使用することができる。コンピューティングシステム600はさらに、プロセッサ610のための静的情報および命令を格納するためにバス605に接続されるROM620または他の静的記憶デバイスを含んでもよい。固体状態デバイス、磁気ディスクまたは光ディスクのような記憶デバイス625は、情報および命令を永続的に格納するためにバス605に接続される。コンピューティングデバイス600は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、セルラ電話、スマートフォン、モバイルコンピューティングデバイス(例えば、ノートパッド、eリーダ等)等のようなデジタルコンピュータを含んでもよいがこれらに限られない。
【0074】
コンピューティングシステム600を、バス605を介して、液晶ディスプレイ(LCD)、薄膜トランジスタLCD(TFT)、有機発光ダイオード(OLED)ディスプレイ、LEDディスプレイ、電気ペーパーディスプレイ、プラズマディスプレイパネル(PDP)、および/または情報をユーザに表示するための他のディスプレイ等のようなディスプレイ635に接続してもよい。英数字および他のキーを含むキーボードのような入力デバイス630を、情報およびコマンド選択をプロセッサ610に通信するためのバス605に接続してもよい。別の実装では、入力デバイス630が、タッチ・スクリーンディスプレイのようなディスプレイ635に統合されてもよい。入力デバイス630は、方向情報およびコマンド選択をプロセッサ610に通信するためのおよびディスプレイ635上のカーソル移動を制御するためのマウス、トラックボール、またはカーソル方向キーのようなカーソル・コントロールを含むことができる。
【0075】
様々な実装に従って、本明細書で説明したプロセスおよび/または方法を、プロセッサ610がメイン・メモリ615に含まれる命令の配置を実行したことに応答してコンピューティングシステム600により実装することができる。かかる命令をメイン・メモリ615に記憶デバイス625のような別のコンピュータ可読媒体から読み込むことができる。メイン・メモリ615に含まれる命令の配置の実行は、コンピューティングシステム600に、本明細書で説明した例示的なプロセスおよび/または方法ステップを実施させる。マルチプロセッシング配置における1つまたは複数のプロセッサをまた、メイン・メモリ615に含まれる命令を実行するために使用することができる。代替的な実装ではハードワイヤード回路を、例示的な実装に影響を及ぼすためにソフトウェア命令の代わりにまたはそれと組み合わせて使用してもよい。したがって、実装はハードウェア回路およびソフトウェアの任意の特定の組合せに限定されない。
【0076】
コンピューティングシステム600の実装を
図6で説明したが、本明細書で説明した当該主題および当該機能動作の実装を、本明細書で開示した構造およびそれらの構造的均等物を含む他のタイプのデジタル電子回路で、またはコンピュータソフトウェア、ファームウェア、またはハードウェアで、またはそれらの1つまたは複数の組合せで実装することができる。
【0077】
本明細書で説明した当該主題および当該動作の実装を、デジタル電子回路で、または本明細書で開示した構造およびそれらの構造的均等物を含む有形媒体、ファームウェア、またはハードウェアで具体化されたコンピュータソフトウェアで、またはそれらの1つまたは複数の組合せで、実装することができる。本明細書で説明した当該主題を、データ処理装置による実行のためにまたは当該装置の動作を制御するために1つまたは複数のコンピュータ記憶媒体で符号化された、1つまたは複数のコンピュータプログラム、即ち、コンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。代替的にまたは追加として、当該プログラム命令を、人工的に生成された伝播信号、例えば、データ処理装置による実行のために適切な受信器装置に送信するための情報を符号化するために生成されたマシン生成された電気、光、または電磁気信号で符号化することができる。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムなまたはシリアル・アクセスメモリ・アレイまたはデバイス、またはそれらの1つまたは複数の組合せであることができ、または、それらに含まれることができる。さらに、コンピュータ記憶媒体は伝播信号ではないが、コンピュータ記憶媒体は、人工的に-生成された伝播信号で符号化されたコンピュータプログラム命令のソースまたは宛先であることができる。当該コンピュータ記憶媒体はまた、1つまたは複数の別々のコンポーネントまたは媒体(例えば、複数のCD、ディスク、または他の記憶デバイス)であることができ、または、それに含まれることができる。したがって、当該コンピュータ記憶媒体は有形かつ非一時的である。
【0078】
本明細書で説明した動作を、1つまたは複数のコンピュータ可読記憶デバイスに格納されるかまたは他のソースから受信されたデータに対してデータ処理装置により実施することができる。
【0079】
当該用語「データ処理装置」、「コンピューティングデバイス」、または「処理回路」は、例としてプログラム可能プロセッサ、コンピュータ、システム・オン・チップ、または複数のもの、プログラムされたプロセッサの一部、または以上の組合せを含む、データを処理するためのあらゆる種類の装置、デバイス、およびマシンを包含する。当該装置は特殊目的論理回路、例えば、FPGAまたはASICを含むことができる。当該装置はまた、ハードウェアに加えて、着目するコンピュータプログラムに対する実行環境を生成するコード、例えば、プロセッサファームウェア、プロトコル・スタック、データベース管理システム、オペレーティング・システム、クロス・プラットフォームランタイム環境、仮想マシン、またはそれらの1つまたは複数の組合せを構成するコードを含むことができる。当該装置および実行環境は、ウェブサービス、分散コンピューティングおよびグリッド・コンピューティングインフラのような様々な異なるコンピューティングモデルインフラを実現することができる。
【0080】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)を、スタンドアロンプログラムとしてまたはモジュール、コンポーネント、サブルーチン、オブジェクト、またはコンピューティング環境で使用するのに適した他のユニットとしてを含めて、コンパイル型言語またはインタプリタ型言語、宣言型または手続型言語を含む任意の形態のプログラミング言語で書くことができ、任意の形態で展開することができる。コンピュータプログラムがファイルシステム内のファイルに対応してもよいがその必要はない。プログラムを、他のプログラムまたはデータを保持するファイル部分(例えば、マークアップ言語ドキュメントに格納された1つまたは複数のスクリプト)に、着目するプログラム専用の単一のファイルに、または複数の協調ファイルに(例えば、1つまたは複数のモジュール、サブプログラム、またはコード部分を格納するファイル)格納することができる。コンピュータプログラムを、1つのコンピュータ上でまたは1つのサイトに配置されるかまたは複数のサイトにわたって分散され通信ネットワークにより相互接続された複数のコンピュータ上で実行されるように展開することができる。
【0081】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用目的マイクロプロセッサおよび特殊目的マイクロプロセッサの両方、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。一般に、プロセッサは、読取専用メモリまたはランダム・アクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの本質的な要素は、命令に従って動作を実施するためのプロセッサおよび命令およびデータを格納するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを格納するための1つまたは複数の大容量記憶デバイス、例えば、磁気、光磁気ディスク、または光ディスクを含むかまたはそれらとデータを送受信するように動作可能に接続される。しかし、コンピュータがかかるデバイスを有する必要はない。さらに、コンピュータを、別のデバイス、例えば、幾つか例を挙げれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオまたはビデオプレイヤ、ゲーム・コンソール、全地球測位システム(GPS)受信器、またはポータブル記憶デバイス(例えば、ユニバーサル・シリアル・バス(USB)フラッシュ・ドライブ)に組み込むことができる。コンピュータプログラム命令およびデータを格納するのに適したデバイスは、例として半導体メモリデバイス、例えば、EPROM、EEPROM、およびフラッシュ・メモリデバイスを含むあらゆる形態の非揮発性メモリ、媒体およびメモリデバイス、磁気ディスク、例えば、内部ハードディスクまたは取外し可能ディスク、光磁気ディスク、およびCD-ROMおよびDVDディスクを含む。当該プロセッサおよび当該メモリを特殊目的論理回路で補完するかまたはそれに組み込むことができる。
【0082】
ユーザとの対話を提供するために、本明細書で説明した当該主題の実装を、情報をユーザに表示するためのディスプレイデバイス、例えば、CRT(カソード・レイ・チューブ)またはLCDモニタおよびユーザがそれにより当該コンピュータに入力を提供できるキーボードおよびポインティングデバイス、例えば、マウスまたはトラックボールを有するコンピュータで実装することができる。他の種類のデバイスを、ユーザとの対話を提供するために使用することができる。例えば、ユーザに提供されるフィードバックは任意の形態のセンサフィードバック、例えば、視覚フィードバック、可聴フィードバック、または触覚フィードバックであることができ、ユーザからの入力を音響、会話、または触覚入力を含む任意の形態で受信することができる。
【0083】
本明細書は実装の多数の詳細を含むが、これらを特許請求の範囲に記載したものの範囲への限定として解釈すべきではなく、むしろ、特定の実装に固有な特徴の説明と解釈すべきである。別々の実装の文脈で本明細書で説明した特定の特徴をまた単一の実装における組合せで実装することができる。反対に、単一の実装の文脈で説明した様々な特徴をまた複数の実装で別々にまたは任意の適切な部分的組合せで実装することができる。さらに、特徴が特定の組合せで動作するとして上述しそのように最初にクレームされているかもしれないが、クレームした組合せからの1つまたは複数の特徴を幾つかのケースでは当該組合せから実施してもよく、クレームした組合せは部分的組合せまたは部分的組合せの変形に関してもよい。
【0084】
同様に、動作を当該図面において特定の順序で説明したが、これを、かかる動作が示した特定の順序または逐次的な順序で実施されること、または所望の結果を達成するために全ての図示した動作が実施されることを要求するものとして理解すべきではない。特定の環境では、マルチタスキングおよび並列処理は有利でありうる。さらに、上述した実装における様々なシステムコンポーネントの分離は、全ての実装においてかかる分離を要求するものとして理解されるべきではなく、当該説明したプログラムコンポーネントおよびシステムを一般に単一のソフトウェア製品に統合でき、または、有形媒体で具体化された複数のソフトウェア製品にパッケージ化できることは理解されるべきである。
【0085】
「または」に対する言及は、「または」を用いて説明された任意の用語が当該説明した用語のうち1つ、複数、および全ての何れかを示しうるように、包含的として解釈してもよい。
【0086】
したがって、当該主題の特定の実装を説明した。他の実装は添付の特許請求の範囲内にある。幾つかのケースでは、添付の特許請求の範囲に記載の動作を異なる順序で実施して、依然として所望の結果を実現することができる。さらに、添付図面で示したプロセスは必ずしも所望の結果を実現するために図示した特定の順序、または逐次的な順序を要求しない。特に実装、マルチタスキングおよび並列処理は有利でありうる。
【0087】
諸請求項は、特に断らない限り、説明した順序または要素に限定されると読むべきではない。添付の特許請求の範囲の趣旨と範囲から逸脱しない、形態および詳細における様々な変更を当業者により行いうることは理解されるべきである。添付の特許請求の範囲とその均等物の趣旨と範囲内に入る全ての実装がクレームされている。