(57)【特許請求の範囲】
【請求項１】
主コンテンツとサードパーティコンテンツを含む情報資源に関して、プロセッサにより、1つまたは複数の規則を含む主コンテンツ検出方針に基づいて、複数のコンテンツ関連の文書オブジェクトモデル(DOM)ノードを識別するステップと、
前記プロセッサにより、1つまたは複数の前記識別されたコンテンツ関連のDOMノードを収容する1つまたは複数のコンテナノードを決定するステップと、
前記コンテナノードの各々について、前記コンテナノードに対応する1つまたは複数の識別子を生成するステップと、
前記生成された識別子の各々について、前記識別子が対応する1つまたは複数のコンテナノードを決定するステップと、
前記生成された識別子から、前記コンテンツ関連のDOMノードを収容するコンテナノードのみに対応する前記生成された識別子のサブセットを識別するステップと、
前記サブセットの各識別子について、前記サブセットの前記識別子に関連付けられた前記コンテナノード内に含まれるテキストデータの測定に基づいてコンテンツ識別スコアを決定するステップであって、前記コンテンツ識別スコアが、前記情報資源の前記主コンテンツを識別するための前記識別子の機能を示す、ステップと、
前記プロセッサにより、前記サブセットの各識別子の前記コンテンツ識別スコアに基づいて前記主コンテンツを識別するために前記サブセットの前記識別子のうちの1つを安定識別子として選択するステップであって、前記主コンテンツを識別することが前記情報資源に前記サードパーティコンテンツを挿入するために使用される、ステップと
を含む方法。
【請求項２】
前記複数のコンテンツ関連のDOMノードを収容する前記コンテナノードを決定するステップが、前記複数のコンテンツ関連のDOMノードのうちのあるコンテンツ関連のDOMノードについて、前記コンテナノードによって収容される前記コンテンツ関連のDOMノードに最も近いコンテナノードのうちのあるコンテナノードを決定するステップを含む、請求項1に記載の方法。
【請求項３】
前記コンテンツ関連のDOMノードに最も近いコンテナノードを決定するステップが、ノードがi)タイトルから始まる、または、ii)ノードがポストであることを示すカスケードスタイルシート(CSS:cascading style sheet)クラスのメンバである、および、ノードが
、i)ARTICLEを含むタグ名を有する、または、ii)ノードがDIV、INSもしくはTDを含むタグ名を有しかつ少なくとも1つの安定クラス名を有する、1つまたは複数のコンテナノードを識別するステップを含む、請求項2に記載の方法。
【請求項４】
前記サブセットの前記識別子のうちの1つを前記安定識別子として選択するステップが、タグ名のみを含む前記サブセットの識別子を識別するステップを含む、請求項1に記載の方法。
【請求項５】
前記サブセットの各識別子の前記コンテンツ識別スコアを決定するステップが、前記サブセットの前記識別子に関連付けられた前記コンテナノード内に含まれるパラグラフ中の第1の文字数、および、前記サブセットの前記識別子に関連付けられた前記コンテナノード内に含まれる第2の文字数を決定するステップを含む、請求項1に記載の方法。
【請求項６】
前記サブセットの各識別子の前記コンテンツ識別スコアを決定するステップが、前記サブセットの前記識別子に関連付けられた前記コンテナノード内に含まれる第1のパラグラフ数、および、前記情報資源内に含まれる第2のパラグラフ数を決定するステップを含む、請求項1に記載の方法。
【請求項７】
前記サブセットの各識別子の前記コンテンツ識別スコアを決定するステップが、前記サブセットの前記識別子に関連付けられた前記コンテナノード内に含まれるパラグラフ中の第1の文字数、および、前記情報資源内に含まれるすべてのパラグラフ内に含まれる第2の文字数を決定するステップを含む、請求項1に記載の方法。
【請求項８】
前記プロセッサにより、前記情報資源に関する前記安定識別子の識別情報を記憶するステップをさらに含む、請求項1に記載の方法。
【請求項９】
前記情報資源を供給することを求める要求を受信したことに応答して、前記安定識別子に対応する隣接したコンテナノードの間にクリエイティブを挿入するステップをさらに含む、請求項8に記載の方法。
【請求項１０】
主コンテンツとサードパーティコンテンツを含む情報資源に関して、1つまたは複数の規則を含む主コンテンツ検出方針に基づいて、複数のコンテンツ関連の文書オブジェクトモデル(DOM)ノードを識別し、
1つまたは複数の前記識別されたコンテンツ関連のDOMノードを収容する1つまたは複数のコンテナノードを決定し、
前記コンテナノードの各々について、前記コンテナノードに対応する1つまたは複数の識別子を生成し、
前記生成された識別子の各々について、前記識別子が対応する1つまたは複数のコンテナノードを決定し、
前記生成された識別子から、前記コンテンツ関連のDOMノードを収容するコンテナノードのみに対応する前記生成された識別子のサブセットを識別し、
前記サブセットの各識別子について、前記サブセットの前記識別子に関連付けられた前記コンテナノード内に含まれるテキストデータの測定に基づいてコンテンツ識別スコアを決定し、前記コンテンツ識別スコアが、前記情報資源の前記主コンテンツを識別するための前記識別子の機能を示し、
前記サブセットの各識別子の前記コンテンツ識別スコアに基づいて前記主コンテンツを識別するために前記サブセットの前記識別子のうちの1つを安定識別子として選択し、前記主コンテンツを識別することが前記情報資源に前記サードパーティコンテンツを挿入するために使用される
ように構成されたデータ処理システムを備える、システム。
【請求項１１】
前記複数のコンテンツ関連のDOMノードを収容するコンテナノードを決定するために、前記複数のコンテンツ関連のDOMノードのうちの1つのコンテンツ関連のDOMノードについて、前記データ処理システムが、前記コンテナノードによって収容される前記コンテンツ関連のDOMノードに最も近い前記複数のコンテナノードのうちの1つのコンテナノードを決定するように構成される、請求項10に記載のシステム。
【請求項１２】
前記コンテンツ関連のDOMノードに最も近い前記コンテナノードを決定するために、前記データ処理システムが、ノードがi)タイトルから始まる、または、ii)ノードがポストであることを示すカスケードスタイルシート(CSS:cascading style sheet)クラスのメン
バである、および、ノードが、i)ARTICLEを含むタグ名を有する、または、ii)ノードがDIV、INSもしくはTDを含むタグ名を有しかつ少なくとも1つの安定クラス名を有する、1つまたは複数のコンテナノードを識別するように構成される、請求項10に記載のシステム。
【請求項１３】
前記安定クラス名が、数字で終わらない任意のクラス名を含む、請求項12に記載のシステム。
【請求項１４】
前記サブセットの前記識別子のうちの1つを前記安定識別子として選択するために、前記データ処理システムが、タグ名のみを含む複数の潜在的な識別子のうちの1つの識別子を識別するように構成される、請求項10に記載のシステム。
【請求項１５】
前記サブセットの各識別子の前記コンテンツ識別スコアを決定するために、前記データ処理システムが、前記サブセットの前記識別子に関連付けられた前記コンテナノード内に含まれるパラグラフ中の第1の文字数、および、前記サブセットの前記識別子に関連付けられた前記コンテナノード内に含まれる第2の文字数を決定するように構成される、請求項10に記載のシステム。
【請求項１６】
前記データ処理システムが、前記情報資源に関する前記安定識別子の識別情報を記憶するようにさらに構成される、請求項10に記載のシステム。
【請求項１７】
前記データ処理システムが、前記情報資源を供給することを求める要求を受信したことに応答して、前記安定識別子に対応する隣接したコンテナノードの間にクリエイティブを挿入するようにさらに構成される、請求項10に記載のシステム。
【請求項１８】
コンピュータ実行可能な命令を記憶するコンピュータ可読記憶媒体であって、コンピュータによって実行されるとき、前記コンピュータに、
主コンテンツとサードパーティコンテンツを含む情報資源に関して、1つまたは複数の規則を含む主コンテンツ検出方針に基づいて、複数のコンテンツ関連の文書オブジェクトモデル(DOM)ノードを識別させ、
1つまたは複数の前記識別されたコンテンツ関連のDOMノードを収容する1つまたは複数のコンテナノードを決定させ、
前記コンテナノードの各々について、前記コンテナノードに対応する1つまたは複数の識別子を生成させ、
前記生成された識別子の各々について、前記識別子が対応する1つまたは複数のコンテナノードを決定させ、
前記生成された識別子から、前記コンテンツ関連のDOMノードを収容するコンテナノードのみに対応する前記生成された識別子のサブセットを識別させ、
前記サブセットの各識別子について、前記サブセットの前記識別子に関連付けられた前記コンテナノード内に含まれるテキストデータの測定に基づいてコンテンツ識別スコアを決定させ、前記コンテンツ識別スコアが、前記情報資源の前記主コンテンツを識別するための前記識別子の機能を示し、
前記サブセットの各識別子の前記コンテンツ識別スコアに基づいて前記主コンテンツを識別するために前記サブセットの前記識別子のうちの1つを安定識別子として選択させ、前記主コンテンツを識別することが前記情報資源に前記サードパーティコンテンツを挿入するために使用される
コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、2014年4月16日出願の「METHODS AND SYSTEMS FOR GENERATING A STABLE IDENTIFIER FOR NODES LIKELY INCLUDING PRIMARY CONTENT WITHIN AN INFORMATION RESOURCE」という名称の米国特許出願第14/254,349号の利益および優先権を主張し、その開示全体を参照により本明細書に組み込む。
【背景技術】
【０００２】
ウェブページなど情報資源は、主コンテンツ、および、クリエイティブなど、サードパーティのコンテンツ項目用のプレースホルダとして働くコンテンツスロットを含むことができる。ウェブページがユーザのコンピューティング装置にレンダリングされると、サードパーティのコンテンツ項目がコンテンツスロットに挿入され、主コンテンツと共にディスプレイ用に提供される。サードパーティのコンテンツ項目が挿入されるコンテンツスロットは通常、ウェブページコードを使用して手動で定義される。
【発明の概要】
【課題を解決するための手段】
【０００３】
少なくとも1つの態様が、情報資源の主コンテンツをおそらくは含むノード用の安定識別子を生成する方法に向けられている。プロセッサは、情報資源に関して、1つまたは複数の規則を含む主コンテンツ検出方針に基づいて、複数のコンテンツ関連の文書オブジェクトモデル(DOM:Document Object Model)ノードを識別する。プロセッサは、1つまたは複数の識別されたコンテンツ関連のDOMノードを収容する1つまたは複数のコンテナノードを決定する。プロセッサは、コンテナノードの各々について、コンテナノードに対応する1つまたは複数の識別子を生成する。次いで、プロセッサは、生成された識別子の各々について、識別子が対応する1つまたは複数のコンテナノードを決定する。プロセッサは、生成された識別子から、コンテンツ関連のDOMノードを収容するコンテナノードのみに対応する生成された識別子のサブセットを識別し、サブセットの識別子のうちの1つを安定識別子として選択する。
【０００４】
いくつかの実装形態において、プロセッサは、複数のコンテンツ関連のDOMノードのうちの1つのコンテンツ関連のDOMノードについて、コンテナノードによって収容された、コンテンツ関連のDOMノードに最も近い、複数のコンテナノードのうちの1つのコンテナノードを決定する。いくつかの実装形態において、プロセッサは、ノードがi)タイトルから始まる、または、ii)ノードがポストであることを示すカスケードスタイルシート(CSS:cascading style sheet)クラスのメンバである、および、ノードが、i)ARTICLEを含むタグ名を有する、または、ii)ノードがDIV、INSもしくはTDを含むタグ名を有しかつ少なくとも1つの安定クラス名を有する、1つまたは複数のコンテナノードを識別することによって、コンテンツ関連のDOMノードに最も近いコンテナノードを決定する。いくつかの実装形態において、安定クラス名は、数字で終わらない任意のクラス名を含む。
【０００５】
いくつかの実装形態において、サブセットの識別子のうちの1つを安定識別子として選択することは、1つのタグ名のみを含むサブセットの識別子を識別することを含む。いくつかの実装形態において、サブセットの識別子のうちの1つを安定識別子として選択することは、サブセットの各識別子について、コンテンツ識別スコアを決定することを含み、このコンテンツ識別スコアは、コンテナノードのいくつかのコンテンツに基づいて、情報資源に関する主コンテンツを識別する識別子の機能を示し、このコンテナノードについて、サブセットの識別子のコンテンツ識別スコアに基づいて、サブセットの識別子が関連付けられ、サブセットの識別子のうちの1つを安定識別子として選択する。
【０００６】
いくつかの実装形態において、サブセットの各識別子のコンテンツ識別スコアを決定することは、サブセットの識別子に関連付けられたコンテナノード内に含まれるパラグラフ中の第1の文字数、および、サブセットの識別子に関連付けられたコンテナノード内に含まれる第2の文字数を決定することを含む。いくつかの実装形態において、サブセットの各識別子のコンテンツ識別スコアを決定することは、サブセットの識別子に関連付けられたコンテナノード内に含まれる第1のパラグラフ数、および、情報資源内に含まれる第2のパラグラフ数を決定することを含む。いくつかの実装形態において、サブセットの各識別子のコンテンツ識別スコアを決定することは、サブセットの識別子に関連付けられたコンテナノード内に含まれるパラグラフ中の第1の文字数、および、情報資源内に含まれるすべてのパラグラフ内に含まれる第2の文字数を決定することを含む。
【０００７】
いくつかの実装形態において、プロセッサは、情報資源に関する安定識別子の識別情報を記憶する。いくつかの実装形態において、プロセッサは、情報資源を供給する要求を受け取ったことに応答して、安定識別子に対応する隣接するコンテナノードの間にクリエイティブを挿入する。
【０００８】
いくつかの実装形態において、プロセッサは、生成された識別子から、コンテンツ関連のDOMノードを収容するコンテナノードのみに対応する生成された識別子のサブセットを決定することができ、サブセットの識別子のうちの1つを安定識別子として選択する。
【０００９】
別の態様によれば、情報資源の主コンテンツをおそらくは含むノード用の安定識別子を生成するためのシステムは、情報資源に関して、1つまたは複数の規則を含む主コンテンツ検出方針に基づいて、複数のコンテンツ関連の文書オブジェクトモデル(DOM)ノードを識別し、1つまたは複数の識別されたコンテンツ関連のDOMノードを収容する1つまたは複数のコンテナノードを決定し、コンテナノードの各々について、コンテナノードに対応する1つまたは複数の識別子を生成し、生成された識別子の各々について、識別子が対応する1つまたは複数のコンテナノードを決定し、生成された識別子から、コンテンツ関連のDOMノードを収容するコンテナノードのみに対応する生成された識別子のサブセットを識別し、サブセットの識別子のうちの1つを安定識別子として選択するように構成されたデータ処理システムを含む。
【００１０】
いくつかの実装形態において、プロセッサは、複数のコンテンツ関連のDOMノードのうちの1つのコンテンツ関連のDOMノードについて、コンテナノードによって収容された、コンテンツ関連のDOMノードに最も近い、複数のコンテナノードのうちの1つのコンテナノードを決定する。いくつかの実装形態において、プロセッサは、ノードがi)タイトルから始まる、または、ii)ノードがポストであることを示すカスケードスタイルシート(CSS)クラスのメンバである、および、ノードが、i)ARTICLEを含むタグ名を有する、または、ii)ノードがDIV、INSもしくはTDを含むタグ名を有しかつ少なくとも1つの安定クラス名を有する、1つまたは複数のコンテナノードを識別することによって、コンテンツ関連のDOMノードに最も近いコンテナノードを決定する。いくつかの実装形態において、安定クラス名は、数字で終わらない任意のクラス名を含む。
【００１１】
いくつかの実装形態において、サブセットの識別子のうちの1つを安定識別子として選択することは、タグ名のみを含むサブセットの識別子のうちの1つの識別子を識別することを含む。いくつかの実装形態において、サブセットの識別子のうちの1つを安定識別子として選択することは、サブセットの各識別子について、コンテンツ識別スコアを決定することを含み、このコンテンツ識別スコアは、コンテナノードのいくつかのコンテンツに基づいて、情報資源に関する主コンテンツを識別する識別子の機能を示し、このコンテナノードについて、サブセットの識別子のコンテンツ識別スコアに基づいて、サブセットの識別子が関連付けられ、サブセットの識別子のうちの1つを安定識別子として選択する。
【００１２】
いくつかの実装形態において、サブセットの各識別子のコンテンツ識別スコアを決定することは、サブセットの識別子に関連付けられたコンテナノード内に含まれるパラグラフ中の第1の文字数、および、サブセットの識別子に関連付けられたコンテナノード内に含まれる第2の文字数を決定することを含む。いくつかの実装形態において、サブセットの各識別子のコンテンツ識別スコアを決定することは、サブセットの識別子に関連付けられたコンテナノード内に含まれる第1のパラグラフ数、および、情報資源内に含まれる第2のパラグラフ数を決定することを含む。いくつかの実装形態において、サブセットの各識別子のコンテンツ識別スコアを決定することは、サブセットの識別子に関連付けられたコンテナノード内に含まれるパラグラフ中の第1の文字数、および、情報資源内に含まれるすべてのパラグラフ内に含まれる第2の文字数を決定することを含む。
【００１３】
いくつかの実装形態において、プロセッサは、情報資源に関する安定識別子の識別情報を記憶する。いくつかの実装形態において、プロセッサは、情報資源を供給する要求を受け取ったことに応答して、安定識別子に対応する隣接するコンテナノードの間にクリエイティブを挿入する。
【００１４】
いくつかの実装形態において、プロセッサは、生成された識別子から、コンテンツ関連のDOMノードを収容するコンテナノードのみに対応する生成された識別子のサブセットを決定することができ、サブセットの識別子のうちの1つを安定識別子として選択する。
【００１５】
別の態様によれば、コンピュータ可読記憶媒体はコンピュータ実行可能命令を有し、コンピュータによってこの命令が実行されると、コンピュータに、情報資源に関して、1つまたは複数の規則を含む主コンテンツ検出方針に基づいて、複数のコンテンツ関連の文書オブジェクトモデル(DOM)ノードを識別させ、1つまたは複数の識別されたコンテンツ関連のDOMノードを収容する1つまたは複数のコンテナノードを決定させ、コンテナノードの各々について、コンテナノードに対応する1つまたは複数の識別子を生成させ、生成された識別子の各々について、識別子が対応する1つまたは複数のコンテナノードを決定させ、生成された識別子から、コンテンツ関連のDOMノードを収容するコンテナノードのみに対応する生成された識別子のサブセットを識別させ、サブセットの識別子のうちの1つを安定識別子として選択させる。
【００１６】
上記その他の態様および実装形態は、以下で詳細に論じる。前述の情報、および、以下の詳細な説明は、様々な態様および実装形態の説明的な例を含み、かつ、特許請求された態様および実装形態の性質および特徴を理解するための概観または枠組みを提供する。図面は、様々な態様および実装形態の実例、および、さらなる理解を提供し、本明細書の一部に組み込まれ、かつ、その一部を構成する。
【００１７】
添付の図面は、一定の比率に縮小して描こうとしたものではない。様々な図面中の同一の参照番号および記号は、同一の要素を示す。説明を明瞭にするために、各図面において、すべてのコンポーネントに符号が振られているわけではない。
【図面の簡単な説明】
【００１８】
【図１】例示の実装形態による、情報資源内で検出された主コンテンツ用の安定識別子を自動的に生成する環境の一実装形態を示すブロック図である。
【図２Ａ】複数のポストを含む情報資源のディスプレイのスクリーンショットである。
【図２Ｂ】図2Aに示す情報資源のディスプレイであるが、複数のポストの間に挿入された複数のクリエイティブを含むディスプレイのスクリーンショットである。
【図３Ａ】複数のパラグラフを含む記事を含む情報資源のディスプレイのスクリーンショットである。
【図３Ｂ】図3Aに示す情報資源のディスプレイであるが、複数のパラグラフの間に挿入されたクリエイティブを含むディスプレイのスクリーンショットである。
【図４】情報資源内で検出された主コンテンツ用の安定識別子を生成するために取られるステップの一実装形態を示す流れ図である。
【図５】本明細書において説明され、例示されるシステム、および、方法の様々な要素を実装するために使用され得る、コンピュータシステムの一般的なアーキテクチャの一実装形態を示すブロック図である。
【発明を実施するための形態】
【００１９】
下記は、情報資源内で検出される主コンテンツ用の安定識別子を自動的に生成する方法、装置、およびシステムに関する様々な概念、および、実装形態のより詳細な説明である。先に紹介され以下でより詳細に論じる様々な概念は、すでに説明された概念が、実装形態の何らかの特定の方法に限定されないのと同様に、多くの方法のうちの任意の方法で実装され得る。特定の実装形態および適用の例は、主として説明のために提供される。
【００２０】
本開示は、情報資源内で検出される主コンテンツ用の安定識別子を生成することに関する。情報資源内のポストまたは記事といった主コンテンツを検出することによって、データ処理システムは、検出された主コンテンツ用の安定識別子を生成することができる。安定識別子は、情報資源の将来のレンダリングに関する主コンテンツを参照するために使用し得る。たとえば、データ処理システムが、情報資源中に含まれる主コンテンツ用の安定識別子を生成すると、情報資源がコンピューティング装置にレンダリングされるとき、データ処理システムは、情報資源中にクリエイティブを動的に挿入することができる。
【００２１】
情報資源は、非常に複雑なことが多い。たとえば、多くの情報資源は、多数の画像およびテキストの明確な部分を含む。情報資源は、メニュー、ヘッダ、補足情報、フッター、広告、ウィジェット、ならびに、実際の主コンテンツと考えられ得るものを含むことができる。情報資源を見るユーザは、情報資源のこれらの異なる部分を容易に識別し、主コンテンツに注目することができるが、情報資源中に含まれる主コンテンツを自動的に検出するプロセスは、はるかに困難である。
【００２２】
ウェブページなど、情報資源に関する主コンテンツは、しばしば2つの形式のうちの1つで表現され得る。1つの形式において、主コンテンツは、ポストのリストとして表現され得る。各ポストは、ある主題についての自身の明確なコンテンツであるが、同時にポストはウェブページの主コンテンツを構成する。反対に、別の形式では、主コンテンツは、単一の長い形式のポストまたは記事として表現され得る。
【００２３】
情報資源に関する主コンテンツが識別されると、主コンテンツは一般に、安定識別子に関連付けられたコンテナ中に収容され得る。本開示は、情報資源の検出された主コンテンツ用の安定識別子を自動的に生成するための方法およびシステムを提供する。生成された安定識別子は、クリエイティブ、または、情報資源に関するサードパーティのコンテンツ項目に役立つように、コンテンツスロットを挿入するために使用可能である。
【００２４】
本開示は、これらの主コンテンツを自動的に検出するための方法およびシステムを提供する。コンテンツがその中でポストのリストとして提示される第1の形式に関して、各ポストは1つの明らかなコンテンツとして識別することができる。逆に、コンテンツがその中で1つのポストまたは記事として提示される第2の形式に関して、主コンテンツのすべては、1つのコンテンツとして検出されなければならない。
【００２５】
主コンテンツの検出に加えて、本開示は、検出された主コンテンツ用の安定識別子を生成するための方法およびシステムを提供する。たとえば、共に主コンテンツを形成する各ポストは、HTMLソース中で<ARTICLE class='post'>タグにくるまれてよく、その結果、安定識別子は、{tagName: 'ARTICLE', className: 'post'}となるであろう。コンテンツが別の実例と同様に、その中で1つのポストまたは記事として提示される第2の形式を使用すると、ポストまたは記事は、<DIV class='story-body'>タグにくるまれてよく、その結果、安定識別子は、{tagName: 'DIV', className: 'story-body'}となるであろう。
【００２６】
これらの識別子により、ページがブラウザ中にレンダリングされると、ウェブページ上のポストまたは記事は、JavaScript（登録商標）により極めて迅速かつ効果的にアクセスされる。これにより、クリエイティブがページの主コンテンツ内に動的に挿入される。一実例において、ウェブページがポストのリストとして主コンテンツを提示するとき、クリエイティブは、各ポストの第1のパラグラフの後に挿入され得る。別の実例において、ウェブページが1つのコンテンツとして主コンテンツを提示するとき、クリエイティブは、記事の最初の3つのパラグラフの後に挿入され得る。
【００２７】
本開示は、情報資源のコンテンツ部用の安定識別子を生成するための方法およびシステムに関する。プロセッサは、情報資源に関して、主コンテンツをおそらくは含む複数のコンテンツ関連の文書オブジェクトモデル(DOM)ノードをそのノードと関連付けられた識別子に基づいて識別し、1つまたは複数の識別されたコンテンツ関連のDOMノードを収容する1つまたは複数のコンテナノードを決定し、コンテナノードの各々について、コンテナノードに対応する1つまたは複数の識別子を生成し、生成された識別子から、コンテンツ関連のDOMノードを収容するコンテナノードのみに対応する1つまたは複数の潜在的な識別子を決定し、安定識別子として潜在的な識別子のうちの1つを選択するように構成され得る。
【００２８】
図1は、ネットワーク105など、少なくとも1つのコンピュータネットワークを介して、情報資源内で検出された主コンテンツ用の安定識別子を生成するためのシステム100を示す。ネットワーク105は、インターネット、地域ネットワーク、広域ネットワーク、都市圏もしくは他の区域ネットワーク、イントラネット、衛星ネットワークなどのコンピュータネットワーク、音声またはデータ携帯電話通信ネットワークなど他のコンピュータネットワーク、およびこれらの組合せを含むことができる。システム100はまた、プロセッサを有しネットワーク105を介して、たとえば、少なくとも1つのコンテンツプロバイダコンピューティング装置115、少なくとも1つのコンテンツ発行者コンピューティング装置120、または、少なくとも1つのエンドユーザコンピューティング装置125と通信を行うコンピューティング装置またはサーバなど、たとえば少なくとも1つの論理装置である少なくとも1つのデータ処理システム110を含むことができる。
【００２９】
データ処理システム110は、少なくとも1つのサーバを含むことができる。たとえば、データ処理システム110は、少なくとも1つのデータセンタまたはサーバファームに配置された複数のサーバを含むことができる。いくつかの実装形態において、データ処理システム110は、たとえば、広告サーバまたは広告配置システムといったコンテンツ配置システムを含む。データ処理システム110は、少なくとも1つの主コンテンツ検出モジュール130、少なくとも1つの安定識別子生成モジュール132、少なくとも1つのコンテンツ挿入モジュール134、および、少なくとも1つのデータベース140を含むことができる。主コンテンツ検出モジュール130、安定識別子生成モジュール132、および、コンテンツ挿入モジュール134はそれぞれ、ネットワーク105を介して、データベース140および他のコンピューティング装置(たとえば、コンテンツプロバイダコンピューティング装置115、コンテンツ発行者コンピューティング装置120、または、エンドユーザコンピューティング装置125)と通信を行うように構成された、少なくとも1つの処理ユニット、サーバ、仮想サーバ、回路、エンジン、エージェント、器具、または、プログラム可能な論理アレイなどの他の論理デバイスを含むことができる。
【００３０】
主コンテンツ検出モジュール130、安定識別子生成モジュール132、および、コンテンツ挿入モジュール134は、少なくとも1つのコンピュータプログラムまたは少なくとも1つのスクリプトを含む、または、実行することができる。主コンテンツ検出モジュール130、安定識別子生成モジュール132、および、コンテンツ挿入モジュール134は、独立したコンポーネント、単一のコンポーネント、またはデータ処理システム110の一部とすることができる。主コンテンツ検出モジュール130、安定識別子生成モジュール132、および、コンテンツ挿入モジュール134は、情報資源に関して、主コンテンツをおそらくは含む複数のコンテンツ関連の文書オブジェクトモデル(DOM)ノードを識別し、1つまたは複数の識別されたコンテンツ関連のDOMノードを収容する1つまたは複数のコンテナノードを決定し、コンテナノードの各々について、コンテナノードに対応する1つまたは複数の識別子を生成し、生成された識別子から、コンテンツ関連のDOMノードを収容するコンテナノードのみに対応する1つまたは複数の潜在的な識別子を決定し、安定識別子としてたとえば潜在的な識別子のうちの1つを選択するための、1つまたは複数のスクリプトを実行するように構成された1つまたは複数のプロセッサなど、ソフトウェアとハードウェアの組合せを含むことができる。
【００３１】
コンテンツプロバイダコンピューティング装置115は、コンテンツプロバイダエンティティによって操作され、エンドユーザコンピューティング装置125において、情報源に関するディスプレイ用の広告などのコンテンツ項目を提供するために、サーバまたはコンピューティング装置を含むことができる。コンテンツプロバイダコンピューティング装置115によって提供されたコンテンツは、1次コンテンツ、たとえば、コンテンツ発行者コンピューティング装置120によって提供されるコンテンツを含むウェブサイト、または、ウェブページなどの情報源に関するディスプレイ用のサードパーティのコンテンツ項目、またはクリエイティブ(たとえば、広告)を含むことができる。コンテンツ項目はまた、検索結果のウェブページ上に表示され得る。たとえば、コンテンツプロバイダコンピューティング装置115は、ウェブページの1次コンテンツが企業によって提供される企業のウェブページなどのコンテンツウェブページのコンテンツスロット内に表示するために、または、検索エンジンによって提供される検索結果のランディングページに表示するために、広告または他のコンテンツ項目のソースを提供することができ、またはソースとなることができる。コンテンツプロバイダコンピューティング装置115に関連付けられたコンテンツ項目は、スマートフォン、または、他のエンドユーザコンピューティング装置125上でアプリケーションの実行の一部として表示されるコンテンツなど、ウェブページ以外の情報源上に表示され得る。
【００３２】
コンテンツ発行者コンピューティング装置120は、コンテンツ発行者エンティティによって操作され、ディスプレイ用にネットワーク105を介して1次コンテンツを提供するサーバ、または、他のコンピューティング装置を含むことができる。たとえば、コンテンツ発行者コンピューティング装置120は、ウェブページに表示するための1次コンテンツを提供する、ウェブページオペレータを含むことができる。1次コンテンツは、コンテンツ発行者コンピューティング装置120によって提供される以外のコンテンツを含むことができ、ウェブページは、コンテンツプロバイダコンピューティング装置115からサードパーティのコンテンツ項目(たとえば、広告)を表示するよう構成された、コンテンツスロットを含むことができる。たとえば、コンテンツ発行者コンピューティング装置120は、企業のウェブサイトを操作することができ、ウェブサイトのウェブページで表示するためのその企業に関するコンテンツを提供することができる。ウェブページは、コンテンツプロバイダコンピューティング装置115の広告などサードパーティのコンテンツ項目を表示するよう構成された、コンテンツスロットを含むことができる。いくつかの実装形態において、コンテンツ発行者コンピューティング装置120は、ウェブサイトの検索エンジンを操作する検索エンジンオペレータの検索エンジンコンピューティング装置(たとえば、サーバ)を含む。ウェブページの検索エンジンの1次コンテンツ(たとえば、結果または着地ウェブページ)は、検索結果、ならびに、コンテンツプロバイダコンピューティング装置115からのコンテンツ項目などコンテンツスロットに表示されたサードパーティのコンテンツ項目を含むことができる。
【００３３】
エンドユーザコンピューティング装置125は、ネットワーク105を介して、コンテンツ発行者コンピューティング装置120によって提供されたコンテンツ(たとえば、1次ウェブページコンテンツまたは他の情報源)、および、コンテンツプロバイダコンピューティング装置115によって提供されたコンテンツ(たとえば、ウェブページのコンテンツスロットに表示するよう構成された広告などサードパーティのコンテンツ項目)などのデータを表示するために通信するように構成されたコンピューティング装置を含むことができる。エンドユーザコンピューティング装置125、コンテンツプロバイダコンピューティング装置115、および、コンテンツ発行者コンピューティング装置120は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、携帯情報端末、モバイルデバイス、エンドユーザコンピューティング装置、消費者コンピューティング装置、サーバ、クライアント、および他のコンピューティング装置を含むことができる。エンドユーザコンピューティング装置125、コンテンツプロバイダコンピューティング装置115、および、コンテンツ発行者コンピューティング装置120は、マイクロフォン、スピーカ、タッチスクリーン、キーボード、ポインティング装置、コンピュータマウス、タッチパッド、または、他の入力もしくは出力インタフェースなどのユーザインタフェースを含むことができる。
【００３４】
コンテンツプロバイダコンピューティング装置115、コンテンツ発行者コンピューティング装置120、および、エンドユーザコンピューティング装置125は、たとえば、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、スマートフォン、デジタルビデオレコーダ、テレビジョン用のセットトップボックス、ビデオゲームコンソール、または、ネットワーク105を介して通信するように構成された任意の他のコンピューティング装置などの任意の数の異なるユーザ電子装置とすることができる。コンテンツプロバイダコンピューティング装置115、コンテンツ発行者コンピューティング装置120、および、エンドユーザコンピューティング装置125は、プロセッサおよびメモリ、すなわち、処理回路を含むことができる。メモリは、プロセッサによって実行されると、本明細書で説明した操作のうちの1つまたは複数をプロセッサに遂行させる機械語命令を記憶している。プロセッサは、マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)等、または、それらの組合せを含むことができる。メモリは、それだけには限らないが、プロセッサにプログラム命令を提供することができる電子式、光学式、磁気式、もしくは、他の任意の方式の記憶装置、または、伝送装置を含むことができる。メモリはさらに、フロッピーディスク、CD-ROM、DVD、磁気ディスク、メモリチップ、ASIC、FPGA、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、電気的消去可能ROM(EEPROM)、消去可能プログラマブルROM(EPROM)、フラッシュメモリ、光媒体、または、プロセッサが命令を読み出すことができる任意の他の適切なメモリを含むことができる。命令は、これだけには限らないが、C、C++、C#、Java（登録商標）、JavaScript、Perl、Python、および、Visual Basicなどの任意の適切なコンピュータプログラミング言語からのコードを含むことができる。
【００３５】
コンテンツプロバイダコンピューティング装置115、コンテンツ発行者コンピューティング装置120、および、エンドユーザコンピューティング装置125はまた、1つまたは複数のユーザインタフェース装置を含むことができる。一般に、ユーザインタフェース装置は、知覚情報(たとえば、ディスプレイ上の視覚化、1つまたは複数のサウンド等)を生成することにより、データをユーザに伝達する、かつ/または、ユーザから受け取った知覚情報を電子信号に変換する任意の電子装置(たとえば、キーボード、マウス、ポインティング装置、タッチスクリーンディスプレイ、マイクロフォン等)を指す。1つまたは複数のユーザインタフェース装置は、様々な実装形態に応じて、コンテンツプロバイダコンピューティング装置115、コンテンツ発行者コンピューティング装置120、および、エンドユーザコンピューティング装置125のハウジングの内部(たとえば、ビルトインディスプレイ、マイクロフォン等)にあっても、または、コンテンツプロバイダコンピューティング装置115、コンテンツ発行者コンピューティング装置120、および、エンドユーザコンピューティング装置125のハウジングの外部(たとえば、ユーザコンピューティング装置115に接続されたモニタ、ユーザコンピューティング装置115に接続されたスピーカ等)にあってもよい。たとえば、コンテンツプロバイダコンピューティング装置115、コンテンツ発行者コンピューティング装置120、および、エンドユーザコンピューティング装置125は、1つまたは複数のコンテンツ源、および/または、ネットワーク105を介してデータ処理システム110から受け取ったウェブページのデータを使用して、ウェブページを視覚的に表示する電子ディスプレイを含むことができる。いくつかの実装形態において、コンテンツ配置を促進するマネージャまたは広告主は、コンテンツプロバイダコンピューティング装置115を介してデータ処理システム110と通信することができる。いくつかの実装形態において、広告主は、コンテンツプロバイダコンピューティング装置115のユーザインタフェース装置上に表示されたユーザインタフェースを介して、データ処理システム110と通信することができる。
【００３６】
主コンテンツ検出モジュール130は、データ処理システム110内の1つまたは複数のサーバの一部とすることができ、または、データ処理システム110内の1つまたは複数のサーバによって実行されるスクリプトを含むことができる。いくつかの実装形態において、主コンテンツ検出モジュール130は、情報資源に関して、主コンテンツをおそらくは含む複数のコンテンツ関連の文書オブジェクトモデル(DOM)ノードを識別するように設計され、構築され、または構成され得る。主コンテンツの実例は、ウェブ発行者が提供したポスト、記事、または他のコンテンツ項目を含むことができる。主コンテンツと考えられ得ないコンテンツの実例には、広告、ウィジェット、または主コンテンツには関連しないリンクを含むことができる。いくつかの実装形態において、主コンテンツ検出モジュール130は、情報資源中に含まれるすべてのコンテンツ関連の文書オブジェクトモデル(DOM)ノードを識別するように構成され得る。いくつかの実装形態において、主コンテンツ検出モジュール130は、情報資源のDOMツリーを検査することによってコンテンツ関連のDOMノードを識別することができる。主コンテンツ検出モジュール130は、情報資源内に含まれる各ノードを識別し、その識別されたノードがコンテンツ関連のDOMノードかどうか決定することができる。
【００３７】
いくつかの実装形態において、主コンテンツ検出モジュール130は、1つまたは複数の規則を含む主コンテンツ検出方針に基づいて、あるDOMノードがコンテンツ関連のDOMノードであることを決定することができる。いくつかの実装形態において、主コンテンツ検出モジュール130は、あるノードが有効なリンクノードではなく、1つまたは複数の有効なテキストノードであり、所定の文字数以上を収容し、そのノードの先祖がパラグラフではなく、かつ、ノードのレンダリングされた高さが、パラグラフのテキストの行の2倍の高さよりも高いもしくは等しいか、または、DOMツリー中の前の有効なテキストノードがタイトルであるかのどちらかの場合に、そのノードがコンテンツ関連のDOMノードであると決定することができる。いくつかの実装形態において、主コンテンツ検出モジュール130は、あるノードが、ポストもしくは記事に対応するコンテンツ、または、情報資源の発行者が主コンテンツであると考えている任意の他のコンテンツを含む場合、そのノードがコンテンツ関連のDOMノードであると決定することができる。いくつかの実装形態において、あるノードが可視のテキストを収容するテキストノードである場合、そのノードは有効なテキストノードであると定義され得る。いくつかの実装形態において、ノードのすべての子が、インラインノードであり、ノードの子のうちの少なくとも1つの子が有効なテキストノードである場合、そのノードは有効なテキストノードであると定義され得る。いくつかの実装形態において、あるノードが、Aタグなどのアンカータグの子孫である有効なテキストノードである場合、そのノードは有効なリンクノードとして定義され得る。いくつかの実装形態において、あるノードが少なくとも1つの子を有し、ノードの子のすべてが有効なリンクである場合、そのノードは有効なリンクノードとして定義され得る。いくつかの実装形態において、あるノードが有効なテキストノードであり、ノードまたはノードの子孫がH1、H2、H3、H4、H5またはH6タグなどのヘッダタグである場合、そのノードはタイトルとして定義され得る。いくつかの実装形態において、あるノードがタイトルの場合、そのノードはタイトルと共に開始すると考えることができる。いくつかの実装形態において、あるノードがパラグラフではなく、ノードのサブツリーを横切るときパラグラフに出会う前にタイトルに出会う場合、そのノードはタイトルと共に開始すると考えることができる。
【００３８】
主コンテンツ検出モジュール130は、各コンテンツ関連のDOMノードについて、1つまたは複数の識別されたコンテンツ関連のDOMノードを収容する1つまたは複数のコンテナノードを決定するように構成され得る。いくつかの実装形態において、DOMツリーのノードは、そのノードが2つの基準を満たす場合、コンテナノードとして識別され得る。第1の基準は、ノードがARTICLEのタグタイプを有するか、DIV、INSまたはTDのタグタイプを有するかのどちらかであり、かつ、ノードが少なくとも1つの安定的なクラス名を有することである。いくつかの実装形態において、クラス名はそれが数字で終わらない場合、安定的であると考えられ得る。いくつかの実装形態において、クラス名は次の正規表現、/^.*[09]+$/に一致しない場合、安定的であると考えられる。第2の基準は、ノードがタイトルから始まるか、ノードがポストであることを示すカスケードスタイルシート(CSS)クラスのメンバであるかのどちらかである。ノードがポストであることを示すCSSクラスタイプの実例は、「ポスト」または「タイプポスト」を含むことができる。
【００３９】
いくつかの実装形態において、主コンテンツ検出モジュール130は、識別された各コンテンツ関連のDOMノードについて、そのコンテンツ関連のDOMノードに最も近いコンテナノードを決定することができる。いくつかの実装形態において、所与のコンテンツ関連のDOMノードに最も近いコンテナノードは、コンテンツ関連のDOMノードを収容するコンテナノードとすることができるが、コンテンツ関連のDOMノードも収容する他のコンテナノードはコンテナノードとすることができない。いくつかの実装形態において、所与のコンテンツ関連のDOMノードに最も近いコンテナノードは、コンテンツ関連のDOMノードを収容するコンテナノードとすることができ、他のコンテナノードではない。いくつかの実装形態において、主コンテンツ検出モジュール130は、各識別されたコンテンツ関連のDOMノードのレコード、および、識別されたコンテンツ関連のDOMノードを収容した最も近いコンテナノードの識別情報を記憶することができる。
【００４０】
いくつかの実装形態において、主コンテンツ検出モジュール130は、1つまたは複数の識別されたコンテンツ関連のDOMノードを収容するように決定された各コンテナノードについて、任意の相当するコンテナノードを決定することができる。いくつかの実装形態において、ノードの子孫のうちの1つの子孫が正確にコンテナノードであり、DOMノードが、子孫のコンテナノードと正確に同一の1組の有効なテキストノードを収容し、かつ、あるノードがコンテナノードであると決定するための2つの基準をそのノードが満たす場合、そのノードはコンテナ先祖ノードと同等であると考えることができる。
【００４１】
いくつかの実装形態において、主コンテンツ検出モジュール130は、コンテナノードのリストを保守することができる。主コンテンツ検出モジュール130は、リストの各コンテンツ関連のDOMノード用に決定された各コンテナノードを含むことができる。いくつかの実装形態において、主コンテンツ検出モジュール130はまた、各コンテナノード用に決定された相当する各コンテナ先祖ノードを含むことができる。いくつかの実装形態において、主コンテンツ検出モジュール130は、コンテナノードのリストが、決定された各コンテナノード、および、決定されたコンテナノードに対応する任意の相当するコンテナ先祖ノードを含むように、そのリストから任意の重複したノードを除去することができる。
【００４２】
安定識別子生成モジュール132は、データ処理システム110中の1つまたは複数のサーバの一部とすることができ、または、そのサーバによって実行されるスクリプトを含むことができる。いくつかの実装形態において、安定識別子生成モジュール132は、コンテナノードのリストに含まれるコンテナノードの各々について、コンテナノードに対応する1つまたは複数の識別子を生成するように、設計され、構築され、または構成され得る。いくつかの実装形態において、安定識別子生成モジュール132は、リスト中に含まれるコンテナノードの各々について、コンテナノードに対応するすべての識別子を生成するように構成され得る。
【００４３】
いくつかの実装形態において、安定識別子生成モジュール132は、安定識別子生成モジュール132がそのために識別子を生成するコンテナノードに関連付けられたタグのタイプに基づいて、識別子を生成することができる。いくつかの実装形態において、安定識別子生成モジュール132は、コンテナノードに関連付けられたクラス名に基づいて、識別子を生成することができる。いくつかの実装形態において、安定識別子生成モジュール132は、1つまたは複数の規則を含む識別子生成方針に従って、識別子を生成することができる。いくつかの実装形態において、所与のコンテナノード用の識別子を生成するために、安定識別子生成モジュール132は、コンテナノードに関連付けられたタグのタイプ、およびタグに関連付けられたクラス名を識別する。いくつかの実装形態において、安定識別子生成モジュール132は、コンテナノードがARTICLEタグタイプに対応する場合、タグ名のみを有する識別子を生成することができる。いくつかの実装形態において、識別子のタグ名をARTICLEとすることができる。いくつかの実装形態において、安定識別子生成モジュール132は、IDが安定的な場合、タグ名およびIDを有する識別子を生成することができる。安定的なIDは、数字で終わらない任意のIDとすることができる。いくつかの実装形態において、安定識別子生成モジュール132は、コンテナノードがARTICLE以外の任意のタグタイプに対応する場合、タグ名およびクラス名を有する識別子を生成することができる。いくつかの実装形態において、識別子はタグタイプおよび単一の安定クラス名を含むことができる。いくつかの実装形態において、安定クラス名は数字で終わらないクラス名に対応することができる。
【００４４】
いくつかの実装形態において、安定識別子生成モジュール132は、コンテナノードのリスト中に含まれるコンテナノード用に生成される識別子のリストを保守するように構成され得る。いくつかの実装形態において、安定識別子生成モジュール132は、コンテナノード用に生成された識別子のリスト中の任意の重複物を除去することができる。
【００４５】
いくつかの実装形態において、安定識別子生成モジュール132は、選好方針に基づいてコンテナノード用に生成された識別子をソートするように構成され得る。いくつかの実装形態において、選好方針は潜在的な識別子をソートするための1つまたは複数の規則を含むことができる。一般に、安定識別子生成モジュール132によって生成される良い識別子は、安定的であり、主コンテンツをおそらくは含むノードを収容する情報資源に関するすべてのコンテナノードを確実に識別すべきであるが、情報資源中に含まれるどのような他のノードも識別すべきではない。いくつかの実装形態において、安定識別子生成モジュール132は、識別子を好みの順にソートするために、リスト中に含まれる識別子を比較するように構成され得る。
【００４６】
いくつかの実装形態において、選好方針を実行または実装するために、安定識別子生成モジュール132は、2つの識別子のいずれかがタグ名のみを含んでいるかどうか2つ以上の第1の決定を比較することができる。タグ名のみを有する識別子は、タグ名およびIDを有する識別子、または、タグ名およびクラス名を有する識別子よりも選好される。したがって、識別子のうちの1つがタグ名のみを有する場合、その識別子はタグ名のみを有しない識別子よりも高くランク付けされる。安定識別子生成モジュール132が、識別子のうちにはタグ名のみを含むものはないと識別した場合、安定識別子生成モジュール132は、2つの識別子のいずれかがタグ名およびIDを含んでいるかどうか決定する。タグ名およびIDを有する識別子は、IDを含まずにタグ名を有する識別子よりも選好される。したがって、識別子のうちの1つがタグ名およびIDを有する場合、その識別子はIDを有しない識別子よりも高くランク付けされる。安定識別子生成モジュール132が、識別子のうちにはタグ名およびIDを含むものはないと識別した場合、安定識別子生成モジュール132は、2つの識別子のいずれかがタグ名およびクラス名を含んでいるかどうか決定する。タグ名およびクラス名を有する識別子は、クラス名を含まずにタグ名を有する識別子よりも選好される。したがって、識別子のうちの1つがタグ名およびクラス名を有する場合、その識別子はクラス名を有しない識別子よりも高くランク付けされる。安定識別子生成モジュール132が、識別子のうちの両方がタグ名およびクラス名を含むと識別した場合、安定識別子生成モジュール132は、識別子のうちのどちらがより好まれるクラス名を有しているか決定する。より好ましいクラス名を有する識別子は、より好ましくないクラス名を有する識別子よりも選好される。したがって、識別子のうちの1つがタグ名およびより好ましいクラス名を有する場合、その識別子はより好ましいクラス名を有しない識別子よりも高くランク付けされる。いくつかの実装形態において、クラス名「ポストコンテナ」はクラス名「ポスト」および「タイプポスト」よりも好まれ、クラス名「ポスト」はクラス名「タイプポスト」よりも好まれる。安定識別子生成モジュール132が、識別子のうち好ましいクラス名を有するタグ名を含むものはないと識別した場合、安定識別子生成モジュール132は、より長いクラス名を有する識別子が、より短いクラス名を有する識別子よりも好まれると決定する。したがって、より長いクラス名を有する識別子は、より短いクラス名を有する識別子よりも高くランク付けされる。たとえば、タグ名DIVおよびクラス名「ポスト」を有する識別子は、クラス名「ポスト」は好ましいクラス名であるので、タグタイプDIVおよびクラス名「別のクラス名」を有する識別子よりも選好される。別の実例において、タグ名DIVおよびクラス名「別のクラス名」を有する識別子は、クラス名「別のクラス名」はクラス名「クラス名」よりも長いので、タグタイプDIVおよびクラス名「クラス名」を有する識別子よりも選好される。
【００４７】
安定識別子生成モジュール132は、安定識別子生成モジュール132によって生成された各識別子を、主コンテンツ検出モジュール130によって決定されたコンテナノードと関連付けるように構成され得る。いくつかの実装形態において、安定識別子生成モジュール132は、安定識別子生成モジュール132がそこから識別子を生成することが可能なすべてのコンテナノードに、生成された各識別子をマッピングする地図を作成することができる。いくつかの実装形態において、識別子は作成された地図においてキーとして働くことができる。
【００４８】
いくつかの実装形態において、安定識別子生成モジュール132は、生成された識別子の各々について、識別子が対応する1つまたは複数のコンテナノードを決定するように構成され得る。いくつかの実装形態において、安定識別子生成モジュール132は、各識別子について、識別子によって参照されたすべてのノードを識別するために、情報資源のDOMツリー中を検索するように構成され得る。識別子に対応する識別された各ノードについて、安定識別子生成モジュール132は、識別されたノードが、主コンテンツ検出モジュール130によって保守されるコンテナノードのリスト中にあるのか、または、そのノードがコンテナノードとして識別されるための基準を満たしているかを決定することができる。識別されたノードが、コンテナノードのリスト上に存在しない、または、コンテナノードとして識別されるための基準を満たしていないとの決定に応答して、安定識別子生成モジュール132は、その識別子を安定識別子としては無視し、識別子のリストからそれを除去することができる。逆に、識別されたノードが、コンテナノードのリスト上に存在するか、または、コンテナノードとして識別されるための基準を満たしているとの決定に応答して、安定識別子生成モジュール132は、その識別子についてのコンテンツ識別スコアを決定することができる。コンテンツ識別スコアは、識別子がいかによく情報資源上のポスト、記事または他の主コンテンツを識別するかを示すことができる。いくつかの実装形態において、コンテンツ識別スコアは、主コンテンツを識別するための識別子の能力を示すことができる。
【００４９】
いくつかの実装形態において、安定識別子生成モジュール132は、識別子が関連付けられるコンテナノードのいくつかのコンテンツに基づいて、コンテンツ識別スコアを決定するように構成され得る。いくつかの実装形態において、安定識別子生成モジュール132は、識別子と関連付けられたコンテナノードに収容される、主コンテンツをおそらくは含むノード中の第1の文字数、および、識別子と関連付けられたコンテナノード内に含まれる第2の文字数に基づいて、各識別子のコンテンツ識別スコアを決定することができる。いくつかの実装形態において、安定識別子生成モジュール132は、識別子と関連付けられたコンテナノードに収容される、主コンテンツをおそらくは含む第1のノード数、および、情報資源内に含まれる第2のパラグラフ数に基づいて、各識別子のコンテンツ識別スコアを決定することができる。いくつかの実装形態において、安定識別子生成モジュール132は、識別子と関連付けられたコンテナノードに収容される、主コンテンツをおそらくは含むノード中の第1の文字数、および、情報資源内に含まれる、主コンテンツをおそらくは含むすべてのノード内に含まれる第2の文字数に基づいて、各識別子のコンテンツ識別スコアを決定することができる。
【００５０】
いくつかの実装形態において、安定識別子生成モジュール132は、下記の式に基づいてコンテンツ識別スコアを決定するように構成され得る。
【００５１】
【数１】
0006438494.tif 000002
【００５２】
上式で
CPARAは、潜在的な識別子と関連付けられたコンテナノード中に収容される、主コンテンツをおそらくは含むノード中の文字数である。
CTOTALは、潜在的な識別子と関連付けられたコンテナノード中の合計の文字数である。
PCONTAINEDは、潜在的な識別子と関連付けられたコンテナノード中に収容される、主コンテンツをおそらくは含むノードの数である。
PTOTALは、情報資源上の主コンテンツをおそらくは含むノードの合計数である。
DCONTAINEDは、潜在的な識別子と関連付けられたコンテナノード中に収容される、主コンテンツをおそらくは含むノード中に収容される文字数である。
DTOTALは、情報資源上の主コンテンツをおそらくは含むすべてのノード中に収容される文字数である。
K1は、調節可能なパラメータである(たとえば、0.5)、および
K2は、調節可能なパラメータである(たとえば、1)。
【００５３】
安定識別子生成モジュール132は、最大のコンテンツ識別スコアを有する識別子を識別するように構成され得る。安定識別子生成モジュール132は、次いで、主コンテンツをおそらくは含むノードを収容するコンテナノードを識別するための安定識別子として、複数の生成された識別子から識別子を選択することができる。
【００５４】
いくつかの実装形態において、安定識別子生成モジュール132は、情報資源を用いて識別された潜在的な識別子を記憶するように構成され得る。いくつかの実装形態において、識別された潜在的な識別子は、主コンテンツを含む各コンテナノードと関連付けられ得る。このようにして、情報資源が後でレンダリングするためにアクセスされるとき、主コンテンツを含むコンテナノードを識別する識別子が、主コンテンツを含むコンテナノードを容易に識別するために使用され得る。いくつかの実装形態において、主コンテンツをおそらくは含むノードの近傍にクリエイティブが挿入され、その結果、クリエイティブのコンバージョン率を向上させることができる。
【００５５】
コンテンツ挿入モジュール134は、データ処理システム110中の1つまたは複数のサーバの一部とすることができ、または、それによって実行されるスクリプトを含むことができる。いくつかの実装形態において、コンテンツ挿入モジュール134は、主コンテンツをおそらくは含むノードを収容する隣接するコンテナノード間に、クリエイティブを挿入するように設計され、構築され、または構成され得る。いくつかの実装形態において、コンテンツ挿入モジュール134は、安定識別子生成モジュール132によって選択される安定識別子を使用して、コンテナノードを識別することができる。いくつかの実装形態において、コンテンツ挿入モジュール134は、情報資源へのアクセスを要求し、生成された安定識別子を識別し、かつ、生成された安定識別子と関連付けられたコンテナノードを識別することができる。コンテンツ挿入モジュール134は、次いで、これらのコンテナノードに隣接する、または近傍のクリエイティブを挿入することができる。主コンテンツの近くに表示されたクリエイティブは、より高いコンバージョン率を有する傾向にあるので、コンテンツ挿入モジュール134は、情報資源に挿入されたクリエイティブのコンバージョン率を向上させることができる。
【００５６】
ここで簡単に図2Aおよび図2Bを参照すると、図2Aは、ブラウザウィンドウ内に表示された情報資源202のスクリーンショット200を示す。情報資源202は主コンテンツおよびサードパーティコンテンツ220a〜nを含む。主コンテンツは複数のポスト210a〜nを含み、各ポストは関連する画像、表題、および対応するテキストを有する。図1に記載の安定識別子生成モジュール132は、安定識別子を情報資源202のDOMツリーと関連付け、複数のポスト210a〜nのそれぞれを収容するコンテナノードを識別するように構成され得る。コンテンツ挿入モジュール134は、クリエイティブを複数のポスト210a〜nの間に挿入するために、情報資源202と関連付けられた安定識別子を使用するように構成され得る。図2Bは、複数のポスト210a〜nの間にクリエイティブ230a〜nを含む図2Aに示された情報資源のスクリーンショットを示す。
【００５７】
いくつかの実装形態において、コンテンツ挿入モジュール134は、情報資源がコンピューティング装置上で実行するブラウザ上にレンダリングされるとき、クリエイティブが情報資源の隣接するポスト間に挿入された状態で、情報資源がレンダリングされるように、情報資源のDOMツリー中のスクリプトまたは他のソフトウェア構成体を含むように構成され得る。いくつかの実装形態において、ブラウザは、安定識別子に対応するコンテナノードを識別し、クリエイティブスロットを挿入し、クリエイティブスロットに挿入するためにクリエイティブを取り出せるようにさせるために、スクリプトまたはソフトウェア構成体を実行することができる。いくつかの実装形態において、コンテンツ挿入モジュール134は、クリエイティブが、隣接するポスト間または近傍の1つまたは複数のポストに配置されたスロットに表示されるように、情報資源をブラウザ上にレンダリングさせるように構成され得る。
【００５８】
ここで簡単に図3Aおよび図3Bを参照すると、図3Aは、ブラウザウィンドウ内に表示された情報資源302のスクリーンショット300を示す。情報資源302は主コンテンツおよびサードパーティコンテンツ320a〜nを含む。主コンテンツは、関連する画像、表題、および複数パラグラフ312a〜312nの対応するテキストを有する記事310を含む。図1に記載の安定識別子生成モジュール132は、安定識別子を情報資源302のDOMツリーと関連付け、複数のパラグラフ312a〜nのそれぞれを収容するコンテナノードを識別するように構成され得る。コンテンツ挿入モジュール134は、クリエイティブを複数のパラグラフ312a〜nの間、またはそれに隣接して挿入するために、情報資源302と関連付けられた安定識別子を使用するように構成され得る。図3Bは、パラグラフ312a〜nのうちの2つのパラグラフの間にクリエイティブ330を含む図3Aに示された情報資源のスクリーンショットを示す。
【００５９】
いくつかの実装形態において、コンテンツ挿入モジュール134は、情報資源がコンピューティング装置上で実行するブラウザ上にレンダリングされるとき、クリエイティブが情報資源の記事の隣接するパラグラフ間に挿入された状態で、情報資源がレンダリングされるように、情報資源のDOMツリー中のスクリプトまたは他のソフトウェア構成体を含むように構成され得る。いくつかの実装形態において、ブラウザは、安定識別子に対応するコンテナノードを識別し、クリエイティブスロットを挿入し、クリエイティブスロットに挿入するためにクリエイティブを取り出せるようにさせるために、スクリプトまたはソフトウェア構成体を実行することができる。いくつかの実装形態において、コンテンツ挿入モジュール134は、クリエイティブが、隣接するパラグラフ間または近傍の1つまたは複数のパラグラフに配置されたスロットに表示されるように、情報資源をブラウザ上にレンダリングさせるように構成され得る。
【００６０】
データ処理システム110はまた、データベース140など、1つまたは複数のデータストアを含むことができる。データベースは、データ処理システム110に含まれ得る。いくつかの実装形態において、データベースは、データ処理システムから離して配置され得るが、データ処理システムからアクセス可能である。データベースは、多彩なコンテンツを記憶することができる。たとえば、データベースは、1つまたは複数の情報資源のDOMツリー、コンテナノードのリスト、コンテナノードと関連付けられた識別子のリスト、識別子をコンテナノードと関連付けた地図、潜在的な識別子のコンテンツ識別スコア、ならびに、とりわけ、情報資源のコンテナノードを識別するために選択された安定識別子の識別情報を記憶することができる。データ処理システム110は、本明細書で説明した一部またはすべての特徴、ならびに他の追加の特徴を提供するために、1つまたは複数の追加モジュールを含むことができることを理解すべきである。
【００６１】
図4は、クリエイティブのランディングページについて機能拡大部をレンダリングするために取られるステップの一実装形態を示すフロー図である。特に、図4は、開示された情報資源の主コンテンツをおそらくは含むノード用の安定識別子を生成するための方法400を描写した流れ図を示す。情報資源に関して、プロセッサは、主コンテンツをおそらくは含む複数のコンテンツ関連の文書オブジェクトモデル(DOM)ノードを識別する(ブロック405)。プロセッサは、1つまたは複数の識別されたコンテンツ関連のDOMノードを収容する1つまたは複数のコンテナノードを決定する(ブロック410)。コンテナノードの各々について、プロセッサは、コンテナノードに対応する1つまたは複数の識別子を生成する(ブロック415)。生成された識別子の各々について、プロセッサは、識別子が対応する1つまたは複数のコンテナノードを決定する(ブロック420)。プロセッサは、次いで、生成された識別子から、コンテンツ関連のDOMノードを収容するコンテナノードのみに対応する識別子のサブセットを決定する(ブロック425)。プロセッサは、次いで、サブセットの識別子のうちの1つの識別子を安定識別子として選択する(ブロック430)。
【００６２】
さらに詳細には、プロセッサは、情報資源に関して、主コンテンツをおそらくは含む複数のコンテンツ関連の文書オブジェクトモデル(DOM)ノードを識別することができる(ブロック405)。主コンテンツの実例は、ウェブ発行者が提供したポスト、記事、または他のコンテンツ項目を含むことができる。いくつかの実装形態において、プロセッサは、情報資源のDOMツリーを検査し、情報資源に含まれるすべてのコンテンツ関連の文書オブジェクトモデル(DOM)ノードを識別することができる。いくつかの実装形態において、プロセッサは、情報資源内含まれる各ノードを識別し、識別されたノードがコンテンツ関連のDOMノードであるかどうかを決定する。いくつかの実装形態において、プロセッサは、タグに対するDOMツリーを検査することによって、ノードを識別することができる。ノードに関連付けられたタグは、ノードのタイプを示すことができる。
【００６３】
いくつかの実装形態において、プロセッサは、1つまたは複数の規則を含む主コンテンツ検出方針に基づいて、あるノードがコンテンツ関連のDOMノードであることを決定することができる。いくつかの実装形態において、プロセッサは、あるノードが有効なリンクノードではなく、1つまたは複数の有効なテキストノードであり、所定の文字数以上を収容し、そのノードの先祖がパラグラフではなく、かつ、ノードのレンダリングされた高さがパラグラフのテキストの行の2倍の高さよりも高いもしくは等しいか、または、DOMツリー中の前の有効なテキストノードがタイトルであるかのどちらかの場合に、そのノードがコンテンツ関連のDOMノードであると決定することができる。
【００６４】
プロセッサは、1つまたは複数の識別されたコンテンツ関連のDOMノードを収容する1つまたは複数のコンテナノードを決定することができる(ブロック410)。いくつかの実装形態において、プロセッサは、各コンテンツ関連のDOMノードについて、1つまたは複数の識別されたコンテンツ関連のDOMノードを収容する1つまたは複数のコンテナノードを決定することができる。いくつかの実装形態において、DOMツリーのあるノードは、そのノードが2つの基準を満たす場合、コンテナノードとして識別することができる。第1の基準は、ノードがARTICLEに対応するか、DIV、INSまたはTDのうちの1つに対応するかのどちらかであり、かつ、ノードが少なくとも1つの安定的なクラス名を有する。いくつかの実装形態において、クラス名はそれが数字で終わらない場合、安定的であると考えられ得る。いくつかの実装形態において、クラス名は次の正規表現、/^.*[09]+$/に一致しない場合、安定的であると考えられる。第2の基準は、ノードがタイトルから始まるか、ノードがポストなどの主コンテンツを含むことを示すカスケードスタイルシート(CSS)クラスのメンバであるかのどちらかである。ノードがポストであることを示すCSSクラスタイプの実例は、「ポスト」または「タイプポスト」を含むことができる。
【００６５】
いくつかの実装形態において、プロセッサは、識別された各コンテンツ関連のDOMノードについて、そのコンテンツ関連のDOMノードに最も近いコンテナノードを決定することができる。いくつかの実装形態において、所与のコンテンツ関連のDOMノードに最も近いコンテナノードは、コンテンツ関連のDOMノードを収容するコンテナノードとすることができるが、コンテンツ関連のDOMノードも収容する他のコンテナノードはコンテナノードとすることができない。いくつかの実装形態において、プロセッサは、識別されたコンテンツ関連の各DOMノードのレコード、および、識別されたコンテンツ関連のDOMノードを収容した最も近いコンテナノードの識別情報を記憶することができる。
【００６６】
いくつかの実装形態において、プロセッサは、1つまたは複数の識別されたコンテンツ関連のDOMノードを収容するように決定された各コンテナノードについて、任意の相当するコンテナノードを決定することができる。いくつかの実装形態において、ノードの子孫のうちの1つの子孫が正確にコンテナノードであり、DOMノードが、子孫のコンテナノードと正確に同一の1組の有効なテキストノードを収容し、かつ、あるノードがコンテナノードであると決定する2つの基準をそのノードが満たす場合、そのノードはコンテナ先祖ノードと同等であると考えることができる。
【００６７】
いくつかの実装形態において、プロセッサは、コンテナノードのリストを保守することができる。主コンテンツ検出モジュールは、リスト中のコンテンツ関連の各DOMノードについて決定された各コンテナノードを含むことができる。いくつかの実装形態において、プロセッサはまた、各コンテナノードについて決定された相当する各コンテナ先祖ノードを含むことができる。いくつかの実装形態において、プロセッサは、コンテナノードのリストが、決定された各コンテナノード、および、決定されたコンテナノードに対応する任意の相当するコンテナ先祖ノードを含むように、そのリストから任意の重複したノードを除去することができる。
【００６８】
コンテナノードの各々について、プロセッサは、コンテナノードに対応する1つまたは複数の識別子を生成することができる(ブロック415)。いくつかの実装形態において、プロセッサは、コンテナノードのリスト中に含まれたコンテナノードの各々について、そのコンテナノードに対応する1つまたは複数の識別子を生成することができる。いくつかの実装形態において、安定識別子生成モジュールは、リストに含まれるコンテナノードの各々について、コンテナノードに対応するすべての識別子を生成するように構成され得る。
【００６９】
いくつかの実装形態において、プロセッサは、プロセッサがそのために識別子を生成するコンテナノードに関連付けられたタグに基づいて、識別子を生成することができる。いくつかの実装形態において、プロセッサは、コンテナノードに関連付けられたクラス名に基づいて、識別子を生成することができる。いくつかの実装形態において、プロセッサは、1つまたは複数の規則を含む識別子生成方針に従って、識別子を生成することができる。いくつかの実装形態において、所与のコンテナノード用の識別子を識別子生成方針に従って生成するために、プロセッサは、コンテナノードに関連付けられたタグのタイプ、およびタグに関連付けられたクラス名を識別する。いくつかの実装形態において、プロセッサは、コンテナノードがARTICLEタグタイプに対応する場合、タグ名のみを有する識別子を生成することができる。いくつかの実装形態において、識別子のタグ名をARTICLEとすることができる。いくつかの実装形態において、プロセッサは、IDが安定的な場合、タグ名およびIDを有する識別子を生成することができる。安定的なIDは、数字で終わらない任意のIDとすることができる。いくつかの実装形態において、プロセッサは、コンテナノードがARTICLE以外の任意のタグタイプに対応する場合、タグ名およびクラス名を有する識別子を生成することができる。いくつかの実装形態において、識別子はタグタイプおよび単一の安定クラス名を含むことができる。いくつかの実装形態において、安定クラス名は数字で終わらないクラス名に対応することができる。
【００７０】
いくつかの実装形態において、プロセッサは、コンテナノードのリスト中に含まれるコンテナノード用に生成される識別子のリストを保守することができる。いくつかの実装形態において、プロセッサは、コンテナノード用に生成された識別子のリスト中の任意の重複物を除去することができる。いくつかの実装形態において、プロセッサは、選好方針に基づいてコンテナノード用に生成された識別子をソートすることができる。いくつかの実装形態において、選好方針は潜在的な識別子をソートするための1つまたは複数の規則を含むことができる。
【００７１】
いくつかの実装形態において、プロセッサは、識別子リストの複数の生成された識別子を、最も高い順番から最も低い順番に整列させることができる。プロセッサは、2つ以上の識別子を同時に比較することができ、どの識別子が最も選好されるか決定することができる。いくつかの実装形態において、プロセッサは、最初に、2つの識別子のうちのどちらがタグ名のみを含むか決定することができる。タグ名のみを有する識別子は、タグ名およびIDを有する識別子、または、タグ名およびクラス名を有する識別子よりも選好される。したがって、識別子のうちの1つがタグ名のみを有する場合、その識別子はタグ名のみを有しない識別子よりも高くランク付けされる。プロセッサが、比較される識別子のうちにはタグ名のみを含むものはないと判断した場合、プロセッサは、2つの識別子のいずれかがタグ名およびIDを含んでいるかどうか決定することができる。タグ名およびIDを有する識別子は、IDを含まずにタグ名を有する識別子よりも選好される。したがって、識別子のうちの1つがタグ名およびIDを有する場合、その識別子はIDを有しない識別子よりも高くランク付けされる。プロセッサが、識別子のうちタグ名およびIDを含む識別子はないと判断した場合、プロセッサは、2つの識別子のうちのどちらがタグ名およびクラス名を含んでいるか決定する。タグ名およびクラス名を有する識別子は、クラス名を含まずにタグ名を有する識別子よりも選好される。したがって、識別子のうちの1つがタグ名およびクラス名を有する場合、プロセッサはその識別子を、クラス名を有しない識別子よりも高くランク付けする。プロセッサが、識別子のうちの両方がタグ名およびクラス名を含むと識別した場合、プロセッサは、識別子のうちのどちらがより好まれるクラス名を有しているか決定することができる。より好ましいクラス名を有する識別子は、より好ましくないクラス名を有する識別子よりも選好される。したがって、識別子のうちの1つがタグ名およびより好ましいクラス名を有する場合、プロセッサは、その識別子をより好ましいクラス名を有しない識別子よりも高くランク付けする。いくつかの実装形態において、クラス名「ポストコンテナ」はクラス名「ポスト」および「タイプポスト」よりも好まれ、クラス名「ポスト」はクラス名「タイプポスト」よりも好まれる。プロセッサが、識別子のうち好ましいクラス名を有するタグ名を含むものはないと識別した場合、プロセッサは、より長いクラス名を有する識別子が、より短いクラス名を有する識別子よりも選好されると決定することができる。したがって、より長いクラス名を有する識別子は、より短いクラス名を有する識別子よりも高くランク付けされる。
【００７２】
生成された識別子の各々について、プロセッサは、識別子が対応する1つまたは複数のコンテナノードを決定する(ブロック420)。いくつかの実装形態において、プロセッサは、コンテンツ関連のDOMノードを収容するコンテナノードのみに対応する識別子のサブセットを決定するために、プロセッサによって生成された各識別子をコンテナノードに関連付けることができる。いくつかの実装形態において、プロセッサは、プロセッサがそこからおそらくは識別子を生成することができたすべてのコンテナノードに、生成された各識別子をマッピングすることができる。これは、複数のコンテナノードが、同じタグタイプまたはIDまたはクラス名を有する可能性があるためであり、この結果、コンテナノードが、同一の識別子を生成する同じタグタイプまたはIDまたはクラス名を有するようになる。いくつかの実装形態において、識別子は、各コンテナノードに識別子をマッピングするように作成された地図においてキーとして働くことができる。いくつかの実装形態において、プロセッサは、各識別子について、識別子によって参照することができるすべてのノードを識別するために、情報資源のDOMツリー中を検索することができる。
【００７３】
プロセッサは、生成された識別子から、コンテンツ関連のDOMノードを収容するコンテナノードのみに対応する識別子のサブセットを決定することができる(ブロック425)。いくつかの実装形態において、プロセッサは、各識別子について、識別子によって参照することができるすべてのノードを識別するために、情報資源のDOMツリー内を検索することができる。いくつかの実装形態において、識別子によって参照することができるノードは、プロセッサにノードの特性に基づいて識別子を生成させる特性(たとえば、タグタイプ、ID、クラス名)を有するノードを含む。識別子に対応する識別された各ノードについて、プロセッサは、識別されたノードがプロセッサによって保守されたコンテナノードのリスト中のものか、ノードがコンテナノードとして識別されるための基準を満たしているかを決定することができる。識別されたノードが、コンテナノードのリスト中には存在しない、または、コンテナノードとして識別されるための基準を満たしていないとの決定に応答して、プロセッサは、その識別子を安定識別子としては無視し、それを識別子のリストから除去することができる。逆に、識別されたノードが、コンテナノードのリスト中に存在する、または、コンテナノードとして識別されるための基準を満たしているとの決定に応答して、プロセッサは、その識別子を潜在的な安定識別子として包含し、したがって、その識別子のためのコンテンツ識別スコアを決定することができる。コンテンツ識別スコアは、識別子がいかによく情報資源上のポスト、記事または他の主コンテンツを識別するかを示すことができる。
【００７４】
プロセッサは、サブセットの識別子のうちの1つの識別子を安定識別子として選択することができる(ブロック430)。いくつかの実装形態において、プロセッサは、潜在的な識別子の各々について、コンテンツ識別スコアを決定することができる。いくつかの実装形態において、プロセッサは、識別子が関連付けられるコンテナノードのいくつかのコンテンツに基づいて、コンテンツ識別スコアを決定することができる。いくつかの実装形態において、プロセッサは、識別子に関連付けられたコンテナノードに収容された、主コンテンツ(たとえば、パラグラフノード)をおそらくは含むノード中の第1の文字数と、識別子に関連付けられたコンテナノード内に含まれた第2の文字数とに基づいて、各識別子のコンテンツ識別スコアを決定することができる。いくつかの実装形態において、プロセッサは、識別子に関連付けられたコンテナノードに収容された、主コンテンツをおそらくは含む第1のノード数と、情報資源内含まれた第2のパラグラフ数とに基づいて、各識別子のコンテンツ識別スコアを決定することができる。いくつかの実装形態において、プロセッサは、識別子に関連付けられたコンテナノードに収容された、主コンテンツをおそらくは含むノード中の第1の文字数と、情報資源内に含まれた主コンテンツをおそらくは含むすべてのノード内に含まれる第2の文字数とに基づいて、各識別子のコンテンツ識別スコアを決定することができる。
【００７５】
プロセッサは、最大のコンテンツ識別スコアを有する識別子を識別することができる。プロセッサは、次いで、主コンテンツをおそらくは含むノードを収容するコンテナノードを識別するための安定識別子として、最も高いコンテンツ識別スコアを有する識別子を選択することができる。いくつかの実装形態において、プロセッサは、情報資源に関する安定識別子の識別情報を記憶することができる。このようにして、プロセッサは、安定識別子を使用して、主コンテンツをおそらくは含むポストまたは記事またはノードを識別し、これにより、主コンテンツをおそらくは含むポストまたは記事またはノードに対応するコンテナノードを識別することができる。いくつかの実装形態において、プロセッサは、情報資源を供給することを求める要求を受信したことに応答して、安定識別子に対応する隣接したコンテナノードの間にクリエイティブを挿入する。
【００７６】
下記は情報資源のあるDOMツリーの一部の一実装形態である。以下に示すように一部のノードには、これに続いてノードのタイプを示す注釈が付いている。容易に参照できるように、注釈は//で始まる。
<div id='postOne' class='content-entry'>//先祖コンテナノード
<div class='left-align'>//コンテナノード
<h2>Post 1 Title</h2>
<p>Paragraph 1... blaa blaa blaa... end.</p>//主コンテンツをおそらくは収容するDOMノード
<p>Paragraph 2... blaa blaa blaa... end.</p>//主コンテンツをおそらくは収容するDOMノード
</div>
</div>
<div id='postTwo' class='content-entry'>//先祖コンテナノード
<div class='left-align'>//コンテナノード
<h2>Post 2 Title</h2>
<p>Paragraph 1... blaa blaa blaa... end.</p>//主コンテンツをおそらくは収容するDOMノード
<p>Paragraph 2... blaa blaa blaa... end.</p>//主コンテンツをおそらくは収容するDOMノード
</div>
</div>
<div id='link-box'class='left-align'>//情報資源に関する他のHTMLノード(ポストではない)
<a href='#'>Link 1</a>
<a href='#'>Link 2</a>
</div>
【００７７】
上記のDOMツリーを使用して、プロセッサは、コンテナノードに基づいて下記の識別子を生成することができる。プロセッサは、コンテナノード用の下記の識別子を生成することができる。
{
tagName: 'DIV',
className: 'left-align'
}
【００７８】
先祖コンテナノードを考慮することにより、プロセッサは、識別子のリストを以下の4つの識別子まで拡大することができる。
{
tagName: 'DIV',
className: 'left-align'
}
{
tagName: 'DIV',
id: 'postOne'
}
{
tagName: 'DIV',
id: 'postTwo'
}
{
tagName: 'DIV',
className: 'content-entry'
}
【００７９】
プロセッサは、次いで、{tagName: 'DIV', className: 'left-align'}識別子を廃棄するであろう。というのは、その識別子が、主コンテンツをおそらくは収容するノードを収容しないコンテナノードであるためである。特に、その{tagName: 'DIV', className: 'left-align'}識別子は以下のコンテナを参照する。
<div id='link-box'class='left-align'>
<a href='#'>Link 1</a>
<a href='#'>Link 2</a>
</div>
【００８０】
プロセッサは、次いで、選好順序に従って残りの3つの識別子を整列させ、{tagName: 'DIV',className: 'content-entry'}識別子を安定識別子として選択する。というのはこの識別子が最も高いスコアを有するためである。
【００８１】
図5は、いくつかの実装形態による、本明細書で論じた任意のコンピュータシステム(システム100、ならびに、主コンテンツ検出モジュール130、安定識別子生成モジュール132およびコンテンツ挿入モジュール134などそのコンポーネントを含む)を実装するために使用可能な、例示のコンピュータシステム500の全般的なアーキテクチャを示す。コンピュータシステム500は、ネットワーク105を介してディスプレイに情報を提供するために使用され得る。図5のコンピュータシステム500は、メモリ525と通信可能なように結合された1つまたは複数のプロセッサ520、1つまたは複数の通信インタフェース505、ならびに、1つまたは複数の出力装置510(たとえば、1つまたは複数のディスプレイユニット)および1つまたは複数の入力装置515を含む。プロセッサ520は、データ処理システム110、または、主コンテンツ検出モジュール130、安定識別子生成モジュール132およびコンテンツ挿入モジュール134などシステム100の他のコンポーネントに含まれてもよい。
【００８２】
図5のコンピュータシステム500において、メモリ525は、任意のコンピュータ可読記憶媒体を含むことができ、また、それぞれのシステム用に本明細書で説明した様々な機能を実装するプロセッサが実行可能な命令などのコンピュータ命令と、ならびに、それに関連し、それによって生成され、または、通信インタフェースもしくは入力装置(もしあれば)を介して受け取られた任意のデータとを記憶することができる。再び図1のシステム100を参照すると、データ処理システム110は、1つまたは複数のクリエイティブ、クリエイティブ用に生成された1つまたは複数の情報源、および、クリエイティブと関連付けられたランディングページのコンテンツ対してレンダリングするために生成された、1つまたは複数の機能拡大部に関する情報を記憶するメモリ525を含むことができる。メモリ525は、データベース140を含むことができる。図5に示すプロセッサ520は、メモリ525に記憶された命令を実行するのに使用することができ、それを実行しながら、命令の実行に従って処理され、かつ/または、生成された様々な情報をメモリから読み出し、またはメモリに書き込むことができる。
【００８３】
図5に示すコンピュータシステム500のプロセッサ520はまた、命令の実行に従って、様々な情報を送信し、または受信するために、通信インタフェース505に対して通信可能なように結合し、または、それを制御することができる。たとえば、通信インタフェース505は、有線ネットワークもしくは無線ネットワーク、バス、または、他の通信手段と結合されてもよく、したがって、コンピュータシステム500が、他の装置(たとえば、他のコンピュータシステム)へ情報を送信し、または、そこから情報を受信することができるようにしてもよい。図1のシステムに明確には示されていないが、1つまたは複数の通信インタフェースにより、システム100のコンポーネント間の情報の流れが容易になる。いくつかの実装形態において、通信インタフェースは、アクセスポータルとしてのウェブサイトを少なくともいくつかの態様のコンピュータシステム500に提供するよう(たとえば、様々なハードウェアコンポーネントまたはソフトウェアコンポーネントを介して)構成され得る。通信インタフェース505の例としては、ユーザインタフェース(たとえば、ウェブページ)があり、それを介して、ユーザはデータ処理システム110と通信を行うことができる。
【００８４】
図5に示すコンピュータシステム500の出力装置510は、命令の実行と連携して、たとえば、様々な情報が見られるように、または、別のやり方で把握できるように提供され得る。入力装置515は、命令の実行中に、たとえば、ユーザが、手動で調整する、選択する、データ入力する、または、プロセッサと任意の様々な方法で対話できるように提供され得る。本明細書で論じた様々なシステムで利用可能な、汎用コンピュータシステムのアーキテクチャに関する追加の情報は、本明細書中でさらに提供される。
【００８５】
本明細書で説明した発明主題の実装形態および操作は、デジタル電子回路、または、本明細書で開示した構造体およびその構造的同等物、もしくはそれらのうちの1つまたは複数の組合せを含む、有形媒体、ファームウェア、または、ハードウェアに具体化されたコンピュータソフトウェアに実装され得る。本明細書で説明した発明主題の実装形態は、1つまたは複数のコンピュータプログラム、すなわち、コンピュータ記憶媒体上にエンコードされ、データ処理機器によって実行され、または、その操作を制御するコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。プログラム命令は、人工的に生成された伝搬信号上、たとえば、データ処理機器によって実行される適切な受信機器への送信用に情報をエンコードするために生成される、機械生成の電気的、光学的、または電磁的信号上にエンコードされ得る。コンピュータ記憶媒体は、コンピュータ可読記憶装置、コンピュータ可読記憶基板、ランダムもしくはシリアルアクセスメモリアレイもしくは装置、またはそれらのうちの1つまたは複数の組合せとすることができ、またはそれらに含まれてもよい。さらに、コンピュータ記憶媒体は伝搬信号ではないとはいえ、コンピュータ記憶媒体は、人工的に生成された伝搬信号でエンコードされたコンピュータプログラム命令のソースまたは宛先とすることができる。コンピュータ記憶媒体はまた、1つまたは複数の別個の物理的コンポーネントまたは媒体(たとえば、複数のCD、ディスク、または他の記憶装置)とすることができ、またはそれらに含まれてもよい。
【００８６】
本明細書で開示された機能は、スマートテレビジョンモジュール(または、接続テレビジョンモジュール、ハイブリッドテレビジョンモジュール等)上に実装することが可能であり、このモジュールは、インターネット接続をより伝統的なテレビジョンプログラミングソース(たとえば、ケーブル、衛星、無線、または他の信号を介して受信される)と統合するよう構成される処理モジュールを含むことができる。スマートテレビジョンモジュールは、物理的にテレビジョン中に組み込まれてもよく、または、セットトップボックス、ブルーレイまたは他のデジタルメディアプレーヤ、ゲームコンソール、ホテルテレビジョンシステム、および、他のコンパニオン装置など、別個の装置を含んでもよい。スマートテレビジョンモジュールは、視聴者が、ビデオ、映画、写真、およびウェブ上、ローカルケーブルTVチャンネル上、衛星TVチャンネル上、またはローカルハードドライブ上に記憶した他のコンテンツを検索し、見つけることができるように構成することができる。セットトップボックス(STB)またはセットトップユニット(STU)は、情報アプライアンス装置を含んでもよく、情報アプライアンス装置はチューナを含んでもよく、テレビジョンセットおよび外部の信号源に接続して信号をコンテンツに同調させ、次いで、そのコンテンツがテレビジョン画面または他のディスプレイ装置に表示される。スマートテレビジョンモジュールは、ウェブブラウザ、および複数のストリーミングメディアサービス、接続ケーブルまたは衛星メディアソース、他のウェブ「チャンネル」など、複数の異なるアプリケーション用のアイコンを含む、ホーム画面またはトップレベル画面を提供するよう構成され得る。スマートテレビジョンモジュールは、さらに、電子プログラミングガイドをユーザに提供するよう構成され得る。スマートテレビジョンモジュールに対するコンパニオンアプリケーションは、モバイルコンピューティング装置上で動作可能であり、利用可能なプログラムについての追加情報をユーザに提供し、ユーザがスマートテレビジョンモジュール等を制御できるようにする。代替の実装形態において、機能は、ラップトップコンピュータもしくは他のパーソナルコンピュータ、スマートフォン、他の携帯電話、ハンドヘルドコンピュータ、タブレットPC、または他のコンピューティング装置上に実装することができる。
【００８７】
本明細書で説明した操作は、1つまたは複数のコンピュータ可読記憶装置に記憶されたデータ、または、他の情報源から受け取られたデータに対して、データ処理機器によって遂行される操作として実装され得る。
【００８８】
「データ処理機器」、「データ処理システム」、「ユーザ装置」、または、「コンピューティング装置」という用語は、一例としてプログラム可能なプロセッサ、コンピュータ、システムオンチップ、または、前述の多くのもの、もしくはその組合せを含む、データ処理を行うすべての種類の機器、装置、および機械を包含する。機器は特定用途の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)、またはASIC(特定用途向け集積回路)を含むことができる。機器はまた、ハードウェアに加えて、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、または、それらのうちの1つまたは複数の組合せなど、問題のコンピュータプログラム用の実行環境を作成するコードを含むことができる。機器および実行環境は、ウェブサービス、分散コンピューティング、および、グリッドコンピューティングインフラストラクチャなど、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。主コンテンツ検出モジュール130、安定識別子生成モジュール132およびコンテンツ挿入モジュール134は、1つまたは複数のデータ処理機器、コンピューティング装置、または、プロセッサを含み、または共有することができる。
【００８９】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプトまたはコードとしても知られる)は、コンパイラ型またはインタプリタ型言語、宣言型または手続き型言語を含む任意の形式のプログラミング言語で記述することができ、また、スタンドアロンプログラムまたはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくは、コンピューティング環境で使用するのに適した他のユニットを含む、任意の形式で配布され得る。コンピュータプログラムは、ファイルシステム内のファイルと対応するが、対応しなくてもよい。プログラムは、問題のプログラム専用の単一ファイルで、または複数の協調ファイル(たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの一部を記憶するファイル)で、他のプログラムまたはデータ(たとえば、マークアップ言語書類中に記憶された1つまたは複数のスクリプト)を収容するファイルの一部に記憶され得る。コンピュータプログラムは、1つのサイトに配置され、または、複数のサイトにわたって分散配置され通信ネットワークを介して相互接続された、1つのコンピュータ、または複数のコンピュータ上で実行するよう配布され得る。
【００９０】
本明細書で説明した手順および論理フローは、入力データを操作し、出力を生成することによって、アクションを遂行するための1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能なプロセッサによって遂行され得る。手順および論理フローはまた、たとえば、FPGA(フィールドプログラマブルゲートアレイ)、またはASIC(特定用途向け集積回路)など、特定用途の論理回路によって遂行することができ、機器もまた特定用途の論理回路として実装され得る。
【００９１】
一例として、コンピュータプログラムを実行するのに適したプロセッサは、汎用マイクロプロセッサおよび特定用途のマイクロプロセッサの両方、ならびに、任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。一般に、プロセッサは、読み出し専用メモリもしくはランダムアクセスメモリ、または、その両方から命令およびデータを受け取る。コンピュータの重要な要素は、命令に従ってアクションを遂行するプロセッサ、ならびに、命令およびデータを記憶する1つまたは複数のメモリ装置である。一般に、コンピュータは、たとえば、磁気ディスク、磁気光学ディスク、または光ディスクなどデータを記憶する1つまたは複数の大容量記憶装置も含み、または、そこからデータを受信し、もしくは、そこにデータを送信し、またはその両方を行うようにその大容量記憶装置に動作可能に結合される。しかし、コンピュータはこうした装置を持つ必要はない。さらに、コンピュータは、たとえば、携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)レシーバ、または、たとえば、携帯記憶装置(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)など、別の装置に埋め込むことができる。コンピュータプログラム命令およびデータを記憶するのに適した装置は、一例として、たとえば、EPROM、EEPROM、およびフラッシュメモリ装置など半導体メモリ装置、たとえば、内部ハードディスクまたはリムーバブルディスクなど磁気ディスク、磁気光学ディスク、およびCD-ROMならびにDVD-ROMディスクを含む、あらゆる形式の不揮発性メモリ、媒体、およびメモリ装置を含む。プロセッサおよびメモリは、特定用途の論理回路を付け加えてもよく、またはそれに組み込まれてもよい。
【００９２】
ユーザとの対話を可能にするために、本明細書で説明した発明主題の実装形態は、情報をユーザに表示するための、たとえば、CRT(陰極線管)、プラズマ、またはLCD(液晶ディスプレイ)モニタなどディスプレイ装置、ならびに、ユーザが入力をコンピュータに提供することができるキーボード、および、マウス、またはトラックボールなどポインティング装置を有するコンピュータに実装され得る。他の種類の装置もまた、ユーザとの対話を可能にするために使用され得る。たとえば、ユーザに提供されるフィードバックは、たとえば視覚フィードバック、聴覚フィードバック、または、触覚フィードバックなど、任意の形式の感覚フィードバックとすることができる。また、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む、任意の形式で受信され得る。さらに、コンピュータは、たとえば、ウェブブラウザから受信した要求に応答して、ユーザのクライアント装置上のウェブブラウザにウェブページを送信するなど、ユーザによって使用される装置に書類を送信し、その装置から書類を受信することにより、ユーザと対話することができる。
【００９３】
本明細書で説明した発明主題の実装形態は、たとえばデータサーバとしてのバックエンドコンポーネント、または、たとえばアプリケーションサーバなどミドルウェアコンポーネント、または、たとえばクライアントコンピュータなどフロントエンドコンポーネントを含む、コンピューティングシステムに実装され得る。クライアントコンピュータは、ユーザがそれを介して本明細書で説明した発明主題の実装形態、または1つまたは複数のこうしたバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組合せと対話することができるグラフィカルユーザインタフェースまたはウェブブラウザを有する。システムのコンポーネントは、たとえば通信ネットワークなど任意の形式または媒体のデジタルデータ通信によって相互接続され得る。通信ネットワークの例としては、ローカルエリアネットワーク(「LAN」)、および広域ネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)がある。
【００９４】
システム500またはシステム100などのコンピューティングシステムは、クライアントおよびサーバを含むことができる。たとえば、データ処理システム110は、1つまたは複数のデータセンタまたはサーバファームに、1つまたは複数のサーバを含むことができる。クライアントおよびサーバは、一般には相互に離れており、通常、通信ネットワークを介して対話する。クライアントとサーバの関係は、それぞれのコンピュータ上を走るコンピュータプログラムによって発生し、相互にクライアントサーバ関係を有する。いくつかの実装形態において、サーバはデータ(たとえば、HTMLページ)をクライアント装置(データを表示し、クライアント装置と対話するユーザからユーザ入力を受信する目的で)に送信する。クライアント装置で生成されたデータ(たとえば、ユーザ対話の結果)は、サーバでクライアント装置から受信され得る。
【００９５】
本明細書は、多くの特定の実装形態の詳細を含んでいるが、これらはいかなる発明または特許請求され得る範囲を限定するものと解釈されるべきではなく、むしろ、本明細書で説明したシステムおよび方法の特定の実装形態に特有の機能を説明したものと解釈すべきである。本明細書において、別個の実装形態という文脈で説明した一定の機能も、単一の実装形態中で組み合わせて実装され得る。反対に、単一の実装形態という文脈で説明した様々な機能も、複数の実装形態において別個にまたは任意の適切な副結合で実装され得る。さらに、前で、機能は一定の組合せで役割を果たすと説明され得、最初はそのようなものとして特許請求され得るが、場合によっては、特許請求の組合せから1つまたは複数の機能がその組合せから除外され、その特許請求の組合せは副結合または副結合の変形例の対象になることがある。
【００９６】
同様に、操作は図面中では特定の順序で描写しているが、こうした操作は、図示の特定の順序または連続的な順序で遂行する、または、望ましい結果を得るために図示のすべての操作を遂行する必要があると考えるべきではない。場合によっては、特許請求の範囲で列挙された行動が、異なる順番で遂行され、それでも、望ましい結果が得られることがある。さらに、添付の図面で示した描写した手順は、望ましい結果を得るために、図示の特定の順序、または連続的な順序を必ずしも必要とはしない。
【００９７】
一定の環境において、マルチタスキングおよび並列処理には利点があり得る。さらに、前述の実装形態において、様々なシステムコンポーネントの分離は、すべての実装形態においてこうした分離が必要であるとは考えるべきではなく、説明したプログラムコンポーネントおよびシステムは、単一のソフトウェア製品として共に統合され得、またはパッケージ化されて多重ソフトウェア製品になり得ると考えるべきである。たとえば、主コンテンツ検出モジュール130、安定識別子生成モジュール132およびコンテンツ挿入モジュール134は、データ処理システム110、単一モジュール、1つまたは複数の処理モジュールを有する論理装置、1つまたは複数のサーバ、または検索エンジンの部品の一部をなすことができる。
【００９８】
今まで、いくつかの説明的実装形態および実装形態を説明してきたが、前述したことは、説明的なものであって限定するものではなく、一例として提示されたものであることは明らかである。特に、本明細書で提示した多くの例は、方法行為またはシステム要素の特定の組合せを含んでいるが、こうした行為および要素は、他の方法で結合されて同一の目的を達成することができる。1つの実装形態に関連してのみ論じた、行為、要素、および機能は、他の実装形態または実装形態における同様な役割から除外しようとするものではない。
【００９９】
本明細書で使用される用語および専門用語は、説明を目的としたものであり、限定するものとは考えてはならない。「including」、「comprising」、「having」、「containing」、「involving」、「characterized by」、「characterized in that」、および、本明細書におけるこれらの変形は、その後列挙された項目、その等価物、および追加の項目、ならびに、その後列挙された項目からもっぱらなる代替の実装形態を包含するよう意図している。一実装形態において、本明細書で説明したシステムおよび方法は、説明した要素、行為、またはコンポーネントのうちの、1つ、2つ以上のそれぞれの組合せ、またはすべてからなる。
【０１００】
本明細書において単数形で言及される、システムおよび方法の実装形態または要素または行為に対する任意の参照は、複数のこれらの要素を含む実装形態を含むこともでき、本明細書の任意の実装形態または要素または行為に対する複数形での任意の参照は、単一の要素のみを含む実装形態も含むことができる。単数形または複数形の方式での参照は、単数形または複数形の構成に対する現に開示されているシステムまたは方法、そのコンポーネント、行為、または要素を限定しようとするものではない。任意の情報、行為、または要素に基づく任意の行為または要素に対する参照は、行為または要素が少なくとも部分的に任意の情報、行為、または要素に基づく実装形態を含むことができる。
【０１０１】
本明細書で開示された任意の実装形態は、任意の他の実装形態と結合することが可能であり、「実装形態」、「いくつかの実装形態」、「代替の実装形態」、「様々な実装形態」、「一実装形態」などへの参照は、必ずしも相互に排他的なものではなく、実装形態と関連して説明された特定の機能、構造、または特徴は、少なくとも1つの実装形態に含まれ得るということを示そうとするものである。本明細書で使用されるこうした用語は、必ずしもすべて同一の実装形態に言及するものではない。任意の実装形態は、任意の他の実装形態と本明細書で説明した態様および実装形態に一致した任意の方法で、包括的または排他的に結合することができる。
【０１０２】
「または」という言及は、包括的と解釈することができ、したがって、「または」を使用して説明された任意の用語は、説明された用語のうちの、1つ、2つ以上、またはすべてを指すことができる。
【０１０３】
図面、詳細な説明、または任意の特許請求の範囲中の技術的な特徴に続いて引用符号がある場合は、その引用符号は、図面、詳細な説明、および特許請求の範囲の理解度を増大させる目的のみで含まれている。したがって、引用符号の有無は任意の特許請求要素の範囲を何ら制限する効果を有しない。
【０１０４】
本明細書で説明したシステムおよび方法は、その特徴から逸脱することなく他の特定の方式で具体化され得る。本明細書で提供した例は広告プログラムに関したものであるが、本明細書で説明したシステムおよび方法は、任意の情報資源に適用することができる。前述の実装形態は、説明したシステムおよび方法を限定するものではなく説明的なものである。したがって、本明細書で説明したシステムおよび方法の範囲は、前述の説明よりはむしろ添付の特許請求の範囲によって示され、特許請求の範囲の同等物の趣旨および範囲に発生する変更は、その特許請求の範囲に含まれる。
【符号の説明】
【０１０５】
100  システム
105  ネットワーク
110  データ処理システム
115  コンテンツプロバイダコンピューティング装置
120  コンテンツ発行者コンピューティング装置
125  エンドユーザコンピューティング装置
130  主コンテンツ検出モジュール
132  安定識別子生成モジュール
134  コンテンツ挿入モジュール
140  データベース
200  情報資源
202  スクリーンショット
210a  ポスト
210b  ポスト
210n  ポスト
220a  サードパーティコンテンツ
220b  サードパーティコンテンツ
220n  サードパーティコンテンツ
230a  クリエイティブ
230b  クリエイティブ
230n  クリエイティブ
300  スクリーンショット
302  情報資源
310  記事
312a〜n  パラグラフ
320a〜n  サードパーティコンテンツ
330  クリエイティブ
400  方法
500  コンピュータシステム
505  通信インタフェース
510  出力装置
515  入力装置
520  プロセッサ
525  メモリ
【図１】
0006438494.tif 000003
【図２Ａ】
0006438494.tif 000004
【図２Ｂ】
0006438494.tif 000005
【図３Ａ】
0006438494.tif 000006
【図３Ｂ】
0006438494.tif 000007
【図４】
0006438494.tif 000008
【図５】
0006438494.tif 000009