(57)【特許請求の範囲】
【請求項１】
第１のモジュールによって、第１のモジュール識別子を生成するステップであって、前記第１のモジュールがウェブページ上の広告によってインスタンス化されている、生成するステップと、
前記第１のモジュールによって、コンポーネントをロードするステップと、
前記コンポーネントに前記第１のモジュール識別子を通信するステップと、
第２のモジュール識別子を有する第２のモジュールがロードされたことを判定するステップと、
前記第２のモジュールがロードされたという判定に応答して、前記第１のモジュールによって、前記コンポーネントに前記第２のモジュールと通信するように命令するために、前記コンポーネントに前記第２のモジュール識別子を通信するステップと
を含む、方法。
【請求項２】
前記第１のモジュール識別子が乱数又は疑似乱数である、請求項１に記載の方法。
【請求項３】
前記第１のモジュール又は前記第２のモジュールのうちの少なくとも一方が、メッセージインターフェースにメッセージを投稿することによって前記コンポーネントと通信する、請求項１に記載の方法。
【請求項４】
前記メッセージインターフェースがｐｏｓｔＭｅｓｓａｇｅアプリケーションプログラミングインターフェースを含む、請求項３に記載の方法。
【請求項５】
前記メッセージが、前記第１のモジュール識別子又は前記第２のモジュール識別子のうちの少なくとも一方を含む、請求項３に記載の方法。
【請求項６】
前記第２のモジュールがロードされたことを判定するステップが、前記第２のモジュールからのメッセージについてメッセージインターフェースを監視するステップを含む、請求項１に記載の方法。
【請求項７】
前記メッセージが、前記第２のモジュールがロードされたという告知を含む、請求項６に記載の方法。
【請求項８】
前記第２のモジュールが、メッセージインターフェースを介して前記第１のモジュールに前記第２のモジュール識別子を通信する、請求項１に記載の方法。
【請求項９】
他のモジュールがいつロードされたかを判定するためにリスナをロードするステップをさらに含む、請求項１に記載の方法。
【請求項１０】
他のモジュールが前記コンポーネントをロードしているか否かを判定するステップをさらに含む、請求項１に記載の方法。
【請求項１１】
前記コンポーネントをロードするステップが、他のモジュールが前記コンポーネントをロードしていないという判定に応答して実施される、請求項１０に記載の方法。
【請求項１２】
前記他のモジュールが前記コンポーネントをロードしている場合に、前記コンポーネントにアクセスするために前記他のモジュールと通信するステップをさらに含む、請求項１１に記載の方法。
【請求項１３】
前記コンポーネントがＪａｖａＳｃｒｉｐｔのスクリプトである、請求項１に記載の方法。
【請求項１４】
第１のモジュールと、
前記第１のモジュールがウェブページ上の広告によってインスタンス化された後に、第１のモジュール識別子を生成するための識別情報生成器と、
コンポーネントをロードするためのコンポーネントローダと、
前記コンポーネントに前記第１のモジュール識別子を通信するための通信インターフェースと、
第２のモジュール識別子を有する第２のモジュールがロードされたことを判定し、前記第２のモジュールがロードされたという判定に応答して、前記コンポーネントに前記第２のモジュールと通信するように命令するために、前記コンポーネントに前記第２のモジュール識別子を通信するためのリスナと
を備える、装置。
【請求項１５】
前記第１のモジュール識別子が乱数又は疑似乱数である、請求項１４に記載の装置。
【請求項１６】
前記第１のモジュール又は前記第２のモジュールのうちの少なくとも一方が、メッセージインターフェースにメッセージを投稿することによって前記コンポーネントと通信するようになされた、請求項１４に記載の装置。
【請求項１７】
前記メッセージインターフェースがｐｏｓｔＭｅｓｓａｇｅアプリケーションプログラミングインターフェースを含む、請求項１６に記載の装置。
【請求項１８】
前記メッセージが、前記第１のモジュール識別子又は前記第２のモジュール識別子のうちの少なくとも一方を含む、請求項１６に記載の装置。
【請求項１９】
前記リスナが、前記第２のモジュールからのメッセージについてメッセージインターフェースを監視することによって、前記第２のモジュールがロードされたことを判定するようになされた、請求項１４に記載の装置。
【請求項２０】
命令を記憶する有形コンピュータ可読記憶媒体であって、前記命令が実行されると、機械に少なくとも、
第１のモジュールに対する第１のモジュール識別子を生成するステップであって、前記第１のモジュールがウェブページ上の広告によってインスタンス化されている、生成するステップと、
コンポーネントをロードするステップと、
前記コンポーネントに前記第１のモジュール識別子を通信するステップと、
第２のモジュール識別子を有する第２のモジュールがロードされたことを判定するステップと、
前記第２のモジュールがロードされたという判定に応答して、前記コンポーネントに前記第２のモジュールと通信するように命令するために、前記コンポーネントに前記第２のモジュール識別子を通信するステップと
を行わせる、有形コンピュータ可読記憶媒体。
【発明の詳細な説明】
【開示の分野】
【０００１】
[0001]本開示は、一般にはモジュール実行に関し、より詳細には、モジュールを効率的に実行するための方法及び装置に関する。
【背景】
【０００２】
[0002]近年、ネットワーク配信メディア（たとえば、ウェブページのようなインターネット配信メディア）の使用が増え、それらの複雑度も同様に増大している。そのようなメディアは、メディアのロード及び提示中に実施（たとえば、実行）される複数の動的な要素を含むことが多い。たとえば、メディア（たとえば、ウェブページ上の広告）は、ユーザコンピュータによって、広告の提示に関連付けて調査が提示されるようにするために実行されるモジュール（たとえば、ＪａｖａＳｃｒｉｐｔコード）を備え得る。
【図面の簡単な説明】
【０００３】
【図１】[0003]メディアを提示及び追跡するための、本開示の教示に従って構築されている例示的なシステムのブロック図である。
【図２】[0004]モジュールを備えたメディアを含む例示的なウェブページ素材の図である。
【図３】[0005]図２のモジュールの１つ又は複数を実装するために使用され得る例示的なモジュールのブロック図である。
【図４】[0006]図３のモジュールを実装するために実行され得る例示的な機械可読命令を表す流れ図である。
【図５】[0007]本明細書に開示される例示的な方法及び装置に従って送信され得る例示的なメッセージを表すメッセージ図である。
【図６】本明細書に開示される例示的な方法及び装置に従って送信され得る例示的なメッセージを表すメッセージ図である。
【図７】[0008]図３のメッセージインターフェースを実装するために使用され得る例示的なメッセージインターフェースのブロック図である。
【図８】[0009]図７のメッセージインターフェースを実装するために実行され得る例示的な機械可読命令を表す流れ図である。
【図９】図７のメッセージインターフェースを実装するために実行され得る例示的な機械可読命令を表す流れ図である。
【図１０】図７のメッセージインターフェースを実装するために実行され得る例示的な機械可読命令を表す流れ図である。
【図１１】[0010]メディアを提示及び追跡するための、本開示の教示に従って構築されている例示的なシステムのブロック図である。
【図１２】[0011]図２及び／又は図３の例示的なモジュールを実装するために図４の例示的な機械可読命令を実行することができる例示的な処理システムのブロック図である。
【０００４】
[0012]図面は原寸比例ではない。可能な限り、同じ又は同様の部分を参照するために、図面及び付随する書面の説明全体を通じて同じ参照符号が使用される。
【詳細な説明】
【０００５】
[0013]メディア（たとえば、ウェブページ又はその一部分）は、そのメディアと関連する動作を実行する複数のモジュールと関連付けられ得る。たとえば、第１のモジュールがメディアの提示を追跡し得る、第２のモジュールが調査を提示し得る、などである。別の例において、メディア（たとえば、ウェブページ）は、各々が１つ又は複数のモジュールを含む広告とともに提示される場合がある。加えて、モジュールは、コンポーネント（たとえば、複数のモジュールによって利用される共通の機能のツールボックス）と関連付けられ得る。したがって、複数のモジュールの実行が、重なり合う場合があり（たとえば、複数のモジュールが実質的に同時に実行される場合があり）、単一のコンポーネントの複数のインスタンスを作成するように試行する場合がある。本明細書に開示されるいくつかの方法及び装置は、共存するモジュール間の通信を促進する。付加的に又は代替的に、本明細書に開示されるいくつかの方法及び装置は、複数のモジュールによって利用される単一のコンポーネントの複数のインスタンスが作成されるのを防止するために、モジュールの実行の協調を促進する。メディアは、コンテンツ及び／又は広告を含み得る。コンテンツ及び／又は広告を、本明細書においてはまとめて素材と称する。
【０００６】
[0014]図１は、メディアを提示及び追跡するための例示的なシステム１００のブロック図である。例示的なシステム１００は、メディアプロバイダ１０２と、広告プロバイダ１０４と、データ収集設備１０５と、ユーザコンピュータ１０６とを含む。図解例のシステム１００は、ユーザコンピュータ１０６が、１つ又は複数のネットワークによってメディアプロバイダ１０２、広告プロバイダ１０４、データ収集設備１０５に通信可能に結合されている、インターネットに基づくシステムである。１つ又は複数のネットワーク（又は他のネットワーク）はまた、メディアプロバイダ１０２、広告プロバイダ１０４及びデータ収集設備１０５のいずれかをも通信可能に結合してもよい。システム１００は代替的に、インターネットに基づくシステムでなくてもよく、任意の他の環境において実装されてもよい。
【０００７】
[0015]図解例のメディアプロバイダ１０２は、ウェブページをユーザコンピュータ１０６に供給する１つ又は複数のサーバを含むインターネットメディアプロバイダである。ウェブページは、メディア、広告、又は任意の他の埋め込まれている素材若しくは他の様態で関連付けられている素材を含んでもよい。図解例によれば、広告は、広告プロバイダ１０４によってユーザコンピュータ１０６に提供される。代替的に、広告は、メディアプロバイダを含む任意の他のソースによって提供されてもよい。メディアプロバイダ１０２は、代替的に、たとえば、ファイルサーバ、オーディオ及び／又はビデオプロバイダ、データベースサーバなどのような、任意の他のタイプのメディアプロバイダであってもよい。
【０００８】
[0016]図１の例示的な広告プロバイダ１０４は、メディアプロバイダ１０２によって供給されるウェブページに埋め込まれている広告又は他の様態で当該ウェブページと関連付けられている広告を供給する。たとえば、広告は、自身の製品がメディアプロバイダ１０２によって供給されるウェブページで広告されることを望むエンティティによって、広告プロバイダ１０４に提供されてもよい。広告の提示を計測（たとえば、監視、検証、追跡など）するために、広告プロバイダ１０４は、データ収集設備１０５と協働する。特に、図１の広告プロバイダ１０４は、広告に、計測を実施する１つ又は複数のモジュール１０７を備える（たとえば、広告に、モジュールをリンクさせるか、埋め込むか、又は他の様態で関連付ける）。図解例によれば、広告は、ユーザコンピュータ１０７にデータ収集設備１０５からモジュール１０７を取得させる命令を含む。モジュール１０７は、たとえば、ユーザコンピュータ１０６における調査の提示、広告の提示に関する情報のデータ収集設備１０５への送信、ユーザコンピュータ１０６及び／又はユーザコンピュータ１０６のユーザに関する情報のデータ収集設備への送信などのような任意のタイプの計測を実施してもよい。例示的な広告プロバイダ１０４は、代替的に、モジュールをユーザコンピュータ１０６に供給してもよい。
【０００９】
[0017]図解例のデータ収集設備１０５は、ユーザコンピュータ１０６にモジュール（たとえば、モジュール１０７）を供給し、モジュールによって送信されるデータを受信する。付加的に又は代替的に、データ収集設備１０５は、他のソース（たとえば、広告プロバイダ１０４）からユーザコンピュータ１０６に送信された、モジュールによって送信されるデータを受信してもよい。図解例のデータ収集設備１０５は、報告書を生成するために受信データを利用する。たとえば、データ収集設備１０５は、広告プロバイダ１０４によって供給される広告の提示の数（たとえば、ヒット、訪問、閲覧、感想など）を示す報告書を生成してもよい。データ収集設備１０５によって生成される報告書は、広告プロバイダ１０４に発行、提供される、広告プロバイダ１０４と協働する広告主に提供される、などしてもよい。
【００１０】
[0018]図解例のユーザコンピュータ１０６は、メディアプロバイダ１０２、広告プロバイダ１０４などからの素材を要求、受信、及び提示するウェブブラウザ１０９を実行するパーソナルコンピュータである。代替的に、ユーザコンピュータ１０６は、たとえば、可搬コンピューティングデバイス、デスクトップコンピュータ、ラップトップコンピュータ、携帯電話、ネットワーク接続テレビ、セットトップボックス、Ｂｌｕ−ｒａｙプレーヤなどのような、任意のタイプのコンピューティングデバイスであってもよい。
【００１１】
[0019]図１の図解例は、メディアプロバイダ１０２、広告プロバイダ１０４、データ収集設備１０５、及びユーザコンピュータ１０６の各々のうちの１つを含むが、これらのコンポーネントのいずれか又はすべてのうちの任意の数がシステムに含まれてもよい。たとえば、複数のユーザコンピュータ１０６が複数のメディアプロバイダ１０２からのメディアにアクセスしてもよい。複数の広告プロバイダ１０４が、複数のコンテンツプロバイダ１０２からのコンテンツを有する、提示のための広告を提供してもよい。メディア及び／又は広告と関連付けられるモジュールは、単一のデータ収集設備１０５、単一のエンティティと関連付けられる複数のデータ収集設備１０５、及び／又は複数のエンティティと関連付けられる複数のデータ収集設備１０５にデータを送信してもよい。
【００１２】
[0020]図１のブロック図は、メッセージ１０８〜１２０によって示される例示的なメッセージフローをも含む。例示的なメッセージフローは、ユーザコンピュータ１０６がメディアプロバイダ１０２に要求（たとえば、ハイパーテキスト転送プロトコル（ＨＴＴＰ）ＧＥＴ要求）を送信すると開始する（メッセージ１０８）。メッセージ１０８に応答して、メディアプロバイダ１０２はユーザコンピュータ１０６にメディア（たとえば、ウェブページ）を送信する（メッセージ１１０）。メディアは、ユーザコンピュータ１０６に、広告プロバイダ１０４に別の要求を送信させる（メッセージ１１２）命令（たとえば、ＩＦＲＡＭＥにおける素材をロードするための参照）を含む。たとえば、ユーザコンピュータ１０６は、広告プロバイダ１０４からの１つ又は複数の広告バナーを要求してもよい。メッセージ１１２に応答して、広告プロバイダ１０４はユーザコンピュータ１０６に要求された広告（たとえば、広告バナー）を送信する（メッセージ１１４）。いくつかの例において、広告素材が、ユーザコンピュータ１０６に、データ収集設備１０５に１つ又は複数のモジュール（たとえば、モジュール１０７）（たとえば、調査を表示するためのＪａｖａＳｃｒｉｐｔ）を要求する（メッセージ１１６）命令を備える。これに応答して、データ収集設備１０５は、ユーザコンピュータ１０６に要求されたモジュール１０７を送信する（メッセージ１１８）。ユーザコンピュータ１０６は、たとえば、データ収集設備にデータ（たとえば、調査結果）を送信し返す（メッセージ１２０）モジュール１０７を実行する。
【００１３】
[0021]図１のもの以外のメッセージフローが、本明細書に開示される方法及び装置に利用されてもよい。たとえば、モジュールはメッセージ１１０及び／又はメッセージ１１４において提供される素材に含まれてもよく、それによって、メッセージ１１６及び１１８は送信されない。代替的に、メッセージ１１６が、データ収集設備１０５以外の場所からのモジュールを要求してもよい。代替的に、上記のメッセージの任意の組み合わせが利用されてもよい。
【００１４】
[0022]図１は単一のメッセージフローを示しているが、ユーザコンピュータ１０６及び／又は他のユーザデバイスによって多くのメッセージフローが（たとえば、実質的に同時に）発生し得る。たとえば、本明細書にさらに詳細に説明されるように、メディアプロバイダ１０２によって提供されるメディアは、複数の広告を含んでもよく、及び／又は参照してもよい。各広告が、モジュール（たとえば、複数の異なるモジュール又は同じモジュールの複数のインスタンス）と関連付けられてもよい。それらのモジュールが同じエンティティ（たとえば、メディア計測エンティティ）と関連付けられるとき、それらのモジュールが通信及び／又は協働することが望ましい場合がある。本明細書に開示される例は、１つ又は複数のモジュールを備えた広告を参照しているが、任意の素材（たとえば、メディア、コンテンツなど）が１つ又は複数のモジュールを備えてもよい。たとえば、コンテンツが、コンテンツの提示を計測するための１つ又は複数のモジュールを備えてもよい。
【００１５】
[0023]図２は、複数のモジュール（たとえば、２０６、２０８、２１２、２１４）を備えた広告２０４及び２１０を含む例示的なウェブページ２００の図である。図２の例示的なウェブページは、主要メディア２０２（たとえば、テキスト、画像、ビデオなど）を含む。
【００１６】
[0024]図解例において、広告２０４、２１０の各々が、２つのモジュール２０６、２０８及び２１２、２１４を含む。各例示的なモジュール対２０６、２０８及び２１２、２１４内の第１のモジュール２０６、２１２は、当該モジュールが関連付けられているそれぞれの広告２０４、２１０に関係する調査を生成及び表示する。各例示的なモジュール対２０６、２０８及び２１２、２１４内の第２の例示的なモジュール２１２、２１４は、例示的なモジュール２０６、２１２によって利用され得る機能のツールボックスである。明瞭にするために、他のモジュールによって利用されるモジュール（たとえば、モジュール２１２、２１４）は、本明細書においてはコンポーネントと称される。コンポーネントは、モジュール、ライブラリ、データベース、データストア、又は、モジュールによって利用され得る任意の他の要素であってもよい。たとえば、コンポーネントは、携帯デバイスを計測するのに使用される機能を含む携帯デバイスツールボックス、パーソナルコンピュータを計測するのに使用される機能を含むパーソナルコンピュータツールボックスなどであってもよい。
【００１７】
[0025]いくつかの事例において、モジュール２０６、２１０が互いと通信することが有用であり得る。たとえば、モジュール２０６は、ユーザから人口学的情報を収集し、モジュール２１２が同じ情報を要求する必要がないように、その情報をモジュール２１２に通信することができる。別の例において、モジュール２０６は、図１のデータ収集設備１０５と通信するためのデータ送受信機を実装してもよく、モジュール２１２は、収集されたデータを、データ収集設備１０５に中継するためにモジュール２０６に通信してもよい。付加的に又は代替的に、モジュールが資源の共有を促進するために通信することが有利であり得る。たとえば、モジュール２０６は、ツールボックスのインスタンスをモジュール（コンポーネント）２０８としてロードしてもよく、モジュール２１２がモジュール２０８を利用してモジュール２１４をロードする必要がないように、モジュール２１２と通信してもよい。そのような装置は、複数のモジュールをロード及び／又は実行する必要性を低減するため、ハードウェア資源のより効率的な使用であり得る。
【００１８】
[0026]モジュール２０６の例示的な実装態様が図３に示されている。たとえば、通信、資源共有、及びモジュール間の他の協調を促進するために、図３のブロック図によって示されている例示的なモジュール２０６は、識別情報生成器３０２と、コンポーネントローダ３０４と、通信インターフェース３０６と、リスナ３０８と、コンポーネント可用性検査器３１０とを含む。モジュール２０６は、メッセージインターフェース３２０と通信可能に結合されている。
【００１９】
[0027]図解例の識別情報生成器３０２は、モジュール２０６のインスタンスと関連付けられるべき一意又は半一意のモジュール識別子を生成する。例示的な識別情報生成器３０２は、１０桁の乱数又は疑似乱数をモジュール識別子として生成する。特に、例示的な識別情報生成器３０２は、（たとえば、２つの異なるモジュールが同じ乱数を割り当てられることから実質的に同時に実行するのを回避するために）乱数又は疑似乱数のランダムさを増大させるために、乱数又は疑似乱数生成器を複数回実行させる。乱数を生成するための例示的なアルゴリズムが表１に示されている。例示的なアルゴリズムは、２つのモジュールが（特に、複数のモジュールが実質的に同時に乱数を生成する場合がある事例において）同じ乱数を生成し得る可能性を低減する。乱数及び／又はモジュール識別子を生成するための任意の他のアルゴリズムが、代替的に利用されてもよい。
//２つの乱数を有するタイムスタンプを乗算／除算することによって、スクリプトＩＤを全体を通じてランダム化する（randomize the script id thoroughly by multiplying/dividing thetimestamp with two random numbers）
id = new Date().getTime();
//ＩＤはシードとしてのＪＳタイムスタンプによって開始する。（id starts with a JS timestamp as seed）
var all_nines = ‘9999999999’;
//Mathが１０桁を割る場合、文字列をフィルタリングする（filler string if the Math comes up short of 10 digits）
do { r1 = Math.floor(Math.random() * 500);} while (r1 < 1 || 100 < r1);
//１〜５００についてJSrandom() methodが１〜９９内に戻るまでループする（loop until the JSrandom() method for 1…500 comes back within 1…99）
do { r2 = Math.floor(Math.random() * 500);} while (r2 < 101 || 200 < r2);
//１〜５００についてJSrandom() methodが１０１〜１９９内に戻るまでループする（loop until the JSrandom() method for 1…500 comes back within 1…99）
//ループは一時的なものではないため、これによってr2におけるランダム性が強制的により大きくされる（random()はページライフタイムスタンプシードを使用している）（the loops are not instant, so this forces greater randomness on r2(random() is using a page life timestamp seed)）
id = Math.floor((id * r1) / r2);
//この結果として一般的に１０〜１２桁になる（this typically results in 10-12 digits）
id = id.toString().substring(0,10);       
//トレイリング桁がゼロである場合、タイプが変化した後に１０文字未満になり得る（may be less than 10 chars after the type change if the trailing digitsare zeros）
if (id.length < 10) {
id = id +all_nines.substring(0,10-id.length);
//１０文字になることを保証するために終わりに９を付け加える（add 9s at the end to guarantee 10 chars）
}
表１−例示的なＪａｖａＳｃｒｉｐｔ乱数生成アルゴリズム
【００２０】
[0028]図解例のコンポーネントローダ３０４は、モジュール２０６によって利用されるべきコンポーネント（たとえば、モジュール２０８）をロードする。たとえば、コンポーネントローダ３０４は、モジュール２０６がコンポーネントによってもたらされる機能にアクセスすることができるように、ユーザコンピュータ１０６に、特定のコンポーネントのインスタンスをメモリにロードするよう命令してもよい。コンポーネントローダ３０４は、識別情報生成器３０２によって生成されるモジュール識別子を、コンポーネントに通信する。たとえば、コンポーネントローダ３０４は、コンポーネントをロードするときにコンポーネントにモジュール識別子を渡してもよく、及び／又は、通信インターフェース３０６を介してコンポーネントにモジュール識別子を通信してもよい。下記にさらに詳細に説明されるように、図解例において、モジュール２０６は、複数のモジュールがメッセージの送受信を行うことができるメッセージインターフェース３２０を利用してコンポーネントにメッセージを送信する。したがって、モジュール識別子は、コンポーネントが、モジュール２０６によってコンポーネントに送信されるメッセージを認識することを可能にする。たとえば、コンポーネントは、他のモジュールによって送信されるメッセージを（たとえば、安全、簡潔さなどのために）無視してもよい。
【００２１】
[0029]図３の例示的な通信インターフェース３０６は、モジュール２０６をメッセージインターフェース３２０と通信可能に結合する。図解例によれば、モジュール２０６は、ＨＴＭＬ５のｐｏｓｔＭｅｓｓａｇｅアプリケーションプログラミングインターフェースを使用して他のモジュール／コンポーネントと通信する。代替的に、通信インターフェース３０６は、モジュール２０６を任意の他のメッセージインターフェース３２０と通信可能に結合してもよい。
【００２２】
[0030]図解例におけるリスナ３０８は、他のモジュールからメッセージを受信するために通信インターフェース３０６を介してメッセージインターフェース３２０（たとえば、ｐｏｓｔＭｅｓｓａｇｅインターフェース）を監視する。たとえば、リスナ３０８は、他のモジュール（たとえば、図２のモジュール２１２）がロードされており、他のモジュールと通信し得ることを検出し得る。たとえば、リスナ３０８は、他のモジュールがロードされていることの検出に応答して、他のモジュールにメッセージを送信してもよい。メッセージは、モジュール２０６によってロードされているコンポーネントの他のモジュールに通知し得る。これに応答して、他のモジュールは、コンポーネントのうちの１つ又は複数に対するアクセスを要求し得る。リスナ３０８は、他のモジュールからモジュール識別子を受信し得、コンポーネントに、他のモジュールからのメッセージについてメッセージインターフェース３２０を監視させ、したがって、そのようなメッセージに応答するようにさせるために、要求されたコンポーネントにそのモジュール識別子を送信し得る。付加的に又は代替的に、リスナ３０８は、要求されたモジュールと通信するときに他のモジュールにモジュール２０６のモジュール識別子を利用するよう命令する、モジュール２０６のモジュール識別子を含むメッセージを、通信インターフェース３０６を介してメッセージインターフェース３２０に対して送信してもよい。リスナ３０８は、たとえば、モジュール２０６にデータを通信するメッセージ、モジュール２０６からのデータを要求するメッセージ、などのような任意の他のメッセージについてメッセージインターフェース３２０を監視してもよい。
【００２３】
[0031]他のモジュール（たとえば、モジュール２１２）が、モジュール２０６がアクセスすることになるコンポーネントをすでにロードしているか否かを判定するために、図解例のコンポーネント可用性検査器３１０は、通信インターフェース３０６を介してメッセージインターフェース３２０（たとえば、ｐｏｓｔＭｅｓｓａｇｅインターフェース）を監視する。他のモジュール（たとえば、モジュール２１２）がすでにコンポーネント（たとえば、モジュール２１４）をロードしている場合、コンポーネント可用性検査器３１０は、当該コンポーネント（たとえば、モジュール２１４）に対するアクセスを調整するために、他のモジュール（たとえば、モジュール２１２）と通信する。たとえば、コンポーネント可用性検査器３１０は、識別情報生成器３０２からのモジュール識別子を他のモジュール（たとえば、モジュール２１２）に送信してもよく、当該他のモジュールは、コンポーネント（たとえば、モジュール２１４）に、当該モジュール識別子を含むメッセージについて監視するよう命令する。付加的に又は代替的に、コンポーネント可用性検査器３１０は、他のモジュール（たとえば、モジュール２１２）のモジュール識別子を要求してもよく、通信インターフェース３０６及び／又は調査コントローラ３１２に、他のモジュールによってロードされているコンポーネントと通信するときに、他のモジュール（たとえば、モジュール２１２）のモジュール識別子を利用するよう命令してもよい。他のモジュールのコンポーネントへのアクセスを調整した後、図解例のコンポーネント可用性検査器３１０は、コンポーネントローダ３０４が同じコンポーネントをロードするのを止めるか、又は防止する。したがって、モジュールがコンポーネントの単一のインスタンスへのアクセスを調整することによって、処理サイクル、メッセージ使用などが低減され、それによって、基礎となるプロセッサ、メモリ、及び／又は他のハードウェア資源（たとえば、ユーザコンピュータ１０６のハードウェア資源、データ収集設備１０５のハードウェア資源など）の効率が増大し、それらに対する負荷が低減する。
【００２４】
[0032]図解例の調査コントローラ３１２は、モジュール２０６が関連付けられるメディアとともに提示されるべき調査を生成する。たとえば、モジュール２０６を広告に埋め込むか又は他の様態で取り付けることによって、広告はモジュールを備えることができる。調査コントローラ３１２は、識別情報生成器３０２によって生成される当該調査コントローラのモジュールのモジュール識別子を含むメッセージを、通信インターフェース３０６を介してメッセージインターフェース３２０（たとえば、ｐｏｓｔＭｅｓｓａｇｅインターフェース）に送信することによって、他のモジュール／コンポーネントと通信してもよい。調査コントローラ３１２は、他のモジュール／コンポーネントによって送信されるメッセージをリスナ３０８から受信してもよく、リスナは、通信インターフェース３０６を介してメッセージインターフェース３２０（たとえば、ｐｏｓｔＭｅｓｓａｇｅインターフェース）からメッセージを受信する。
【００２５】
[0033]図３の例において、モジュール２０６の調査提示機能は、調査コントローラ３１２によって制御される。代替的に、調査機能は、モジュールの動作を実行するための任意の他の論理、コントローラ、又は機能によって制御されてもよい。たとえば、モジュール２０６は、オーディオ／ビデオプレーヤ、提示モニタ、動的メディアローダ、又は任意の他のタイプのモジュールであってもよい。言い換えれば、例示のために特定の例が提供されているが、開示されるモジュール通信のための方法及び装置は、任意のタイプのハードウェア及び／又はソフトウェアモジュールを用いて利用されてもよい。
【００２６】
[0034]例示的なメッセージインターフェース３２０は、複数のモジュールが通信を行うことができるインターフェースをもたらす。たとえば、メッセージインターフェース３２０は、ＨＴＭＬ５のｐｏｓｔＭｅｓｓａｇｅアプリケーションプログラミングインターフェース又は任意の他の同様のインターフェースであってもよい。メッセージインターフェース３２０は、モジュールが複数のドメインにわたって（たとえば、複数の異なるソースドメインからのモジュール）通信することを可能にしてもよく、モジュールがユーザコンピュータにおいて同時にロードされた複数のウェブページにわたって通信することを可能にしてもよい、モジュールが同時にロードされていないウェブページにわたって（たとえば、ウェブページが閉じられた後にメッセージインターフェース３２０が残っていたとき）通信することを可能にしてもよい、単一のベースウェブページからロードされたモジュール（たとえば、当該ベースウェブページによってロードされたモジュール、及び、等がベースウェブページによってロードされた広告によってロードされたモジュール）への通信を制限してもよい、などである。メッセージインターフェース３２０は、図７〜図１０と併せてさらに詳細に説明される。
【００２７】
[0035]図２のモジュール２０６を実装する例示的な様式が図３に示されているが、図３に示されている要素、プロセス及び／又はデバイスのうちの１つ又は複数は、組み合わせ、分割、再構成、省略、除外及び／又は任意の他の方法で実装されてもよい。さらに、例示的な識別情報生成器３０２、例示的なコンポーネントローダ３０４、例示的な通信インターフェース３０６、例示的なリスナ３０８、例示的なコンポーネント可用性検査器３１０、例示的な調査コントローラ３１２、及び／又は、より一般的に、図２の例示的なモジュール２０６は、ハードウェア、ソフトウェア、ファームウェア、並びに／又は、ハードウェア、ソフトウェア、及び／若しくはファームウェアの任意の組み合わせによって実装されてもよい。したがって、たとえば、例示的な識別情報生成器３０２、例示的なコンポーネントローダ３０４、例示的な通信インターフェース３０６、例示的なリスナ３０８、例示的なコンポーネント可用性検査器３１０、例示的な調査コントローラ３１２、及び／又は、より一般的に、図２の例示的なモジュール２０６のいずれかは、１つ若しくは複数の回路、プログラム可能プロセッサ、特定用途向け集積回路（ＡＳＩＣ）、プログラム可能論理デバイス（ＰＬＤ）、及び／又はフィールドプログラマブル論理デバイス（ＦＰＬＤ）などによって実装されてもよい。純粋なソフトウェア及び／又はファームウェア実施態様を包含するように本特許の装置又はシステム特許請求項のいずれかを読み解くとき、例示的な識別情報生成器３０２、例示的なコンポーネントローダ３０４、例示的な通信インターフェース３０６、例示的なリスナ３０８、例示的なコンポーネント可用性検査器３１０、例示的な調査コントローラ３１２、及び／又は、より一般的に、図２の例示的なモジュール２０６のうちの少なくとも１つは、本明細書において、ソフトウェア及び／又はファームウェアを記憶するメモリ、ＤＶＤ、ＣＤ、Ｂｌｕ−ｒａｙなどのような有形コンピュータ可読記憶デバイス又は記憶ディスクを含むように明示的に定義される。さらにまた、図２の例示的なモジュール２０６は、図３に示されているものに加えて、又は図３に示されているものに代えて、１つ若しくは複数の要素、プロセス及び／若しくはデバイスを含んでもよく、並びに／又は、示されている要素、プロセス及びデバイスのいずれか又はすべての２つ以上を含んでもよい。
【００２８】
[0036]図２及び／又は図３のモジュール２０６を実装するための例示的な機械可読命令を表す流れ図が図４に示されている。この例において、機械可読命令は、図１２に関連して下記に論じられる例示的なプロセッサプラットフォーム１２００に示されているプロセッサ１２１２のようなプロセッサによって実行するためのプログラムを含む。プログラムは、ＣＤ−ＲＯＭ、フロッピーディスク、ハードドライブ、デジタル多用途ディスク（ＤＶＤ）、Ｂｌｕ−ｒａｙディスク、又はプロセッサ１２１２と関連付けられるメモリのような有形コンピュータ可読記憶媒体に記憶されるソフトウェアにおいて具現化されてもよいが、プログラム全体及び／又はプログラムの一部は、代替的に、プロセッサ１２１２以外のデバイスによって実行され、及び／又は、ファームウェア若しくは専用ハードウェアにおいて具現化されてもよい。さらに、例示的なプログラムが図４に示されている流れ図を参照して説明されるが、図２及び／又は図３の例示的なモジュール２０６を実装する多くの他の方法が代替的に使用されてもよい。たとえば、ブロックの実行の順序は変更されてもよく、及び／又は、説明されているブロックのいくつかは、変更、除外、若しくは組み合わせされてもよい。
【００２９】
[0037]上記で言及されたように、図４の例示的なプロセスは、ハードディスクドライブ、フラッシュメモリ、読み出し専用メモリ（ＲＯＭ）、コンパクトディスク（ＣＤ）、デジタル多用途ディスク（ＤＶＤ）、キャッシュ、ランダムアクセスメモリ（ＲＡＭ）、及び／又は、任意の継続時間にわたって（たとえば、長期間にわたって、永続的に、短い瞬間にわたって、情報の一時的なバッファリングのために、及び／又はキャッシングのために）情報が記憶される任意の他の記憶デバイス若しくは記憶ディスクのような、有形コンピュータ可読記憶媒体に記憶される符号化命令（たとえば、コンピュータ及び／又は機械可読命令）を使用して実装されてもよい。本明細書において使用される場合、有形コンピュータ可読記憶媒体という用語は、任意のタイプのコンピュータ可読記憶デバイス及び／又は記憶ディスクを含み、伝搬信号を除外するように明示的に定義される。本明細書において使用される場合、「有形コンピュータ可読記憶媒体」及び「有形機械可読記憶媒体」は交換可能に使用される。付加的に又は代替的に、図４の例示的なプロセスは、ハードディスクドライブ、フラッシュメモリ、読み出し専用メモリ、コンパクトディスク、デジタル多用途ディスク、キャッシュ、ランダムアクセスメモリ、及び／又は、任意の継続時間にわたって（たとえば、長期間にわたって、永続的に、短い瞬間にわたって、情報の一時的なバッファリングのために、及び／又はキャッシングのために）情報が記憶される任意の他の記憶デバイス若しくは記憶ディスクのような、持続性コンピュータ及び／又は機械可読媒体に記憶される符号化命令（たとえば、コンピュータ及び／又は機械可読命令）を使用して実装されてもよい。本明細書において使用される場合、持続性コンピュータ可読媒体という用語は、任意のタイプのコンピュータ可読デバイス又はディスクを含み、伝搬信号を除外するように明示的に定義される。本明細書において使用される場合、「少なくとも」という語句が特許請求項のプリアンブルにおいて移行用語として使用されている場合、この語句は、「備える（ｃｏｍｐｒｉｓｉｎｇ）」という用語が非限定であるのと同じように、非限定である。
【００３０】
[0038]図４のプログラムは、識別情報生成器３０２がモジュール２０６のモジュール識別子を生成すると開始する（ブロック４０２）。識別情報生成器３０２はまた、通信インターフェース３０６を介してメッセージインターフェース３２０にメッセージを送信することによって、他のモジュールにも当該モジュール識別子を告知することができる。したがって、他のモジュールは、モジュール２０６のロード及び存在を認識するようにされ得る。
【００３１】
[0039]その後、コンポーネント可用性検査器３１０が、任意の他のモジュールがロードされるか否かを判定する（ブロック４０４）。たとえば、コンポーネント可用性検査器３１０は、他のモジュールが当該他のモジュールの存在を告知したか否かを判定するために、通信インターフェース３０６を介してメッセージインターフェース３２０を検査してもよい。他のモジュールが検出されないとき、コンポーネントローダ３０４がモジュール２０６によって利用されるコンポーネントをロードする（ブロック４０６）。たとえば、コンポーネントローダ３０４は、モジュール２０６がその動作中に使用することになる１つ又は複数のコンポーネントをロードしてもよい。その後、制御はブロック４１２に進む。
【００３２】
[0040]コンポーネント可用性検査器３１０によって１つ又は複数の他のモジュールが検出されるとき（ブロック４０４）、コンポーネント可用性検査器３１０は、モジュール２０６によって利用される１つ又は複数のコンポーネントが、１つ又は複数の他のモジュールによってすでにロードされているか否かを判定する（ブロック４０８）。モジュール２０６によって利用される１つ又は複数のコンポーネントが１つ又は複数の他のモジュールによってロードされていないとき、コンポーネントローダ３０４は、モジュール２０６によって利用されるコンポーネントをロードする（ブロック４０６）。その後、制御はブロック４１２に進む。
【００３３】
[0041]モジュール２０６によって利用される１つ又は複数のコンポーネントが１つ又は複数の他のモジュールによってロードされている場合（ブロック４０８）、コンポーネント可用性検査器３１０は、１つ又は複数のコンポーネントに対するアクセスを要求する（ブロック４１０）。たとえば、コンポーネント可用性検査器３１０は、通信インターフェース３０６を介して１つ又は複数の他のモジュールにメッセージを送信してもよい。メッセージは、モジュール２０６のモジュール識別子及び／又はアクセスされるべきコンポーネントの識別情報を含むことができる。１つ又は複数の他のモジュールは、ブロック４１４と併せて下記に説明されるように、モジュール２０６の１つ又は複数のコンポーネントへのアクセスを可能にし得る。図４の例は、モジュール２０６が、以前にロードされているコンポーネントを利用するか、又はコンポーネントをロードするかのいずれかであることを示しているが、モジュール２０６は、代替的に、何らかの以前にロードされているコンポーネントを利用してもよく、付加的に、他のモジュールによって以前にロードされなかった何らかのコンポーネントをロードしてもよい。言い換えれば、ブロック４０８は、モジュール２０６によって利用されるべきコンポーネントごとに実行されてもよく、ブロック４１０は、以前にロードされているコンポーネントごとに実行されてもよく、ブロック４０６は、以前にロードされていない各モジュールをロードするために実行されてもよい。たとえば、ブロック４０６、４０８、及び４１０は、モジュール２０６がロードすることを所望するコンポーネントごとに一度再実行するためにループ状に配置されてもよい。
【００３４】
[0042]コンポーネントへのアクセスを要求した（ブロック４１０）後及び／又はコンポーネントをロードした（ブロック４０６）後、リスナ３０８が、他のモジュールがロードされているか否かを判定する（ブロック４１２）。たとえば、リスナ３０８は、他のモジュールがロードしたことを告知する、他のモジュールからのメッセージを検出するために、メッセージインターフェース３２０を監視する。付加的に又は代替的に、リスナ３０８は、他のモジュールが、コンポーネントローダ３０４によってすでにロードされているコンポーネントへのアクセスを要求していることを検出してもよい。
【００３５】
[0043]別の（第２の）モジュールが検出されたとき（ブロック４１２）、リスナ３０８が、第２のモジュールを、コンポーネントローダ３０４によってロードされている１つ又は複数のコンポーネントと関連付ける（ブロック４１４）。図５と併せて説明されるように、リスナ３０８は、第２のモジュールのモジュール識別子を、モジュール２０６によってロードされている１つ又は複数のコンポーネントに送信することによって、第２のモジュールを１つ又は複数のコンポーネントと関連付けることができる。たとえば、モジュール２０６によってロードされている１つ又は複数のコンポーネントは、コンポーネントが第２のモジュールからのメッセージをリスンすべきであるという命令とともにモジュール２０６が第２のモジュールのモジュール識別子を１つ又は複数のコンポーネントに送信するまで、第２のモジュールのモジュール識別子によって識別されるメッセージをリスンしなくてもよい。付加的に又は代替的に、図６と併せて説明されるように、リスナ３０８は、第２のモジュールに、１つ又は複数のコンポーネントと通信するときに、モジュール２０６と関連付けられているモジュール識別子を使用するよう命令することによって、第２のモジュールを１つ又は複数のコンポーネントと関連付けてもよい。第２のモジュールを１つ又は複数のコンポーネントと関連付けた後、制御はブロック４１６に進む。
【００３６】
[0044]他のモジュールがロードされていないとき（ブロック４１２）及び／又は第２のモジュールを１つ又は複数のコンポーネントと関連付けた後（ブロック４１４）、調査コントローラ３１２が調査を提示する（ブロック４１６）。たとえば、調査は、ブロック４１２及び４１４の直後に提示されてもよい、ブロック４１２及び４１４と平行して提示されてもよい、一定時間が経過し、他のモジュールが検出されなくなった後に提示されてもよい、などである。例示的なモジュール２０６は調査を提示するが、任意の他の動作又は機能が、付加的に又は代替的に、モジュール２０６によって実施されてもよい。言い換えれば、ブロック４０２〜４１４と関連付けられるプログラムは、任意のタイプのモジュールによって実施されてもよい。たとえば、調査の提示に加えて、又は調査の提示に代えて、モジュール２０６は、受信データを収集設備に送信してもよい（たとえば、他のモジュールから受信されるデータ、コンポーネントから受信されるデータなど）、モジュール２０６は、他の視聴者測定動作（たとえば、コンテンツ提示の計測、広告提示の計測、オーディオ及び／又はビデオ提示の計測など）を実施してもよい、などである。
【００３７】
[0045]図４の例示的なプログラムは、モジュールの動作を実施しながら（ブロック４１６）、引き続き、他のモジュールがロードされるかについて検査する（ブロック４１２）。図４の流れ図はブロック４１２及び４１６が順次実施されることを示しているが、これらのブロックは並行して又は実質的に並行して実施されてもよい。したがって、モジュール２０６は、他のモジュールについて監視し、他のモジュールにモジュール２０６によってロードされるコンポーネントへのアクセスを与えながら、その特定の動作を実施してもよい。
【００３８】
[0046]図５及び図６は、モジュール２０６のリスナ３０８が第２のモジュールをモジュール２０６によってロードされるコンポーネントと関連付け得る２つの異なる様式を示す例示的なメッセージ図である。一般的に、図５は、図３のリスナ３０８が、コンポーネントに第２のモジュールのモジュール識別子を通知することを示しており、図６は、リスナ３０８が、第２のモジュールに、コンポーネントとの通信に使用するためのモジュール２０６のモジュール識別子を通知することを示している。
【００３９】
[0047]メッセージ５０２〜５１４は図５及び図６の両方に見られるが、冗長性を低減するために一度だけ説明される。メッセージ５０２〜５１４は、例示的な通信シナリオを示し、他の通信シナリオの可能性がある。
【００４０】
[0048]図５及び図６の例示的なメッセージは、区切り文字（たとえば、「｜」）がその後に続くモジュール識別子としてフォーマット化され、その後にメッセージタイプ（たとえば、メッセージの目的、機能などの１語の記述子）、及びメッセージペイロード（例を挙げると、たとえばセミコロンによって区切られる値のリスト）が続く。メッセージの一例としては、「８９１２５８９７１３｜ＤＡＴＡ｜ＢＲＯＷＥＲ＝ＭＯＺＩＬＬＡ；  ＴＳ＝２０１３０２０８０７２４；  ＤＯＭＡＩＮ＝ＳＡＭＰＬＥ．ＣＯＭ；  ＰＡＧＥ＝ＮＥＷＳ．ＨＴＭＬ」である。メッセージは、モジュール２０６及び他のモジュールにとって利用可能であるメッセージインターフェース３２０（たとえば、ｐｏｓｔＭｅｓｓａｇｅインターフェース）に投稿される。代替的に、任意の他のメッセージフォーマットが利用されてもよい。
【００４１】
[0049]図５及び図６のメッセージ図は、第１のモジュール（たとえば、モジュール２０６）がロードされ、メッセージ５０２を送信することによって当該モジュール自体をメッセージインターフェース３２０に告知すると開始する。たとえば、識別子生成器３０２がモジュール識別子を生成して、当該モジュール識別子を有する告知メッセージ５０２をメッセージインターフェース３２０に送信してもよい。第１のモジュール（たとえば、コンポーネント可用性検査器３１０）は、メッセージインターフェースにある任意の他のメッセージを検討することによって、他のモジュールがロードされていないと判定し得る（たとえば、他のモジュールがロードされたと告知していない場合、第１のモジュールは他のモジュールが現在ロードされていないと判定し得る）。図解例によれば、第１のモジュールは、他のモジュールはロードされておらず、したがって、コンポーネントはロードされていないと判定する。したがって、第１のモジュールはコンポーネントをロードする５０４。
【００４２】
[0050]続いて、第１のモジュール（たとえば、調査コントローラ３１２）がその後、第１のモジュールのモジュール識別子を含むメッセージ５０６をメッセージインターフェース３０２に送信する。たとえば、メッセージは、コンポーネントから何らかの情報（たとえば、第１のモジュールの実行と関連付けられるコンピュータのネットワークアドレス）を求める要求であってもよい。コンポーネントは、メッセージインターフェースを（たとえば、新たなメッセージを警告されるために登録し、ただしメッセージインターフェース３２０からのメッセージを定期的に要求することなどによって）監視しており、したがって、メッセージインターフェース３２０からメッセージ５０６を取り出す５０８。コンポーネントは、要求された情報を含むメッセージ５１０をメッセージインターフェース３２０に送信する。たとえば、コンポーネントからのメッセージは、コンポーネントの一意又は半一意の識別子（たとえば、モジュール識別子）を含んでもよい。第１のモジュール（たとえば、リスナ３０８）は、メッセージインターフェース３２０を監視しており、したがってメッセージの投稿を検出し（５１０）、メッセージインターフェース３２０からメッセージ５１０を取り出す５１２。第１のモジュールとコンポーネントとの間の単一の往復通信が示されているが、多くの他の通信が行われてもよい。
【００４３】
[0051]第１のモジュールがロードされてからいくらかの時間の後、又は、第１のモジュールのロードと実質的に同時に、第２のモジュール（たとえば、図２のモジュール２１２）がロードされ、当該第２のモジュールの存在をメッセージインターフェースに告知するメッセージ５１４を（たとえば、当該第２のモジュールのそれぞれの識別情報生成器３０２によって）送信する。第２のモジュールは（たとえば、第２のモジュールのそれぞれのコンポーネント可用性検査器３１０を介して）、同時に、メッセージインターフェースにある他のメッセージを取り出し試験することによって、他のモジュールがロードされたことを判定し得る。図解例によれば、第２のモジュールは、第１のモジュールがロードされていることを発見する。したがって、第２のモジュールは、第１のモジュールによってすでにロードされている１つ又は複数のコンポーネントをロードしない。たとえば、第１のモジュールが、第１のモジュールによってロードされているコンポーネントを示すメッセージをメッセージインターフェースに投稿していてもよい、第２のモジュールが、第１のモジュールによって利用されているコンポーネントを知っていてもよい、第２のモジュールが、第１のモジュールによってロードされているコンポーネントのリストを要求するメッセージを第１のモジュールに送信してもよい、などである。
【００４４】
[0052]図５の例によれば、第２のモジュールがその存在を告知した後、第１のモジュール（たとえば、リスナ３０８）は、第２のモジュールからメッセージインターフェースに投稿された告知メッセージ５１４を検出する。これに応答して、第１のモジュール（たとえば、リスナ３０８）は、コンポーネントが第２のモジュールからのメッセージのリスンを開始すべきであることを示すメッセージ５１６をメッセージインターフェースに送信する。代替的に、リスナ３０８は、第２のモジュールからコンポーネントへのアクセスを求める要求を待ってもよい。例示的なメッセージ５１６は、第１のモジュールのモジュール識別子によって識別され、当該メッセージのペイロード内に、第２のモジュールと関連付けられるモジュール識別子を含む（たとえば、第２のモジュールのモジュール識別子は、第１のモジュールのリスナ３０８によってメッセージ５１４から取り出されてもよい）。メッセージインターフェースを監視している第２のモジュールは（たとえば、そのそれぞれのコンポーネント可用性検査器３１０を介して）は、メッセージ５１６を取り出し５１８、コンポーネントが第２のモジュールの存在を通知されており、したがって、第２のモジュールが、第２のモジュールのモジュール識別子を利用してコンポーネントとの通信を開始することができると判定する。メッセージ５１８より前に、メッセージ５１８より後に、又はメッセージ５１８とほぼ同時に、コンポーネントは第１のモジュールからメッセージ５１６を受信し５２０、この時点でコンポーネントが第２のモジュールのモジュール識別子をラベリングされているメッセージをリスンすべきであることを記録する。
【００４５】
[0053]したがって、第２のモジュール（たとえば、第２のモジュールの調査コントローラ３１２又は第２のモジュールの別のコンポーネント）は、コンポーネントに対する要求メッセージ５２２をメッセージインターフェースに送信する。要求メッセージ５２２は、第２のモジュールのモジュール識別子を含む。コンポーネントは、その時点で第２のモジュールのモジュール識別子を含むメッセージをリスンしているため、メッセージ５２２を検出し、要求メッセージ５２２を取り出す５２４。コンポーネントは、要求メッセージ５２２に対する応答を生成し、メッセージインターフェースに応答メッセージ５２６を送信する。第２のモジュール（たとえば、リスナ３０８）は、メッセージに対する応答を取り出す５２８。
【００４６】
[0054]図６は、第２のモジュールがコンポーネントにアクセスすることを可能にするために、図５に示されているようにコンポーネントに第２のモジュールを通知するのではなく、第１のモジュールがそのモジュール識別子を第２のモジュールと共有することを示す。図６の例によれば、第２のモジュールがその存在をメッセージ５１４内で告知した後、第１のモジュール（たとえば、リスナ３０８）は、第２のモジュールから告知メッセージ５１４を検出する。これに応答して、第１のモジュール（たとえば、リスナ３０８）は、第２のモジュールがコンポーネントと通信するために第１のモジュールのモジュール識別子を利用するべきであることを示すメッセージ６０２をメッセージインターフェースに送信する。たとえば、メッセージ６０２は、コンポーネントの可用性に関する情報、コンポーネントの機能に関する情報、及び／又は第２のモジュールによって利用され得る任意の他の情報とともに、第１のモジュールのモジュール識別子を使用させる命令を含んでもよい。メッセージインターフェースを監視している第２のモジュールは（たとえば、コンポーネント可用性検査器３１０）は、メッセージ６０２を取り出し６０４、任意の関連コンポーネント（たとえば、コンポーネントローダ３０４及び／又は調査コントローラ３１２）に、コンポーネントがすでにロードされており、第１のモジュールから受信されるモジュール識別子を使用してアクセスすることができると通知する。
【００４７】
[0055]したがって、第２のモジュール（たとえば、第２のモジュールの調査コントローラ３１２又は第２のモジュールの別のコンポーネント）は、コンポーネントに対する要求メッセージ６０６をメッセージインターフェースに送信する。要求メッセージ６０６は、第１のモジュールのモジュール識別子を含む。コンポーネントは、第１のモジュールのモジュール識別子を含むメッセージをリスンしているため、メッセージ６０６を検出し、要求メッセージ６０６を取り出す６０８。コンポーネントは、要求メッセージ６０６に対する応答を生成し、メッセージインターフェースに応答メッセージ６１０を送信する。第２のモジュール（たとえば、リスナ３０８）は、メッセージに対する応答を取り出す６１２。
【００４８】
[0056]したがって、図５及び図６の両方において、第２のモジュールは、第２のコンポーネントがコンポーネントの第２のインスタンスをロードすることなくコンポーネントと通信することが可能である。したがって、コンポーネントの第２のインスタンスをロードするのに必要とされる処理及びメモリ資源の利用が回避される。
【００４９】
[0057]図７は、図３のメッセージインターフェース３２０の例示的な実装態様のブロック図である。例示的なメッセージインターフェース３２０は、メッセージ受信機７０２と、データストア７０４と、要求インターフェース７０６とを含む。例示的なメッセージインターフェース３２０は、モジュール／コンポーネントからメッセージを受信し、それらのメッセージを他のモジュール／コンポーネントにとって利用可能にする。したがって、メッセージインターフェース３２０は、モジュール／コンポーネントの間の相互通信を促進する。たとえば、ほとんどのウェブブラウザセキュリティ制約は、モジュール／コンポーネント間のクロスドメイン相互作用を防止するが、メッセージインターフェースは、メッセージを、第１のドメインと関連付けられる第１のモジュールによって投稿することができ、第２のドメインと関連付けられる第２のモジュールによって取り出すことができるリポジトリを提供し得る。
【００５０】
[0058]例示的なメッセージインターフェース３２０は、単一のウェブページインスタンスと関連付けられるモジュール間での通信を可能にする。たとえば、第１のウェブページは、コンテンツと関連付けられるモジュール、１つ又は複数の広告と関連付けられるモジュールなどを含んでもよく、メッセージインターフェース３２０は、他のウェブページ（たとえば、他のウィンドウにおいてロードされているウェブページ）と関連付けられるモジュールが第１のウェブページからのモジュールと通信することを防止しながら、ウェブページと関連付けられるモジュールが通信することを可能にしてもよい。言い換えれば、メッセージインターフェース３２０のインスタンスは、ウェブページインスタンスごとにインスタンス化されてもよい。代替的に、任意の他の構成が利用されてもよい。たとえば、メッセージインターフェース３２０は、ユーザコンピュータ上で実行しているすべてのウェブページからモジュール間での通信を可能にしてもよい、ユーザコンピュータにある特定のウェブブラウザ内のウェブページのすべてのモジュール間、単一のソース（たとえば、単一のデータ収集設備、（たとえば、ドメイン名によって関連付けられる）単一のエンティティと関連付けられた複数のデータ収集設備からのすべてのモジュール間での通信を可能にしてもよい、などである。
【００５１】
[0059]図７の例示的なメッセージインターフェース３２０のメッセージ受信機７０２は、モジュール／コンポーネントからメッセージを受信し、メッセージをデータストア７０４に記憶する。メッセージ受信機７０２は、メッセージを（たとえば、タイムスタンプを付すことによって、メッセージをメッセージタイプ、メッセージソースなどによってグループ化することによってなどで）変換することができる。メッセージ受信機７０２は、付加的に、要求インターフェース７０６にメッセージの受信を警告することができる（たとえば、要求受信機７０６が、イベントの通知について登録されているモジュール／コンポーネントに通知を送信するように設定されている場合）。
【００５２】
[0060]図解例のデータストア７０４は、メモリ（たとえば、ユーザコンピュータ１０６のメモリ）内の場所である。付加的に又は代替的に、任意の他のタイプの記憶装置がデータストア７０４を実装してもよい。データストア７０４は、メッセージが投稿され、受信された順に記憶される伝言板のように動作することができる。代替的に、メッセージは、グループ化、カテゴリ化、バンドルなどされてもよい。メッセージは、データベースのような構造に記憶されてもよい、文字列のリストとして記憶されてもよい、などである。
【００５３】
[0061]要求インターフェース７０６は、何のメッセージが投稿されているかを知りたいモジュール／コンポーネントに対して、データストア７０４ニアのメッセージへのアクセスを提供する。たとえば、モジュール／コンポーネントからの要求に応答して、要求インターフェース７０６は、モジュール／コンポーネントからの最後の要求以来新たに投稿されたメッセージを送信してもよい。他の例において、要求インターフェース７０６は、クエリを指定する要求（たとえば、特定のモジュール識別子を用いて識別されるメッセージを求める要求）を受信してもよく、一致するメッセージを取り出して要求しているモジュール／コンポーネントに当該メッセージを送信してもよい。別の例において、要求インターフェース７０６は、特定のイベントが発生したときはいつでも（たとえば、メッセージが特定のモジュール識別子から投稿されたときはいつでも）モジュール／コンポーネントが通知されるべきであることを指定するイベント要求を受信してもよい。代替的に、メッセージを取り出すための上記又は他の方法の任意の組み合わせが利用されてもよい。
【００５４】
[0062]図３のメッセージインターフェース３０２を実装する例示的な様式が図７に示されているが、図７に示されている要素、プロセス及び／又はデバイスのうちの１つ又は複数は、組み合わせ、分割、再構成、省略、除外及び／又は任意の他の方法で実装されてもよい。さらに、例示的なメッセージ受信機７０２、例示的なデータストア７０４、例示的な要求インターフェース７０６、及び／又は、より一般的に、図３の例示的なメッセージインターフェース３２０は、ハードウェア、ソフトウェア、ファームウェア、並びに／又は、ハードウェア、ソフトウェア、及び／若しくはファームウェアの任意の組み合わせによって実装されてもよい。したがって、たとえば、例示的なメッセージ受信機７０２、例示的なデータストア７０４、例示的な要求インターフェース７０６、及び／又は、より一般的に、図３の例示的なメッセージインターフェース３２０のいずれかは、１つ若しくは複数の回路、プログラム可能プロセッサ、特定用途向け集積回路（ＡＳＩＣ）、プログラム可能論理デバイス（ＰＬＤ）、及び／又はフィールドプログラマブル論理デバイス（ＦＰＬＤ）などによって実装されてもよい。純粋なソフトウェア及び／又はファームウェア実装態様を包含するように本特許の装置又はシステム特許請求項のいずれかを読み解くとき、例示的なメッセージ受信機７０２、例示的なデータストア７０４、例示的な要求インターフェース７０６、及び／又は、より一般的に、例示的なメッセージインターフェース３２０のうちの少なくとも１つは、本明細書において、ソフトウェア及び／又はファームウェアを記憶するメモリ、ＤＶＤ、ＣＤ、Ｂｌｕ−ｒａｙなどのような有形コンピュータ可読記憶デバイス又は記憶ディスクを含むように明示的に定義される。さらにまた、図７の例示的なメッセージ受信機３２０は、図７に示されているものに加えて、又は図７に示されているものに代えて、１つ若しくは複数の要素、プロセス及び／若しくはデバイスを含んでもよく、並びに／又は、示されている要素、プロセス及びデバイスのいずれか又はすべての２つ以上を含んでもよい。
【００５５】
[0063]図３及び／又は図７のメッセージインターフェース３２０を実装するための例示的な機械可読命令を表す流れ図が図８〜図１０に示されている。これらの例において、機械可読命令は、図１２に関連して下記に論じられる例示的なプロセッサプラットフォーム１２００に示されているプロセッサ７１２のようなプロセッサによって実行するための１つ又は複数のプログラムを含む。プログラムは、ＣＤ−ＲＯＭ、フロッピーディスク、ハードドライブ、デジタル多用途ディスク（ＤＶＤ）、Ｂｌｕ−ｒａｙディスク、又はプロセッサ１２１２と関連付けられるメモリのような有形コンピュータ可読記憶媒体に記憶されるソフトウェアにおいて具現化されてもよいが、プログラム全体及び／又はプログラムの一部は、代替的に、プロセッサ１２１２以外のデバイスによって実行され、及び／又は、ファームウェア若しくは専用ハードウェアにおいて具現化されてもよい。さらに、例示的なプログラムが図８〜図１０に示されている流れ図を参照して説明されるが、図３及び／又は図７の例示的なメッセージインターフェース３２０を実装する多くの他の方法が代替的に使用されてもよい。たとえば、ブロックの実行の順序は変更されてもよく、及び／又は、説明されているブロックのいくつかは、変更、除外、若しくは組み合わせされてもよい。
【００５６】
[0064]上記で言及されたように、図８〜図１０の例示的なプロセスは、ハードディスクドライブ、フラッシュメモリ、読み出し専用メモリ（ＲＯＭ）、コンパクトディスク（ＣＤ）、デジタル多用途ディスク（ＤＶＤ）、キャッシュ、ランダムアクセスメモリ（ＲＡＭ）、及び／又は、任意の継続時間にわたって（たとえば、長期間にわたって、永続的に、短い瞬間にわたって、情報の一時的なバッファリングのために、及び／又はキャッシングのために）情報が記憶される任意の他の記憶デバイス若しくは記憶ディスクのような、有形コンピュータ可読記憶媒体に記憶される符号化命令（たとえば、コンピュータ及び／又は機械可読命令）を使用して実装されてもよい。本明細書において使用される場合、有形コンピュータ可読記憶媒体という用語は、任意のタイプのコンピュータ可読記憶デバイス及び／又は記憶ディスクを含み、伝搬信号を除外するように明示的に定義される。本明細書において使用される場合、「有形コンピュータ可読記憶媒体」及び「有形機械可読記憶媒体」は交換可能に使用される。付加的に又は代替的に、図８〜図１０の例示的なプロセスは、ハードディスクドライブ、フラッシュメモリ、読み出し専用メモリ、コンパクトディスク、デジタル多用途ディスク、キャッシュ、ランダムアクセスメモリ、及び／又は、任意の継続時間にわたって（たとえば、長期間にわたって、永続的に、短い瞬間にわたって、情報の一時的なバッファリングのために、及び／又はキャッシングのために）情報が記憶される任意の他の記憶デバイス若しくは記憶ディスクのような、持続性コンピュータ及び／又は機械可読媒体に記憶される符号化命令（たとえば、コンピュータ及び／又は機械可読命令）を使用して実装されてもよい。本明細書において使用される場合、持続性コンピュータ可読媒体という用語は、任意のタイプのコンピュータ可読デバイス又はディスクを含み、伝搬信号を除外するように明示的に定義される。本明細書において使用される場合、「少なくとも」という語句が特許請求項のプリアンブルにおいて移行用語として使用されている場合、この語句は、「備える（ｃｏｍｐｒｉｓｉｎｇ）」という用語が非限定であるのと同じように、非限定である。
【００５７】
[0065]図８のプログラムは、例示的なメッセージインターフェース３２０のメッセージ受信機７０２がモジュール又はコンポーネントからメッセージを受信すると開始する（ブロック８０２）。メッセージインターフェース３２０は、メッセージをデータストア７０４に記憶する（ブロック８０４）。
【００５８】
[0066]図９のプログラムは、例示的なメッセージインターフェース３２０の要求受信機７０６がモジュール又はコンポーネントからクエリを受信すると開始する（ブロック９０２）。たとえば、クエリは、特定のモジュール識別子を用いて識別されるメッセージを要求してもよい。要求受信機７０６は、一致するメッセージをデータストア７０４から取り出す（ブロック９０４）。その後、要求受信機７０６は、最初の要求を送信したモジュール又はコンポーネントに、一致するメッセージを送信する（ブロック９０６）。
【００５９】
[0067]図１０のプログラムは、例示的なメッセージインターフェース３２０の要求受信機７０６がモジュール又はコンポーネントからイベント要求を受信すると開始する（ブロック１００２）。たとえば、イベント要求は、特定の基準に一致するメッセージがメッセージインターフェース３２０に投稿されたときはいつでも、モジュール又はコンポーネントに通知するよう要求してもよい。その後、要求受信機は、イベントに一致するメッセージが検出されたか否かを判定する（ブロック１００４）。たとえば、メッセージ受信機７０６は、メッセージ受信機７０２から新たなメッセージの通知を受信し、イベント要求において指定されている基準に照らしてメッセージを検査することによって、一致するイベントが検出されたか否かを判定してもよい。付加的に又は代替的に、要求受信機７０６は、イベント要求において指定されている基準に一致するメッセージを求めてデータストア７０４をポーリングしてもよい。要求受信機７０６がイベント要求に一致するメッセージを識別しないとき、要求受信機７０６は、一致するイベントを求めて監視を継続する。要求受信機７０６が一致するイベントを識別すると、要求受信機７０６は、最初の要求を送信したモジュール／コンポーネントに、イベントと関連付けられるメッセージを送信する。図解例によれば、さらなるイベントを求めて監視を継続するために、制御はブロック１００４に戻る。代替的に、図１０のプログラムは、イベントが発見された後に終了してもよい（たとえば、モジュール／コンポーネントが別の通知を望んだ場合、別の要求を送信してもよい）。
【００６０】
[0068]図１１は、メディアを提示及び追跡するための例示的なシステム１１００のブロック図である。例示的なシステム１１００は、メディアプロバイダ１１０２と、２つの広告プロバイダ１１０４Ａ及び１１０４Ｂと、データ収集設備１１０６と、ユーザコンピュータ１１０８とを含む。図解例のシステム１１００は、ユーザコンピュータ１１０８が、１つ又は複数のネットワークによってメディアプロバイダ１１０２、広告プロバイダ１１０４Ａ及び１１０４Ｂ、並びにデータ収集設備１１０６に通信可能に結合されている、インターネットに基づくシステムである。１つ又は複数のネットワーク（又は他のネットワーク）はまた、メディアプロバイダ１１０２、広告プロバイダ１１０４Ａ及び１１０４Ｂ並びにデータ収集設備１１０６のいずれかをも通信可能に結合してもよい。システム１１００は代替的に、インターネットに基づくシステムでなくてもよく、任意の他の環境において実装されてもよい。
【００６１】
[0069]メディアプロバイダ１１０２は図１のメディアプロバイダ１０２と同様であり、広告プロバイダ１１０４Ａ及び１１０４は図１の広告プロバイダ１０４と同様であり、データ収集設備１１０６は図１のデータ収集設備１１０５と同様であり、ユーザコンピュータ１１０８は図１のユーザコンピュータ１０６と同様である。したがって、これらの構成要素の説明は、冗長性を低減するために繰り返されない。
【００６２】
[0070]図１のブロック図は、メッセージ１１０８〜１１３０によって示される例示的なメッセージフローを含む。例示的なメッセージフローは、ユーザコンピュータ１１０８がメディアプロバイダ１１０２に要求（たとえば、ハイパーテキスト転送プロトコル（ＨＴＴＰ）ＧＥＴ要求）を送信すると開始する（メッセージ１１０８）。メッセージ１１０８に応答して、メディアプロバイダ１１０２はユーザコンピュータ１１０８にウェブページ（又は任意の他のメディア）を送信する（メッセージ１１１０）。ウェブページは、２つの広告に対する参照を含む。広告に対する参照が、ユーザコンピュータ１１０６に、広告プロバイダ１１０４Ａ（メッセージ１１１２）及び広告プロバイダ１１０４Ｂ（メッセージ１１１６）に要求を送信させる。メッセージ１１１２及び１１１６に応答して、広告プロバイダ１１０４Ａ及び広告プロバイダ１１０４Ｂは、それぞれメッセージ１１１４及び１１１８において、ユーザコンピュータ１１０８に要求された広告を送信する。広告は命令を備え、この命令によって、ユーザコンピュータ１１０８はデータ収集設備１１０６に、メッセージ１１２０を介して広告プロバイダ１１０４Ａからの広告用のモジュール１１３２を要求し、メッセージ１１２４を介して広告プロバイダ１１０４Ｂを要求する。
【００６３】
[0071]メッセージ１１２０及び１１２４に応答して、データ収集設備１１０６は、それぞれメッセージ１１２２及び１１２６を介して、ユーザコンピュータ１１０８に要求されたモジュール１１３２、１１３４を送信する。図解例によれば、モジュール１１３２は、広告プロバイダ１１０４Ａからの広告の提示を計測し、モジュール１１３４は、広告プロバイダ１１０４Ｂからの広告の提示を計測する。付加的に又は代替的に、モジュール１１３２及び１１３４のうちの一方又は他のモジュールがまた、ウェブページのコンテンツの提示、ウェブページと視聴者との相互作用、又は任意の他の動作を計測してもよい。
【００６４】
[0072]ユーザコンピュータ１１０８は、モジュール１１３２及び１１３４を実行する。本明細書に開示される方法及び装置を使用して、モジュール１１３２及び１１３４は、互いの存在を認識させられ、実行を調整する。特に、モジュール１１３４は、モジュール１１３２及び１１３４の両方を代表してデータ収集設備に計測データを送信するように選択される。したがって、モジュール１１３２は、本明細書に開示される通信方法及び装置を利用して、メッセージ１１２８において収集された計測データをモジュール１１３４に与える。モジュール１１３４は、メッセージ１１３０においてモジュール１１３２からの計測データ及びモジュール１１３４からの計測データをデータ収集設備に送信する。
【００６５】
[0073]両方のモジュールからデータ収集設備へのデータの通信を調整することによって、データ収集設備に送信される別個のメッセージの数を低減することができ、これによって、そのようなメッセージを受信するデータ収集設備のサーバに対する負荷が低減する。さらに、データ収集設備への共有接続を利用することによって、別個のモジュールからのデータを関連付けることに利点を実現することができる。たとえば、ウェブページが複数の広告を含み、当該広告の各々が、当該広告を計測するモジュール、及び、可能性としてウェブページのコンテンツを計測するためのモジュールを含むとき、本明細書に開示されるようにモジュールの通信を調整し、（たとえば、単一のメッセージにおいて計測データを送信することによって、計測データを単一のソースから入ってくるものとしてラベリングするモジュールを送信することによってなどで）様々なモジュールからの計測データを関連付けられる通信を送信することによって、広告及びコンテンツの提示をリンクさせることができる。言い換えれば、データ収集設備は、たとえコンテンツ及び広告がすべて異なるソースから入っている場合があるとしても、広告及びコンテンツがともに提示されたと、より容易に判定することができる。
【００６６】
[0074]図１２は、図２のモジュール２０６を実装するために図４、図８、図９及び／又は図１０の命令を実行することが可能な例示的なプロセッサプラットフォーム１２００のブロック図である。プロセッサプラットフォーム１２００は、たとえば、サーバ、パーソナルコンピュータ、携帯デバイス（たとえば、携帯電話、スマートフォン、ｉＰａｄ（登録商標）のようなタブレット）、携帯情報端末（ＰＤＡ）、インターネット家電、ＤＶＤプレーヤ、ＣＤプレーヤ、デジタルビデオレコーダ、Ｂｌｕ−ｒａｙプレーヤ、ゲーミングコンソール、パーソナルビデオレコーダ、セットトップボックス、又は任意の他のタイプのコンピューティングデバイスとすることができる。
【００６７】
[0075]図解例のプロセッサプラットフォーム１２００はプロセッサ１２１２を含む。図解例のプロセッサ１２１２は、ハードウェアである。たとえば、プロセッサ１２１２は、任意の所望のファミリ又は製造者からの１つ若しくは複数の集積回路、論理回路、マイクロプロセッサ又はコントローラによって実装することができる。
【００６８】
[0076]図解例のプロセッサ１２１２はローカルメモリ１２１３（たとえば、キャッシュ）を含む。図解例のプロセッサ１２１２は、バス１２１８を介して、揮発性メモリ１２１４及び不揮発性メモリ１２１６を含む主記憶装置と通信する。揮発性メモリ１２１４は、同期型ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、ＲＡＭＢＵＳダイナミックランダムアクセスメモリ（ＲＤＲＡＭ）及び／又は任意の他のタイプのランダムアクセスメモリデバイスによって実装されてもよい。不揮発性メモリ１２１６は、フラッシュメモリ及び／又は任意の他の所望のタイプのメモリデバイスによって実装されてもよい。主記憶装置１２１４、１２１６に対するアクセスは、メモリコントローラによって制御される。
【００６９】
[0077]図解例のプロセッサプラットフォーム１２００はインターフェース回路１２２０をも含む。インターフェース回路１２２０は、Ｅｔｈｅｒｎｅｔインターフェース、ユニバーサルシリアルバス（ＵＳＢ）、及び／又はＰＣＩエクスプレスインターフェースのような、任意のタイプのインターフェース規格によって実装されてもよい。
【００７０】
[0078]図解例において、１つ又は複数の入力デバイス１２２２がインターフェース回路１２２０に接続される。入力デバイス１２２２は、ユーザがプロセッサ１２１２にデータ及びコマンドを入力することを可能にする。入力デバイスは、たとえば、音声センサ、マイクロホン、カメラ（静止又はビデオ）、キーボード、ボタン、マウス、タッチスクリーン、トラックパッド、トラックボール、アイソポイント及び／又は音声認識システムによって実装することができる。
【００７１】
[0079]１つ又は複数の出力デバイス１２２４も、図解例のインターフェース回路１２２０に接続される。出力デバイス１２２４は、たとえば、表示デバイス（たとえば、発光ダイオード（ＬＥＤ）、有機発光ダイオード（ＯＬＥＤ）、液晶ディスプレイ、陰極線管ディスプレイ（ＣＲＴ）、タッチスクリーン、触覚出力デバイス、発光ダイオード（ＬＥＤ）、プリンタ及び／又はスピーカ）によって実装することができる。したがって、図解例のインターフェース回路１２２０は、一般的に、グラフィクスドライバカードを含む。
【００７２】
[0080]図解例のインターフェース回路１２２０は、ネットワーク１２２６（たとえば、Ｅｔｈｅｒｎｅｔ接続、デジタル加入者線（ＤＳＬ）、電話線、同軸ケーブル、携帯電話システムなど）を介した外部機械（たとえば、任意の種類のコンピューティングデバイス）とのデータの交換を促進するために、送信機、受信機、送受信機、モデム及び／又はネットワークインターフェースカードのような通信デバイスをも含む。
【００７３】
[0081]図解例のプロセッサプラットフォーム１２００は、ソフトウェア及び／又はデータを記憶するための１つ又は複数の大容量記憶デバイス１２２８をも含む。そのような大容量記憶デバイス１２２８の例は、フロッピーディスクドライブ、ハードドライブディスク、コンパクトディスクドライブ、Ｂｌｕ−ｒａｙディスクドライブ、ＲＡＩＤシステム、及びデジタル多用途ディスク（ＤＶＤ）ドライブを含む。
【００７４】
[0082]図４、図８、図９、及び／又は図１０の機械可読命令であってもよい図１２の符号化命令１２３２は、大容量記憶デバイス１２２８、揮発性メモリ１２１４、不揮発性メモリ１２１６、及び／又はＣＤ若しくはＤＶＤのような取り外し可能有形コンピュータ可読記憶媒体に記憶されてもよい。
【００７５】
[0083]上記から、上記において開示された方法、装置及び製造品が、モジュール間の通信を促進することが諒解されよう。本明細書に開示されるようないくつかの例は、モジュールが、利用されるコンポーネントの複数のインスタンスのロードを防止するために実行を調整することを可能にする。コンポーネントのインスタンスへのアクセスを共有することによって、さらなるコンポーネントのインスタンスをロードしないことによって消費される処理サイクルが少なくなり、そうでなければコンポーネントの複数のインスタンスをロードすることになる複数のモジュールの実行に必要とされるメモリが少なくなり、それによってモジュール実行がより速くなり、モジュール及び複数のインスタンス間での通信が干渉する可能性が低減されるなどである。
【００７６】
[0084]本明細書に開示される方法及び装置が、計測、視聴者測定、提示監視などを実行するモジュールの調整を促進するのに利用されるとき、利点を実現することができる。たとえば、各々が複数のメディアソースからのメディア（たとえば、コンテンツ、広告など）を計測する複数のモジュールが本明細書に開示されるように通信するとき、メディアの提示をリンクさせることができる。たとえば、ウェブページが、複数の広告を、（たとえば、異なるドメインにある）複数の異なる広告プロバイダからロードされるようにするとき、複数の広告を計測するモジュールが、当該モジュールからの計測データがウェブページの提示にリンクされ得る（たとえば、すべてのモジュールからの計測データを一意の識別子と関連付けることができる、計測データを単一のメッセージにおいて送信することができる、など）ように通信することができる。付加的に又は代替的に、１つのメッセージにおいて複数のモジュールからの計測データを送信することによって、そうでなければメディアを提示するユーザコンピュータからほぼ同時に送信される複数のメッセージをハンドリングする必要がある、データ収集設備のサーバに対する負荷を低減することができる。
【００７７】
[0085]特定の例示的な方法、装置及び製造品が本明細書において説明されたが、本特許が対象とする範囲はこれに限定されない。逆に、本特許は、本特許の特許請求項の範囲に適切に含まれるすべての方法、装置、及び製造品を包含する。
【図１】
0006052832.tif 000002
【図２】
0006052832.tif 000003
【図３】
0006052832.tif 000004
【図４】
0006052832.tif 000005
【図５】
0006052832.tif 000006
【図６】
0006052832.tif 000007
【図７】
0006052832.tif 000008
【図８】
0006052832.tif 000009
【図９】
0006052832.tif 000010
【図１０】
0006052832.tif 000011
【図１１】
0006052832.tif 000012
【図１２】
0006052832.tif 000013