(57)【特許請求の範囲】
【請求項１】
サーバコンピュータ装置によって実行される方法であって、
パブリッシャコンピュータ装置によるＷｅｂページの更新に応答して、前記パブリッシャコンピュータ装置から前記Ｗｅｂページに埋め込まれたスニペットを受信する段階と、
識別規則の少なくとも一部分に基づいて、複数の識別可能な形式の中から、受信した前記スニペットのスニペット形式を決定する段階と、
受信した前記スニペットに１つ以上のマクロを埋め込むための受信した前記スニペットの決定した前記スニペット形式に関連する編集規則を識別する段階と、
識別した前記編集規則に従って、受信した前記スニペットに前記１つ以上のマクロを自動的に埋め込む段階と
を有し、
前記編集規則は、決定した前記スニペット形式のうちの特定のスニペット形式のターゲット部分を識別するための基準、又は、識別した前記ターゲット部分を修正するための命令を含み、
前記１つ以上のマクロは、前記Ｗｅｂページで表示される広告に関連するユーザ行動記録に関連付けられることを特徴とする方法。
【請求項２】
前記スニペットのスニペット形式を決定する段階が、前記スニペットの少なくとも一部分と、前記複数の識別可能な形式に関連する基準とを比較する段階を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記スニペット形式が、前記Ｗｅｂページに表示される広告のタイプを識別することを特徴とする請求項１に記載の方法。
【請求項４】
前記１つ以上のマクロが、
前記広告に対して行われるユーザ動作を記録するための第１マクロと、
クライアントへの前記広告のキャッシュを阻止するための第２マクロと
を含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記スニペットを構文解析して、ドキュメントオブジェクトモデル（ＤＯＭ）ツリー及び解析済Ｊａｖａｓｃｒｉｐｔ（登録商標）式ツリーを生成する段階と、
前記編集規則と前記ＤＯＭツリーと前記解析済Ｊａｖａｓｃｒｉｐｔ（登録商標）式ツリーとの少なくとも一部分に基づいて、前記スニペット中のターゲット部分を決定する段階と、
前記編集規則に従って、前記ターゲット部分を修正する段階と、
修正された前記スニペットをパブリッシャに送信する段階と
をさらに有することを特徴とする請求項１に記載の方法。
【請求項６】
前記ターゲット部分が、パス、アドレス、又は階層構造定義のうちの１つの少なくとも一部分に基づいて決定されることを特徴とする請求項５に記載の方法。
【請求項７】
前記ターゲット部分を修正する段階が、前記ターゲット部分のうちの少なくとも１つのサブ文字列を置換する段階を含むことを特徴とする請求項５に記載の方法。
【請求項８】
前記スニペットが、ＨＴＭＬ及びＪａｖａｓｃｒｉｐｔ（登録商標）を含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記スニペットが、非同期Ｊａｖａｓｃｒｉｐｔ（登録商標）及びＸＭＬ（ＡＪＡＸ）リクエストで受信されることを特徴とする請求項１に記載の方法。
【請求項１０】
コンピュータ読み取り可能な記録媒体に格納されたコンピュータ読み取り可能な命令からなるコンピュータプログラムであって、
サーバコンピュータ装置を、
パブリッシャコンピュータ装置によるＷｅｂページの更新に応答して、前記パブリッシャコンピュータ装置から前記Ｗｅｂページに埋め込まれたスニペットを受信する手段と、
識別規則の少なくとも一部分に基づいて、複数の識別可能な形式の中から、受信した前記スニペットのスニペット形式を決定する手段と、
受信した前記スニペットに１つ以上のマクロを埋め込むための受信した前記スニペットの決定した前記スニペット形式に関連する編集規則を識別する手段と、
識別した前記編集規則に従って、受信した前記スニペットに前記１つ以上のマクロを自動的に埋め込む手段と
として機能させ、
前記編集規則は、決定した前記スニペット形式のうちの特定のスニペット形式のターゲット部分を識別するための基準、又は、識別した前記ターゲット部分を修正するための命令を含み、
前記１つ以上のマクロは、前記Ｗｅｂページで表示される広告に関連するユーザ行動記録に関連付けられることを特徴とするコンピュータプログラム。
【請求項１１】
前記スニペットのスニペット形式を決定する手段が、前記スニペットの少なくとも一部分と、前記複数の識別可能な形式に関連する基準とを比較する手段を含むことを特徴とする請求項１０に記載のコンピュータプログラム。
【請求項１２】
前記スニペット形式が、前記Ｗｅｂページに表示される広告のタイプを識別することを特徴とする請求項１０に記載のコンピュータプログラム。
【請求項１３】
前記１つ以上のマクロが、
前記広告に対して行われるユーザ動作を記録するための第１マクロと、
クライアントへの前記広告のキャッシュを阻止するための第２マクロと
を含むことを特徴とする請求項１０に記載のコンピュータプログラム。
【請求項１４】
前記サーバコンピュータ装置を、
前記スニペットを構文解析して、ドキュメントオブジェクトモデル（ＤＯＭ）ツリー及び解析済Ｊａｖａｓｃｒｉｐｔ（登録商標）式ツリーを生成する手段と、
前記編集規則と前記ＤＯＭツリーと前記解析済Ｊａｖａｓｃｒｉｐｔ（登録商標）式ツリーとの少なくとも一部分に基づいて、前記スニペット中のターゲット部分を決定する手段と、
前記編集規則に従って、前記ターゲット部分を修正する手段と、
修正された前記スニペットをパブリッシャに送信する手段と
としてさらに機能させることを特徴とする請求項１０に記載のコンピュータプログラム。
【請求項１５】
前記ターゲット部分が、パス、アドレス、又は階層構造定義のうちの１つの少なくとも一部分に基づいて決定されることを特徴とする請求項１４に記載のコンピュータプログラム。
【請求項１６】
前記ターゲット部分を修正する手段が、前記ターゲット部分のうちの少なくとも１つのサブ文字列を置換する手段を含むことを特徴とする請求項１４に記載のコンピュータプログラム。
【請求項１７】
前記スニペットが、ＨＴＭＬ及びＪａｖａｓｃｒｉｐｔ（登録商標）を含むことを特徴とする請求項１６に記載のコンピュータプログラム。
【請求項１８】
前記スニペットが、非同期Ｊａｖａｓｃｒｉｐｔ（登録商標）及びＸＭＬ（ＡＪＡＸ）リクエストで受信されることを特徴とする請求項１０に記載のコンピュータプログラム。
【請求項１９】
パブリッシャコンピュータ装置によるＷｅｂページの更新に応答して、前記パブリッシャコンピュータ装置から前記Ｗｅｂページに埋め込まれたスニペットを受信する手順と、
識別規則の少なくとも一部分に基づいて、複数の識別可能な形式の中から、受信した前記スニペットのスニペット形式を決定する手順と、
受信した前記スニペットに１つ以上のマクロを埋め込むための受信した前記スニペットの決定した前記スニペット形式に関連する編集規則を識別する手順と、
識別した前記編集規則に従って、受信した前記スニペットに前記１つ以上のマクロを自動的に埋め込む手順と
を実行するサーバコンピュータ装置を具備し、
前記編集規則は、決定した前記スニペット形式のうちの特定のスニペット形式のターゲット部分を識別するための基準、又は、識別した前記ターゲット部分を修正するための命令を含み、
前記１つ以上のマクロは、前記Ｗｅｂページで表示される広告に関連するユーザ行動記録に関連付けられることを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２００８年６月２６日に出願された米国特許出願第１２／１４７，０１５号の優先権を主張するものであり、その全内容が引用によって本明細書に組み込まれる。
本発明は、広告に関する。
【背景技術】
【０００２】
インターネットを介したコンテンツ配信は、日々改良を重ねている。コンピュータユーザは、電子メール、ニュース、ゲーム、エンターテイメント、音楽、本、及びＷｅｂページなど、それらすべてを、簡易なインターネット接続を用いて（かつ品質を高めたブロードバンド接続を用いて）受信できる。また、インターネットユーザは、地図、ショッピングリンク、画像、ブログ、ローカル検索、衛星写真、グループディスカッション、ホスト型コンテンツ、及び電子メールなどの大量のサービスにアクセスできる。これらのサービスの提供者は、ユーザとそのようなサービスとの対話を記録し、サービスがユーザに対してより良いものとなるよう、そのような対話に基づいて関連する基準値の決定及び／又はそれらのサービスの修正を行う。
【発明の概要】
【課題を解決するための手段】
【０００３】
本開示は、広告を含むＷｅｂページにマクロを埋め込むためのシステム及び方法を対象とする。一態様において、本方法は、リモートＷｅｂページに埋め込まれたスニペット（短いプログラムコード）を受信する段階を有する。次いで、スニペットに１つ以上のマクロを埋め込むための規則が識別される。１つ以上のマクロが、Ｗｅｂページで表示される広告に関連するユーザ行動記録に関連付けられる。次いで、規則の少なくとも一部分に基づいて、複数の識別可能な形式の中からスニペットの形式が決定される。次いで、スニペットの形式に関連する規則に従って、１つ以上のマクロがスニペットに自動的に埋め込まれる。
【０００４】
添付の各図面及び以下の記載により、本発明の１つ以上の実施形態の詳細が説明される。本発明のその他の特徴、目的、及び利点は、発明の詳細な説明及び各図面並びに特許請求の範囲から明らかとなる。
【図面の簡単な説明】
【０００５】
【図１】本開示の一実施形態によるマクロを埋め込むための例示的なシステムを示す構成図である。
【図２Ａ】本開示の一実施形態による図１の例示的なスニペットを示す図である。
【図２Ｂ】本開示の一実施形態による図１の例示的な修正済スニペットを示す図である。
【図３】第三者の広告にマクロを埋め込むための例示的な方法を示すフローチャートである。
【発明を実施するための形態】
【０００６】
図１は、Ｗｅｂページを介して表示されるアーカイブ広告に関連するマクロを埋め込むための例示的なシステム１００を示す。例えば、システム１００は、第三者広告を表示するＷｅｂページに、クリック追跡マクロ及びキャッシュ破棄（cache-busting）マクロを自動的に埋め込む。マクロは、文字列（ストリング）によって表される命令一式であってよく、ソースコードに挿入された文字列は、コンパイルの間に命令一式に置き換えられる。図示された実施例では、埋め込まれたマクロは、キャッシュの破棄、クリック可能なＵＲＬの挿入、及び／又は、ユーザの行動を監視するその他の機能のうちの１つ以上を実行する。１つ以上のマクロを埋め込むために、システム１００は、Ｗｅｂページ中のスニペットに変更、置換、又はその他の修正を行う。典型的に、スニペットは、再利用可能なソースコード（例えば、ＨＴＭＬ、Ｊａｖａｓｃｒｉｐｔ）であり、それらは、より大きなプログラミングモジュール（例えば、Ｗｅｂページ）に組み込まれる。例えば、Ｗｅｂページ発行者（パブリッシャ）は、第三者広告を埋め込むために、Ｗｅｂページ中にスニペットを有する。この実施例では、広告主は、実行時にＷｅｂページを介して表示するための第三者広告を取得するスニペットを提供する。広告に関連して、システム１００は、ある実施形態では、スニペットを自動的に修正することによって、Ｗｅｂページに１つ以上のマクロを自動的に埋め込む。例えば、システム１００は、スニペットを含んだＷｅｂページに対する少なくともパブリッシャによる更新に応答して、マクロを埋め込むようにスニペットを自動的に修正する。先に記載の通り、システム１００は、スニペットを修正して、第三者広告に関連する行動記録に対してマクロを自動的に埋め込む。
【０００７】
一般に、スニペットは、何らかの互いに異なる複数の形式を有する。例えば、互いに異なるスニペット形式としては、標準ＩＭＧ形式、フローティングＪａｖａｓｃｒｉｐｔ形式、ページ内ＩＦＲＡＭＥ形式、さまざまな第三者ベンダによる拡張可能ＩＦＲＡＭＥ形式、及び／又は、その他の形式などがある。ある実施形態では、システム１００は、複数の識別可能な形式の中からスニペットの形式を識別し、識別された形式の少なくとも一部分に基づいてスニペットを自動的に修正し、マクロを埋め込むことができる。そうすることで、システム１００は、リッチメディアクリエイティブに対するクリエイティブのベンダ／タイプの自動検出、リッチメディアクリエイティブ（例えば、スニペット）へのクリック追跡マクロ、キャッシュ破棄マクロ、及び／又はその他のマクロの自動挿入、さまざまなタイプのマクロを取り扱う機能を有した多種多様な規則（例えば、Ａｄ Ｍａｎａｇｅｒ、ＤＦＰ）のサポート、記述及び保守を技術者以外にも容易とする挿入規則の定義などのうちの１つ以上を提供する。さらに、システム１００は、パブリッシャからの修正又は入力に依存することなく、互いに異なる複数のスニペット形式にマクロを埋め込む。この場合、パブリッシャは、さまざまスニペット形式やマクロを埋め込むためにさまざまなタイプのスニペットを編集するための特殊な規則について理解する必要がない。
【０００８】
より高い次元においては、システム１００は、ネットワーク１０６を介して編集サーバ１０４に接続されたパブリッシャ１０２を具備する。図示された実施形態では、パブリッシャ１０２は、Ｗｅｂページ１０８のローカルな格納及び／又はネットワーク１０６への提供を行う。Ｗｅｂページ１０８がクライアント（図示せず）を介して表示されたとき、クライアントは、Ｗｅｂページ１０８中のスニペット１１０を少なくとも処理することに応答して、第三者広告を取り出す。サーバ１０４は、メモリ１１２と、プロセッサ１１４とを具備する。メモリ１１２は、スニペット１１０から取り出した階層構造データを識別するためのツリーファイル１１６と、スニペット形式を決定するための規則である識別規則１１８と、広告に関連した行動記録に関するマクロを埋め込むためにスニペットを修正するための規則である編集規則１２０とを、ツリーファイル１１６（例えば、ＤＯＭツリー、Ｊａｖａｓｃｒｉｐｔ解析ツリー）に格納する。プロセッサ１１４は、スニペット１１０を構文解析してツリーファイル１１６を生成するための構文解析ツール（パーサ）１２２と、識別規則１１８及び編集規則１２０に基づいてスニペット１１０を修正し、マクロを埋め込むための編集エンジン１２４とを具備する。より高い次元の動作においては、パブリッシャ１０２は、スニペット１１０を含むＷｅｂページ１０８に対して少なくとも更新が行われたことに応答して、リクエスト１２６を自動的に送信し、スニペット１２２にマクロを埋め込む。パーサ１２２は、リクエスト１２６の少なくとも一部分に基づいてスニペット１１０を識別し、スニペット１１０の構文解析を行って、１つ以上のツリーファイル１１６を生成する。ある実施形態では、パーサ１２２は、ＨＴＭＬパーサ及びＪａｖａｓｃｒｉｐｔパーサ（例えば、Ｒｈｉｎｏ）である。Ｒｈｉｎｏは、対応するノードを表現した位置情報を入力テキストに含ませる。編集エンジン１２４は、識別規則１１８の少なくとも一部分に基づいて、複数の識別可能なスニペット形式の中からスニペット１１０の形式を決定する。さらに、編集エンジン１２４は、識別されたスニペット形式に関連する編集規則１２０に基づいて、スニペット１１０を修正する。編集エンジン１２４は、修正済スニペット１１０を含んだレスポンス１２８をパブリッシャ１０２に送信し、Ｗｅｂページ１０８にマクロを埋め込む。
【０００９】
より詳細に各要素を説明すると、システム１００は、システム１００に関連するデータの受信、送信、処理、及び格納を行う機能を有した電子演算デバイスであるパブリッシャ１０２を具備する。図示された実施形態では、パブリッシャ１０２は、ＧＵＩを介して表示するために、クライアント（図示せず）にＷｅｂページ１０８を提供する。Ｗｅｂページ１０８は、例えばスニペット１１０を用いて、クライアントのユーザに表示可能な広告を、自身を介して表示する。一般に、Ｗｅｂページ１０８は、ＧＵＩを介して表示を生成するか又は表示を生成するために使用される機械読み取り可能かつ機械格納可能な任意のワークプロダクトである。Ｗｅｂページ１０８は、１つのファイル、複数のファイルの組み合わせ、別のファイルへのリンクが埋め込まれた１つ以上のファイルなどであってよい。Ｗｅｂページ１０８は、テキスト、オーディオ、イメージ、ビデオ、アニメーション、及びその他の属性を含む。要するに、Ｗｅｂページ１０８は、スニペット１１０を用いて表示の生成及び命令の提供を行うため、かつ広告を取得して表示に埋め込むためのあらゆるソースコード又はオブジェクトコードを含む。
【００１０】
スニペット１１０は、Ｗｅｂページ１０８を介して表示するための、任意のパラメータ、ポインタ、変数、アルゴリズム、命令、規則、ファイル、リンク、ソース若しくはオブジェクトコード、オブジェクト、指示、及び／又は、追跡可能な２次コンテンツ（例えば、イメージ、テキスト）を容易に提供するためのその他のデータを含む。例えば、スニペット１１０は、Ｗｅｂページ１０８を介して表示するための第三者広告を取り出すためのハイパーリンクと、サーバ（図示せず）に格納するために情報を送信するためのハイパーリンクとを含む。監視に関連して、スニペット１１０は、サーバ１０４によって提供される１つ以上のマクロを埋め込む１つ以上のターゲット部分を含む。スニペット１１０の１つ以上のターゲット部分は、１つ以上のハイパーリンク、ＵＲＬに対するパラメータ、Ｊａｖａｓｃｒｉｐｔ変数、Ｊａｖａｓｃｒｉｐｔメソッド引数、Ｊａｖａｓｃｒｉｐｔファンクション引数、及び／又は、その他の値を含むか、さもなければそれらを識別する。ある実施形態では、スニペット１１０は、例えば、ＡタグのＨＲＥＦ属性やＳＣＲＩＰＴタグのＳＲＣ属性などのＨＴＭＬ属性文字列を含む。ある実施形態では、スニペット１１０は、１つ以上のＪａｖａｓｃｒｉｐｔリテラル文字列含む。Ｊａｖａｓｃｒｉｐｔリテラル文字列は、多くの場合、変数に割り当てられるか又は関数に渡される。例えば、スニペット１１０は、割り当てられたＪａｖａｓｃｒｉｐｔリテラル文字列を分離させる「ｃｌｉｃｋＴａｇ」変数を含む。
【００１１】
編集サーバ１０４は、システム１００に関連するデータの受信、送信、処理、及び格納を行う機能を有した電子デバイスである。システム１００は、サーバやサーバプール以外のデバイス又はコンピュータを用いて実現することもできる。実際には、編集サーバ１０４は、例えば、ブレードサーバ、汎用パーソナルコンピュータ（ＰＣ）、Ｍａｃｉｎｔｏｓｈ、ワークステーション、ＵＮＩＸ（登録商標）ベースのコンピュータ、又はその他の適切なデバイスなど、任意のコンピュータ又は処理デバイスであってよい。換言すれば、システム１００は、汎用コンピュータ以外のコンピュータや従来のオペレーションシステムを用いないコンピュータであってよい。演算デバイスの実装において、編集サーバ１０４は、Ｌｉｎｕｘ（登録商標）、ＵＮＩＸ、Ｗｉｎｄｏｗｓ（登録商標） Ｓｅｒｖｅｒ、又はその他の適切なオペレーティングシステムを含む任意のオペレーティングシステムを実行するように構成される。
【００１２】
先に記載の通り、編集サーバ１０４は、この実装では、メモリ１１２と、プロセッサ１１４とを具備する。メモリ１１２は、ローカルメモリであってよく、あらゆるメモリ又はデータベースモジュールを含み、揮発性又は不揮発性メモリの形をとる。揮発性又は不揮発性メモリには、これらに限定されないが、磁気媒体、光学媒体、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、リムーバブル媒体、又はその他の適切なローカル若しくはリモートメモリコンポーネントなどが含まれる。図示の実施形態では、メモリ１１２は、ツリーファイル１１６と、識別規則１１８と、編集規則１２０とを含む。また、ローカルメモリ１１２は、例えば、ＶＰＮアプリケーション又はサービス、ファイアウォールポリシ、セキュリティ又はアクセスログ、プリント又はその他のレポーティングファイル、ＨＴＭＬファイル又はテンプレート、データクラス又はオブジェクトインタフェース、子ソフトウェアアプリケーション又はサブシステムなど、他の適切なデータを含む。
【００１３】
ツリーファイル１１６は、構文解析されたスニペット１１０の少なくとも一部分に基づく情報を含むか、又はそのような情報を識別する何らかの１つ以上のデータ入力及び／又はデータ構造である。例えば、ツリーファイル１１６は、ＤＯＭツリー及びＪａｖａｓｃｒｉｐｔ解析ツリーを含むか又はそれらを識別する。ある実施形態では、ツリーファイル１１６は、スニペット１１０中のＨＴＭＬコードに基づいたＤＯＭツリーを含むか、又はそのようなＤＯＭツリーを識別する。ある実施形態では、ツリーファイル１１６は、スニペット１１０中のＪａｖａｓｃｒｉｐｔに基づいたＪａｖａｓｃｒｉｐｔツリーを含むか、又はそのようなＪａｖａｓｃｒｉｐｔツリーを識別する。一般に、ツリーファイル１１６は、階層構造、ルートノード、子ノード、ノード間の親／子関係、ＨＴＭＬタグ、ＨＴＭＬ属性、Ｊａｖａｓｃｒｉｐｔ変数、ＵＲＬ（Uniform Resource Locator）へのパラメータ、Ｊａｖａｓｃｒｉｐｔメソッド宣言、及び／又は、Ｊａｖａｓｃｒｉｐｔリテラル文字列などのうちの１つ以上を識別する。ツリーファイル１１６は、１つのスニペット１１０に関連付けられるか、又は、複数のスニペット１１０がツリーファイル１１６に関連付けられる。ある実施形態では、ツリーファイル１１６は、ＤＯＭツリー又はＪａｖａｓｃｒｉｐｔツリーなど、特定のタイプのツリーに関連してよい。ある実施形態では、ツリーファイル１１６は、テキストファイル、ＸＭＬ文書、ＶＳＡＭファイル、フラットファイル、Ｂｔｒｉｅｖｅファイル、ＣＳＶファイル、内部変数、又は１つ以上のライブラリ中のさまざまなデータ構造として書式化、格納、又は定義される。要するに、ツリーファイル１１６は、任意の適切な形式で１つのコンピュータ又は複数のコンピュータに亘って格納された１つのテーブル若しくはファイル、又は、複数のテーブル若しくはファイルを含むように格納できる。さらに、ツリーファイル１１６は、この開示の範囲から逸脱することなくローカル又はリモートなものとなってよく、かつあらゆるタイプの適切なデータを格納できる。
【００１４】
識別規則１１８は、互いに異なる複数の形式の中からスニペット１１０の形式を識別するための任意の識別パラメータ、変数、ＵＲＬ、アルゴリズム、命令、規則、オブジェクト、又はその他の指示を含む。例えば、識別規則１１８は、ＨＴＭＬ要素及び／又はＪａｖａｓｃｒｉｐｔ要素と比較され、複数の識別可能な形式の中から形式を決定される。先に記載の通り、互いに異なる複数の形式は、標準ＩＭＧ形式、フローティングＪａｖａｓｃｒｉｐｔ形式、ページ内ＩＦＲＡＭＥ形式、さまざまな第三者ベンダによる拡張ＩＦＲＡＭＥ形式、及び／又はその他の形式を含む。ある実施形態では、識別規則１１８は、スニペット１１０の形式を決定するための数学式及び／又は論理式であってよい。例えば、識別規則１１８は、スニペット１１０がさまざまなＨＴＭＬ要素及び／又はＪａｖａｓｃｒｉｐｔ要素を含む及び／又は除外するか否かを判断するための１つ以上の論理式を含んでよい。この場合、識別規則１１８は、ツリーファイル１１６中のＨＴＭＬ要素及び／又はＪａｖａｓｃｒｉｐｔ要素との比較を行って、特定の要素が含まれる及び／又は除外されるか否かを判断するための基準（例えば、文字列）を含んでよい。例えば、識別規則１１８は、ＩＦＲＡＭＥ要素がツリーファイル１１６中に存在するか否か、この要素がＳＲＣ属性を有するか否か、かつ、この属性に含まれたＵＲＬがドメイン「ad.doubleclick.net」を含むか否かを判断するために使用される。別の実施例のように、識別規則１１６は、「ｃｌｉｃｋＴａｇ１」など、特定のＪａｖａｓｃｒｉｐｔ変数がツリーファイル１１６内に存在していないか調べるために使用できる。ある実施形態では、識別規則１１８は、テキストファイル、ＸＭＬ文書、ＶＳＡＭファイル、フラットファイル、Ｂｔｒｉｅｖｅファイル、ＣＳＶファイル、内部変数、又は１つ以上のライブラリ中のさまざまなデータ構造として書式化、格納、又は定義される。要するに、識別規則１１８は、任意の適切な形式で１つのコンピュータ又は複数のコンピュータに亘って格納された１つのテーブル若しくはファイル、又は、複数のテーブル若しくはファイルを含むように格納できる。さらに、識別規則１１８は、この開示の範囲から逸脱することなくローカル又はリモートなものとなってよく、かつあらゆるタイプの適切なデータを格納できる。
【００１５】
編集規則１２０は、スニペット１１０の少なくとも一部分を編集するための任意のパラメータ、変数、アルゴリズム、命令、規則、オブジェクト、又はその他の指示を含む。例えば、編集規則１２０は、スニペット１１０のターゲット部分（例えば、文字列）と、ターゲット部分を置き換えるための文字列とを識別する。一般に、編集規則１２０は、２つのプロセス、すなわち、（１）特定のスニペット形式のターゲット部分を識別するための基準と、（２）ターゲット部分を修正するための基準とについての情報を含む。ある実施形態では、編集規則１２０は、ターゲット部分を識別するための基準、形式タイプ、マクロ識別子、編集タイプ、操作するターゲット部分内のパターン、及び／又は、その他の情報のうちの１つ以上を含む。ターゲット部分の識別に関し、編集規則１２０は、ＨＴＭＬ要素及び／又はＪａｖａｓｃｒｉｐｔ要素と比較する文字列を含んでよい。ある実施例では、編集規則１２０は、ターゲット部分を識別するために、ＩＦＲＡＭＥ又はスクリプトタグの「ＳＲＣ」属性の文字列を含む。ある実施例では、編集規則１２０は、ターゲット部分としてＪａｖａｓｃｒｉｐｔのｃｌｉｃｋＴａｇ変数に割り当てられたリテラル文字列を識別するために、文字列「ｖａｒ ｃｌｉｃｋＴａｇ」を含む。編集タイプは、先頭追加（プリペンド）、末尾追加（アペンド）、パターン置換、パターン後方挿入、パターン前方挿入、及び／又は、その他のタイプを含む。マクロ識別子は、ＣＡＣＨＥＢＵＳＴＥＲ、ＣＬＩＣＫ＿ＵＲＬ＿ＥＳＣ、ＣＬＩＣＫ＿ＵＲＬ＿ＵＮＥＳＣ、ＣＬＩＣＫ＿ＵＲＬ＿ＥＳＣ＿ＥＳＣ、及び／又は、その他の識別子を含む。ある実施形態では、編集規則１２０は、複数の識別可能な形式の中から特定のスニペット形式に関連付けられる。ある実施形態では、編集規則１２０は、テキストファイル、ＸＭＬ文書、ＶＳＡＭファイル、フラットファイル、Ｂｔｒｉｅｖｅファイル、ＣＳＶファイル、内部変数、又は１つ以上のライブラリ中のさまざまなデータ構造として書式化、格納、又は定義される。要するに、編集規則１２０は、任意の適切な形式で１つのコンピュータ又は複数のコンピュータに亘って格納された１つのテーブル若しくはファイル、又は、複数のテーブル若しくはファイルを含むように格納できる。さらに、編集規則１２０は、この開示の範囲から逸脱することなくローカル又はリモートなものとなってよく、かつあらゆるタイプの適切なデータを格納できる。
【００１６】
プロセッサ１１４は、命令の実行とデータの操作とを行って、サーバ１０４を動作させる。図１では、サーバ１０４中に１つのプロセッサ１０４しか示されていないが、特殊な要求に応じて、マルチプロセッサ１１４が用いられてもよい。プロセッサ１１４への呼び出しは、適用可能であればマルチプロセッサ１１４を含むよう意図されている。図示された実施形態では、プロセッサ１１４は、パーサ１２２と編集エンジン１２４とを実行する。パーサ１２２は、例えば、スニペット１１０をＤＯＭツリー及び／又はＪａｖａｓｃｒｉｐｔ解析ツリーへと構文解析して、関連するツリーファイル１１６を生成する機能を有したソフトウェアの形を取ってよい。例えば、パーサ１２２は、パブリッシャ１０２からのリクエスト１２６中のスニペット１１０を識別し、識別したスニペット１１０の少なくとも一部分に基づいて、１つ以上のツリーファイル１１６を生成する。ある実施形態では、パーサ１２２は、スニペット１１０の少なくとも一部分に基づいて、ＤＯＭツリー及び／又はＪａｖａｓｃｒｉｐｔ解析ツリーへとスニペットを構文解析し、ＤＯＭツリー及び／又はＪａｖａｓｃｒｉｐｔ解析ツリーの少なくとも一部分に基づいて、１つ以上のツリーファイル１１６を生成する。ある実施形態では、パーサ１２２は、パブリッシャ１０２からのリクエストを受信して、１つ以上の追跡マクロを埋め込むこと、受信したリクエスト１２６の少なくとも一部分に基づいて、スニペット１１０を識別すること、スニペット１１０中のＨＴＭＬコードを構文解析して、ＤＯＭツリーを生成すること、スニペット１１０中のＪａｖａｓｃｒｉｐｔを構文解析して、Ｊａｖａｓｃｒｉｐｔ解析ツリーを生成すること、ＤＯＭツリーに基づいて、ツリーファイル１１６を生成すること、Ｊａｖａｓｃｒｉｐｔ解析ツリーに基づいて、ツリーファイル１１６を生成すること、及び／又は、その他のプロセスのうちの１つ以上を実行する。ある実施形態では、パーサ１２２は、単独のＨＴＭＬパーサと、単独のＪａｖａｓｃｒｉｐｔパーサ（例えば、Ｒｈｉｎｏ）とからなる。
【００１７】
編集エンジン１２４は、編集規則１２０の少なくとも一部分に基づいてスニペット１１０に１つ以上のマクロを埋め込むための任意のソフトウェアであってよい。例えば、編集エンジン１２４は、関連する編集規則１２０に従ってスニペット１１０を修正し、１つ以上のマクロを埋め込む。ある実施形態では、編集エンジン１２４は、形式識別の間に編集規則１２０に従って編集規則１２０が編集されたか否かを判断すること、スニペット形式の少なくとも一部分に基づいて編集規則１２０を識別すること、編集規則１２０の少なくとも一部分に基づいてスニペット１１０のターゲット域の位置を識別すること、関連する編集規則１２０に従ってスニペット１１０のターゲット域を修正すること、Ｗｅｂページ１０８にマクロを埋め込むために、修正済スニペット１１０を含んだレスポンス１２８をパブリッシャ１０２へ送信すること、及び／又は、その他のプロセスのうちの１つ以上を実行する。スニペット形式の識別に関連して、編集エンジン１２４は、複数の識別可能な形式の中から形式を識別する手助けとなるように、スニペット１１０を処理する。例えば、編集エンジン１２４は、スニペット１１０のコピーを処理して、当該コピーに適用可能な編集規則１２０を決定する。スニペット形式の識別に応答して、編集エンジン１２４は、特定の形式に対する編集規則１２０を識別する。例えば、編集エンジン１２４は、スニペット１１０がＤｏｕｂｌｅＣｌｉｃｋ ＤＦＡ標準イメージであることを識別し、編集規則１２０が特定の形式に割り当てられることを決定する。ターゲット部分の位置の識別に関連して、編集エンジン１２４は、編集規則１２０からの基準とスニペット１１０とを比較し、編集する文字列の位置を決定する。ある実施例では、編集エンジン１２４は、文字列「ＩＦＲＡＭＥ ＳＲＣ」をスニペット１１０に適用し、ＩＦＲＡＭＥタグのＳＲＣ属性を識別する。ある実施例では、編集エンジン１２４は、文字列「ｖａｒ ｃｌｉｃｋＴａｇ」をスニペット１１０に適用し、Ｊａｖａｓｃｒｉｐｔ中のｃｌｉｃｋＴａｇに割り当てられたリテラル文字列を識別する。ある実施形態では、編集エンジン１２４は、ＤＯＭツリー及び／又はＪａｖａｓｃｒｉｐｔ解析ツリーのパス、アドレス、又は階層構造定義に基づいて位置を識別する。１つ以上のマクロの埋め込みに関連し、編集エンジン１２４は、編集規則１２０で識別される識別タイプに従ってターゲット部分を修正する。例えば、編集エンジン１２０は、ターゲット部分を追跡マクロ（例えば、ＣＬＩＣＫ＿ＵＲＬ＿ＥＳＣ）で置き換える。スニペット１１０の修正に応答して、編集エンジン１２４は、Ｗｅｂページ１０８にマクロを埋め込むために、修正済ターゲット部分を含むスニペット１１０をパブリッシャ１０２に自動的に送信する。
【００１８】
特定の実施形態に関係なく、「ソフトウェア」は、ソフトウェア、ファームウェア、配線された若しくはプログラムされたハードウェア、又は必要に応じたそれらの任意の組み合わせであってよい。実際には、要素エンジン１２６は、Ｃ、Ｃ＋＋、Ｊａｖａ（登録商標）、Ｊ♯、Ｖｉｓｕａｌ Ｂａｓｉｃ、アセンブラ、Ｐｅｒｌ、ＰＨＰ、などを含む任意の適切なコンピュータ言語で記述又は表現されてよい。パーサ１２２及び編集エンジン１２４は、図１では別個のモジュールとして図示されているが、当然ながら、パーサ１２２及び／又は編集エンジン１２４は、他の多数のサブモジュールを含んでよく、また、その代わりに、さまざまなオブジェクト、メソッド、又はその他のプロセスを介したさまざまな特徴及び機能を実現する１つのマルチタスクモジュールとなってもよい。さらに、コンテンツ提供者１０４の内部に示されているが、パーサ１２２及び／又は編集エンジン１２４に関連するの１つ以上のプロセスは、リモートで格納、参照、又は実行されてよい。さらに、パーサ１２２及び／又は編集エンジン１２４は、この開示の範囲から逸脱することなく、別のソフトウェアモジュール又はエンタープライズアプリケーション（図示せず）の子又はサブモジュールであってよい。
【００１９】
ネットワーク１０６は、サーバと、パブリッシャ１０２などの任意のローカル又はリモートコンピュータとの間の無線又は有線通信を実現する。ネットワーク１０６は、企業ネットワーク又はセキュアなネットワークの全体又は一部分であってよい。１つのネットワークとして図示されているが、ネットワーク１０６は、ネットワーク１０６の少なくとも一部分で、サーバとパブリッシャ１０２との間でスニペット１１０のやりとりを実現する限りは、この開示の範囲から逸脱することなく、いくつかのサブネットワークに論理的に分割された連続したネットワークや仮想ネットワークであってよい。ある実施形態では、ネットワーク１０６は、システム１００中のさまざまな構成要素間の通信を実現する機能を有した任意の内部若しくは外部ネットワーク、複数のネットワーク、サブネットワーク、又はそれらの組み合わせを包含する。ネットワーク１０６は、インターネットプロトコル（ＩＰ）パケット、フレームリレーフレーム、非同期転送モード（ＡＴＭ）セル、ボイス、ビデオ、データ、及びネットワークアドレス間のその他の適切な情報のやりとりを行うことができる。ネットワーク１０６は、１つ以上のローカルエリアネットワーク（ＬＡＮ）、無線アクセスネットワーク（ＲＡＮ）、都市規模ネットワーク（ＭＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、インターネットとして知られるグローバルコンピュータネットワークの全体又は一部分、及び／又は、１つ以上の場所におけるその他の１つ又は複数の通信システムであってよい。
【００２０】
動作の一形態では、パブリッシャ１０２は、スニペット１１０を含むＷｅｂページ１０８に対して少なくともユーザ更新が行われることに応答して、スニペット１１０に１つ以上の追跡マクロを埋め込むためのリクエスト１２６を自動的に送信する。例えば、ユーザがスニペット１１０を含むＷｅｂページ１０８を更新して、第三者広告を埋め込み、かつ、例えば、リッチメディアテキスト領域にスニペット１１０を貼り付ける（ペーストする）ことに応答して、パブリッシャ１０２は、埋め込みリクエスト１２６をサーバ１０４に自動的に送信する。リクエスト１２６を少なくとも受信することに応答して、パーサ１２２は、リクエスト１２６に含まれたスニペット１１０を識別し、スニペット１１０をＤＯＭツリー及び／又はＪａｖａｓｃｒｉｐｔ解析ツリーへと構文解析する。ＤＯＭツリー及び／又はＪａｖａｓｃｒｉｐｔ解析ツリーの少なくとも一部分に基づき、パーサ１２２は、１つ以上のツリーファイル１１６を生成する。スニペット１１０の修正の前に、編集エンジン１２４は、複数の識別可能な形式の中からスニペット１１０の形式を識別する。編集エンジン１２４は、識別規則１１８とスニペット１１０とを比較することによって、その形式を識別する。ある実施形態では、形式は１つのベンダ／製品に対応する。ある実施形態では、各識別規則１１８は、異なるスニペット形式に関連付けられる。ある実施形態では、編集エンジン１２４は、スニペット１１０の１つ以上のコピーを生成し、スニペット１１０に適用可能な編集規則１２０を決定して、形式識別プロセスを実現する。ある場合には、スニペットは、特定の形式に対するすべての識別規則を満たす。スニペット規則の識別に応答して、編集エンジン１２４は、１つ以上のマクロを埋め込むための特定の形式を修正するための規則１２０を識別する。編集エンジン１２４は、例えば編集規則１２０とコードとを比較することによって、スニペット１１０中のターゲット部分の位置を識別する。位置の決定後、編集エンジン１２４は、識別された形式に対する編集規則１２０に従って、ターゲット部分を修正し、１つ以上の追跡マクロを埋め込む。修正されたターゲット部分を含むスニペット１１０の送信に関連して、編集エンジン１２０は、マクロを、例えば、ハイパーリンク、実行可能なコード、及び／又はその他の要素に置き換える。編集エンジン１２０は、埋め込まれたマクロを含む応答１２８を生成する。ある実施形態では、パブリッシャ１０２は、Ｗｅｂページ１０８にマクロを埋め込む前に、修正されたターゲット部分を含むスニペット１１０の受理の承認を行う。例えば、メッセージ又はステータスが、ユーザ直近のテキストエリアに現れて、修正されたスニペット１１０が自動的に挿入されるべきか否かの指示を要求し、承認された場合、テキストエリアのテキストが修正済スニペット１１０に置き換えられる。
【００２１】
図２Ａ及び図２Ｂは、例示的なスニペット１１０及び修正済スニペット２０２であり、クリック追跡マクロの埋め込みを示す。図示された２つのスニペット１１０，２０２は、例示のみを目的としたものである。したがって、スニペット１１０は、この開示の範囲から逸脱することなく、他のあらゆる形式をとってよく、かつ他のプロセスを用いて修正されてよい。
【００２２】
図２Ａを参照すると、スニペット１１０は、ＨＴＭＬコード及びＪａｖａｓｃｒｉｐｔを含む。図示された実施形態では、スニペット１１０は、クリック追跡マクロ「ＣＬＩＣＫ＿ＵＲＬ＿ＵＮＥＳＣ」を埋め込むためのターゲット部分２０４を有する。マクロの埋め込みに関連して、ターゲット部分２０４の位置の識別が行われる。例えば、図１の編集エンジン１２４は、ＪａｖａｓｃｒｉｐｔメンバｇＥｂＡｄ．ｉｎｔｅｒａｃｔｉｏｎｓ及び／又はパターンｅｂＮを識別することによって、ターゲット部分を識別する。ある場合には、この実施例における編集エンジン１２４は、文字列「ｇＥｂＡｄ．ｉｎｔｅｒａｃｔｉｏｎｓ」及び／又は「ｅｂＮ」によって指定される基準と、スニペット１１０中のＪａｖａｓｃｒｉｐｔとを比較する。図２Ｂを参照すると、修正済スニペット２０２は、修正されたターゲット部分２０６を含んでいる。ターゲット部分の位置を識別した後、パターン「ｅｂＮ」直近の位置設定記号「％ｃ」の値が、マクロＣＬＩＣＫ＿ＵＲＬ＿ＵＮＥＳＣを埋め込むように修正される。実施例に戻ると、編集エンジン１２４は、スニペット形式に対する編集規則１２０の少なくとも一部分に基づいて、編集タイプ及びマクロを識別する。図示された実施例では、編集タイプが置き換えられ、かつマクロは、ＣＬＩＣＫ＿ＵＲＬ＿ＵＮＥＳＣとなる。編集エンジン１２４は、文字列「％ｃ」を、文字列「％％ＣＬＩＣＫ＿ＵＲＬ＿ＵＮＥＳＣ％％」に置き換えて、修正されたターゲット部分２０６を生成する。
【００２３】
図３は、第三者広告に関連するユーザ動作を記録するために、スニペットに１つ以上のマクロを自動的に埋め込む例示的な方法３００を示したフローチャートである。一般に、方法３００は、複数の識別可能なスニペット形式の中から決定された形式の少なくとも一部分に基づいてスニペットが修正された場合の例示的な技術を表す。例示を目的として、方法３００が、記載した機能のうちのいくつか又はそのすべてを実現する論理的要素のあらゆる適切な組み合わせ及び配置を用いて、システム１００によって実行される。
【００２４】
方法３００は、スニペットを含む非同期Ｊａｖａｓｃｒｉｐｔ及びＸＭＬ（ＡＪＡＸ）リクエストの受信を行うステップ３０２から始まる。例えば、図１のパーサ１２２が、スニペット１１０を含むＡＪＡＸリクエスト１２６を受信する。この実施例では、パブリッシャ１０２は、スニペット１１０を含んだＷｅｂページ１０８に対するパブリッシャ１０２による更新に少なくとも応答して、ＡＪＡＸリクエスト１２６を自動的に送信する。ＡＪＡＸリクエストの受信に少なくとも応答して、ステップ３０４において、スニペットは、当該スニペットを用いて識別される。この実施例では、パーサ１２２は、リクエスト１２６の少なくとも一部分に基づいて、スニペット１１０を識別する。ステップ２０６において、スニペットが構文解析されて、ＨＴＭＬコードに対するＤＯＭツリーと、スニペット中のＪａｖａｓｃｒｉｐｔに対する１つ以上のＪａｖａｓｃｒｉｐｔ解析ツリーとが生成される。実施例に戻ると、パーサ１２２は、識別されたスニペット１１０を構文解析して、例えばくだけた用法（タグソープ）を用いたＨＴＭＬコードに対するＤＯＭツリーと、スニペット１１０中のＪａｖａｓｃｒｉｐｔの各部分に対するＪａｖａｓｃｒｉｐｔ解析ツリーとを生成する。この実施例では、パーサ１２２は、ＤＯＭツリー及び／又はＪａｖａｓｃｒｉｐｔ解析ツリーの少なくとも一部分に基づいて、１つ以上のツリーファイル１１６を生成する。ＤＯＭツリー及びＪａｖａｓｃｒｉｐｔ解析ツリーの生成に関連して、ステップ３０８において、識別規則及び編集規則が識別される。実施例に戻ると、編集エンジン１２４は、スニペット１１０の形式を識別するための識別規則１１８と、編集規則１２０とを識別する。先に記載の通り、編集エンジン１２４は、スニペット１１０の形式を識別するプロセスにおいて、スニペット１１０のコピーに編集規則１２０を適用する。次いで、ステップ３１０において、スニペット、識別規則、及び編集規則の少なくとも一部分に基づいて、複数の識別可能なスニペット形式の中からスニペット形式が決定される。この実施例では、編集規則１２０は、互いに異なる形式に対する基準とスニペット１１０とを比較し、スニペット１１０のコピーに適用可能な編集規則１２０を決定する。
【００２５】
少なくともスニペット形式を決定することに応答して、ステップ３１２において、スニペット形式に対する編集規則が識別される。実施例に戻ると、編集エンジン１２４は、スニペット１１０に少なくとも１つのマクロを埋め込むために、識別されたスニペット形式を編集規則１２０にマップする。ある実施形態では、複数の識別可能なスニペット形式のそれぞれには、互いに異なる編集規則１２０が割り当てられる。ステップ３１４において、識別された編集規則に従って、１つ以上のマクロを埋め込むためのターゲット文字列の位置が決定される。実施例では、編集エンジン１２４は、識別された編集規則１２０に基づく基準とスニペット１１０とを比較することによって、ターゲット文字列を識別する。この実施例では、編集エンジン１２４は、ＨＴＭＬ属性、Ｊａｖａｓｃｒｉｐｔリテラル文字列、及び／又はその他の基準に基づいて、上記位置が識別される。次いで、ステップ３１６において、識別された編集規則の少なくとも一部分に基づいて、１つ以上のマクロを埋め込むようにターゲット文字列が修正される。実施例に戻ると、編集エンジン１２４は、編集規則１２０中の編集タイプ及び１つ以上のマクロを識別し、該編集タイプ及び１つ以上のマクロに従って、ターゲット文字列を編集する。ステップ３１８において、埋め込まれたマクロを含むスニペットがパブリッシャに送信され、関連するＷｅｂページが更新される。この実施例では、編集エンジン１２４は、修正済ターゲット文字列２０６を含む修正済スニペット２０２をパブリッシャ１２０に送信し、Ｗｅｂページ１０８にマクロを埋め込む。
【００２６】
この開示では、いくつかの実施形態及び広く関連する方法について説明がなされたが、当業者には、これらの実施形態及び方法の変形例及び置換例は明白である。
【符号の説明】
【００２７】
１００  Ｗｅｂページにマクロを埋め込むためのシステム
１０２  パブリッシャ
１０４  編集サーバ
１０６  ネットワーク
１０８  Ｗｅｂページ
１１０  スニペット
１１２  メモリ
１１４  プロセッサ
１１６  ツリーファイル
１１８  識別規則
１２０  編集規則
１２２  構文解析ツール（パーサ）
１２４  編集エンジン
１２６  リクエスト
１２８  レスポンス
【図１】
0005526128.tif 000002
【図２Ａ】
0005526128.tif 000003
【図２Ｂ】
0005526128.tif 000004
【図３】
0005526128.tif 000005