JP2015534139A - モジュールを効率的に実行するための方法及び装置 - Google Patents

モジュールを効率的に実行するための方法及び装置 Download PDF

Info

Publication number
JP2015534139A
JP2015534139A JP2015525650A JP2015525650A JP2015534139A JP 2015534139 A JP2015534139 A JP 2015534139A JP 2015525650 A JP2015525650 A JP 2015525650A JP 2015525650 A JP2015525650 A JP 2015525650A JP 2015534139 A JP2015534139 A JP 2015534139A
Authority
JP
Japan
Prior art keywords
module
component
message
identifier
loaded
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015525650A
Other languages
English (en)
Other versions
JP6052832B2 (ja
Inventor
ニコラス ナヴィーン ラウ,
ニコラス ナヴィーン ラウ,
ライアン オハーン,
ライアン オハーン,
トーマス ストラム,
トーマス ストラム,
ジェレミー ベネット,
ジェレミー ベネット,
Original Assignee
ザ ニールセン カンパニー (ユーエス) エルエルシー
ザ ニールセン カンパニー (ユー エス) エルエルシー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ザ ニールセン カンパニー (ユーエス) エルエルシー, ザ ニールセン カンパニー (ユー エス) エルエルシー filed Critical ザ ニールセン カンパニー (ユーエス) エルエルシー
Publication of JP2015534139A publication Critical patent/JP2015534139A/ja
Application granted granted Critical
Publication of JP6052832B2 publication Critical patent/JP6052832B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0277Online advertisement

Landscapes

  • Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Finance (AREA)
  • Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Marketing (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)
  • Warehouses Or Storage Devices (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

モジュールを効率的に実行するための方法及び装置が開示される。例示的な方法は、第1のモジュールによって、第1のモジュール識別子を生成するステップであって、第1のモジュールがウェブページ上の広告によってインスタンス化されている、生成するステップと、第1のモジュールによって、コンポーネントをロードするステップと、コンポーネントにモジュール識別子を通信するステップと、第2のモジュール識別子を有する第2のモジュールがロードされたことを判定するステップと、第2のモジュールがロードされたという判定に応答して、第1のモジュールによって、コンポーネントに第2のモジュールと通信するように命令するために、コンポーネントに第2のモジュール識別子を通信するステップとを含む。【選択図】図1

Description

開示の分野
[0001]本開示は、一般にはモジュール実行に関し、より詳細には、モジュールを効率的に実行するための方法及び装置に関する。
背景
[0002]近年、ネットワーク配信メディア(たとえば、ウェブページのようなインターネット配信メディア)の使用が増え、それらの複雑度も同様に増大している。そのようなメディアは、メディアのロード及び提示中に実施(たとえば、実行)される複数の動的な要素を含むことが多い。たとえば、メディア(たとえば、ウェブページ上の広告)は、ユーザコンピュータによって、広告の提示に関連付けて調査が提示されるようにするために実行されるモジュール(たとえば、JavaScriptコード)を備え得る。
[0003]メディアを提示及び追跡するための、本開示の教示に従って構築されている例示的なシステムのブロック図である。 [0004]モジュールを備えたメディアを含む例示的なウェブページ素材の図である。 [0005]図2のモジュールの1つ又は複数を実装するために使用され得る例示的なモジュールのブロック図である。 [0006]図3のモジュールを実装するために実行され得る例示的な機械可読命令を表す流れ図である。 [0007]本明細書に開示される例示的な方法及び装置に従って送信され得る例示的なメッセージを表すメッセージ図である。 本明細書に開示される例示的な方法及び装置に従って送信され得る例示的なメッセージを表すメッセージ図である。 [0008]図3のメッセージインターフェースを実装するために使用され得る例示的なメッセージインターフェースのブロック図である。 [0009]図7のメッセージインターフェースを実装するために実行され得る例示的な機械可読命令を表す流れ図である。 図7のメッセージインターフェースを実装するために実行され得る例示的な機械可読命令を表す流れ図である。 図7のメッセージインターフェースを実装するために実行され得る例示的な機械可読命令を表す流れ図である。 [0010]メディアを提示及び追跡するための、本開示の教示に従って構築されている例示的なシステムのブロック図である。 [0011]図2及び/又は図3の例示的なモジュールを実装するために図4の例示的な機械可読命令を実行することができる例示的な処理システムのブロック図である。
[0012]図面は原寸比例ではない。可能な限り、同じ又は同様の部分を参照するために、図面及び付随する書面の説明全体を通じて同じ参照符号が使用される。
詳細な説明
[0013]メディア(たとえば、ウェブページ又はその一部分)は、そのメディアと関連する動作を実行する複数のモジュールと関連付けられ得る。たとえば、第1のモジュールがメディアの提示を追跡し得る、第2のモジュールが調査を提示し得る、などである。別の例において、メディア(たとえば、ウェブページ)は、各々が1つ又は複数のモジュールを含む広告とともに提示される場合がある。加えて、モジュールは、コンポーネント(たとえば、複数のモジュールによって利用される共通の機能のツールボックス)と関連付けられ得る。したがって、複数のモジュールの実行が、重なり合う場合があり(たとえば、複数のモジュールが実質的に同時に実行される場合があり)、単一のコンポーネントの複数のインスタンスを作成するように試行する場合がある。本明細書に開示されるいくつかの方法及び装置は、共存するモジュール間の通信を促進する。付加的に又は代替的に、本明細書に開示されるいくつかの方法及び装置は、複数のモジュールによって利用される単一のコンポーネントの複数のインスタンスが作成されるのを防止するために、モジュールの実行の協調を促進する。メディアは、コンテンツ及び/又は広告を含み得る。コンテンツ及び/又は広告を、本明細書においてはまとめて素材と称する。
[0014]図1は、メディアを提示及び追跡するための例示的なシステム100のブロック図である。例示的なシステム100は、メディアプロバイダ102と、広告プロバイダ104と、データ収集設備105と、ユーザコンピュータ106とを含む。図解例のシステム100は、ユーザコンピュータ106が、1つ又は複数のネットワークによってメディアプロバイダ102、広告プロバイダ104、データ収集設備105に通信可能に結合されている、インターネットに基づくシステムである。1つ又は複数のネットワーク(又は他のネットワーク)はまた、メディアプロバイダ102、広告プロバイダ104及びデータ収集設備105のいずれかをも通信可能に結合してもよい。システム100は代替的に、インターネットに基づくシステムでなくてもよく、任意の他の環境において実装されてもよい。
[0015]図解例のメディアプロバイダ102は、ウェブページをユーザコンピュータ106に供給する1つ又は複数のサーバを含むインターネットメディアプロバイダである。ウェブページは、メディア、広告、又は任意の他の埋め込まれている素材若しくは他の様態で関連付けられている素材を含んでもよい。図解例によれば、広告は、広告プロバイダ104によってユーザコンピュータ106に提供される。代替的に、広告は、メディアプロバイダを含む任意の他のソースによって提供されてもよい。メディアプロバイダ102は、代替的に、たとえば、ファイルサーバ、オーディオ及び/又はビデオプロバイダ、データベースサーバなどのような、任意の他のタイプのメディアプロバイダであってもよい。
[0016]図1の例示的な広告プロバイダ104は、メディアプロバイダ102によって供給されるウェブページに埋め込まれている広告又は他の様態で当該ウェブページと関連付けられている広告を供給する。たとえば、広告は、自身の製品がメディアプロバイダ102によって供給されるウェブページで広告されることを望むエンティティによって、広告プロバイダ104に提供されてもよい。広告の提示を計測(たとえば、監視、検証、追跡など)するために、広告プロバイダ104は、データ収集設備105と協働する。特に、図1の広告プロバイダ104は、広告に、計測を実施する1つ又は複数のモジュール107を備える(たとえば、広告に、モジュールをリンクさせるか、埋め込むか、又は他の様態で関連付ける)。図解例によれば、広告は、ユーザコンピュータ107にデータ収集設備105からモジュール107を取得させる命令を含む。モジュール107は、たとえば、ユーザコンピュータ106における調査の提示、広告の提示に関する情報のデータ収集設備105への送信、ユーザコンピュータ106及び/又はユーザコンピュータ106のユーザに関する情報のデータ収集設備への送信などのような任意のタイプの計測を実施してもよい。例示的な広告プロバイダ104は、代替的に、モジュールをユーザコンピュータ106に供給してもよい。
[0017]図解例のデータ収集設備105は、ユーザコンピュータ106にモジュール(たとえば、モジュール107)を供給し、モジュールによって送信されるデータを受信する。付加的に又は代替的に、データ収集設備105は、他のソース(たとえば、広告プロバイダ104)からユーザコンピュータ106に送信された、モジュールによって送信されるデータを受信してもよい。図解例のデータ収集設備105は、報告書を生成するために受信データを利用する。たとえば、データ収集設備105は、広告プロバイダ104によって供給される広告の提示の数(たとえば、ヒット、訪問、閲覧、感想など)を示す報告書を生成してもよい。データ収集設備105によって生成される報告書は、広告プロバイダ104に発行、提供される、広告プロバイダ104と協働する広告主に提供される、などしてもよい。
[0018]図解例のユーザコンピュータ106は、メディアプロバイダ102、広告プロバイダ104などからの素材を要求、受信、及び提示するウェブブラウザ109を実行するパーソナルコンピュータである。代替的に、ユーザコンピュータ106は、たとえば、可搬コンピューティングデバイス、デスクトップコンピュータ、ラップトップコンピュータ、携帯電話、ネットワーク接続テレビ、セットトップボックス、Blu−rayプレーヤなどのような、任意のタイプのコンピューティングデバイスであってもよい。
[0019]図1の図解例は、メディアプロバイダ102、広告プロバイダ104、データ収集設備105、及びユーザコンピュータ106の各々のうちの1つを含むが、これらのコンポーネントのいずれか又はすべてのうちの任意の数がシステムに含まれてもよい。たとえば、複数のユーザコンピュータ106が複数のメディアプロバイダ102からのメディアにアクセスしてもよい。複数の広告プロバイダ104が、複数のコンテンツプロバイダ102からのコンテンツを有する、提示のための広告を提供してもよい。メディア及び/又は広告と関連付けられるモジュールは、単一のデータ収集設備105、単一のエンティティと関連付けられる複数のデータ収集設備105、及び/又は複数のエンティティと関連付けられる複数のデータ収集設備105にデータを送信してもよい。
[0020]図1のブロック図は、メッセージ108〜120によって示される例示的なメッセージフローをも含む。例示的なメッセージフローは、ユーザコンピュータ106がメディアプロバイダ102に要求(たとえば、ハイパーテキスト転送プロトコル(HTTP)GET要求)を送信すると開始する(メッセージ108)。メッセージ108に応答して、メディアプロバイダ102はユーザコンピュータ106にメディア(たとえば、ウェブページ)を送信する(メッセージ110)。メディアは、ユーザコンピュータ106に、広告プロバイダ104に別の要求を送信させる(メッセージ112)命令(たとえば、IFRAMEにおける素材をロードするための参照)を含む。たとえば、ユーザコンピュータ106は、広告プロバイダ104からの1つ又は複数の広告バナーを要求してもよい。メッセージ112に応答して、広告プロバイダ104はユーザコンピュータ106に要求された広告(たとえば、広告バナー)を送信する(メッセージ114)。いくつかの例において、広告素材が、ユーザコンピュータ106に、データ収集設備105に1つ又は複数のモジュール(たとえば、モジュール107)(たとえば、調査を表示するためのJavaScript)を要求する(メッセージ116)命令を備える。これに応答して、データ収集設備105は、ユーザコンピュータ106に要求されたモジュール107を送信する(メッセージ118)。ユーザコンピュータ106は、たとえば、データ収集設備にデータ(たとえば、調査結果)を送信し返す(メッセージ120)モジュール107を実行する。
[0021]図1のもの以外のメッセージフローが、本明細書に開示される方法及び装置に利用されてもよい。たとえば、モジュールはメッセージ110及び/又はメッセージ114において提供される素材に含まれてもよく、それによって、メッセージ116及び118は送信されない。代替的に、メッセージ116が、データ収集設備105以外の場所からのモジュールを要求してもよい。代替的に、上記のメッセージの任意の組み合わせが利用されてもよい。
[0022]図1は単一のメッセージフローを示しているが、ユーザコンピュータ106及び/又は他のユーザデバイスによって多くのメッセージフローが(たとえば、実質的に同時に)発生し得る。たとえば、本明細書にさらに詳細に説明されるように、メディアプロバイダ102によって提供されるメディアは、複数の広告を含んでもよく、及び/又は参照してもよい。各広告が、モジュール(たとえば、複数の異なるモジュール又は同じモジュールの複数のインスタンス)と関連付けられてもよい。それらのモジュールが同じエンティティ(たとえば、メディア計測エンティティ)と関連付けられるとき、それらのモジュールが通信及び/又は協働することが望ましい場合がある。本明細書に開示される例は、1つ又は複数のモジュールを備えた広告を参照しているが、任意の素材(たとえば、メディア、コンテンツなど)が1つ又は複数のモジュールを備えてもよい。たとえば、コンテンツが、コンテンツの提示を計測するための1つ又は複数のモジュールを備えてもよい。
[0023]図2は、複数のモジュール(たとえば、206、208、212、214)を備えた広告204及び210を含む例示的なウェブページ200の図である。図2の例示的なウェブページは、主要メディア202(たとえば、テキスト、画像、ビデオなど)を含む。
[0024]図解例において、広告204、210の各々が、2つのモジュール206、208及び212、214を含む。各例示的なモジュール対206、208及び212、214内の第1のモジュール206、212は、当該モジュールが関連付けられているそれぞれの広告204、210に関係する調査を生成及び表示する。各例示的なモジュール対206、208及び212、214内の第2の例示的なモジュール212、214は、例示的なモジュール206、212によって利用され得る機能のツールボックスである。明瞭にするために、他のモジュールによって利用されるモジュール(たとえば、モジュール212、214)は、本明細書においてはコンポーネントと称される。コンポーネントは、モジュール、ライブラリ、データベース、データストア、又は、モジュールによって利用され得る任意の他の要素であってもよい。たとえば、コンポーネントは、携帯デバイスを計測するのに使用される機能を含む携帯デバイスツールボックス、パーソナルコンピュータを計測するのに使用される機能を含むパーソナルコンピュータツールボックスなどであってもよい。
[0025]いくつかの事例において、モジュール206、210が互いと通信することが有用であり得る。たとえば、モジュール206は、ユーザから人口学的情報を収集し、モジュール212が同じ情報を要求する必要がないように、その情報をモジュール212に通信することができる。別の例において、モジュール206は、図1のデータ収集設備105と通信するためのデータ送受信機を実装してもよく、モジュール212は、収集されたデータを、データ収集設備105に中継するためにモジュール206に通信してもよい。付加的に又は代替的に、モジュールが資源の共有を促進するために通信することが有利であり得る。たとえば、モジュール206は、ツールボックスのインスタンスをモジュール(コンポーネント)208としてロードしてもよく、モジュール212がモジュール208を利用してモジュール214をロードする必要がないように、モジュール212と通信してもよい。そのような装置は、複数のモジュールをロード及び/又は実行する必要性を低減するため、ハードウェア資源のより効率的な使用であり得る。
[0026]モジュール206の例示的な実装態様が図3に示されている。たとえば、通信、資源共有、及びモジュール間の他の協調を促進するために、図3のブロック図によって示されている例示的なモジュール206は、識別情報生成器302と、コンポーネントローダ304と、通信インターフェース306と、リスナ308と、コンポーネント可用性検査器310とを含む。モジュール206は、メッセージインターフェース320と通信可能に結合されている。
[0027]図解例の識別情報生成器302は、モジュール206のインスタンスと関連付けられるべき一意又は半一意のモジュール識別子を生成する。例示的な識別情報生成器302は、10桁の乱数又は疑似乱数をモジュール識別子として生成する。特に、例示的な識別情報生成器302は、(たとえば、2つの異なるモジュールが同じ乱数を割り当てられることから実質的に同時に実行するのを回避するために)乱数又は疑似乱数のランダムさを増大させるために、乱数又は疑似乱数生成器を複数回実行させる。乱数を生成するための例示的なアルゴリズムが表1に示されている。例示的なアルゴリズムは、2つのモジュールが(特に、複数のモジュールが実質的に同時に乱数を生成する場合がある事例において)同じ乱数を生成し得る可能性を低減する。乱数及び/又はモジュール識別子を生成するための任意の他のアルゴリズムが、代替的に利用されてもよい。

//2つの乱数を有するタイムスタンプを乗算/除算することによって、スクリプトIDを全体を通じてランダム化する(randomize the script id thoroughly by multiplying/dividing thetimestamp with two random numbers)
id = new Date().getTime();
//IDはシードとしてのJSタイムスタンプによって開始する。(id starts with a JS timestamp as seed)
var all_nines = ‘9999999999’;
//Mathが10桁を割る場合、文字列をフィルタリングする(filler string if the Math comes up short of 10 digits)
do { r1 = Math.floor(Math.random() * 500);} while (r1 < 1 || 100 < r1);
//1〜500についてJSrandom() methodが1〜99内に戻るまでループする(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);
//1〜500についてJSrandom() methodが101〜199内に戻るまでループする(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);
//この結果として一般的に10〜12桁になる(this typically results in 10-12 digits)
id = id.toString().substring(0,10);
//トレイリング桁がゼロである場合、タイプが変化した後に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);
//10文字になることを保証するために終わりに9を付け加える(add 9s at the end to guarantee 10 chars)
}
表1−例示的なJavaScript乱数生成アルゴリズム
[0028]図解例のコンポーネントローダ304は、モジュール206によって利用されるべきコンポーネント(たとえば、モジュール208)をロードする。たとえば、コンポーネントローダ304は、モジュール206がコンポーネントによってもたらされる機能にアクセスすることができるように、ユーザコンピュータ106に、特定のコンポーネントのインスタンスをメモリにロードするよう命令してもよい。コンポーネントローダ304は、識別情報生成器302によって生成されるモジュール識別子を、コンポーネントに通信する。たとえば、コンポーネントローダ304は、コンポーネントをロードするときにコンポーネントにモジュール識別子を渡してもよく、及び/又は、通信インターフェース306を介してコンポーネントにモジュール識別子を通信してもよい。下記にさらに詳細に説明されるように、図解例において、モジュール206は、複数のモジュールがメッセージの送受信を行うことができるメッセージインターフェース320を利用してコンポーネントにメッセージを送信する。したがって、モジュール識別子は、コンポーネントが、モジュール206によってコンポーネントに送信されるメッセージを認識することを可能にする。たとえば、コンポーネントは、他のモジュールによって送信されるメッセージを(たとえば、安全、簡潔さなどのために)無視してもよい。
[0029]図3の例示的な通信インターフェース306は、モジュール206をメッセージインターフェース320と通信可能に結合する。図解例によれば、モジュール206は、HTML5のpostMessageアプリケーションプログラミングインターフェースを使用して他のモジュール/コンポーネントと通信する。代替的に、通信インターフェース306は、モジュール206を任意の他のメッセージインターフェース320と通信可能に結合してもよい。
[0030]図解例におけるリスナ308は、他のモジュールからメッセージを受信するために通信インターフェース306を介してメッセージインターフェース320(たとえば、postMessageインターフェース)を監視する。たとえば、リスナ308は、他のモジュール(たとえば、図2のモジュール212)がロードされており、他のモジュールと通信し得ることを検出し得る。たとえば、リスナ308は、他のモジュールがロードされていることの検出に応答して、他のモジュールにメッセージを送信してもよい。メッセージは、モジュール206によってロードされているコンポーネントの他のモジュールに通知し得る。これに応答して、他のモジュールは、コンポーネントのうちの1つ又は複数に対するアクセスを要求し得る。リスナ308は、他のモジュールからモジュール識別子を受信し得、コンポーネントに、他のモジュールからのメッセージについてメッセージインターフェース320を監視させ、したがって、そのようなメッセージに応答するようにさせるために、要求されたコンポーネントにそのモジュール識別子を送信し得る。付加的に又は代替的に、リスナ308は、要求されたモジュールと通信するときに他のモジュールにモジュール206のモジュール識別子を利用するよう命令する、モジュール206のモジュール識別子を含むメッセージを、通信インターフェース306を介してメッセージインターフェース320に対して送信してもよい。リスナ308は、たとえば、モジュール206にデータを通信するメッセージ、モジュール206からのデータを要求するメッセージ、などのような任意の他のメッセージについてメッセージインターフェース320を監視してもよい。
[0031]他のモジュール(たとえば、モジュール212)が、モジュール206がアクセスすることになるコンポーネントをすでにロードしているか否かを判定するために、図解例のコンポーネント可用性検査器310は、通信インターフェース306を介してメッセージインターフェース320(たとえば、postMessageインターフェース)を監視する。他のモジュール(たとえば、モジュール212)がすでにコンポーネント(たとえば、モジュール214)をロードしている場合、コンポーネント可用性検査器310は、当該コンポーネント(たとえば、モジュール214)に対するアクセスを調整するために、他のモジュール(たとえば、モジュール212)と通信する。たとえば、コンポーネント可用性検査器310は、識別情報生成器302からのモジュール識別子を他のモジュール(たとえば、モジュール212)に送信してもよく、当該他のモジュールは、コンポーネント(たとえば、モジュール214)に、当該モジュール識別子を含むメッセージについて監視するよう命令する。付加的に又は代替的に、コンポーネント可用性検査器310は、他のモジュール(たとえば、モジュール212)のモジュール識別子を要求してもよく、通信インターフェース306及び/又は調査コントローラ312に、他のモジュールによってロードされているコンポーネントと通信するときに、他のモジュール(たとえば、モジュール212)のモジュール識別子を利用するよう命令してもよい。他のモジュールのコンポーネントへのアクセスを調整した後、図解例のコンポーネント可用性検査器310は、コンポーネントローダ304が同じコンポーネントをロードするのを止めるか、又は防止する。したがって、モジュールがコンポーネントの単一のインスタンスへのアクセスを調整することによって、処理サイクル、メッセージ使用などが低減され、それによって、基礎となるプロセッサ、メモリ、及び/又は他のハードウェア資源(たとえば、ユーザコンピュータ106のハードウェア資源、データ収集設備105のハードウェア資源など)の効率が増大し、それらに対する負荷が低減する。
[0032]図解例の調査コントローラ312は、モジュール206が関連付けられるメディアとともに提示されるべき調査を生成する。たとえば、モジュール206を広告に埋め込むか又は他の様態で取り付けることによって、広告はモジュールを備えることができる。調査コントローラ312は、識別情報生成器302によって生成される当該調査コントローラのモジュールのモジュール識別子を含むメッセージを、通信インターフェース306を介してメッセージインターフェース320(たとえば、postMessageインターフェース)に送信することによって、他のモジュール/コンポーネントと通信してもよい。調査コントローラ312は、他のモジュール/コンポーネントによって送信されるメッセージをリスナ308から受信してもよく、リスナは、通信インターフェース306を介してメッセージインターフェース320(たとえば、postMessageインターフェース)からメッセージを受信する。
[0033]図3の例において、モジュール206の調査提示機能は、調査コントローラ312によって制御される。代替的に、調査機能は、モジュールの動作を実行するための任意の他の論理、コントローラ、又は機能によって制御されてもよい。たとえば、モジュール206は、オーディオ/ビデオプレーヤ、提示モニタ、動的メディアローダ、又は任意の他のタイプのモジュールであってもよい。言い換えれば、例示のために特定の例が提供されているが、開示されるモジュール通信のための方法及び装置は、任意のタイプのハードウェア及び/又はソフトウェアモジュールを用いて利用されてもよい。
[0034]例示的なメッセージインターフェース320は、複数のモジュールが通信を行うことができるインターフェースをもたらす。たとえば、メッセージインターフェース320は、HTML5のpostMessageアプリケーションプログラミングインターフェース又は任意の他の同様のインターフェースであってもよい。メッセージインターフェース320は、モジュールが複数のドメインにわたって(たとえば、複数の異なるソースドメインからのモジュール)通信することを可能にしてもよく、モジュールがユーザコンピュータにおいて同時にロードされた複数のウェブページにわたって通信することを可能にしてもよい、モジュールが同時にロードされていないウェブページにわたって(たとえば、ウェブページが閉じられた後にメッセージインターフェース320が残っていたとき)通信することを可能にしてもよい、単一のベースウェブページからロードされたモジュール(たとえば、当該ベースウェブページによってロードされたモジュール、及び、等がベースウェブページによってロードされた広告によってロードされたモジュール)への通信を制限してもよい、などである。メッセージインターフェース320は、図7〜図10と併せてさらに詳細に説明される。
[0035]図2のモジュール206を実装する例示的な様式が図3に示されているが、図3に示されている要素、プロセス及び/又はデバイスのうちの1つ又は複数は、組み合わせ、分割、再構成、省略、除外及び/又は任意の他の方法で実装されてもよい。さらに、例示的な識別情報生成器302、例示的なコンポーネントローダ304、例示的な通信インターフェース306、例示的なリスナ308、例示的なコンポーネント可用性検査器310、例示的な調査コントローラ312、及び/又は、より一般的に、図2の例示的なモジュール206は、ハードウェア、ソフトウェア、ファームウェア、並びに/又は、ハードウェア、ソフトウェア、及び/若しくはファームウェアの任意の組み合わせによって実装されてもよい。したがって、たとえば、例示的な識別情報生成器302、例示的なコンポーネントローダ304、例示的な通信インターフェース306、例示的なリスナ308、例示的なコンポーネント可用性検査器310、例示的な調査コントローラ312、及び/又は、より一般的に、図2の例示的なモジュール206のいずれかは、1つ若しくは複数の回路、プログラム可能プロセッサ、特定用途向け集積回路(ASIC)、プログラム可能論理デバイス(PLD)、及び/又はフィールドプログラマブル論理デバイス(FPLD)などによって実装されてもよい。純粋なソフトウェア及び/又はファームウェア実施態様を包含するように本特許の装置又はシステム特許請求項のいずれかを読み解くとき、例示的な識別情報生成器302、例示的なコンポーネントローダ304、例示的な通信インターフェース306、例示的なリスナ308、例示的なコンポーネント可用性検査器310、例示的な調査コントローラ312、及び/又は、より一般的に、図2の例示的なモジュール206のうちの少なくとも1つは、本明細書において、ソフトウェア及び/又はファームウェアを記憶するメモリ、DVD、CD、Blu−rayなどのような有形コンピュータ可読記憶デバイス又は記憶ディスクを含むように明示的に定義される。さらにまた、図2の例示的なモジュール206は、図3に示されているものに加えて、又は図3に示されているものに代えて、1つ若しくは複数の要素、プロセス及び/若しくはデバイスを含んでもよく、並びに/又は、示されている要素、プロセス及びデバイスのいずれか又はすべての2つ以上を含んでもよい。
[0036]図2及び/又は図3のモジュール206を実装するための例示的な機械可読命令を表す流れ図が図4に示されている。この例において、機械可読命令は、図12に関連して下記に論じられる例示的なプロセッサプラットフォーム1200に示されているプロセッサ1212のようなプロセッサによって実行するためのプログラムを含む。プログラムは、CD−ROM、フロッピーディスク、ハードドライブ、デジタル多用途ディスク(DVD)、Blu−rayディスク、又はプロセッサ1212と関連付けられるメモリのような有形コンピュータ可読記憶媒体に記憶されるソフトウェアにおいて具現化されてもよいが、プログラム全体及び/又はプログラムの一部は、代替的に、プロセッサ1212以外のデバイスによって実行され、及び/又は、ファームウェア若しくは専用ハードウェアにおいて具現化されてもよい。さらに、例示的なプログラムが図4に示されている流れ図を参照して説明されるが、図2及び/又は図3の例示的なモジュール206を実装する多くの他の方法が代替的に使用されてもよい。たとえば、ブロックの実行の順序は変更されてもよく、及び/又は、説明されているブロックのいくつかは、変更、除外、若しくは組み合わせされてもよい。
[0037]上記で言及されたように、図4の例示的なプロセスは、ハードディスクドライブ、フラッシュメモリ、読み出し専用メモリ(ROM)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、キャッシュ、ランダムアクセスメモリ(RAM)、及び/又は、任意の継続時間にわたって(たとえば、長期間にわたって、永続的に、短い瞬間にわたって、情報の一時的なバッファリングのために、及び/又はキャッシングのために)情報が記憶される任意の他の記憶デバイス若しくは記憶ディスクのような、有形コンピュータ可読記憶媒体に記憶される符号化命令(たとえば、コンピュータ及び/又は機械可読命令)を使用して実装されてもよい。本明細書において使用される場合、有形コンピュータ可読記憶媒体という用語は、任意のタイプのコンピュータ可読記憶デバイス及び/又は記憶ディスクを含み、伝搬信号を除外するように明示的に定義される。本明細書において使用される場合、「有形コンピュータ可読記憶媒体」及び「有形機械可読記憶媒体」は交換可能に使用される。付加的に又は代替的に、図4の例示的なプロセスは、ハードディスクドライブ、フラッシュメモリ、読み出し専用メモリ、コンパクトディスク、デジタル多用途ディスク、キャッシュ、ランダムアクセスメモリ、及び/又は、任意の継続時間にわたって(たとえば、長期間にわたって、永続的に、短い瞬間にわたって、情報の一時的なバッファリングのために、及び/又はキャッシングのために)情報が記憶される任意の他の記憶デバイス若しくは記憶ディスクのような、持続性コンピュータ及び/又は機械可読媒体に記憶される符号化命令(たとえば、コンピュータ及び/又は機械可読命令)を使用して実装されてもよい。本明細書において使用される場合、持続性コンピュータ可読媒体という用語は、任意のタイプのコンピュータ可読デバイス又はディスクを含み、伝搬信号を除外するように明示的に定義される。本明細書において使用される場合、「少なくとも」という語句が特許請求項のプリアンブルにおいて移行用語として使用されている場合、この語句は、「備える(comprising)」という用語が非限定であるのと同じように、非限定である。
[0038]図4のプログラムは、識別情報生成器302がモジュール206のモジュール識別子を生成すると開始する(ブロック402)。識別情報生成器302はまた、通信インターフェース306を介してメッセージインターフェース320にメッセージを送信することによって、他のモジュールにも当該モジュール識別子を告知することができる。したがって、他のモジュールは、モジュール206のロード及び存在を認識するようにされ得る。
[0039]その後、コンポーネント可用性検査器310が、任意の他のモジュールがロードされるか否かを判定する(ブロック404)。たとえば、コンポーネント可用性検査器310は、他のモジュールが当該他のモジュールの存在を告知したか否かを判定するために、通信インターフェース306を介してメッセージインターフェース320を検査してもよい。他のモジュールが検出されないとき、コンポーネントローダ304がモジュール206によって利用されるコンポーネントをロードする(ブロック406)。たとえば、コンポーネントローダ304は、モジュール206がその動作中に使用することになる1つ又は複数のコンポーネントをロードしてもよい。その後、制御はブロック412に進む。
[0040]コンポーネント可用性検査器310によって1つ又は複数の他のモジュールが検出されるとき(ブロック404)、コンポーネント可用性検査器310は、モジュール206によって利用される1つ又は複数のコンポーネントが、1つ又は複数の他のモジュールによってすでにロードされているか否かを判定する(ブロック408)。モジュール206によって利用される1つ又は複数のコンポーネントが1つ又は複数の他のモジュールによってロードされていないとき、コンポーネントローダ304は、モジュール206によって利用されるコンポーネントをロードする(ブロック406)。その後、制御はブロック412に進む。
[0041]モジュール206によって利用される1つ又は複数のコンポーネントが1つ又は複数の他のモジュールによってロードされている場合(ブロック408)、コンポーネント可用性検査器310は、1つ又は複数のコンポーネントに対するアクセスを要求する(ブロック410)。たとえば、コンポーネント可用性検査器310は、通信インターフェース306を介して1つ又は複数の他のモジュールにメッセージを送信してもよい。メッセージは、モジュール206のモジュール識別子及び/又はアクセスされるべきコンポーネントの識別情報を含むことができる。1つ又は複数の他のモジュールは、ブロック414と併せて下記に説明されるように、モジュール206の1つ又は複数のコンポーネントへのアクセスを可能にし得る。図4の例は、モジュール206が、以前にロードされているコンポーネントを利用するか、又はコンポーネントをロードするかのいずれかであることを示しているが、モジュール206は、代替的に、何らかの以前にロードされているコンポーネントを利用してもよく、付加的に、他のモジュールによって以前にロードされなかった何らかのコンポーネントをロードしてもよい。言い換えれば、ブロック408は、モジュール206によって利用されるべきコンポーネントごとに実行されてもよく、ブロック410は、以前にロードされているコンポーネントごとに実行されてもよく、ブロック406は、以前にロードされていない各モジュールをロードするために実行されてもよい。たとえば、ブロック406、408、及び410は、モジュール206がロードすることを所望するコンポーネントごとに一度再実行するためにループ状に配置されてもよい。
[0042]コンポーネントへのアクセスを要求した(ブロック410)後及び/又はコンポーネントをロードした(ブロック406)後、リスナ308が、他のモジュールがロードされているか否かを判定する(ブロック412)。たとえば、リスナ308は、他のモジュールがロードしたことを告知する、他のモジュールからのメッセージを検出するために、メッセージインターフェース320を監視する。付加的に又は代替的に、リスナ308は、他のモジュールが、コンポーネントローダ304によってすでにロードされているコンポーネントへのアクセスを要求していることを検出してもよい。
[0043]別の(第2の)モジュールが検出されたとき(ブロック412)、リスナ308が、第2のモジュールを、コンポーネントローダ304によってロードされている1つ又は複数のコンポーネントと関連付ける(ブロック414)。図5と併せて説明されるように、リスナ308は、第2のモジュールのモジュール識別子を、モジュール206によってロードされている1つ又は複数のコンポーネントに送信することによって、第2のモジュールを1つ又は複数のコンポーネントと関連付けることができる。たとえば、モジュール206によってロードされている1つ又は複数のコンポーネントは、コンポーネントが第2のモジュールからのメッセージをリスンすべきであるという命令とともにモジュール206が第2のモジュールのモジュール識別子を1つ又は複数のコンポーネントに送信するまで、第2のモジュールのモジュール識別子によって識別されるメッセージをリスンしなくてもよい。付加的に又は代替的に、図6と併せて説明されるように、リスナ308は、第2のモジュールに、1つ又は複数のコンポーネントと通信するときに、モジュール206と関連付けられているモジュール識別子を使用するよう命令することによって、第2のモジュールを1つ又は複数のコンポーネントと関連付けてもよい。第2のモジュールを1つ又は複数のコンポーネントと関連付けた後、制御はブロック416に進む。
[0044]他のモジュールがロードされていないとき(ブロック412)及び/又は第2のモジュールを1つ又は複数のコンポーネントと関連付けた後(ブロック414)、調査コントローラ312が調査を提示する(ブロック416)。たとえば、調査は、ブロック412及び414の直後に提示されてもよい、ブロック412及び414と平行して提示されてもよい、一定時間が経過し、他のモジュールが検出されなくなった後に提示されてもよい、などである。例示的なモジュール206は調査を提示するが、任意の他の動作又は機能が、付加的に又は代替的に、モジュール206によって実施されてもよい。言い換えれば、ブロック402〜414と関連付けられるプログラムは、任意のタイプのモジュールによって実施されてもよい。たとえば、調査の提示に加えて、又は調査の提示に代えて、モジュール206は、受信データを収集設備に送信してもよい(たとえば、他のモジュールから受信されるデータ、コンポーネントから受信されるデータなど)、モジュール206は、他の視聴者測定動作(たとえば、コンテンツ提示の計測、広告提示の計測、オーディオ及び/又はビデオ提示の計測など)を実施してもよい、などである。
[0045]図4の例示的なプログラムは、モジュールの動作を実施しながら(ブロック416)、引き続き、他のモジュールがロードされるかについて検査する(ブロック412)。図4の流れ図はブロック412及び416が順次実施されることを示しているが、これらのブロックは並行して又は実質的に並行して実施されてもよい。したがって、モジュール206は、他のモジュールについて監視し、他のモジュールにモジュール206によってロードされるコンポーネントへのアクセスを与えながら、その特定の動作を実施してもよい。
[0046]図5及び図6は、モジュール206のリスナ308が第2のモジュールをモジュール206によってロードされるコンポーネントと関連付け得る2つの異なる様式を示す例示的なメッセージ図である。一般的に、図5は、図3のリスナ308が、コンポーネントに第2のモジュールのモジュール識別子を通知することを示しており、図6は、リスナ308が、第2のモジュールに、コンポーネントとの通信に使用するためのモジュール206のモジュール識別子を通知することを示している。
[0047]メッセージ502〜514は図5及び図6の両方に見られるが、冗長性を低減するために一度だけ説明される。メッセージ502〜514は、例示的な通信シナリオを示し、他の通信シナリオの可能性がある。
[0048]図5及び図6の例示的なメッセージは、区切り文字(たとえば、「|」)がその後に続くモジュール識別子としてフォーマット化され、その後にメッセージタイプ(たとえば、メッセージの目的、機能などの1語の記述子)、及びメッセージペイロード(例を挙げると、たとえばセミコロンによって区切られる値のリスト)が続く。メッセージの一例としては、「8912589713|DATA|BROWER=MOZILLA; TS=201302080724; DOMAIN=SAMPLE.COM; PAGE=NEWS.HTML」である。メッセージは、モジュール206及び他のモジュールにとって利用可能であるメッセージインターフェース320(たとえば、postMessageインターフェース)に投稿される。代替的に、任意の他のメッセージフォーマットが利用されてもよい。
[0049]図5及び図6のメッセージ図は、第1のモジュール(たとえば、モジュール206)がロードされ、メッセージ502を送信することによって当該モジュール自体をメッセージインターフェース320に告知すると開始する。たとえば、識別子生成器302がモジュール識別子を生成して、当該モジュール識別子を有する告知メッセージ502をメッセージインターフェース320に送信してもよい。第1のモジュール(たとえば、コンポーネント可用性検査器310)は、メッセージインターフェースにある任意の他のメッセージを検討することによって、他のモジュールがロードされていないと判定し得る(たとえば、他のモジュールがロードされたと告知していない場合、第1のモジュールは他のモジュールが現在ロードされていないと判定し得る)。図解例によれば、第1のモジュールは、他のモジュールはロードされておらず、したがって、コンポーネントはロードされていないと判定する。したがって、第1のモジュールはコンポーネントをロードする504。
[0050]続いて、第1のモジュール(たとえば、調査コントローラ312)がその後、第1のモジュールのモジュール識別子を含むメッセージ506をメッセージインターフェース302に送信する。たとえば、メッセージは、コンポーネントから何らかの情報(たとえば、第1のモジュールの実行と関連付けられるコンピュータのネットワークアドレス)を求める要求であってもよい。コンポーネントは、メッセージインターフェースを(たとえば、新たなメッセージを警告されるために登録し、ただしメッセージインターフェース320からのメッセージを定期的に要求することなどによって)監視しており、したがって、メッセージインターフェース320からメッセージ506を取り出す508。コンポーネントは、要求された情報を含むメッセージ510をメッセージインターフェース320に送信する。たとえば、コンポーネントからのメッセージは、コンポーネントの一意又は半一意の識別子(たとえば、モジュール識別子)を含んでもよい。第1のモジュール(たとえば、リスナ308)は、メッセージインターフェース320を監視しており、したがってメッセージの投稿を検出し(510)、メッセージインターフェース320からメッセージ510を取り出す512。第1のモジュールとコンポーネントとの間の単一の往復通信が示されているが、多くの他の通信が行われてもよい。
[0051]第1のモジュールがロードされてからいくらかの時間の後、又は、第1のモジュールのロードと実質的に同時に、第2のモジュール(たとえば、図2のモジュール212)がロードされ、当該第2のモジュールの存在をメッセージインターフェースに告知するメッセージ514を(たとえば、当該第2のモジュールのそれぞれの識別情報生成器302によって)送信する。第2のモジュールは(たとえば、第2のモジュールのそれぞれのコンポーネント可用性検査器310を介して)、同時に、メッセージインターフェースにある他のメッセージを取り出し試験することによって、他のモジュールがロードされたことを判定し得る。図解例によれば、第2のモジュールは、第1のモジュールがロードされていることを発見する。したがって、第2のモジュールは、第1のモジュールによってすでにロードされている1つ又は複数のコンポーネントをロードしない。たとえば、第1のモジュールが、第1のモジュールによってロードされているコンポーネントを示すメッセージをメッセージインターフェースに投稿していてもよい、第2のモジュールが、第1のモジュールによって利用されているコンポーネントを知っていてもよい、第2のモジュールが、第1のモジュールによってロードされているコンポーネントのリストを要求するメッセージを第1のモジュールに送信してもよい、などである。
[0052]図5の例によれば、第2のモジュールがその存在を告知した後、第1のモジュール(たとえば、リスナ308)は、第2のモジュールからメッセージインターフェースに投稿された告知メッセージ514を検出する。これに応答して、第1のモジュール(たとえば、リスナ308)は、コンポーネントが第2のモジュールからのメッセージのリスンを開始すべきであることを示すメッセージ516をメッセージインターフェースに送信する。代替的に、リスナ308は、第2のモジュールからコンポーネントへのアクセスを求める要求を待ってもよい。例示的なメッセージ516は、第1のモジュールのモジュール識別子によって識別され、当該メッセージのペイロード内に、第2のモジュールと関連付けられるモジュール識別子を含む(たとえば、第2のモジュールのモジュール識別子は、第1のモジュールのリスナ308によってメッセージ514から取り出されてもよい)。メッセージインターフェースを監視している第2のモジュールは(たとえば、そのそれぞれのコンポーネント可用性検査器310を介して)は、メッセージ516を取り出し518、コンポーネントが第2のモジュールの存在を通知されており、したがって、第2のモジュールが、第2のモジュールのモジュール識別子を利用してコンポーネントとの通信を開始することができると判定する。メッセージ518より前に、メッセージ518より後に、又はメッセージ518とほぼ同時に、コンポーネントは第1のモジュールからメッセージ516を受信し520、この時点でコンポーネントが第2のモジュールのモジュール識別子をラベリングされているメッセージをリスンすべきであることを記録する。
[0053]したがって、第2のモジュール(たとえば、第2のモジュールの調査コントローラ312又は第2のモジュールの別のコンポーネント)は、コンポーネントに対する要求メッセージ522をメッセージインターフェースに送信する。要求メッセージ522は、第2のモジュールのモジュール識別子を含む。コンポーネントは、その時点で第2のモジュールのモジュール識別子を含むメッセージをリスンしているため、メッセージ522を検出し、要求メッセージ522を取り出す524。コンポーネントは、要求メッセージ522に対する応答を生成し、メッセージインターフェースに応答メッセージ526を送信する。第2のモジュール(たとえば、リスナ308)は、メッセージに対する応答を取り出す528。
[0054]図6は、第2のモジュールがコンポーネントにアクセスすることを可能にするために、図5に示されているようにコンポーネントに第2のモジュールを通知するのではなく、第1のモジュールがそのモジュール識別子を第2のモジュールと共有することを示す。図6の例によれば、第2のモジュールがその存在をメッセージ514内で告知した後、第1のモジュール(たとえば、リスナ308)は、第2のモジュールから告知メッセージ514を検出する。これに応答して、第1のモジュール(たとえば、リスナ308)は、第2のモジュールがコンポーネントと通信するために第1のモジュールのモジュール識別子を利用するべきであることを示すメッセージ602をメッセージインターフェースに送信する。たとえば、メッセージ602は、コンポーネントの可用性に関する情報、コンポーネントの機能に関する情報、及び/又は第2のモジュールによって利用され得る任意の他の情報とともに、第1のモジュールのモジュール識別子を使用させる命令を含んでもよい。メッセージインターフェースを監視している第2のモジュールは(たとえば、コンポーネント可用性検査器310)は、メッセージ602を取り出し604、任意の関連コンポーネント(たとえば、コンポーネントローダ304及び/又は調査コントローラ312)に、コンポーネントがすでにロードされており、第1のモジュールから受信されるモジュール識別子を使用してアクセスすることができると通知する。
[0055]したがって、第2のモジュール(たとえば、第2のモジュールの調査コントローラ312又は第2のモジュールの別のコンポーネント)は、コンポーネントに対する要求メッセージ606をメッセージインターフェースに送信する。要求メッセージ606は、第1のモジュールのモジュール識別子を含む。コンポーネントは、第1のモジュールのモジュール識別子を含むメッセージをリスンしているため、メッセージ606を検出し、要求メッセージ606を取り出す608。コンポーネントは、要求メッセージ606に対する応答を生成し、メッセージインターフェースに応答メッセージ610を送信する。第2のモジュール(たとえば、リスナ308)は、メッセージに対する応答を取り出す612。
[0056]したがって、図5及び図6の両方において、第2のモジュールは、第2のコンポーネントがコンポーネントの第2のインスタンスをロードすることなくコンポーネントと通信することが可能である。したがって、コンポーネントの第2のインスタンスをロードするのに必要とされる処理及びメモリ資源の利用が回避される。
[0057]図7は、図3のメッセージインターフェース320の例示的な実装態様のブロック図である。例示的なメッセージインターフェース320は、メッセージ受信機702と、データストア704と、要求インターフェース706とを含む。例示的なメッセージインターフェース320は、モジュール/コンポーネントからメッセージを受信し、それらのメッセージを他のモジュール/コンポーネントにとって利用可能にする。したがって、メッセージインターフェース320は、モジュール/コンポーネントの間の相互通信を促進する。たとえば、ほとんどのウェブブラウザセキュリティ制約は、モジュール/コンポーネント間のクロスドメイン相互作用を防止するが、メッセージインターフェースは、メッセージを、第1のドメインと関連付けられる第1のモジュールによって投稿することができ、第2のドメインと関連付けられる第2のモジュールによって取り出すことができるリポジトリを提供し得る。
[0058]例示的なメッセージインターフェース320は、単一のウェブページインスタンスと関連付けられるモジュール間での通信を可能にする。たとえば、第1のウェブページは、コンテンツと関連付けられるモジュール、1つ又は複数の広告と関連付けられるモジュールなどを含んでもよく、メッセージインターフェース320は、他のウェブページ(たとえば、他のウィンドウにおいてロードされているウェブページ)と関連付けられるモジュールが第1のウェブページからのモジュールと通信することを防止しながら、ウェブページと関連付けられるモジュールが通信することを可能にしてもよい。言い換えれば、メッセージインターフェース320のインスタンスは、ウェブページインスタンスごとにインスタンス化されてもよい。代替的に、任意の他の構成が利用されてもよい。たとえば、メッセージインターフェース320は、ユーザコンピュータ上で実行しているすべてのウェブページからモジュール間での通信を可能にしてもよい、ユーザコンピュータにある特定のウェブブラウザ内のウェブページのすべてのモジュール間、単一のソース(たとえば、単一のデータ収集設備、(たとえば、ドメイン名によって関連付けられる)単一のエンティティと関連付けられた複数のデータ収集設備からのすべてのモジュール間での通信を可能にしてもよい、などである。
[0059]図7の例示的なメッセージインターフェース320のメッセージ受信機702は、モジュール/コンポーネントからメッセージを受信し、メッセージをデータストア704に記憶する。メッセージ受信機702は、メッセージを(たとえば、タイムスタンプを付すことによって、メッセージをメッセージタイプ、メッセージソースなどによってグループ化することによってなどで)変換することができる。メッセージ受信機702は、付加的に、要求インターフェース706にメッセージの受信を警告することができる(たとえば、要求受信機706が、イベントの通知について登録されているモジュール/コンポーネントに通知を送信するように設定されている場合)。
[0060]図解例のデータストア704は、メモリ(たとえば、ユーザコンピュータ106のメモリ)内の場所である。付加的に又は代替的に、任意の他のタイプの記憶装置がデータストア704を実装してもよい。データストア704は、メッセージが投稿され、受信された順に記憶される伝言板のように動作することができる。代替的に、メッセージは、グループ化、カテゴリ化、バンドルなどされてもよい。メッセージは、データベースのような構造に記憶されてもよい、文字列のリストとして記憶されてもよい、などである。
[0061]要求インターフェース706は、何のメッセージが投稿されているかを知りたいモジュール/コンポーネントに対して、データストア704ニアのメッセージへのアクセスを提供する。たとえば、モジュール/コンポーネントからの要求に応答して、要求インターフェース706は、モジュール/コンポーネントからの最後の要求以来新たに投稿されたメッセージを送信してもよい。他の例において、要求インターフェース706は、クエリを指定する要求(たとえば、特定のモジュール識別子を用いて識別されるメッセージを求める要求)を受信してもよく、一致するメッセージを取り出して要求しているモジュール/コンポーネントに当該メッセージを送信してもよい。別の例において、要求インターフェース706は、特定のイベントが発生したときはいつでも(たとえば、メッセージが特定のモジュール識別子から投稿されたときはいつでも)モジュール/コンポーネントが通知されるべきであることを指定するイベント要求を受信してもよい。代替的に、メッセージを取り出すための上記又は他の方法の任意の組み合わせが利用されてもよい。
[0062]図3のメッセージインターフェース302を実装する例示的な様式が図7に示されているが、図7に示されている要素、プロセス及び/又はデバイスのうちの1つ又は複数は、組み合わせ、分割、再構成、省略、除外及び/又は任意の他の方法で実装されてもよい。さらに、例示的なメッセージ受信機702、例示的なデータストア704、例示的な要求インターフェース706、及び/又は、より一般的に、図3の例示的なメッセージインターフェース320は、ハードウェア、ソフトウェア、ファームウェア、並びに/又は、ハードウェア、ソフトウェア、及び/若しくはファームウェアの任意の組み合わせによって実装されてもよい。したがって、たとえば、例示的なメッセージ受信機702、例示的なデータストア704、例示的な要求インターフェース706、及び/又は、より一般的に、図3の例示的なメッセージインターフェース320のいずれかは、1つ若しくは複数の回路、プログラム可能プロセッサ、特定用途向け集積回路(ASIC)、プログラム可能論理デバイス(PLD)、及び/又はフィールドプログラマブル論理デバイス(FPLD)などによって実装されてもよい。純粋なソフトウェア及び/又はファームウェア実装態様を包含するように本特許の装置又はシステム特許請求項のいずれかを読み解くとき、例示的なメッセージ受信機702、例示的なデータストア704、例示的な要求インターフェース706、及び/又は、より一般的に、例示的なメッセージインターフェース320のうちの少なくとも1つは、本明細書において、ソフトウェア及び/又はファームウェアを記憶するメモリ、DVD、CD、Blu−rayなどのような有形コンピュータ可読記憶デバイス又は記憶ディスクを含むように明示的に定義される。さらにまた、図7の例示的なメッセージ受信機320は、図7に示されているものに加えて、又は図7に示されているものに代えて、1つ若しくは複数の要素、プロセス及び/若しくはデバイスを含んでもよく、並びに/又は、示されている要素、プロセス及びデバイスのいずれか又はすべての2つ以上を含んでもよい。
[0063]図3及び/又は図7のメッセージインターフェース320を実装するための例示的な機械可読命令を表す流れ図が図8〜図10に示されている。これらの例において、機械可読命令は、図12に関連して下記に論じられる例示的なプロセッサプラットフォーム1200に示されているプロセッサ712のようなプロセッサによって実行するための1つ又は複数のプログラムを含む。プログラムは、CD−ROM、フロッピーディスク、ハードドライブ、デジタル多用途ディスク(DVD)、Blu−rayディスク、又はプロセッサ1212と関連付けられるメモリのような有形コンピュータ可読記憶媒体に記憶されるソフトウェアにおいて具現化されてもよいが、プログラム全体及び/又はプログラムの一部は、代替的に、プロセッサ1212以外のデバイスによって実行され、及び/又は、ファームウェア若しくは専用ハードウェアにおいて具現化されてもよい。さらに、例示的なプログラムが図8〜図10に示されている流れ図を参照して説明されるが、図3及び/又は図7の例示的なメッセージインターフェース320を実装する多くの他の方法が代替的に使用されてもよい。たとえば、ブロックの実行の順序は変更されてもよく、及び/又は、説明されているブロックのいくつかは、変更、除外、若しくは組み合わせされてもよい。
[0064]上記で言及されたように、図8〜図10の例示的なプロセスは、ハードディスクドライブ、フラッシュメモリ、読み出し専用メモリ(ROM)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、キャッシュ、ランダムアクセスメモリ(RAM)、及び/又は、任意の継続時間にわたって(たとえば、長期間にわたって、永続的に、短い瞬間にわたって、情報の一時的なバッファリングのために、及び/又はキャッシングのために)情報が記憶される任意の他の記憶デバイス若しくは記憶ディスクのような、有形コンピュータ可読記憶媒体に記憶される符号化命令(たとえば、コンピュータ及び/又は機械可読命令)を使用して実装されてもよい。本明細書において使用される場合、有形コンピュータ可読記憶媒体という用語は、任意のタイプのコンピュータ可読記憶デバイス及び/又は記憶ディスクを含み、伝搬信号を除外するように明示的に定義される。本明細書において使用される場合、「有形コンピュータ可読記憶媒体」及び「有形機械可読記憶媒体」は交換可能に使用される。付加的に又は代替的に、図8〜図10の例示的なプロセスは、ハードディスクドライブ、フラッシュメモリ、読み出し専用メモリ、コンパクトディスク、デジタル多用途ディスク、キャッシュ、ランダムアクセスメモリ、及び/又は、任意の継続時間にわたって(たとえば、長期間にわたって、永続的に、短い瞬間にわたって、情報の一時的なバッファリングのために、及び/又はキャッシングのために)情報が記憶される任意の他の記憶デバイス若しくは記憶ディスクのような、持続性コンピュータ及び/又は機械可読媒体に記憶される符号化命令(たとえば、コンピュータ及び/又は機械可読命令)を使用して実装されてもよい。本明細書において使用される場合、持続性コンピュータ可読媒体という用語は、任意のタイプのコンピュータ可読デバイス又はディスクを含み、伝搬信号を除外するように明示的に定義される。本明細書において使用される場合、「少なくとも」という語句が特許請求項のプリアンブルにおいて移行用語として使用されている場合、この語句は、「備える(comprising)」という用語が非限定であるのと同じように、非限定である。
[0065]図8のプログラムは、例示的なメッセージインターフェース320のメッセージ受信機702がモジュール又はコンポーネントからメッセージを受信すると開始する(ブロック802)。メッセージインターフェース320は、メッセージをデータストア704に記憶する(ブロック804)。
[0066]図9のプログラムは、例示的なメッセージインターフェース320の要求受信機706がモジュール又はコンポーネントからクエリを受信すると開始する(ブロック902)。たとえば、クエリは、特定のモジュール識別子を用いて識別されるメッセージを要求してもよい。要求受信機706は、一致するメッセージをデータストア704から取り出す(ブロック904)。その後、要求受信機706は、最初の要求を送信したモジュール又はコンポーネントに、一致するメッセージを送信する(ブロック906)。
[0067]図10のプログラムは、例示的なメッセージインターフェース320の要求受信機706がモジュール又はコンポーネントからイベント要求を受信すると開始する(ブロック1002)。たとえば、イベント要求は、特定の基準に一致するメッセージがメッセージインターフェース320に投稿されたときはいつでも、モジュール又はコンポーネントに通知するよう要求してもよい。その後、要求受信機は、イベントに一致するメッセージが検出されたか否かを判定する(ブロック1004)。たとえば、メッセージ受信機706は、メッセージ受信機702から新たなメッセージの通知を受信し、イベント要求において指定されている基準に照らしてメッセージを検査することによって、一致するイベントが検出されたか否かを判定してもよい。付加的に又は代替的に、要求受信機706は、イベント要求において指定されている基準に一致するメッセージを求めてデータストア704をポーリングしてもよい。要求受信機706がイベント要求に一致するメッセージを識別しないとき、要求受信機706は、一致するイベントを求めて監視を継続する。要求受信機706が一致するイベントを識別すると、要求受信機706は、最初の要求を送信したモジュール/コンポーネントに、イベントと関連付けられるメッセージを送信する。図解例によれば、さらなるイベントを求めて監視を継続するために、制御はブロック1004に戻る。代替的に、図10のプログラムは、イベントが発見された後に終了してもよい(たとえば、モジュール/コンポーネントが別の通知を望んだ場合、別の要求を送信してもよい)。
[0068]図11は、メディアを提示及び追跡するための例示的なシステム1100のブロック図である。例示的なシステム1100は、メディアプロバイダ1102と、2つの広告プロバイダ1104A及び1104Bと、データ収集設備1106と、ユーザコンピュータ1108とを含む。図解例のシステム1100は、ユーザコンピュータ1108が、1つ又は複数のネットワークによってメディアプロバイダ1102、広告プロバイダ1104A及び1104B、並びにデータ収集設備1106に通信可能に結合されている、インターネットに基づくシステムである。1つ又は複数のネットワーク(又は他のネットワーク)はまた、メディアプロバイダ1102、広告プロバイダ1104A及び1104B並びにデータ収集設備1106のいずれかをも通信可能に結合してもよい。システム1100は代替的に、インターネットに基づくシステムでなくてもよく、任意の他の環境において実装されてもよい。
[0069]メディアプロバイダ1102は図1のメディアプロバイダ102と同様であり、広告プロバイダ1104A及び1104は図1の広告プロバイダ104と同様であり、データ収集設備1106は図1のデータ収集設備1105と同様であり、ユーザコンピュータ1108は図1のユーザコンピュータ106と同様である。したがって、これらの構成要素の説明は、冗長性を低減するために繰り返されない。
[0070]図1のブロック図は、メッセージ1108〜1130によって示される例示的なメッセージフローを含む。例示的なメッセージフローは、ユーザコンピュータ1108がメディアプロバイダ1102に要求(たとえば、ハイパーテキスト転送プロトコル(HTTP)GET要求)を送信すると開始する(メッセージ1108)。メッセージ1108に応答して、メディアプロバイダ1102はユーザコンピュータ1108にウェブページ(又は任意の他のメディア)を送信する(メッセージ1110)。ウェブページは、2つの広告に対する参照を含む。広告に対する参照が、ユーザコンピュータ1106に、広告プロバイダ1104A(メッセージ1112)及び広告プロバイダ1104B(メッセージ1116)に要求を送信させる。メッセージ1112及び1116に応答して、広告プロバイダ1104A及び広告プロバイダ1104Bは、それぞれメッセージ1114及び1118において、ユーザコンピュータ1108に要求された広告を送信する。広告は命令を備え、この命令によって、ユーザコンピュータ1108はデータ収集設備1106に、メッセージ1120を介して広告プロバイダ1104Aからの広告用のモジュール1132を要求し、メッセージ1124を介して広告プロバイダ1104Bを要求する。
[0071]メッセージ1120及び1124に応答して、データ収集設備1106は、それぞれメッセージ1122及び1126を介して、ユーザコンピュータ1108に要求されたモジュール1132、1134を送信する。図解例によれば、モジュール1132は、広告プロバイダ1104Aからの広告の提示を計測し、モジュール1134は、広告プロバイダ1104Bからの広告の提示を計測する。付加的に又は代替的に、モジュール1132及び1134のうちの一方又は他のモジュールがまた、ウェブページのコンテンツの提示、ウェブページと視聴者との相互作用、又は任意の他の動作を計測してもよい。
[0072]ユーザコンピュータ1108は、モジュール1132及び1134を実行する。本明細書に開示される方法及び装置を使用して、モジュール1132及び1134は、互いの存在を認識させられ、実行を調整する。特に、モジュール1134は、モジュール1132及び1134の両方を代表してデータ収集設備に計測データを送信するように選択される。したがって、モジュール1132は、本明細書に開示される通信方法及び装置を利用して、メッセージ1128において収集された計測データをモジュール1134に与える。モジュール1134は、メッセージ1130においてモジュール1132からの計測データ及びモジュール1134からの計測データをデータ収集設備に送信する。
[0073]両方のモジュールからデータ収集設備へのデータの通信を調整することによって、データ収集設備に送信される別個のメッセージの数を低減することができ、これによって、そのようなメッセージを受信するデータ収集設備のサーバに対する負荷が低減する。さらに、データ収集設備への共有接続を利用することによって、別個のモジュールからのデータを関連付けることに利点を実現することができる。たとえば、ウェブページが複数の広告を含み、当該広告の各々が、当該広告を計測するモジュール、及び、可能性としてウェブページのコンテンツを計測するためのモジュールを含むとき、本明細書に開示されるようにモジュールの通信を調整し、(たとえば、単一のメッセージにおいて計測データを送信することによって、計測データを単一のソースから入ってくるものとしてラベリングするモジュールを送信することによってなどで)様々なモジュールからの計測データを関連付けられる通信を送信することによって、広告及びコンテンツの提示をリンクさせることができる。言い換えれば、データ収集設備は、たとえコンテンツ及び広告がすべて異なるソースから入っている場合があるとしても、広告及びコンテンツがともに提示されたと、より容易に判定することができる。
[0074]図12は、図2のモジュール206を実装するために図4、図8、図9及び/又は図10の命令を実行することが可能な例示的なプロセッサプラットフォーム1200のブロック図である。プロセッサプラットフォーム1200は、たとえば、サーバ、パーソナルコンピュータ、携帯デバイス(たとえば、携帯電話、スマートフォン、iPad(登録商標)のようなタブレット)、携帯情報端末(PDA)、インターネット家電、DVDプレーヤ、CDプレーヤ、デジタルビデオレコーダ、Blu−rayプレーヤ、ゲーミングコンソール、パーソナルビデオレコーダ、セットトップボックス、又は任意の他のタイプのコンピューティングデバイスとすることができる。
[0075]図解例のプロセッサプラットフォーム1200はプロセッサ1212を含む。図解例のプロセッサ1212は、ハードウェアである。たとえば、プロセッサ1212は、任意の所望のファミリ又は製造者からの1つ若しくは複数の集積回路、論理回路、マイクロプロセッサ又はコントローラによって実装することができる。
[0076]図解例のプロセッサ1212はローカルメモリ1213(たとえば、キャッシュ)を含む。図解例のプロセッサ1212は、バス1218を介して、揮発性メモリ1214及び不揮発性メモリ1216を含む主記憶装置と通信する。揮発性メモリ1214は、同期型ダイナミックランダムアクセスメモリ(SDRAM)、ダイナミックランダムアクセスメモリ(DRAM)、RAMBUSダイナミックランダムアクセスメモリ(RDRAM)及び/又は任意の他のタイプのランダムアクセスメモリデバイスによって実装されてもよい。不揮発性メモリ1216は、フラッシュメモリ及び/又は任意の他の所望のタイプのメモリデバイスによって実装されてもよい。主記憶装置1214、1216に対するアクセスは、メモリコントローラによって制御される。
[0077]図解例のプロセッサプラットフォーム1200はインターフェース回路1220をも含む。インターフェース回路1220は、Ethernetインターフェース、ユニバーサルシリアルバス(USB)、及び/又はPCIエクスプレスインターフェースのような、任意のタイプのインターフェース規格によって実装されてもよい。
[0078]図解例において、1つ又は複数の入力デバイス1222がインターフェース回路1220に接続される。入力デバイス1222は、ユーザがプロセッサ1212にデータ及びコマンドを入力することを可能にする。入力デバイスは、たとえば、音声センサ、マイクロホン、カメラ(静止又はビデオ)、キーボード、ボタン、マウス、タッチスクリーン、トラックパッド、トラックボール、アイソポイント及び/又は音声認識システムによって実装することができる。
[0079]1つ又は複数の出力デバイス1224も、図解例のインターフェース回路1220に接続される。出力デバイス1224は、たとえば、表示デバイス(たとえば、発光ダイオード(LED)、有機発光ダイオード(OLED)、液晶ディスプレイ、陰極線管ディスプレイ(CRT)、タッチスクリーン、触覚出力デバイス、発光ダイオード(LED)、プリンタ及び/又はスピーカ)によって実装することができる。したがって、図解例のインターフェース回路1220は、一般的に、グラフィクスドライバカードを含む。
[0080]図解例のインターフェース回路1220は、ネットワーク1226(たとえば、Ethernet接続、デジタル加入者線(DSL)、電話線、同軸ケーブル、携帯電話システムなど)を介した外部機械(たとえば、任意の種類のコンピューティングデバイス)とのデータの交換を促進するために、送信機、受信機、送受信機、モデム及び/又はネットワークインターフェースカードのような通信デバイスをも含む。
[0081]図解例のプロセッサプラットフォーム1200は、ソフトウェア及び/又はデータを記憶するための1つ又は複数の大容量記憶デバイス1228をも含む。そのような大容量記憶デバイス1228の例は、フロッピーディスクドライブ、ハードドライブディスク、コンパクトディスクドライブ、Blu−rayディスクドライブ、RAIDシステム、及びデジタル多用途ディスク(DVD)ドライブを含む。
[0082]図4、図8、図9、及び/又は図10の機械可読命令であってもよい図12の符号化命令1232は、大容量記憶デバイス1228、揮発性メモリ1214、不揮発性メモリ1216、及び/又はCD若しくはDVDのような取り外し可能有形コンピュータ可読記憶媒体に記憶されてもよい。
[0083]上記から、上記において開示された方法、装置及び製造品が、モジュール間の通信を促進することが諒解されよう。本明細書に開示されるようないくつかの例は、モジュールが、利用されるコンポーネントの複数のインスタンスのロードを防止するために実行を調整することを可能にする。コンポーネントのインスタンスへのアクセスを共有することによって、さらなるコンポーネントのインスタンスをロードしないことによって消費される処理サイクルが少なくなり、そうでなければコンポーネントの複数のインスタンスをロードすることになる複数のモジュールの実行に必要とされるメモリが少なくなり、それによってモジュール実行がより速くなり、モジュール及び複数のインスタンス間での通信が干渉する可能性が低減されるなどである。
[0084]本明細書に開示される方法及び装置が、計測、視聴者測定、提示監視などを実行するモジュールの調整を促進するのに利用されるとき、利点を実現することができる。たとえば、各々が複数のメディアソースからのメディア(たとえば、コンテンツ、広告など)を計測する複数のモジュールが本明細書に開示されるように通信するとき、メディアの提示をリンクさせることができる。たとえば、ウェブページが、複数の広告を、(たとえば、異なるドメインにある)複数の異なる広告プロバイダからロードされるようにするとき、複数の広告を計測するモジュールが、当該モジュールからの計測データがウェブページの提示にリンクされ得る(たとえば、すべてのモジュールからの計測データを一意の識別子と関連付けることができる、計測データを単一のメッセージにおいて送信することができる、など)ように通信することができる。付加的に又は代替的に、1つのメッセージにおいて複数のモジュールからの計測データを送信することによって、そうでなければメディアを提示するユーザコンピュータからほぼ同時に送信される複数のメッセージをハンドリングする必要がある、データ収集設備のサーバに対する負荷を低減することができる。
[0085]特定の例示的な方法、装置及び製造品が本明細書において説明されたが、本特許が対象とする範囲はこれに限定されない。逆に、本特許は、本特許の特許請求項の範囲に適切に含まれるすべての方法、装置、及び製造品を包含する。

Claims (50)

  1. 第1のモジュールによって、第1のモジュール識別子を生成するステップであって、前記第1のモジュールがウェブページ上の広告によってインスタンス化されている、生成するステップと、
    前記第1のモジュールによって、コンポーネントをロードするステップと、
    前記コンポーネントに前記モジュール識別子を通信するステップと、
    第2のモジュール識別子を有する第2のモジュールがロードされたことを判定するステップと、
    前記第2のモジュールがロードされたという判定に応答して、前記第1のモジュールによって、前記コンポーネントに前記第2のモジュールと通信するように命令するために、前記コンポーネントに前記第2のモジュール識別子を通信するステップと
    を含む、方法。
  2. 前記モジュール識別子が乱数又は疑似乱数である、請求項1に記載の方法。
  3. 前記第1のモジュール又は前記第2のモジュールのうちの少なくとも一方が、メッセージインターフェースにメッセージを投稿することによって前記コンポーネントと通信する、請求項1に記載の方法。
  4. 前記メッセージインターフェースがpostMessageアプリケーションプログラミングインターフェースを含む、請求項3に記載の方法。
  5. 前記メッセージが、前記第1のモジュール識別子又は前記第2のモジュール識別子のうちの少なくとも一方を含む、請求項3に記載の方法。
  6. 前記メッセージが、区切り文字と、メッセージタイプと、ペイロードとを含む、請求項5に記載の方法。
  7. 前記第2のモジュールがロードされたことを判定するステップが、前記第2のモジュールからのメッセージについてメッセージインターフェースを監視するステップを含む、請求項1に記載の方法。
  8. 前記メッセージが、前記第2のモジュールがロードされたという告知を含む、請求項7に記載の方法。
  9. 前記第2のモジュールが、メッセージインターフェースを介して前記第1のモジュールに前記第2のモジュール識別子を通信する、請求項1に記載の方法。
  10. 他のモジュールがいつロードされたかを判定するためにリスナをロードするステップをさらに含む、請求項1に記載の方法。
  11. 他のモジュールが前記コンポーネントをロードしているか否かを判定するステップをさらに含む、請求項1に記載の方法。
  12. 前記コンポーネントをロードするステップが、他のモジュールが前記コンポーネントをロードしていないという判定に応答して実施される、請求項11に記載の方法。
  13. 前記他のモジュールが前記コンポーネントをロードしている場合に、前記コンポーネントにアクセスするために前記他のモジュールと通信するステップをさらに含む、請求項12に記載の方法。
  14. 前記コンポーネントが第3のモジュールである、請求項1に記載の方法。
  15. 前記コンポーネントがJavaScriptのスクリプトである、請求項1に記載の方法。
  16. 前記第1のモジュール及び前記第2のモジュールが、ウェブページの提示を監視する、請求項1に記載の方法。
  17. 前記第1のモジュール又は前記第2のモジュールのうちの少なくとも一方が、調査を提示することによって前記ウェブページの提示を監視する、請求項16に記載の方法。
  18. 前記第1のモジュール又は前記第2のモジュールのうちの少なくとも一方をロードするためにJavaScriptを実行するステップをさらに含む、請求項1に記載の方法。
  19. 第1のモジュールであって、
    前記第1のモジュールがウェブページ上の広告によってインスタンス化された後に、第1のモジュール識別子を生成するための識別情報生成器と、
    コンポーネントをロードするためのコンポーネントローダと、
    前記コンポーネントに前記モジュール識別子を通信するための通信インターフェースと、
    第2のモジュール識別子を有する第2のモジュールがロードされたことを判定し、前記第2のモジュールがロードされたという判定に応答して、前記コンポーネントに前記第2のモジュールと通信するように命令するために、前記コンポーネントに前記第2のモジュール識別子を通信するためのリスナと
    を備える、第1のモジュール。
  20. 前記モジュール識別子が乱数又は疑似乱数である、請求項19に記載の装置。
  21. 前記第1のモジュール又は前記第2のモジュールのうちの少なくとも一方が、メッセージインターフェースにメッセージを投稿することによって前記コンポーネントと通信するようになされた、請求項19に記載の装置。
  22. 前記メッセージインターフェースがpostMessageアプリケーションプログラミングインターフェースを含む、請求項21に記載の装置。
  23. 前記メッセージが、前記第1のモジュール識別子又は前記第2のモジュール識別子のうちの少なくとも一方を含む、請求項21に記載の装置。
  24. 前記リスナが、前記第2のモジュールからのメッセージについてメッセージインターフェースを監視することによって、前記第2のモジュールがロードされたことを判定するようになされた、請求項19に記載の装置。
  25. 前記メッセージが、前記第2のモジュールがロードされたという告知を含む、請求項24に記載の装置。
  26. 前記第2のモジュールが、前記メッセージインターフェースを介して前記第1のモジュールに前記第2のモジュール識別子を通信するようになされた、請求項19に記載の装置。
  27. 他のモジュールが前記コンポーネントをロードしているか否かを判定するためのコンポーネント可用性検査器をさらに備える、請求項19に記載の装置。
  28. 前記コンポーネントローダが、他のモジュールが前記コンポーネントをロードしていないと前記コンポーネント可用性検査器が判定したことに応答して前記コンポーネントをロードするようになされた、請求項27に記載の装置。
  29. 前記コンポーネント可用性検査器が、前記他のモジュールが前記コンポーネントをロードしている場合に、前記コンポーネントにアクセスするために前記他のモジュールと通信するようにさらになされた、請求項27に記載の装置。
  30. 前記コンポーネントが第3のモジュールである、請求項19に記載の装置。
  31. 前記コンポーネントがJavaScriptのスクリプトである、請求項19に記載の装置。
  32. 調査を提示することによってウェブページの提示を監視するための調査コントローラをさらに備える、請求項19に記載の装置。
  33. 命令を記憶する有形コンピュータ可読記憶媒体であって、前記命令が実行されると、機械に少なくとも、
    第1のモジュールに対する第1のモジュール識別子を生成するステップであって、前記第1のモジュールがウェブページ上の広告によってインスタンス化されている、生成するステップと、
    コンポーネントをロードするステップと、
    前記コンポーネントに前記モジュール識別子を通信するステップと、
    第2のモジュール識別子を有する第2のモジュールがロードされたことを判定するステップと、
    前記第2のモジュールがロードされたという判定に応答して、前記コンポーネントに前記第2のモジュールと通信するように命令するために、前記コンポーネントに前記第2のモジュール識別子を通信するステップと
    を行わせる、有形コンピュータ可読記憶媒体。
  34. 前記モジュール識別子が乱数又は疑似乱数である、請求項33に記載の有形コンピュータ可読記憶媒体。
  35. 前記第1のモジュール又は前記第2のモジュールのうちの少なくとも一方が、メッセージインターフェースにメッセージを投稿することによって前記コンポーネントと通信する、請求項33に記載の有形コンピュータ可読記憶媒体。
  36. 前記メッセージインターフェースがpostMessageアプリケーションプログラミングインターフェースを含む、請求項35に記載の有形コンピュータ可読記憶媒体。
  37. 前記メッセージが、前記第1のモジュール識別子又は前記第2のモジュール識別子のうちの少なくとも一方を含む、請求項35に記載の有形コンピュータ可読記憶媒体。
  38. 前記メッセージが、区切り文字と、メッセージタイプと、ペイロードとを含む、請求項37に記載の有形コンピュータ可読記憶媒体。
  39. 前記命令が、実行されると、前記第2のモジュールからのメッセージについてメッセージインターフェースを監視することによって、前記第2のモジュールがロードされたことを判定する、請求項33に記載の有形コンピュータ可読記憶媒体。
  40. 前記メッセージが、前記第2のモジュールがロードされたという告知を含む、請求項39に記載の有形コンピュータ可読記憶媒体。
  41. 前記第2のモジュールが、前記メッセージインターフェースを介して前記第1のモジュールに前記第2のモジュール識別子を通信する、請求項33に記載の有形コンピュータ可読記憶媒体。
  42. 前記命令がさらに、前記機械に、いつ他のモジュールがロードされたかを判定するためのリスナをロードさせる、請求項33に記載の有形コンピュータ可読記憶媒体。
  43. 前記命令が、実行されると、さらに前記機械に、他のモジュールが前記コンポーネントをロードしたか否かを判定させる、請求項33に記載の有形コンピュータ可読記憶媒体。
  44. 前記コンポーネントをロードするステップが、他のモジュールが前記コンポーネントをロードしていないという判定に応答して実施される、請求項43に記載の有形コンピュータ可読記憶媒体。
  45. 前記命令が、実行されると、さらに前記機械に、前記他のモジュールが前記コンポーネントをロードしている場合に、前記コンポーネントにアクセスするために前記他のモジュールと通信させる、請求項44に記載の有形コンピュータ可読記憶媒体。
  46. 前記コンポーネントが第3のモジュールである、請求項33に記載の有形コンピュータ可読記憶媒体。
  47. 前記コンポーネントがJavaScriptのスクリプトである、請求項33に記載の有形コンピュータ可読記憶媒体。
  48. 前記第1のモジュール及び前記第2のモジュールが、ウェブページの提示を監視する、請求項33に記載の有形コンピュータ可読記憶媒体。
  49. 前記第1のモジュール又は前記第2のモジュールのうちの少なくとも一方が、調査を提示することによって前記ウェブページの提示を監視する、請求項48に記載の有形コンピュータ可読記憶媒体。
  50. 前記命令が、実行されると、さらに前記機械に、前記第1のモジュール又は前記第2のモジュールのうちの少なくとも一方をロードするためにJavaScriptを実行させる、請求項33に記載の有形コンピュータ可読記憶媒体。
JP2015525650A 2013-02-08 2014-02-03 モジュールを効率的に実行するための方法及び装置 Active JP6052832B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/763,333 US10810634B2 (en) 2013-02-08 2013-02-08 Methods and apparatus for efficient execution of modules
US13/763,333 2013-02-08
PCT/US2014/014474 WO2014123819A1 (en) 2013-02-08 2014-02-03 Methods and apparatus for efficient execution of modules

Publications (2)

Publication Number Publication Date
JP2015534139A true JP2015534139A (ja) 2015-11-26
JP6052832B2 JP6052832B2 (ja) 2016-12-27

Family

ID=51298117

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015525650A Active JP6052832B2 (ja) 2013-02-08 2014-02-03 モジュールを効率的に実行するための方法及び装置

Country Status (9)

Country Link
US (3) US10810634B2 (ja)
EP (1) EP2954428A4 (ja)
JP (1) JP6052832B2 (ja)
CN (2) CN104471559B (ja)
AU (4) AU2014215583B2 (ja)
CA (1) CA2875366C (ja)
DE (1) DE202014011615U1 (ja)
HK (1) HK1207449A1 (ja)
WO (1) WO2014123819A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10810634B2 (en) 2013-02-08 2020-10-20 The Nielsen Company (Us), Llc Methods and apparatus for efficient execution of modules
US10269043B1 (en) * 2014-03-12 2019-04-23 Groupon, Inc. Method and system for distribution of application program for promotion and marketing service
CN109711888A (zh) * 2018-12-28 2019-05-03 北京金山安全软件有限公司 网页广告展示方法及装置
CN112925573B (zh) * 2019-11-20 2023-09-26 北京沃东天骏信息技术有限公司 网页加载的方法、装置、设备和计算机可读介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000029802A (ja) * 1998-04-20 2000-01-28 Fuji Xerox Co Ltd 情報処理装置
JP2012032983A (ja) * 2010-07-30 2012-02-16 Fujikin Inc ガス供給装置用流量制御器の校正方法及び流量計測方法
JP2012521609A (ja) * 2009-03-25 2012-09-13 マイクロソフト コーポレーション ウェブブラウザ経由のアプリケーションに対するコンテンツ入力
JP2013012813A (ja) * 2011-06-28 2013-01-17 Yahoo Japan Corp 携帯型広告表示装置、方法及びプログラム

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6353929B1 (en) * 1997-06-23 2002-03-05 One River Worldtrek, Inc. Cooperative system for measuring electronic media
US6247050B1 (en) 1997-09-12 2001-06-12 Intel Corporation System for collecting and displaying performance improvement information for a computer
US7111280B2 (en) 2000-02-25 2006-09-19 Wind River Systems, Inc. System and method for implementing a project facility
US8001232B1 (en) * 2000-05-09 2011-08-16 Oracle America, Inc. Event message endpoints in a distributed computing environment
US7356143B2 (en) 2003-03-18 2008-04-08 Widevine Technologies, Inc System, method, and apparatus for securely providing content viewable on a secure device
KR100747459B1 (ko) * 2005-10-21 2007-08-09 엘지전자 주식회사 모듈의 충돌 방지가 보장되는 멀티태스킹 방법 및 이동단말기
US9104294B2 (en) * 2005-10-27 2015-08-11 Apple Inc. Linked widgets
US8056092B2 (en) * 2006-09-29 2011-11-08 Clearspring Technologies, Inc. Method and apparatus for widget-container hosting and generation
CN100469019C (zh) * 2007-01-08 2009-03-11 丁佑年 一种请求链接信号过滤统计系统及其应用
WO2008109761A2 (en) * 2007-03-06 2008-09-12 Clearspring Technologies, Inc. Method and apparatus for data processing
US8209378B2 (en) * 2007-10-04 2012-06-26 Clearspring Technologies, Inc. Methods and apparatus for widget sharing between content aggregation points
US8275398B2 (en) * 2007-11-02 2012-09-25 Hewlett-Packard Development Company, L.P. Message addressing techniques for a mobile computing device
US20090299862A1 (en) 2008-06-03 2009-12-03 Microsoft Corporation Online ad serving
US20100037317A1 (en) 2008-08-06 2010-02-11 Jeong Wook Oh Mehtod and system for security monitoring of the interface between a browser and an external browser module
US20100100605A1 (en) * 2008-09-15 2010-04-22 Allen Stewart O Methods and apparatus for management of inter-widget interactions
US9459936B2 (en) * 2009-05-01 2016-10-04 Kaazing Corporation Enterprise client-server system and methods of providing web application support through distributed emulation of websocket communications
WO2011005948A1 (en) * 2009-07-09 2011-01-13 Collective Media, Inc. Method and system for tracking interaction and view information for online advertising
US9652205B2 (en) 2009-11-25 2017-05-16 International Business Machines Corporation Method, system and computer program for bytecode weaving
US8452710B2 (en) * 2009-12-31 2013-05-28 Ebay Inc. Secure expandable advertisements using an API and cross-domain communications
US9027100B2 (en) 2010-01-05 2015-05-05 Yahoo! Inc. Client-side ad caching for lower ad serving latency
US8407319B1 (en) * 2010-03-24 2013-03-26 Google Inc. Event-driven module loading
CN102469035B (zh) * 2010-11-05 2016-01-20 腾讯科技(深圳)有限公司 跨进程通信的方法和装置
US20130080245A1 (en) 2010-05-28 2013-03-28 Rakuten, Inc. Advertising management system
US8626865B1 (en) * 2010-06-07 2014-01-07 Google Inc. Shared worker application
US8505106B1 (en) * 2010-06-30 2013-08-06 Amazon Technologies, Inc. Cross site request forgery mitigation in multi-domain integrations
US8306858B2 (en) 2010-07-14 2012-11-06 Google Inc. Consolidated content item request for multiple environments
US20120042261A1 (en) * 2010-08-12 2012-02-16 Google Inc. Sub-component instantiation and synchronization using a shared worker
US8881016B2 (en) 2010-10-15 2014-11-04 Sony Corporation Initial setup with auto-detection, contextual help and advertisement space
US9009298B2 (en) 2010-12-10 2015-04-14 The Nielsen Company (Us), Llc Methods and apparatus to determine audience engagement indices associated with media presentations
US20120167057A1 (en) 2010-12-22 2012-06-28 Microsoft Corporation Dynamic instrumentation of software code
US9037963B1 (en) * 2011-04-22 2015-05-19 Amazon Technologies, Inc. Secure cross-domain web browser communications
CN102737336A (zh) * 2012-04-12 2012-10-17 林华龙 基于移动装置来了解客流量及其行为的方法与管理系统
US10810634B2 (en) 2013-02-08 2020-10-20 The Nielsen Company (Us), Llc Methods and apparatus for efficient execution of modules

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000029802A (ja) * 1998-04-20 2000-01-28 Fuji Xerox Co Ltd 情報処理装置
JP2012521609A (ja) * 2009-03-25 2012-09-13 マイクロソフト コーポレーション ウェブブラウザ経由のアプリケーションに対するコンテンツ入力
JP2012032983A (ja) * 2010-07-30 2012-02-16 Fujikin Inc ガス供給装置用流量制御器の校正方法及び流量計測方法
JP2013012813A (ja) * 2011-06-28 2013-01-17 Yahoo Japan Corp 携帯型広告表示装置、方法及びプログラム

Also Published As

Publication number Publication date
US11270356B2 (en) 2022-03-08
AU2018253597A1 (en) 2018-11-22
HK1207449A1 (en) 2016-01-29
AU2014215583A1 (en) 2014-12-18
AU2014215583B2 (en) 2016-08-11
US20140229297A1 (en) 2014-08-14
EP2954428A1 (en) 2015-12-16
US20220188878A1 (en) 2022-06-16
AU2020239814B2 (en) 2022-02-17
CA2875366C (en) 2019-02-26
US10810634B2 (en) 2020-10-20
CN109360023A (zh) 2019-02-19
EP2954428A4 (en) 2016-07-20
US20210035168A1 (en) 2021-02-04
CN109360023B (zh) 2022-03-01
WO2014123819A1 (en) 2014-08-14
DE202014011615U1 (de) 2023-07-04
JP6052832B2 (ja) 2016-12-27
CA2875366A1 (en) 2014-08-14
AU2016256745A1 (en) 2016-12-01
AU2018253597B2 (en) 2020-06-25
AU2020239814A1 (en) 2020-10-29
CN104471559B (zh) 2018-11-16
CN104471559A (zh) 2015-03-25

Similar Documents

Publication Publication Date Title
US11270356B2 (en) Methods and apparatus for efficient execution of modules
US10175954B2 (en) Method of processing big data, including arranging icons in a workflow GUI by a user, checking process availability and syntax, converting the workflow into execution code, monitoring the workflow, and displaying associated information
US20140278934A1 (en) Methods and apparatus to integrate tagged media impressions with panelist information
CN110929183B (zh) 一种数据处理方法、装置和机器可读介质
EP3528474B1 (en) Webpage advertisement anti-shielding methods and content distribution network
US11157948B2 (en) Method and system for independent validation of asset serving
US20150082206A1 (en) Methods and apparatus to detect pop-up/pop-under windows in a browser
US20230032480A1 (en) Methods and apparatus to identify and triage digital ad ratings data quality issues
WO2015119970A1 (en) Visual tagging to record interactions
US10432490B2 (en) Monitoring single content page application transitions
US20150019690A1 (en) Systems and methods for reliably using ping to account for interactions with electronic content
US9319451B2 (en) Systems and methods for selecting an accounting technique for interactions with electronic content
US11714699B2 (en) In-app failure intelligent data collection and analysis
US10187251B1 (en) Event processing architecture for real-time member engagement
US8874971B1 (en) Detecting and reporting problems in a distributed resource computing system
US9264323B2 (en) Controlling computer nodes through social media
CN111090485B (zh) 面向多集群的帮助数据处理方法及装置、介质和设备
CN110069416B (zh) 一种测试数据处理方法、装置以及相关设备
US9916190B1 (en) Interprogram communication with event handling for subscription tagging
CN116701018A (zh) 数据处理方法、数据采集方法、装置、设备及存储介质
CN117311845A (zh) 内存刷新方法、装置、设备、介质和程序产品
CN117033617A (zh) 信息处理方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160309

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160322

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160719

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160923

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161101

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161122

R150 Certificate of patent or registration of utility model

Ref document number: 6052832

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250