JP2019530921A - 提示するためのネイティブコンテンツをサーバ側でレンダリングするための方法およびシステム - Google Patents

提示するためのネイティブコンテンツをサーバ側でレンダリングするための方法およびシステム Download PDF

Info

Publication number
JP2019530921A
JP2019530921A JP2019508244A JP2019508244A JP2019530921A JP 2019530921 A JP2019530921 A JP 2019530921A JP 2019508244 A JP2019508244 A JP 2019508244A JP 2019508244 A JP2019508244 A JP 2019508244A JP 2019530921 A JP2019530921 A JP 2019530921A
Authority
JP
Japan
Prior art keywords
content
presentation
rendered
client device
data processing
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
JP2019508244A
Other languages
English (en)
Other versions
JP6761112B2 (ja
Inventor
ジョン・ベンダー
ズタオ・ジュ
ボ・リン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of JP2019530921A publication Critical patent/JP2019530921A/ja
Application granted granted Critical
Publication of JP6761112B2 publication Critical patent/JP6761112B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/117Tagging; Marking up; Designating a block; Setting of attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/131Fragmentation of text files, e.g. creating reusable text-blocks; Linking to fragments, e.g. using XInclude; Namespaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • 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/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0641Shopping interfaces
    • G06Q30/0643Graphical representation of items or shoppers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/75Indicating network or usage conditions on the user display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Databases & Information Systems (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Data Mining & Analysis (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Library & Information Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

アプリケーションの環境内で提示するためのネイティブコンテンツをサーバ側でレンダリングするためのシステムおよび方法が提供される。方法は、データ処理システムによって、クライアントデバイスから、リソースによって提供された特定のコンテンツスロットを識別するコンテンツスロット識別子を含むコンテンツの要求を受信するステップと、コンテンツスロット識別子を使用して、データベースにアクセスして、リソースの環境内で表示するために、特定の構成に従って、レンダリング済みコンテンツファイルを生成するようにコンテンツ構成要素を配置するために使用されるプレゼンテーションスキーマを識別するステップと、コンテンツの要求に応答して、複数のコンテンツ構成要素を含むコンテンツアセットを識別するステップと、コンテンツスロットに対応するプレゼンテーションスキーマに基づいて、複数のコンテンツ構成要素を、レンダリング済みコンテンツファイルとしてレンダリングするステップと、データ処理システムによって、レンダリング済みコンテンツファイルを、リソースのコンテンツスロット内に表示するためにクライアントデバイスに送信するステップとを含む。

Description

関連出願の相互参照
本出願は、2016年12月30日に出願された米国特許仮出願第62/440,748号、および2017年1月25日に出願された米国特許出願第15/415,322号の利益および優先権を主張する。
インターネットなどのコンピュータネットワーク環境では、コンテンツの要求に応答して、サーバからのデータをクライアントデバイスに配信することができる。クライアントデバイスは、サーバからデータを受信する。データは、クライアントデバイスで表示するためにデータに対応するコンテンツをレンダリングするための命令を含むことができる。クライアントデバイスは、コンテンツをレンダリングし、クライアントデバイスの、またはクライアントデバイスに結合された表示構成要素を介して、レンダリング済みコンテンツを表示するためのコンテンツレンダリングアプリケーションまたは機能を含むことができる。
様々な実装形態によれば、アプリケーションの環境内で提示するためのネイティブコンテンツをサーバ側でレンダリングするための方法が提供される。この方法は、データ処理システムによって、クライアントデバイスから、リソース(ユーザへの表示を生成するためにアプリケーションによって使用されているリソースなど)によって提供された特定のコンテンツスロットを識別するコンテンツスロット識別子を含むコンテンツの要求を受信するステップを含む。この方法は、データ処理システムによって、コンテンツスロット識別子を使用して、データベースにアクセスして、リソースの環境内(すなわち、アプリケーションがリソースを使用してユーザへの表示を生成しているときのアプリケーションの環境)で表示するために、特定の構成に従って、レンダリング済みコンテンツファイルを生成するようにコンテンツ構成要素を配置するために使用されるプレゼンテーションスキーマを識別するステップをさらに含む。この方法は、データ処理システムによって、コンテンツの要求に応答して、複数のコンテンツ構成要素を含むコンテンツアセットを識別するステップをさらに含む。この方法は、データ処理システムのコンテンツレンダラによって、コンテンツスロットに対応するプレゼンテーションスキーマに基づいて、複数のコンテンツ構成要素を、レンダリング済みコンテンツファイルとしてレンダリングするステップをさらに含む。この方法は、データ処理システムによって、レンダリング済みコンテンツファイルを、リソースのコンテンツスロット内に表示するためにクライアントデバイスに送信するステップをさらに含む。「ネイティブコンテンツ」という用語は、本明細書では、リソースの一部ではなく、またはリソースによって生成されておらず、通常は、方法が実行される前にリソースに関連付けられていないが、この方法によって、リソースの一部である、またはリソースによって生成されるコンテンツと一緒に表示されるコンテンツを意味するために使用される。
いくつかの実装形態では、コンテンツの要求は、要求されたコンテンツのサイズ値を含む。いくつかの実装形態では、プレゼンテーションスキーマを識別するステップは、データ処理システムによって、複数のプレゼンテーションスキーマを識別するステップであり、プレゼンテーションスキーマの各々が、コンテンツスロット識別子に対応するそれぞれのプレゼンテーションスキーマ識別子を含む、ステップと、データ処理システムによって、複数のプレゼンテーションスキーマのサブセットを識別するステップであり、サブセットに含まれるプレゼンテーションスキーマの各々が、要求されたコンテンツのサイズ値と一致するサイズ属性を含む、ステップと、データ処理システムによって、識別されたプレゼンテーションスキーマを、複数のプレゼンテーションスキーマのサブセットから選択するステップとを含む。
いくつかの実装形態では、レンダリング済みコンテンツファイルは、クライアントデバイスにおいて、レンダリング済みコンテンツファイルとの対話に応答して、レンダリング済みコンテンツファイルとの対話の指示を送信するように構成されたスクリプトを含む。いくつかの実装形態では、方法は、データ処理システムによって、対話の指示がクライアントデバイスから送信されるサーバのアドレスを挿入するステップをさらに含む。
いくつかの実装形態では、レンダリング済みコンテンツファイルは、クライアントデバイスにおいてレンダリング済みコンテンツファイルを表示するように構成されたハイパーテキストマークアップ言語(HTML)スクリプトを含む。いくつかの実装形態では、レンダリング済みコンテンツファイルは、クライアントデバイスにおいてレンダリング済みコンテンツファイルを表示するように構成されたカスケーディングスタイルシート(CSS)スクリプトを含む。いくつかの実装形態では、プレゼンテーションスキーマは、複数のスタイルパラメータを含み、スタイルパラメータの各々は、エンティティのリソースの値と一致する値を含む。いくつかの実装形態では、スタイルパラメータは、コンテンツスロットに表示されるセクションカテゴリ、コンテンツスロットの背景色、テキストのフォントサイズ、テキストの位置、または画像の位置を含む。いくつかの実装形態では、レンダリング済みコンテンツファイルの視覚的特性は、アプリケーションの環境の視覚的特性と実質的に一致する。
様々な実装形態によれば、アプリケーションの環境内で提示するためのネイティブコンテンツをサーバ側でレンダリングするためのシステムが提供される。このシステムは、プロセッサを含む。このシステムは、プロセッサに結合されたメモリをさらに含み、メモリは、コンピュータ実行可能命令を記憶し、コンピュータ実行可能命令は、プロセッサによって実行されると、プロセッサに、クライアントデバイスから、リソースによって提供された特定のコンテンツスロットを識別するコンテンツスロット識別子を含むコンテンツの要求を受信させ、コンテンツスロット識別子を使用して、データベースにアクセスさせて、リソースの環境内で表示するために、特定の構成に従って、レンダリング済みコンテンツファイルを生成するようにコンテンツ構成要素を配置するために使用されるプレゼンテーションスキーマを識別させ、コンテンツの要求に応答して、複数のコンテンツ構成要素を含むコンテンツアセットを識別させ、コンテンツスロットに対応するプレゼンテーションスキーマに基づいて、複数のコンテンツ構成要素を、レンダリング済みコンテンツファイルとしてレンダリングさせ、レンダリング済みコンテンツファイルを、リソースのコンテンツスロット内に表示するためにクライアントデバイスへ送信させる。
いくつかの実装形態では、コンテンツの要求は、要求されたコンテンツのサイズ値を含む。いくつかの実装形態では、プレゼンテーションスキーマを識別する際に、メモリは、プロセッサによって実行されると、プロセッサに、複数のプレゼンテーションスキーマを識別させ、プレゼンテーションスキーマの各々が、コンテンツスロット識別子に対応するそれぞれのプレゼンテーションスキーマ識別子を含み、複数のプレゼンテーションスキーマのサブセットを識別させ、サブセットに含まれるプレゼンテーションスキーマの各々が、要求されたコンテンツのサイズ値と一致するサイズ属性を含み、識別されたプレゼンテーションスキーマを、複数のプレゼンテーションスキーマのサブセットから選択させるコンピュータ実行可能命令を記憶する。
いくつかの実装形態では、レンダリング済みコンテンツファイルは、クライアントデバイスにおいて、レンダリング済みコンテンツファイルとの対話に応答して、レンダリング済みコンテンツファイルとの対話の指示を送信するように構成されたスクリプトを含む。いくつかの実装形態では、メモリは、コンピュータ実行可能命令を記憶し、コンピュータ実行可能命令は、プロセッサによって実行されると、さらに、プロセッサに、対話の指示がクライアントデバイスから送信されるサーバのアドレスを挿入させる。
いくつかの実装形態では、レンダリング済みコンテンツファイルは、クライアントデバイスにおいてレンダリング済みコンテンツファイルを表示するように構成されたハイパーテキストマークアップ言語(HTML)スクリプトを含む。いくつかの実装形態では、レンダリング済みコンテンツファイルは、クライアントデバイスにおいてレンダリング済みコンテンツファイルを表示するように構成されたカスケーディングスタイルシート(CSS)スクリプトを含む。
いくつかの実装形態では、プレゼンテーションスキーマは、複数のスタイルパラメータを含み、スタイルパラメータの各々は、エンティティのリソースの値と一致する値を含む。いくつかの実装形態では、スタイルパラメータは、コンテンツスロットに表示されるセクションカテゴリ、コンテンツスロットの背景色、テキストのフォントサイズ、テキストの位置、または画像の位置を含む。いくつかの実装形態では、レンダリング済みコンテンツファイルの視覚的特性は、アプリケーションの環境の視覚的特性と実質的に一致し得る。
態様の各々において、コンテンツは、表示のために選択され得る。選択されたコンテンツは、ユーザインターフェースの一部として表示するためにユーザに関連付けられたコンピュータに送信され得る。コンテンツは、任意の都合のよい形をとり、たとえば、対話型グラフィカルユーザインターフェースの構成要素でもよい。態様は、任意の都合のよい形で実施できることが諒解されよう。たとえば、態様は、有形のキャリア媒体(たとえばディスク)、または無形のキャリア媒体(たとえば通信信号)であり得る適切なキャリア媒体上で搬送され得る適切なコンピュータプログラムによって実施され得る。態様はまた、態様を実施するように構成されたコンピュータプログラムを実行するプログラム可能なコンピュータの形をとり得る適切な装置を使用して実施され得る。態様を組み合わせてもよく、一態様の文脈で説明した特徴を他の態様の特徴と組み合わせてもよい。
これらおよび他の態様および実装形態について、以下で詳細に説明する。上記の情報および以下の詳細な説明は、様々な態様の例示的な実装形態を含み、特許請求された態様および実装形態の性質および特徴を理解するための概要またはフレームワークを提供する。図面は、様々な態様および実装形態の例示およびさらなる理解を提供し、本明細書に組み込まれ、その一部を構成する。
添付の図面は、一定の縮尺で描かれていないものとする。様々な図面における同様の参照番号および名称は、同様の要素を示す。明快のために、すべての構成要素がすべての図面においてラベル付けされているとは限らない。
例示的な実装形態による、ネイティブコンテンツをサーバ側でレンダリングするための環境を示すブロック図である。 例示的な実装形態によるコンテンツレンダリングモジュールを示すブロック図である。 例示的な実装形態による、コンテンツレンダリングモジュールによって使用されるデータモデルを示すブロック図である。 比較例による、コンテンツのレンダリングおよび送信のシーケンスを示すブロック図である。 本開示の例示的な実装形態による、コンテンツのレンダリングおよび送信のシーケンスを示すブロック図である。 例示的な実装形態による、ネイティブコンテンツをサーバ側でレンダリングするための方法を示すフロー図である。 例示的な実装形態による、本明細書に記載され、例示されたシステムおよび方法の要素を実装するために採用され得るコンピュータシステムのための一般的なアーキテクチャを示すブロック図である。
以下は、ネイティブコンテンツのサーバ側レンダリングに関連する方法、装置、およびシステムに関連する様々な概念、およびそれらの実装形態のより詳細な説明である。記載された概念は、任意の特定の方法の実装に限定されないので、上記で紹介され以下でより詳細に説明される様々な概念は、任意の多数の方法で実施されてもよい。
特に、本開示は、サーバにおいてネイティブコンテンツをレンダリングし、レンダリング済みネイティブコンテンツをウェブまたはモバイルアプリケーション上に表示するためにクライアントデバイスに送信するためのシステムおよび方法に関する。比較例では、ネイティブコンテンツは、クライアントデバイス上で実行され、アプリケーションの環境内で表示するために提示されるアプリケーション(たとえば、モバイルアプリケーションまたはウェブブラウザ)によってレンダリングされ得る。そのような実装形態では、1つまたは複数のコンテンツ構成要素を含む未加工コンテンツアセットが、サーバからクライアントデバイスに送信され、クライアントデバイスにおけるアプリケーションは、アプリケーションの所定のパラメータに従って、未加工コンテンツアセットのコンテンツ構成要素をアセンブルするために特殊なレンダリングツール、スクリプト、または命令を利用する。アプリケーションがコンテンツ構成要素を使用してネイティブコンテンツをレンダリングすると、アプリケーションは、レンダリング済みコンテンツが発行者生成コンテンツと同じルックアンドフィールを有するように見えるように、アプリケーションの環境内で表示するためのレンダリング済みネイティブコンテンツを提示する。
クライアントデバイス上で実行されるアプリケーションによってネイティブコンテンツをレンダリングすることにはいくつかの技術的問題がある。第1に、アプリケーションは、クライアントデバイスにネイティブコンテンツを適切にレンダリングさせることができる1つまたは複数の特殊なコンテンツレンダリングスクリプトを必要とする。アプリケーションに特殊なコンテンツレンダリングスクリプトを含める結果として、アプリケーションのサイズは、ネイティブコンテンツをレンダリングするためにコンテンツレンダリングスクリプトを必要としないアプリケーションよりも大きくなる。アプリケーションのサイズが大きくなると、アプリケーションのダウンロードまたは転送にかかる時間量が増し、また、クライアントデバイスにおいてより多くのメモリリソースを使用する。第2に、クライアントデバイス上のアプリケーションは、レンダリングプロセスに対する更新が行われるときにコンピュータ実行可能命令に対する更新を受信することを要求される。これらの更新は、ネットワークリソースを利用し、しばしば、更新が実行されるまでアプリケーションを動作不可能にすることがある。結果として、クライアントデバイスにおけるアプリケーションは、繰り返し更新される必要があり、コンピューティングリソースおよびバッテリーまたは電力リソースを含む、ネットワークリソースおよびクライアントデバイスリソースの両方の消費を必要とする。第3に、クライアントデバイスに、クライアントデバイスにおいてコンテンツをレンダリングするためのコンピュータ実行可能命令を実行させることは、バッテリー消費量の増加をもたらすだけでなく、クライアントデバイスの性能に悪影響を及ぼす可能性がある追加のコンピューティングリソースを必要とする可能性がある。第4に、クライアントデバイスにおいてレンダリングを実行することによって、レンダリング動作は、各クライアントデバイス上の計算リソースの利用可能性の減少に対応するように制限されることがある。第5に、クライアントデバイスにおいてレンダリングを実行することによって、コンテンツ発行者は、A/B実験を作成および管理する、またはレンダリングを最適化する能力を失う可能性がある(たとえば、コンテンツ発行者は、手動でA/B実験を確立する、またはそのような機構をクライアントデバイスにおけるそのアプリケーションに組み込む必要があり得る)。
これらの技術的問題などに対処するために、本開示は、サーバにおいてアプリケーションのためのネイティブコンテンツをレンダリングし、レンダリングのためにクライアントデバイス上で実行されるアプリケーションにレンダリング済みネイティブコンテンツを送信することに関する。ネイティブコンテンツは、たとえば、ネイティブコンテンツが挿入されるアプリケーションの一次コンテンツと同様の形および機能を有するコンテンツを含み得る。たとえば、アプリケーションの環境内で提示するためのネイティブコンテンツをサーバ側でレンダリングするための方法は、データ処理システムによって、クライアントデバイスから、リソースによって提供された特定のコンテンツスロットを識別するコンテンツスロット識別子を含むコンテンツの要求を受信するステップを含む。コンテンツスロット識別子は、コンテンツスロット識別子によって識別されたコンテンツスロット内のコンテンツアイテムを、それに従ってアセンブル、配置、スタイル、および/または提示するためのプレゼンテーションスキーマを決定するためにサーバによって使用され得る。コンテンツアイテムの特性は、アプリケーションに含まれる他のコンテンツの特性(たとえば、フォント、テキストサイズ、背景色、またはパターンなど)と実質的に一致し得る。
この方法は、データ処理システムによって、コンテンツスロット識別子を使用して、データベースにアクセスして、リソースの環境内で表示するために、特定の構成に従って、レンダリング済みコンテンツファイルを生成するようにコンテンツ構成要素を配置するために使用されるプレゼンテーションスキーマを識別するステップをさらに含む。この方法は、データ処理システムによって、コンテンツの要求に応答して、複数のコンテンツ構成要素を含むコンテンツアセットを識別するステップをさらに含む。この方法は、データ処理システムのコンテンツレンダラによって、コンテンツスロットに対応するプレゼンテーションスキーマに基づいて、複数のコンテンツ構成要素を、レンダリング済みコンテンツファイルとしてレンダリングするステップをさらに含む。この方法は、データ処理システムによって、レンダリング済みコンテンツファイルを、リソースのコンテンツスロット内に表示するためにクライアントデバイスに送信するステップをさらに含む。
図1は、ネットワーク105などの少なくとも1つのコンピュータネットワークを介して提示するためにコンテンツをサーバ側でレンダリングするためのシステム100を示す。ネットワーク105は、インターネット、ローカル、ワイド、メトロ、または他のエリアネットワークなどのコンピュータネットワーク、イントラネット、衛星ネットワーク、音声またはデータモバイルフォン通信ネットワークなど他のコンピュータネットワーク、およびそれらの組合せを含むことができる。システム100はまた、たとえば、少なくとも1つのコンテンツプロバイダコンピューティングデバイス115とネットワーク105を介して通信するためにプロセッサを有するコンピューティングデバイスまたはサーバなどの少なくとも1つの論理デバイスなど、少なくとも1つのデータ処理システム110、少なくとも1つのコンテンツ発行者コンピューティングデバイス120、または少なくとも1つのエンドユーザコンピューティングデバイスもしくはクライアントデバイス125を含むことができる。
データ処理システム110は、少なくとも1つのサーバを含むことができる。たとえば、データ処理システム110は、少なくとも1つのデータセンターまたはサーバファームに位置する複数のサーバを含むことができる。いくつかの実装形態では、データ処理システム110は、コンテンツ配置システムを含む。データ処理システム110は、少なくとも1つのコンテンツ要求モジュール130、少なくとも1つのコンテンツレンダリングモジュール135、少なくとも1つのレンダリング済みコンテンツ配信モジュール140、および少なくとも1つのデータベース145を含むことができる。コンテンツ要求モジュール130、コンテンツレンダリングモジュール135、およびレンダリング済みコンテンツ配信モジュール140は各々、少なくとも1つの処理ユニット、サーバ、仮想サーバ、回路、エンジン、エージェント、機器、またはネットワーク105を介してデータベース145および他のコンピューティングデバイス(たとえば、コンテンツプロバイダコンピューティングデバイス115、コンテンツ発行者コンピューティングデバイス120、またはエンドユーザコンピューティングデバイス125)と通信するように構成されたプログラマブル論理アレイなど他の論理デバイスを含み得る。
コンテンツ要求モジュール130、コンテンツレンダリングモジュール135、およびレンダリング済みコンテンツ配信モジュール140は、少なくとも1つのコンピュータプログラムまたは少なくとも1つのスクリプトを含む、または実行することができる。コンテンツ要求モジュール130、コンテンツレンダリングモジュール135、およびレンダリング済みコンテンツ配信モジュール140は、別々の構成要素、単一の構成要素、またはデータ処理システム110の一部とすることができる。コンテンツ要求モジュール130、コンテンツレンダリングモジュール135、およびレンダリング済みコンテンツ配信モジュール140は、コンテンツアイテムの配置を開始するための要求を取得する、コンテンツ発行者コンピューティングデバイス120の情報リソースを識別する、コンテンツプロバイダコンピューティングデバイス115において情報リソースのレンダリングを提供する、情報リソースのコンテンツアイテムスロットを識別する、情報リソースのレンダリングで表示するためのコンテンツアイテムを提供する、または、たとえば、エンドユーザコンピューティングデバイス125において情報リソースとともに表示するためのコンテンツアイテムを提供するための許可を受信するために1つまたは複数のスクリプトを実行するように構成された1つまたは複数のプロセッサなど、ソフトウェアとハードウェアの組合せを含み得る。
コンテンツプロバイダコンピューティングデバイス115は、エンドユーザコンピューティングデバイス125において情報リソース上に表示するためのコンテンツなどのコンテンツアイテムを提供するためにコンテンツプロバイダエンティティによって動作されるサーバまたは他のコンピューティングデバイスを含むことができる。コンテンツプロバイダコンピューティングデバイス115によって提供されるコンテンツは、たとえば、コンテンツ発行者コンピューティングデバイス120によって提供されるコンテンツなど、一次コンテンツを含むウェブサイトまたはウェブページなどの情報リソース上に表示するための第三者コンテンツアイテムを含むことができる。コンテンツアイテムは、検索結果ウェブページにも表示できる。たとえば、コンテンツプロバイダコンピューティングデバイス115は、ウェブページの一次コンテンツが、会社によって提供される会社のウェブページなどのコンテンツウェブページのコンテンツスロットに表示するため、検索エンジンによって提供された検索結果ランディングページ上に表示するため、またはモバイルデバイスにおけるモバイルアプリケーションにおいて表示するためのコンテンツアイテムを提供する、またはそのソースとすることができる。コンテンツプロバイダコンピューティングデバイス115に関連付けられたコンテンツアイテムは、スマートフォンまたは他のエンドユーザコンピューティングデバイス125上のアプリケーションの実行の一部として表示されるコンテンツなど、ウェブページ以外の情報リソース上に表示することができる。
コンテンツ発行者コンピューティングデバイス120は、サーバ、または、ネットワーク105を介して表示するための一次コンテンツを提供するためにコンテンツ発行エンティティによって動作される他のコンピューティングデバイスを含むことができる。たとえば、コンテンツ発行者コンピューティングデバイス120は、ウェブページ上に表示するための一次コンテンツを提供するウェブページオペレータを含むことができる。一次コンテンツは、コンテンツ発行者コンピューティングデバイス120によって提供されるもの以外のコンテンツを含むことができ、ウェブページは、コンテンツプロバイダコンピューティングデバイス115からの第三者コンテンツアイテムの表示のために構成されたコンテンツスロットを含むことができる。たとえば、コンテンツ発行者コンピューティングデバイス120は、会社のウェブサイトを動作させることができ、ウェブサイトのウェブページ上に表示するためにその会社に関するコンテンツを提供することができる。ウェブページは、コンテンツプロバイダコンピューティングデバイス115のコンテンツなどの第三者コンテンツアイテムを表示するように構成されたコンテンツスロットを含むことができる。いくつかの実装形態では、コンテンツ発行者コンピューティングデバイス120は、検索エンジンウェブサイトを動作させる検索エンジンオペレータの検索エンジンコンピューティングデバイス(たとえば、サーバ)を含む。検索エンジンウェブページの一次コンテンツ(たとえば、結果またはランディングウェブページ)は、検索の結果、ならびにコンテンツプロバイダコンピューティングデバイス115からのコンテンツアイテムなどコンテンツスロットに表示される第三者コンテンツアイテムを含むことができる。
エンドユーザコンピューティングデバイス125は、ネットワーク105を介して通信して、コンテンツ発行者コンピューティングデバイス120によって提供されるコンテンツ(たとえば、一次ウェブページコンテンツまたは他の情報リソース)、およびコンテンツプロバイダコンピューティングデバイス115によって提供されるコンテンツ(たとえば、ウェブページのコンテンツスロットに表示するように構成された第三者コンテンツアイテム)などのデータを表示するように構成されたコンピューティングデバイスを含むことができるクライアントデバイスである。エンドユーザコンピューティングデバイス125、コンテンツプロバイダコンピューティングデバイス115、およびコンテンツ発行者コンピューティングデバイス120は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン、携帯情報端末、モバイルデバイス、エンドユーザコンピューティングデバイス、コンシューマコンピューティングデバイス、サーバ、クライアント、および他のコンピューティングデバイスを含むことができる。エンドユーザコンピューティングデバイス125、コンテンツプロバイダコンピューティングデバイス115、およびコンテンツ発行者コンピューティングデバイス120は、マイクロフォン、スピーカ、タッチスクリーン、キーボード、ポインティングデバイス、コンピュータマウス、タッチパッド、または他の入力もしくは出力インターフェースなどのユーザインターフェースを含み得る。
コンテンツ要求モジュール130は、エンドユーザコンピューティングデバイス125からコンテンツの要求を受信することができる。コンテンツの要求は、情報リソースの要求、1つまたは複数の第三者コンテンツアイテムの要求、またはそれらの組合せを含むことができる。いくつかの実装形態では、コンテンツの要求は、第三者コンテンツの要求を含むことができる。いくつかの実装形態では、第三者コンテンツの要求は、第三者コンテンツが表示されるべき情報リソースのアドレスまたは識別子を含むことができる。第三者コンテンツの要求はまた、コンテンツの要求に応答して提供するコンテンツを決定するためにデータ処理システム110によって使用することができる1つまたは複数のパラメータを含み、または識別することができる。たとえば、パラメータは、要求されたコンテンツを挿入するためのコンテンツスロットのサイズを識別することができる。パラメータは、情報リソースに関連付けられたコンテンツのタイプ、要求された第三者コンテンツのタイプ(たとえば、テキスト、画像、ビデオなど)、エンドユーザコンピューティングデバイス情報、要求された第三者コンテンツアイテムのサイズ情報、エンドユーザコンピューティングデバイス125に関連付けられたネットワークタイプ(たとえば、セルラーネットワーク、WiFiなど)、エンドユーザコンピューティングデバイス125におけるアプリケーションに関連付けられたアプリケーションID、アプリケーションIDに関連付けられた属性、エンドユーザコンピューティングデバイス125の現在または過去の場所、またはそれらの組合せを識別することができる。コンテンツ要求に関するさらなる開示について、図2に関連して以下に説明する。
いくつかの実装形態では、コンテンツの要求は情報リソースの要求を含むことができる。情報リソースの要求は、情報リソースのアドレスまたは識別子を含むことができる。たとえば、情報リソースの要求は、ウェブページなど特定のリソースのユニフォームリソースロケータ(URL)(たとえば、「http://www.example.com」)を含むことができる。情報リソースの要求は、クライアントデバイス情報(デバイスタイプ、デバイス識別子、またはそれらの組合せなど)も含むことができる。
データ処理システム110は、1つまたは複数のコンテンツリポジトリまたはデータベース145をも含むことができる。データベース145は、データ処理システム110に対してローカルにすることができる。いくつかの実装形態では、データベース145は、データ処理システム110に対してリモートとすることができるが、ネットワーク105を介してデータ処理システム110と通信することができる。データベース145は、特に、エンドユーザコンピューティングデバイス125に役立つように、ウェブページ、ウェブページの一部、第三者コンテンツアイテム、およびプリフェッチスクリプトを含むことができる。
コンテンツレンダリングモジュール135は、エンドユーザコンピューティングデバイス125へのレンダリングおよび配信のためのコンテンツアイテムを選択するように構成され得る。コンテンツレンダリングモジュール135は、コンテンツアイテムの選択のためにデータベース145にアクセスすることができる。コンテンツレンダリングモジュール135はまた、選択されたコンテンツアイテムがどのようにレンダリングされるべきかを指示するプレゼンテーションスキーマを選択するためにプレゼンテーションスキーマルックアップデータベースにアクセスすることができる。コンテンツレンダリングモジュール135は、選択されたコンテンツアイテムおよび選択されたプレゼンテーションスキーマに基づいて、コンテンツアイテムをレンダリングすることができる。レンダリング済みコンテンツアイテムは、レンダリング済みコンテンツアイテムが情報リソースの環境の視覚的特性と実質的に一致するように、情報リソースのコンテンツスロット内に表示されるべきネイティブコンテンツアイテムを含むことができる。コンテンツレンダリングモジュール135に関するさらなる説明は、図2に関連して以下に見られる。
レンダリング済みコンテンツ配信モジュール140は、コンテンツレンダリングモジュール135によってレンダリングされるコンテンツアイテムを受信するように構成することができる。レンダリング済みコンテンツ配信モジュール140は、レンダリング済みコンテンツをエンドユーザコンピューティングデバイス125に配信することができる。いくつかの実装形態では、レンダリング済みコンテンツアイテムは、レンダリング済みコンテンツ配信モジュール140が、レンダリング済みコンテンツアイテムを送信するための特定の宛先エンドユーザコンピューティングデバイス125を決定することを可能にする識別子を含む。識別子は、特定のエンドユーザコンピューティングデバイス125からのコンテンツの要求とともにコンテンツ要求モジュール130によって受信され得る。
レンダリング済みコンテンツ配信モジュール140によって配信されるレンダリングコンテンツは、対話スクリプトで構成することができる。いくつかの実装形態では、対話スクリプトは、エンドユーザコンピューティングデバイス125に、データ処理システム110からエンドユーザコンピューティングデバイス125に送信された配信コンテンツとの対話の指示を送信させるコンピュータ実行可能命令を含む。たとえば、対話は、カーソルでのクリック、スワイプ、タップ、ホバーオーバー、またはコンテンツアイテムとの他の任意の対話を含むことができる。コンピュータ実行可能命令は、特に、ハイパーテキストマークアップ言語(HTML)、拡張ハイパーテキストマークアップ言語(XHTML)、拡張マークアップ言語(XML)、カスケーディングスタイルシート(CSS)、およびジャバスクリプトなどのスクリプトを含むことができる。コンピュータ実行可能命令は、エンドユーザコンピューティングデバイス125に、コンテンツ要求モジュール130によって受信されたコンテンツ要求を送信させたアプリケーションまたはウェブブラウザなど、エンドユーザコンピューティングデバイス125のアプリケーションまたはウェブブラウザ内で実行することができる。アプリケーションは、たとえば、インターネットブラウザ、モバイルアプリケーション、ゲームアプリケーション、GPSアプリケーション、仮想現実アプリケーション、またはコンピュータ実行可能命令を読み取り、実行することができる任意の他のコンピュータプログラムを含むことができる。
図2は、例示的な実装形態によるコンテンツレンダリングモジュール135を示すブロック図である。コンテンツレンダリングモジュール135の図示の構成要素は、コンテンツレンダリングモジュール135の一部を含むことができ、図2は、コンテンツレンダリングモジュール135のすべての構成要素を描写していない場合がある。いくつかの実装形態では、コンテンツレンダリングモジュール135は、変換モジュール205、コンテンツマネージャ210、コンテンツアセットデータベース215、プレゼンテーションスキーマデータベース220、およびスクリプトデータベース225を含む。
いくつかの実装形態では、コンテンツアセットデータベース215、プレゼンテーションスキーマデータベース220、およびスクリプトデータベース225はすべて、データベース145の一部である。データベース145は、コンテンツアセットデータベース215、プレゼンテーションスキーマデータベース220、およびスクリプトデータベース225によって記憶されたデータを含むように分離または分割することができる。いくつかの実装形態では、データ処理システム110は、コンテンツプロバイダ115およびコンテンツ発行者120からデータを受信し、受信されたデータを対応するデータベース215、220、225に記憶することができる。たとえば、コンテンツプロバイダ115は、コンテンツアセットデータをデータ処理システム110に送信することができ、データ処理システム110は、その情報をロードし、コンテンツアセットデータベース215に記憶することができる。同様に、コンテンツ発行者120は、プレゼンテーションスキーマデータをデータ処理システム110に送信することができ、データは、プレゼンテーションスキーマデータベース220にロードされ、記憶され得る。
いくつかの実装形態では、変換モジュール205は、たとえばコンテンツ要求モジュール130からコンテンツ要求を受信するように構成される。いくつかの実装形態では、変換モジュール205は、コンテンツ要求モジュール130の一部とすることができる。変換モジュール205は、ハイパーテキスト転送プロトコル(HTTP)フォーマットでコンテンツ要求を受信するように構成することができる。コンテンツ要求は、アプリケーションから(たとえば、モバイルエンドユーザコンピューティングデバイス125から)またはウェブページから受信することができる。HTTPコンテンツ要求は、最初にエンドユーザコンピューティングデバイス125から送信される。
いくつかの実装形態では、HTTPコンテンツ要求は、要求されたコンテンツアイテムのコンテンツスロット識別子およびサイズ情報を含む。コンテンツスロット識別子は、たとえば、情報リソースのコンテンツスロットを識別するコンテンツスロット識別子など、要求されたコンテンツアイテムが供給されるべき情報リソースの一部を識別する識別子を含むことができる。サイズ情報は、1組のサイズ寸法または複数組のサイズ寸法を含むことができる。いくつかの実装形態では、サイズ情報は、固定サイズ(たとえば、ピクセル×ピクセルサイズ寸法)である。いくつかの実装形態では、サイズ情報は、返されたレンダリング済みコンテンツアイテムが様々なサイズのコンテンツスロットに収まるように構成されるように、要求されたサイズが適応可能であるかどうかを指定する。いくつかの実装形態では、コンテンツ要求は、ネイティブコンテンツアイテムの要求を示す。いくつかの実装形態では、コンテンツ要求は、非ネイティブコンテンツアイテムの要求を示す。いくつかの実装形態では、コンテンツ要求は、要求がネイティブのコンテンツアイテムについてのものであるか、非ネイティブのコンテンツアイテムについてのものであるかを指定しない。
HTTPコンテンツ要求を受信すると、変換モジュール205は、HTTP要求をコンテンツマネージャ210と互換性のあるフォーマットに変換するように構成することができる。たとえば、変換モジュール205は、コンテンツマネージャ210によって使用するための追加のコンテキスト情報(たとえば、コンテンツ要求を送信したアプリケーションのアプリケーション識別子、アプリケーションのユーザのユーザ識別子などの情報)を含むようにHTTPコンテンツ要求を解析するように構成できる。さらに、変換モジュール205は、フォーマットされた要求が、コンテンツマネージャ210がコンテンツ選択に使用するために解析し、そこから情報を抽出することができるものとなるように、HTTPコンテンツ要求をフォーマットすることができる。たとえば、コンテンツマネージャ210は、コンテンツ要求から識別子を抽出し、抽出された識別子に関連するコンテンツを取り出すことができるように、変換モジュール205によってフォーマットまたは修正されたコンテンツ要求を解析することができる。
いくつかの実装形態では、コンテンツマネージャ210は、コンテンツスロット識別子および提供されたサイズ情報によって識別されたコンテンツスロットと互換性のあるプレゼンテーションスキーマを選択するように構成されたモジュールである。したがって、いくつかの実装形態では、コンテンツマネージャ210は、コンテンツスロット識別子に基づいてコンテンツアセットのリストを選択し、コンテンツスロットに割り当てられている、またはそうでなければ関連付けられているプレゼンテーションスキーマのリストを選択し、サイズ情報と一致する対応するプレゼンテーションスキーマを含まないコンテンツアセット、およびコンテンツスロット識別子によって識別されたコンテンツスロットをターゲットにしていないものを除去する。コンテンツマネージャ210は、コンテンツ選択モジュール211、プレゼンテーションルックアップモジュール212、プレゼンテーションフィルタ213、およびランキングモジュール214を含むことができる。
いくつかの実装形態では、コンテンツ選択モジュール211は、コンテンツスロット識別子およびサイズ情報を含むコンテンツ要求を受信することができる。コンテンツ選択モジュール211は、コンテンツ要求に応答してネイティブコンテンツアセットのリストを選択するためにコンテンツアセットデータベース215にアクセスすることができる。いくつかの実装形態では、コンテンツアセットのコンテンツプロバイダは、特定のコンテンツアセットを1つまたは複数のコンテンツアセットテンプレートに割り当てる、またはリンクすることができ、コンテンツアセットテンプレートは、コンテンツアセットのどのコンテンツ構成要素を配置できるかの仕様を含むことができる。コンテンツ構成要素は、限定はしないが、見出し、画像、本文、行動喚起(call to action)、ロゴ、属性、クリックスルーURLなどを含むことができる。
いくつかの実装形態では、コンテンツ選択モジュール211は、クエリを使用してコンテンツアセットデータベース215からコンテンツアセットを識別することができる。クエリは、コンテンツ要求からのコンテンツスロット識別子およびサイズ情報を含むことができる。クエリに応答して、コンテンツアセットデータベース215は、コンテンツ選択モジュール211によってアクセスされて、コンテンツスロット識別子およびサイズ情報と一致する1つまたは複数のコンテンツアセットを取り出すことができる。いくつかの実装形態では、コンテンツアセットデータベース215は、複数のコンテンツアセットを記憶し、コンテンツアセットの各々をコンテンツスロット識別子にリンクするか、またはそうでなければ関連付ける。いくつかの実装形態では、コンテンツアセットデータベース215は、コンテンツスロットに割り当てられたプレゼンテーションスキーマと互換性のある特定のコンテンツアセットテンプレートに割り当てられたコンテンツアセットを照合、マッピング、またはリンクすることができる。コンテンツアセットデータベース215はさらに、(たとえば、コンテンツプロバイダ115から)コンテンツアセットのサイズ決定情報を受信し、コンテンツアセットデータベース215に記憶されたコンテンツアセットの各々をサイズ決定情報とマッピングすることができる。したがって、コンテンツ選択モジュール211は、要求されたコンテンツスロット識別子およびサイズ情報に基づいて、コンテンツアセットデータベース215においてルックアップを実行し、対応するコンテンツアセットを取り出すことができる。
返されたネイティブコンテンツアセットは各々、以下で説明するように、プレゼンテーションスキーマを識別するために使用することができるコンテンツアセットテンプレート識別子を含むことができる。いくつかの実装形態では、取り出されたネイティブコンテンツアセットの各々は、任意のプレゼンテーションスキーマがネイティブコンテンツアセットに割り当てられている、またはそうでなければ関連付けられているかどうか(たとえば、プレゼンテーションスキーマが、コンテンツアセットテンプレート識別子に割り当てられているか、またはそうでなければ関連付けられているか)を示すフラグまたは他のインジケータを含む、または除外することができる。たとえば、一致するコンテンツアセットのうちの1つが、コンテンツアセットに割り当てられている、またはそうでなければ関連付けられているプレゼンテーションスキーマがないことを示すフラグを含む場合、コンテンツアセットデータベース215は、フラグを付けられたネイティブコンテンツアセットをコンテンツ選択モジュール211に返すことから除外できる。したがって、コンテンツアセットデータベース215は、ネイティブコンテンツアセット(たとえば、フラグが立てられていないもの)を返すことができ、いかなるプレゼンテーションスキーマにも割り当てられていない、またはそうでなければ関連付けられていないとしてフラグが立てられたネイティブコンテンツアセットを除外することができる。いくつかの実装形態では、コンテンツ選択モジュール211は、対応するコンテンツアセットテンプレート識別子を含む返されたコンテンツアセットをプレゼンテーションフィルタモジュール213に送信する。
いくつかの実装形態では、プレゼンテーションルックアップモジュール212は、コンテンツスロット識別子およびサイズ決定情報を含むコンテンツ要求を受信する。プレゼンテーションルックアップモジュール212は、プレゼンテーションスキーマデータベース220にアクセスすることによって、コンテンツ要求に含まれるコンテンツスロット識別子に割り当てられている、またはそうでなければ関連付けられているすべての適格なプレゼンテーションスキーマを識別することができる。いくつかの実装形態では、プレゼンテーションスキーマデータベース220は、複数のプレゼンテーションスキーマを記憶し、プレゼンテーションスキーマの各々をコンテンツスロット識別子に関連付ける。したがって、プレゼンテーションルックアップモジュール212は、要求されたコンテンツスロット識別子に基づいてプレゼンテーションスキーマデータベース220においてルックアップを実行し、対応するプレゼンテーションスキーマを取り出すことができる。プレゼンテーションルックアップモジュール212は、コンテンツ要求に含まれるサイズ決定情報と一致しないプレゼンテーションスキーマデータベース220から取り出されたプレゼンテーションを除去することができる。いくつかの実装形態では、サイズ決定情報が複数の異なるサイズを含む場合、プレゼンテーションルックアップモジュール212は、コンテンツ要求に含まれるサイズのいずれとも一致しないプレゼンテーションスキーマを除去する。プレゼンテーションルックアップモジュール212はさらに、同じサイズを有し、同じコンテンツアセットテンプレートに属するプレゼンテーションスキーマを重複排除することができる。したがって、プレゼンテーションルックアップモジュール212は、コンテンツアセットテンプレートを、そのコンテンツアセットテンプレートに割り当てられている、またはそうでなければ関連付けられている適格なプレゼンテーションスキーマのリストにマッピングするプレゼンテーションスキーママッピングを返すことができる。
たとえば、プレゼンテーションスキーママッピングを作成する際に、プレゼンテーションルックアップモジュール212は、以下のようにコンテンツアセットテンプレート識別子に対応するプレゼンテーションスキーマを識別するためのテンプレートマップを作成することができる。
Content_asset_template_id => Presentation_schema
上記のマッピングは、1つまたは複数のプレゼンテーションスキーマがコンテンツアセットテンプレート識別子にマッピングされることを示している。マッピングテンプレートにフィルタリングする際に、プレゼンテーションルックアップモジュール212は、コンテンツ要求に含まれるサイズのリストを取り出すことができる(たとえば、リストは1つのサイズまたは複数のサイズを含むことができる)。プレゼンテーションルックアップモジュール212は、コンテンツ要求からコンテンツスロット識別子を取り出し、プレゼンテーションデータベース220からコンテンツスロット識別子に割り当てられている、またはそうでなければ関連付けられているすべてのプレゼンテーションスキーマを取り出すことができる。いくつかの実装形態では、プレゼンテーションスキーマごとに、プレゼンテーションスキーマに割り当てられている、またはそうでなければ関連付けられているコンテンツアセットテンプレート識別子がプレゼンテーションスキーママッピング内にすでに存在する場合、プレゼンテーションルックアップモジュール212は、すでに存在するプレゼンテーションスキーマを無視することができる。さらに、プレゼンテーションスキーマがコンテンツ要求に含まれるサイズのいずれも有していない場合、プレゼンテーションルックアップモジュール212は、プレゼンテーションスキーマを無視することができる。そうでなければ、プレゼンテーションルックアップモジュール212は、新しいエントリをマッピングに追加することができる。完了すると、プレゼンテーションルックアップモジュール212は、プレゼンテーションスキーママッピングをプレゼンテーションフィルタ213に送信することができる。
いくつかの実装形態では、プレゼンテーションフィルタ213は、プレゼンテーションルックアップモジュール212からプレゼンテーションスキーママッピングを、およびコンテンツ選択モジュール211から適格なコンテンツアセットを受信し、プレゼンテーションスキーママッピングに対応しないコンテンツアセットを除去する。たとえば、プレゼンテーションフィルタ213は、プレゼンテーションスキーママッピングによって適格なプレゼンテーションスキーマに対応する適格なコンテンツアセットテンプレートを識別することができる。次いで、プレゼンテーションフィルタ213は、決定された適格なコンテンツアセットテンプレートと一致しないコンテンツアセットテンプレート識別子を含むコンテンツアセットを除外することができる。言い換えれば、プレゼンテーションフィルタ213は、コンテンツアセットテンプレートがプレゼンテーションスキーママッピングに属さないコンテンツアセット(たとえば、要求されたコンテンツスロットに割り当てられている、またはそうでなければ関連付けられている適格なプレゼンテーションスキーマを有していないコンテンツアセット)を除去できる。プレゼンテーションフィルタ213は、フィルタリングされたコンテンツアセットのリストをランキングモジュール214に送信することができる。
いくつかの実装形態では、ランキングモジュール214は、コンテンツアセットのリストからのコンテンツアセットのうちの1つの選択を実行する。プレゼンテーションスキーママッピングに基づいて決定されるように、選択されたコンテンツアセットが複数のプレゼンテーションスキーマに割り当てられている、またはそうでなければ関連付けられている場合、ランキングモジュール214は、選択されたコンテンツアセットに割り当てられている、またはそうでなければ関連付けられているプレゼンテーションスキーマのうちの1つをランダムに選択することができる。したがって、プレゼンテーションスキーマを選択した後、ランキングモジュール214は、選択されたコンテンツアセットに割り当てられている、またはそうでなければ関連付けられている識別子、および選択されたコンテンツアセットの選択されたプレゼンテーションスキーマに割り当てられている、またはそうでなければ関連付けられている識別子を、変換モジュール205によって受信された初期コンテンツ要求に応答するコンテンツ応答として、変換モジュール205に送信することができる。
いくつかの実装形態では、変換モジュール205は、ランキングモジュール214から、選択されたコンテンツアセットの識別子(たとえば、コンテンツアセットテンプレート識別子)、および選択されたコンテンツアセットの選択されたプレゼンテーションスキーマを受信する。変換モジュール205は、スクリプトデータベース225にアクセスして、選択されたプレゼンテーションスキーマ識別子および選択されたコンテンツアセットに対応するプレゼンテーションスキーマおよびコンテンツ構成要素を取り出すことができる。プレゼンテーションスキーマは、HTMLコード、CSSコード、またはコンテンツアイテムの提示を修正する、またはそれに影響を与え得る他のコンピュータ実行可能命令のうちの1つまたは複数を含むことができる。いくつかの実装形態では、スクリプトデータベース225は、様々なプレゼンテーションスキーマを記憶し、その各々は、プレゼンテーションスキーマ識別子に割り当てられ得るか、それを有することができる。コンテンツアセットデータベース215はさらに、プレゼンテーションスキーマの各々を1つまたは複数のコンテンツアセットテンプレート識別子に割り当てることができる。したがって、変換モジュール205は、プレゼンテーションスキーマ識別子および/またはコンテンツアセットテンプレート識別子に基づいてスクリプトデータベース225内でルックアップを実行し、対応するプレゼンテーションスキーマを取り出すことができる。
いくつかの実装形態では、変換モジュール205は、受信されたプレゼンテーションスキーマおよびコンテンツ構成要素に基づいてコンテンツアイテムをレンダリングすることができる。変換モジュール205は、レンダリング済みコンテンツアイテムをレンダリング済みコンテンツ配信モジュール140に送ることができる。コンテンツレンダリングモジュール135に適応コンテンツアイテムを返させる適応サイズのコンテンツ要求の場合、クライアントデバイス125は、コンテンツアイテムスロットの幅の100%をレンダリング済みコンテンツアイテムで満たし、次いで、選択されたコンテンツアセットの値を含むようにコンテンツアイテムの高さをサイズ設定することによって適応コンテンツアイテムを調整するように構成され得る。
図3は、例示的な実装形態による、コンテンツレンダリングモジュール135によって使用されるコンテンツアセット、コンテンツアセットテンプレート、プレゼンテーションスキーマ、およびコンテンツスロットの間のリンクを示すデータモデル300を示すブロック図である。データモデル300は、1つまたは複数のコンテンツアセット305A、305B、305C、およびコンテンツアセット305A、305B、305Cの各々にリンクされたコンテンツアセットテンプレート310を含むことができる。さらに、1つまたは複数のプレゼンテーションスキーマ315A、315Bをコンテンツアセットテンプレート310にリンクさせることができる。さらに、1つまたは複数のコンテンツスロット320A、320B、320C、および320Dをプレゼンテーションスキーマ315A、315Bの各々にリンクさせることができる。いくつかの実装形態では、コンテンツアセットテンプレート310は、1組のコンテンツ構成要素を定義することができ、コンテンツアセット305A、305B、305Cは、それらのコンテンツ構成要素の値を定義することができ、プレゼンテーションスキーマ315A、315Bは、コンテンツ構成要素を使用してレンダリング済みコンテンツアイテムのルックアンドフィールを定義することができる。
コンテンツ発行者は、リソース上に表示するためにコンテンツアセットから生成されたコンテンツアイテムを提供することを望むことがある。コンテンツ発行者は、コンテンツアセットのコンテンツ構成要素を使用して表示するためのコンテンツアイテムを生成するために使用されるコンテンツアセットテンプレートに、1つまたは複数のコンテンツアセットを割り当てる、またはそうでなければ関連付けることができる。上述のように、コンテンツアセットは、コンテンツアイテムを生成するために一緒に配置された複数のコンテンツ構成要素を含むことができる。コンテンツアセットテンプレートは、コンテンツアセットのコンテンツ構成要素がコンテンツアイテムを形成または生成する方法を決定するために使用することができる。いくつかの実装形態では、コンテンツアセットテンプレートは、それに従ってコンテンツ構成要素を配置することができる命令を含むことができる。コンテンツアセットから生成されたコンテンツアイテムは、1つまたは複数のコンテンツスロットに表示することができる。これらのコンテンツスロットは、コンテンツ発行者の情報リソースに含めることができる。コンテンツ発行者は、1つまたは複数のプレゼンテーションスキーマをコンテンツスロットの各々に割り当てる、またはそうでなければ関連付けることができる。特定のコンテンツスロットにコンテンツアイテムを表示するためにコンテンツアセットが選択されると、コンテンツレンダリングモジュール135は、特定の方法でコンテンツアセットのコンテンツ構成要素を配置するために、コンテンツアセットテンプレートを利用することができ、1つまたは複数のフィールドをプレゼンテーションスキーマからの値で更新するために、コンテンツスロットおよびコンテンツアセットテンプレートに割り当てられている、またはそうでなければリンクされているプレゼンテーションスキーマのうちの1つをさらに利用することができる。たとえば、プレゼンテーションスキーマが背景についての青の色値を含む場合、コンテンツレンダリングモジュール135は、コンテンツアイテムの背景色に対応する値に青色を割り当てることによってコンテンツアイテムをレンダリングすることができ、このようにして、コンテンツアイテムは、青色の背景で表示される。
いくつかの実装形態では、コンテンツアセット305A、305B、305Cは各々、たとえばコンテンツプロバイダ115によって定義される複数の値を含むことができる。さらに、コンテンツアセットテンプレート310は、コンテンツアセット305A、305B、305Cの各々のコンテンツプロバイダ定義の値に割り当てることができる、またはそうでなければ関連付けることができる複数のフィールドを含むことができる。コンテンツ構成要素は、限定はしないが、見出し、画像、本文、行動喚起、ロゴ、属性、クリックスルーURLなどを含むことができる。たとえば、コンテンツアセット305Aは、コンテンツアセット305Bおよび305Cによって定義されたコンテンツ構成要素とは異なる、コンテンツアセットテンプレート310によって定義されたコンテンツアセットフィールドに関するコンテンツ構成要素を含むことができる(たとえば、コンテンツアセット305Aの「見出し」コンテンツ構成要素は、コンテンツアセット305Bおよび305Cの「ヘッドライン」コンテンツ構成要素とは異なり得る)。いくつかの実装形態では、コンテンツアセット305A、305B、305Cは各々、異なるコンテンツプロバイダ115に割り当てられる、またはそうでなければ関連付けられる。
いくつかの実装形態では、コンテンツアセット305A、305B、305Cは、コンテンツアセットデータベース215に記憶される。コンテンツアセットデータベース215に記憶されたコンテンツアセット305A、305B、305Cの各々は、コンテンツアセット305A、305B、305Cに基づいて、コンテンツアセットテンプレート310を容易に識別できるように、コンテンツアセットテンプレート310にリンクされ得る。たとえば、コンテンツアセットテンプレートは、一意の識別子に割り当てることができ、またはそうでなければそれに関連付けることができ、コンテンツアセット305A、305B、305Cの各々は、コンテンツアセットテンプレート310の一意の識別子を含むことができ、またはそれを指すことができる。
いくつかの実装形態では、プレゼンテーションスキーマ315A、315Bは、プレゼンテーションスキーマデータベース220に記憶することができる。プレゼンテーションスキーマデータベース220に記憶されたプレゼンテーションスキーマ315A、315Bは、コンテンツアセットテンプレート310に基づいて、プレゼンテーションスキーマ315A、315Bを容易に識別できるように、コンテンツアセットテンプレート310によってリンクされ得る。たとえば、プレゼンテーションスキーマ315A、315Bは各々、一意の識別子に割り当てることができ、またはそうでなければそれに関連付けることができ、コンテンツアセットテンプレート310は、プレゼンテーションスキーマ315A、315Bの一意の識別子を含むことができ、またはそれを指すことができる。
さらに、プレゼンテーションスキーマ315A、315Bの各々は、1つまたは複数のコンテンツスロットに割り当てることができ、またはそうでなければそれに関連付けることができる。たとえば、プレゼンテーションスキーマ315Aは、コンテンツスロット320Aおよび320Bに割り当てることができ、またはそうでなければ関連付けることができ、プレゼンテーションスキーマ315Bは、コンテンツスロット320Cおよび320Dに割り当てることができ、またはそうでなければ関連付けることができる。いくつかの実装形態では、コンテンツスロット320A、320B、320C、および320Dの各々は、一意の識別子を含むことができ、プレゼンテーションスキーマデータベース220に記憶されているプレゼンテーションスキーマ315Aおよび315Bの各々は、コンテンツスロット320A、320B、320C、および320Dのそれぞれの一意の識別子を含むことができ、またはそうでなければそれらに割り当てることができ、またはそうでなければ、関連付けることができる。したがって、プレゼンテーションスキーマ315A、315Bの各々は、情報リソースの特定のコンテンツスロット(たとえば、情報リソースのコンテンツアイテムスロット)に割り当てることができ、またはそうでなければそれに関連付ける、またはそれをターゲットとすることができる。
いくつかの実装形態では、プレゼンテーションスキーマ315A、315Bは、1つまたは複数のコンテンツ発行者120によって構成されている。たとえば、プレゼンテーションスキーマ315A、315Bは各々、単一のコンテンツ発行者120に割り当てる、またはそうでなければ関連付け、単一のコンテンツ発行者120によって構成することができ、プレゼンテーションスキーマ315A、315Bの各々は、コンテンツ発行者の異なる情報リソース、コンテンツ発行者120の同じ情報リソース上の異なるコンテンツスロット、ウェブサイトの異なるエリア、またはコンテンツ発行者のアプリケーションなどを対象とすることができる。一例として、プレゼンテーションスキーマ315Aは、コンテンツ発行者120のホームページフィードコンテンツスロットを対象とすることができ、プレゼンテーションスキーマ315Bは、コンテンツ発行者120のカテゴリページレールコンテンツスロットを対象とすることができる。
したがって、プレゼンテーションスキーマ315A、315Bは、ネイティブコンテンツアイテムの発行者が構成した構造およびスタイルを表すことができる。言い換えれば、プレゼンテーションスキーマ315A、315Bは、ネイティブコンテンツアイテムが、コンテンツ発行者120のアプリケーションまたはウェブサイトの所与のセクションにどのように現れるべきかについての指定を含むことができるので、プレゼンテーションスキーマ315A、315Bは、特定のコンテンツアセット(たとえば、コンテンツアセット305A、305B、305C)またはコンテンツプロバイダ(たとえば、コンテンツプロバイダ115)に依存せず、それらの影響を受けない可能性がある。したがって、コンテンツ発行者120は、限定はしないが、背景色、フォントサイズ、フォントタイプ、フォントカラー、コンテンツアイテムスロット内の位置などの属性により、特定のプレゼンテーションスキーマを構成することができる。これらの構成は、プレゼンテーションスキーマとしてプレゼンテーションスキーマデータベース220に入力され、記憶される。
上記で説明したように、プレゼンテーションスキーマは、割り当てられたサイズを含むように構成することができる。たとえば、プレゼンテーションスキーマ315Aは、第1のサイズを含むことができ、プレゼンテーションスキーマ315Bは、第2のサイズを含むことができる。第1のサイズは、ピクセル寸法形式の固定サイズ(たとえば、300ピクセル×500ピクセル)を含むことができる。第2のサイズは、適応サイズインジケータを含み得る。適応サイズインジケータは、プレゼンテーションスキーマ315Bが、固定サイズを有さない適応コンテンツスロット(たとえば、適応コンテンツアイテムスロット)と互換性があり得ることを示すことができる。適応コンテンツアイテムスロットおよび対応する適応プレゼンテーションスキーマの場合、クライアントデバイス125は、コンテンツアイテムスロットの幅の100%をレンダリング済みコンテンツアイテムで満たし、次いで、選択されたコンテンツアセットの値を含むようにコンテンツアイテムの高さをサイズ設定することによって適応コンテンツアイテムをレンダリングするように構成され得る。したがって、プレゼンテーションスキーマ315Aおよび315Bは、ネイティブコンテンツアセット(たとえば、コンテンツアセット305A、305B、および305C)を特定のサイズのレンダリング済みコンテンツアイテムに変換することができるアダプタである。
図4Aは、比較例による、コンテンツのレンダリングおよび送信のシーケンスを示すブロック図400である。図4Bは、本開示の例示的な実装形態による、コンテンツのレンダリングおよび送信のシーケンスを示すブロック図450である。
図4Aを参照すると、ブロック図400は、コンテンツ構成要素(たとえば、コンテンツプロバイダ115によってデータ処理システム410に提供されるコンテンツアセット値)を複数のクライアントデバイス420A、420B、420Cに送信するデータ処理システム410を示す。データ処理システム410は、データ処理システム410がコンテンツレンダリングモジュール135を含まないことを除いて、上述のデータ処理システム110と同様であり得る。クライアントデバイス420A、420B、420Cは、上述のようにエンドユーザコンピューティングデバイス125と同様であり得る。データ処理システム410はコンテンツレンダリングモジュール135を含まないので、クライアントデバイス420A、420B、420Cの各々は、ネイティブコンテンツアイテムをレンダリングするためのコンテンツレンダリングモジュールを含む。
データ処理システム410に記憶されたコンテンツ構成要素は、限定はしないが、見出し、本文、画像、およびロゴなどの1つまたは複数のフィールドの値を含むことができる。データ処理システム410は、コンテンツ構成要素をクライアントデバイス420A、420B、420Cの各々に送信する。それに応答して、クライアントデバイス420A、420B、420Cは、コンテンツ構成要素を受信し、クライアントデバイス420A、420B、420Cの各々におけるそれぞれのコンテンツレンダリングモジュールは、クライアントデバイス420A、420B、420Cの各々において表示するためのレンダリング済みコンテンツアイテムを生成するようにレンダリングされる。クライアントデバイス420A、420B、420Cのコンテンツレンダリングモジュールの各々は、コンテンツレンダリングプロセス中に選択されたプレゼンテーションスキーマに応じて異なる配置でコンテンツアセットをレンダリングし得る。
しかしながら、コンテンツのレンダリングは各クライアントデバイス420A、420B、420Cで行われるので、クライアントデバイス420A、420B、420C上で実行されるアプリケーションまたはウェブページによってネイティブコンテンツがレンダリングされることにいくつかの技術的課題がある。第1に、アプリケーションは、クライアントデバイスにネイティブコンテンツを適切にレンダリングさせることができる1つまたは複数の特殊なコンテンツレンダリングスクリプトを必要とする。アプリケーションに特殊なコンテンツレンダリングスクリプトを含める結果として、アプリケーションのサイズは、ネイティブコンテンツをレンダリングするためにコンテンツレンダリングスクリプトを必要としないアプリケーションよりも大きくなる。アプリケーションのサイズが大きくなると、アプリケーションのダウンロードまたは転送にかかる時間量が増し、また、クライアントデバイスにおいてより多くのメモリリソースを使用する。第2に、クライアントデバイス上のアプリケーションは、レンダリングプロセスに対する更新が行われるときにコンピュータ実行可能命令に対する更新を受信することを要求される。これらの更新は、ネットワークリソースを利用し、しばしば、更新が実行されるまでアプリケーションを動作不可能にすることがある。結果として、クライアントデバイスにおけるアプリケーションは、繰り返し更新される必要があり、コンピューティングリソースおよびバッテリーまたは電力リソースを含む、ネットワークリソースおよびクライアントデバイスリソースの両方の消費を必要とする。第3に、クライアントデバイスに、クライアントデバイスにおいてコンテンツをレンダリングするためのコンピュータ実行可能命令を実行させることは、バッテリー消費量の増加をもたらすだけでなく、クライアントデバイスの性能に悪影響を及ぼす可能性がある追加のコンピューティングリソースを必要とする可能性がある。第4に、クライアントデバイスにおいてレンダリングを実行することによって、レンダリング動作は、各クライアントデバイス上の計算リソースの利用可能性の減少に対応するように制限されることがある。
次に図4Bを参照すると、ブロック図450は、レンダリング済みネイティブコンテンツ(たとえば、コンテンツプロバイダ115によってデータ処理システム110に提供されたコンテンツ構成要素)を複数のクライアントデバイス470A、470B、470Cに送信するデータ処理システム110を示す。データ処理システム110は、上述のようにネイティブコンテンツをレンダリングするコンテンツレンダリングモジュール135を含む。クライアントデバイス470A、470B、470Cは、上述のようにエンドユーザコンピューティングデバイス125と同様であり得る。クライアントデバイス470A、470B、470Cは、アプリケーション(たとえば、モバイルクライアントデバイス上)またはウェブブラウザ内のウェブサイトを実行している可能性がある。データ処理システム110はコンテンツレンダリングモジュール135を含むので、クライアントデバイス470A、470B、470Cの各々は、ネイティブコンテンツアイテムをレンダリングするためのコンテンツレンダリングモジュールを必要とせず、また含まない。図4Bには示されていないが、コンテンツレンダリングモジュール135は、レンダリング済みコンテンツの異なるプレゼンテーションがクライアントデバイス470A、470B、470Cの各々について選択されるように、コンテンツレンダリングプロセス中に選択されたプレゼンテーションスキーマに応じて異なる配置でコンテンツアセットをレンダリングし得る。
したがって、クライアントデバイス470A、470B、470Cにおいていかなるレンダリングも行われることなく、レンダリング済みコンテンツアイテムが、クライアントデバイス470A、470B、470Cの各々に送信され得るように、ネイティブコンテンツがデータ処理システム410においてレンダリングされるので、上記に列挙した技術的課題は克服することができる。第1に、クライアントデバイスはレンダリングを実行しないので、アプリケーションは、クライアントデバイスにネイティブコンテンツを適切にレンダリングさせることができる1つまたは複数の特殊なコンテンツレンダリングスクリプトを必要とせず、アプリケーションのサイズを縮小し、アプリケーションをダウンロードまたは転送するのにかかる時間量を短縮し、クライアントデバイスでのメモリリソースの使用を軽減する。第2に、クライアントデバイス上のアプリケーションは、レンダリングプロセスに対する更新が行われるときにコンピュータ実行可能命令に対する更新を受信する必要がなく、ネットワークリソースの利用を低減し、それによって、更新が行われるまでアプリケーションを動作不能にし得るインスタンスを低減する。結果として、クライアントデバイスにおけるアプリケーションは、繰り返し更新される必要がなく、コンピューティングリソースおよびバッテリーまたは電力リソースを含む、ネットワークリソースおよびクライアントデバイスリソースの両方の消費を低減する。第3に、コンテンツ自体をレンダリングする必要がないようにデータ処理システム110からレンダリング済みコンテンツを受信するクライアントデバイスは、バッテリー消費量の低減およびコンピューティングリソースの低減をもたらすことができる。第4に、サーバにおいてレンダリングを実行することによって、レンダリング動作は、サーバでのコンピューティングリソースの利用可能性の向上に対応するように拡張され得る。第5に、サーバにおいてレンダリングを実行することによって、コンテンツ発行者は、A/B実験を作成および管理する、またはレンダリングを最適化することができ得る(たとえば、コンテンツ発行者は、手動でA/B実験を確立する、またはそのような機構をクライアントデバイスにおけるそのアプリケーションに組み込む必要がない場合がある)。
図5は、例示的な実装形態による、ネイティブコンテンツをサーバ側でレンダリングするための方法500を示すフロー図である。簡単に概説すると、方法400は、コンテンツの要求を受信するステップを含むことができる(ブロック510)。方法は、データベースにアクセスして、プレゼンテーションスキーマを識別するステップを含むことができる(ブロック520)。方法は、コンテンツの要求に応答して、複数のコンテンツ構成要素を含むコンテンツアセットを識別するステップを含むことができる(ブロック530)。方法は、プレゼンテーションスキーマに基づいて、複数のコンテンツ構成要素を、レンダリング済みコンテンツファイルとしてレンダリングするステップを含むことができる(ブロック540)。方法は、レンダリング済みコンテンツファイルを、表示するためにクライアントデバイスに送信するステップを含むことができる(ブロック550)。
さらに詳細には、方法500は、データ処理システム110がコンテンツの要求を受信するステップを含むことができる(ブロック510)。コンテンツ要求は、ハイパーテキスト転送プロトコル(HTTP)フォーマットとすることができる。いくつかの実装形態では、コンテンツ要求は、HHTP/2フォーマット、SPDYフォーマット、またはコンテンツを転送するための他の任意の適切なネットワーキングプロトコルとすることができる。コンテンツ要求は、アプリケーションから(たとえば、モバイルエンドユーザコンピューティングデバイスから)またはウェブページから受信することができる。コンテンツ要求は、最初にエンドユーザコンピューティングデバイスから送信することができる。
いくつかの実装形態では、コンテンツ要求は、要求されたコンテンツアイテムのコンテンツスロット識別子およびサイズ情報を含む。コンテンツスロット識別子は、要求されたコンテンツアイテムが供給されることになっている情報リソースの一部を識別する識別子を含むことができる。サイズ情報は、1組のサイズ寸法または複数組のサイズ寸法を含むことができる。いくつかの実装形態では、サイズ情報は、固定サイズ(たとえば、ピクセル×ピクセルサイズ寸法)である。いくつかの実装形態では、サイズ情報は、返されたレンダリング済みコンテンツアイテムが様々なサイズのコンテンツスロットに収まるように構成されるように、要求されたサイズが適応可能であるかどうかを指定する。いくつかの実装形態では、コンテンツ要求は、ネイティブコンテンツアイテムの要求を示す。いくつかの実装形態では、コンテンツ要求は、非ネイティブコンテンツアイテムの要求を示す。いくつかの実装形態では、コンテンツ要求は、要求がネイティブのコンテンツアイテムについてのものであるか、非ネイティブのコンテンツアイテムについてのものであるかを指定しない。
コンテンツ要求を受信すると、方法500は、データ処理システム110がHTTP要求をコンテンツマネージャと互換性のあるフォーマットに変換するステップを含むことができる。たとえば、方法500は、データ処理システム110が、コンテンツマネージャによって使用するための追加のコンテキスト情報(たとえば、コンテンツ要求を送信したアプリケーションのアプリケーション識別子、アプリケーションのユーザのユーザ識別子などの情報)を含むようにHTTPコンテンツ要求を解析するステップを含むことができる。さらに、方法500は、データ処理システム110が、フォーマットされた要求が、コンテンツマネージャがコンテンツ選択に使用するために解析し、そこから情報を抽出することができるものとなるように、HTTPコンテンツ要求をフォーマットするステップを含むことができる。たとえば、方法500は、データ処理システム110が、コンテンツ要求から識別子を抽出し、抽出された識別子に関連するコンテンツを取り出すことができるように、フォーマットまたは修正されたコンテンツ要求を解析するステップを含むことができる。
方法は、データ処理システム110が、データベースにアクセスして、プレゼンテーションスキーマを識別するステップを含むことができる(ブロック520)。方法500は、データ処理システム110が、プレゼンテーションスキーマデータベースにアクセスすることによって、コンテンツ要求に含まれるコンテンツスロット識別子に割り当てられている、またはそうでなければ関連付けられているすべての適格なプレゼンテーションスキーマを識別するステップを含むことができる。いくつかの実装形態では、プレゼンテーションスキーマデータベースは、複数のプレゼンテーションスキーマを記憶し、プレゼンテーションスキーマの各々をコンテンツスロット識別子に関連付ける。したがって、方法500は、データ処理システム110が、要求されたコンテンツスロット識別子に基づいてプレゼンテーションスキーマデータベースにおいてルックアップを実行し、対応するプレゼンテーションスキーマを取り出すステップを含むことができる。方法500は、データ処理システム110が、コンテンツ要求に含まれるサイズ決定情報と一致しないプレゼンテーションスキーマデータベースから取り出されたプレゼンテーションスキーマを除去するステップを含むことができる。いくつかの実装形態では、サイズ決定情報が複数の異なるサイズを含む場合、方法500は、データ処理システム110が、コンテンツ要求に含まれるサイズのいずれとも一致しないプレゼンテーションスキーマを除去するステップを含むことができる。方法500は、データ処理システム110が、同じサイズを有し、同じコンテンツアセットテンプレートに属するプレゼンテーションスキーマをデデュープするステップを含むことができる。したがって、方法500は、データ処理システム110が、コンテンツアセットテンプレートを、そのコンテンツアセットテンプレートに割り当てられている、またはそうでなければ関連付けられている適格なプレゼンテーションスキーマのリストにマッピングするプレゼンテーションスキーママッピングを返すステップを含むことができる。
たとえば、プレゼンテーションスキーママッピングを作成する際に、方法500は、データ処理システム110が、コンテンツアセットテンプレート識別子に対応するプレゼンテーションスキーマを識別するためのテンプレートマップを作成するステップを含むことができる。マッピングは、1つまたは複数のプレゼンテーションスキーマがコンテンツアセットテンプレート識別子にマッピングされることを示すことができる。マッピングテンプレートにフィルタリングする際に、方法500は、データ処理システム110が、コンテンツ要求に含まれるサイズのリストを取り出すステップを含むことができる(たとえば、リストは1つのサイズまたは複数のサイズを含むことができる)。方法500は、データ処理システム110が、コンテンツ要求からコンテンツスロット識別子を取り出し、プレゼンテーションデータベースからコンテンツスロット識別子に割り当てられている、またはそうでなければ関連付けられているすべてのプレゼンテーションスキーマを取り出すステップを含むことができる。いくつかの実装形態では、プレゼンテーションスキーマごとに、プレゼンテーションスキーマに割り当てられている、またはそうでなければ関連付けられているコンテンツアセットテンプレート識別子がプレゼンテーションスキーママッピング内にすでに存在する場合、方法500は、データ処理システム110が、すでに存在するプレゼンテーションスキーマを無視するステップを含むことができる。さらに、プレゼンテーションスキーマがコンテンツ要求に含まれるサイズのいずれも有していない場合、方法500は、データ処理システム110が、プレゼンテーションスキーマを無視するステップを含むことができる。そうでなければ、方法500は、データ処理システム110が、新しいエントリをマッピングに追加するステップを含むことができる。
方法は、データ処理システム110が、コンテンツの要求に応答して、複数のコンテンツ構成要素を含むコンテンツアセットを識別するステップを含むことができる(ブロック530)。いくつかの実装形態では、方法500は、データ処理システム110が、コンテンツスロット識別子およびサイズ情報を含むコンテンツ要求を受信するステップを含むことができる。方法500は、データ処理システム110が、コンテンツ要求に応答して、ネイティブコンテンツアセットのリストを選択するためにコンテンツアセットデータベースにアクセスするステップを含むことができる。いくつかの実装形態では、コンテンツアセットのコンテンツプロバイダは、特定のコンテンツアセットを1つまたは複数のコンテンツアセットテンプレートに割り当てる、またはリンクすることができ、コンテンツアセットテンプレートは、コンテンツアセットのどのコンテンツ構成要素を配置できるかの指定を含むことができる。コンテンツ構成要素は、限定はしないが、見出し、画像、本文、行動喚起、ロゴ、属性、クリックスルーURLなどを含むことができる。
いくつかの実装形態では、方法500は、データ処理システム110が、コンテンツアセットデータベースからコンテンツアセットを識別するためにクエリを使用するステップを含むことができる。クエリは、コンテンツ要求からのコンテンツスロット識別子およびサイズ情報を含むことができる。クエリに応答して、方法500は、コンテンツアセットデータベースにアクセスして、コンテンツスロット識別子およびサイズ情報と一致する1つまたは複数のコンテンツアセットを取り出すステップを含むことができる。いくつかの実装形態では、コンテンツアセットデータベースは、複数のコンテンツアセットを記憶し、コンテンツアセットの各々をコンテンツスロット識別子にリンクするか、そうでなければ関連付ける。いくつかの実装形態では、コンテンツアセットデータベースは、コンテンツスロットに割り当てられたプレゼンテーションスキーマと互換性のある特定のコンテンツアセットテンプレートに割り当てられたコンテンツアセットを照合、マッピング、またはリンクすることができる。プレゼンテーションスキーマは、コンテンツ発行者から特定のプレゼンテーションスキーマの互換性情報を受信することによって、コンテンツアセットテンプレートと互換性があるようにタグ付けすることができ、またはそうでなければ示すことができ、互換性情報は、記憶し、コンテンツアセットデータベース内の対応する互換性のあるコンテンツアセットテンプレートにマッピングすることができる(たとえば、互換性のあるプレゼンテーションスキーマと対応するコンテンツアセットテンプレートとの間の相互参照識別子またはタグを利用することによって)。コンテンツアセットデータベースはさらに、(たとえば、コンテンツプロバイダ115から)コンテンツアセットのサイズ決定情報を受信し、コンテンツアセットデータベースに記憶されたコンテンツアセットの各々をサイズ決定情報とマッピングすることができる。したがって、方法500は、データ処理システム110が、要求されたコンテンツスロット識別子およびサイズ情報に基づいてコンテンツアセットデータベースにおいてルックアップを実行し、対応するコンテンツアセットを取り出すステップを含むことができる。
返されたネイティブコンテンツアセットは各々、プレゼンテーションスキーマを識別するために使用することができるコンテンツアセットテンプレート識別子を含むことができる。いくつかの実装形態では、取り出されたネイティブコンテンツアセットの各々は、任意のプレゼンテーションスキーマがネイティブコンテンツアセットに割り当てられている、またはそうでなければ関連付けられているかどうか(たとえば、プレゼンテーションスキーマが、コンテンツアセットテンプレート識別子に割り当てられているか、またはそうでなければ関連付けられているか)を示すフラグまたは他のインジケータを含む、または除外することができる。たとえば、一致するコンテンツアセットのうちの1つが、コンテンツアセットに割り当てられている、またはそうでなければ関連付けられているプレゼンテーションスキーマがないことを示すフラグを含む場合、コンテンツアセットデータベースは、フラグを付けられたネイティブコンテンツアセットを返すことから除外できる。したがって、コンテンツアセットデータベースは、ネイティブコンテンツアセット(たとえば、フラグが立てられていないもの)を返すことができ、いかなるプレゼンテーションスキーマにも割り当てられていない、またはそうでなければ関連付けられていないとしてフラグが立てられたネイティブコンテンツアセットを除外することができる。
方法500は、データ処理システム110が、プレゼンテーションスキーマに基づいて、複数のコンテンツ構成要素を、レンダリング済みコンテンツファイルとしてレンダリングするステップを含むことができる(ブロック540)。いくつかの実装形態では、方法500は、データ処理システム110が、選択されたコンテンツアセットの識別子(たとえば、コンテンツアセットテンプレート識別子)、および選択されたコンテンツアセットの選択されたプレゼンテーションスキーマを受信するステップを含むことができる。方法500は、データ処理システム110が、スクリプトデータベースにアクセスして、選択されたプレゼンテーションスキーマ識別子および選択されたコンテンツアセットに対応するプレゼンテーションスキーマおよびコンテンツ構成要素を取り出すステップを含むことができる。プレゼンテーションスキーマは、HTMLコード、CSSコード、またはコンテンツアイテムのプレゼンテーションを修正する、またはそれに影響を与え得る他のコンピュータ実行可能命令のうちの1つまたは複数を含むことができる。いくつかの実装形態では、スクリプトデータベースは、様々なプレゼンテーションスキーマを記憶し、その各々は、プレゼンテーションスキーマ識別子に割り当てられ得るか、それを有することができる。コンテンツアセットデータベースはさらに、プレゼンテーションスキーマの各々を1つまたは複数のコンテンツアセットテンプレート識別子に割り当てることができる。したがって、方法500は、データ処理システム110が、プレゼンテーションスキーマ識別子および/またはコンテンツアセットテンプレート識別子に基づいてスクリプトデータベース内でルックアップを実行し、対応するプレゼンテーションスキーマを取り出すステップを含むことができる。
いくつかの実装形態では、方法500は、データ処理システム110が、受信されたプレゼンテーションスキーマおよびコンテンツ構成要素に基づいてコンテンツアイテムをレンダリングするステップを含むことができる。適応サイズのコンテンツ要求の場合、クライアントデバイスは、コンテンツアイテムスロットの幅の100%をレンダリング済みコンテンツアイテムで満たし、次いで、選択されたコンテンツアセットの値を含むようにコンテンツアイテムの高さをサイズ設定することによって適応コンテンツアイテムを調整することができる。方法は、データ処理システム110が、レンダリング済みコンテンツファイルを、表示するためにクライアントデバイスに送信するステップを含むことができる(ブロック550)。
図6は、いくつかの実装形態による、(システム110、およびコンテンツ要求モジュール130、コンテンツレンダリングモジュール135、およびレンダリング済みコンテンツ配信モジュール140またはエンドユーザコンピューティングデバイス125などその構成要素を含む)本明細書に記載され、例示されたシステムおよび方法の要素を実装するために採用され得るコンピュータシステム600の一般的なアーキテクチャを示すブロック図である。コンピュータシステム600を使用して、表示のためにネットワーク105を介して情報を提供することができる。図6のコンピュータシステム600は、メモリ625に通信可能に結合された1つまたは複数のプロセッサ620、1つまたは複数の通信インターフェース605、および1つまたは複数の出力デバイス610(たとえば1つまたは複数の表示ユニット)および1つまたは複数の入力ユニット615を備える。プロセッサ620は、データ処理システム110、またはコンテンツ要求モジュール130、コンテンツレンダリングモジュール135、およびレンダリング済みコンテンツ配信モジュール140などシステム110の他の構成要素に含めることができる。
図6のコンピュータシステム600では、メモリ625は、任意のコンピュータ可読記憶媒体を含むことができ、それぞれのシステムについて本明細書に記載した様々な機能を実施するためのプロセッサ実行可能命令などのコンピュータ命令、ならびにそれに関する、それによって生成された、または通信インターフェースもしくは入力デバイス(存在する場合)を介して受信された任意のデータを記憶し得る。再び図1のシステム110を参照すると、データ処理システム110は、特に、1つまたは複数のコンテンツユニットのインベントリの利用可能性、1つまたは複数のコンテンツユニットの予約に関する情報を記憶するためのメモリ625を含むことができる。メモリ625は、データベース145を含むことができる。図6に示されているプロセッサ620は、メモリ625に記憶されている命令を実行するために使用されてもよく、その際、命令の実行に従って処理および/または生成された様々な情報もメモリから読み取り、またはメモリに書き込んでもよい。
図6に示されるコンピュータシステム600のプロセッサ620はまた、命令の実行に従って様々な情報を送信または受信するように、通信インターフェース605に通信可能に結合され、または通信インターフェース605を制御することもできる。たとえば、通信インターフェース605は、ワイヤードまたはワイヤレスネットワーク、バス、または他の通信手段に結合され得、したがって、コンピュータシステム600が、他のデバイス(たとえば他のコンピュータシステム)に情報を送信し、またはそこから情報を受信することを可能にし得る。図1のシステムには明示的には示されていないが、1つまたは複数の通信インターフェースは、システム600の構成要素間の情報の流れを容易にする。いくつかの実装形態では、通信インターフェースは、コンピュータシステム600の少なくともいくつかの態様へのアクセスポータルとしてウェブサイトを提供するように(たとえば、様々なハードウェア構成要素またはソフトウェア構成要素を介して)構成され得る。通信インターフェース605の例は、ユーザインターフェース(たとえばウェブページ)を含み、それを介してユーザはデータ処理システム110と通信することができる。
図6に示されているコンピュータシステム600の出力デバイス610は、たとえば、命令の実行に関連して様々な情報が閲覧され、またはそうでなければ知覚されることを可能にするために提供され得る。入力デバイス615は、たとえば、ユーザが手動調整を行い、選択を行い、データを入力し、または命令の実行中にプロセッサと様々な方法のいずれかで対話することを可能にするために提供されてもよい。本明細書に記載した様々なシステムに使用され得る一般的なコンピュータシステムアーキテクチャに関する追加の情報を、さらに本明細書で提供する。
本明細書に記載した主題および動作は、本明細書に開示した構造およびそれらの構造的均等物を含む、デジタル電子回路、コンピュータソフトウェア、ファームウェア、またはハードウェアに、またはそれらの1つもしくは複数の組合せに実装することができる。本明細書に記載した主題は、1つまたは複数のコンピュータプログラム、たとえば、データ処理装置によって実行される、またはデータ処理装置の動作を制御するためにコンピュータ記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装することができる。プログラム命令は、人工的に生成された伝搬信号、たとえば、データ処理装置によって実行するための適切な受信機装置への送信のために情報を符号化するために生成された機械生成電気、光学、または電磁信号上で符号化することができる。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムまたはシリアルアクセスメモリアレイまたはデバイス、あるいはそれらの1つまたは複数の組合せであり得、またはそれに含まれ得る。コンピュータ記憶媒体は伝搬信号ではないが、コンピュータ記憶媒体は、人工的に生成された伝搬信号に符号化されたコンピュータプログラム命令のソースまたは宛先とすることができる。コンピュータ記憶媒体はまた、1つまたは複数の別々の物理的構成要素または媒体(たとえば、複数のCD、ディスク、または他の記憶デバイス)であり得、またはそれに含まれ得る。本明細書に記載した動作は、1つまたは複数のコンピュータ可読記憶デバイスに記憶されている、または他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実装することができる。
本明細書に記載したシステムがユーザに関する個人情報を収集する、または個人情報を利用する可能性がある状況では、ユーザは、プログラムまたは機能が個人情報(たとえば、ユーザのソーシャルネットワーク、社会的行動または活動、ユーザの選好、またはユーザの位置に関する情報)を収集し得るかどうかを制御する機会、または、ユーザにとってより関連があり得る、コンテンツサーバまたは他のデータ処理システムからのコンテンツを受信するかどうか、またはどのように受信するかを制御する機会を与えられ得る。さらに、あるデータは、それが記憶または使用される前に1つまたは複数の方法で匿名化される可能性があり、したがって、パラメータを生成するときに個人的に識別可能な情報は削除される。たとえば、個人的に識別可能な情報をそのユーザについて決定することができないように、ユーザの識別情報は匿名化され得、または、ユーザの特定の場所を決定できないように、(市、郵便番号、または州レベルなど)位置情報が取得されるユーザの地理的位置が一般化され得る。したがって、ユーザは、ユーザについての情報をどのように収集するか、およびコンテンツサーバによってどのように使用されるかを制御し得る。
「データ処理システム」または「コンピューティングデバイス」、「モジュール」、「エンジン」、「構成要素」または「コンピューティングデバイス」という用語は、特に、プログラマブルプロセッサ、コンピュータ、システムオンチップ、上記のうちの複数、または組合せを含む、データを処理するための装置、デバイスおよび機械を包含する。装置は、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路を含むことができる。装置は、ハードウェアに加えて、問題のコンピュータプログラムの実行環境を生成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらの組合せを構成するコードも含むことができる。装置および実行環境は、ウェブサービス、分散コンピューティング、およびグリッドコンピューティングインフラストラクチャなど、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。コンテンツ要求モジュール130、コンテンツレンダリングモジュール135、またはレンダリング済みコンテンツ配信モジュール140は、1つまたは複数のデータ処理装置、システム、コンピューティングデバイス、またはプロセッサを含むかまたは共有することができる。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、スクリプト、またはコードとしても知られる)は、コンパイルもしくはインタープリタ型言語、宣言型もしくは手続き型言語を含む、任意の形式のプログラミング言語で記述することができ、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、オブジェクト、またはコンピューティング環境での使用に適した他のユニットとして含む、あらゆる形式で展開できる。コンピュータプログラムは、必ずしも必要はないが、ファイルシステム内のファイルに対応し得る。プログラムは、問題のプログラム専用の単一のファイル、または、(たとえば、1つまたは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイルなど)複数のコーディネートされたファイルに、(たとえば、マークアップ言語文書に記憶された1つまたは複数のスクリプなど)他のプログラムまたはデータを保持するファイルの一部に記憶することができる。コンピュータプログラムは、1つのコンピュータ上で、または1つのサイトに位置するか、もしくは複数のサイトに分散され、通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように配備することができる。
本明細書に記載したプロセスおよび論理フローは、入力データ上で動作し、出力を生成することによってアクションを実行するために、1つまたは複数のコンピュータプログラム(たとえばデータ処理システム110の構成要素)を実行する1つまたは複数のプログラマブルプロセッサによって実行することができる。プロセスおよび論理フローはまた、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路によっても実行することができ、装置を専用論理回路として実装することもできる。
本明細書に記載した主題は、たとえばデータサーバとしてのバックエンド構成要素を含む、またはアプリケーションサーバなどのミドルウェア構成要素を含む、またはたとえば、グラフィカルユーザインターフェースを有するクライアントコンピュータ、もしくはユーザが本明細書に記載した主題の実装と対話することができるウェブブラウザを有するクライアントコンピュータなどのフロントエンド構成要素を含むコンピューティングシステム、あるいは1つもしくは複数のそのようなバックエンド、ミドルウェア、またはフロントエンド構成要素の組合せにおいて実装することができる。システムの構成要素は、たとえば、通信ネットワークなど、任意の形式または媒体のデジタルデータ通信によって相互接続することができる。通信ネットワークは、特に、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえばインターネット)、およびピアツーピアネットワーク(たとえばアドホックピアツーピアネットワーク)を含むことができる。
システム100またはシステム600などのコンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントとサーバは、一般に、互いに離れており、通常、通信ネットワーク(たとえば、ネットワーク105)を介して対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。いくつかの実装形態では、サーバは、データ(たとえば、HTMLページ)をクライアントデバイスに送信する(たとえば、クライアントデバイスと対話しているユーザにデータを表示し、ユーザからユーザ入力を受信するために)。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザとの対話の結果)は、サーバにおいてクライアントデバイスから受信することができる(たとえば、コンテンツプロバイダコンピューティングデバイス115からデータ処理システム110によって受信される)。
動作が特定の順序で図面に示されているが、そのような動作が、示された特定の順序で、または順番に実行される必要はなく、例示されたすべての動作が実行される必要はない。本明細書に記載したアクションは、異なる順序で実行することができる。
様々なシステム構成要素の分離は、すべての実装において分離を必要とせず、説明されたプログラム構成要素は、単一のハードウェアまたはソフトウェア製品に含まれ得る。たとえば、コンテンツ要求モジュール130、スクリプトプロバイダモジュール135、およびコンテンツ管理モジュール134は、単一のモジュール、1つまたは複数の処理回路を有する論理デバイス、またはオンラインコンテンツアイテム配置システムの一部とすることができる。
いくつかの例示的な実装形態を説明してきたが、上記は例示的であり限定的ではないことは明らかである。特に、本明細書で提示される実装形態の多くは、方法動作またはシステム要素の特定の組合せを含むが、それらの動作およびそれらの要素は、他の方法で組み合わされて同じ目的を達成することができる。一実装形態に関連して論じられた動作、要素、および特徴は、他の実装形態または実装形態における同様の役割から除外されることを意図しない。
本明細書で使用されている言い回しおよび用語は説明を目的としており、限定と見なされないものとする。本明細書における「含む」、「備える」、「有する」、「含む」、「伴う」、「を特徴とする」、「ことを特徴とする」およびその変形の使用は、その後に列挙される事項、その均等物、および追加の事項、ならびに排他的にそれ以降に列挙された項目からなる代替の実装を含むものとする。一実装形態では、本明細書に記載したシステムおよび方法は、説明されている要素、動作、または構成要素のうちの1つ、複数の各組合せ、またはすべてからなる。
単数形で言及される本明細書におけるシステムおよび方法の実装形態または要素または動作への任意の言及は、複数のこれらの要素を含む実装形態をも包含し得、本明細書での任意の実装形態または要素または動作への任意の複数での言及は、単一要素のみを含む実装形態も包含し得る。単数形または複数形での言及は、現在開示されているシステムまたは方法、それらの構成要素、動作、または要素を単一または複数の構成に限定することを意図するものではない。任意の情報、動作、または要素に基づく任意の動作または要素への言及は、その動作または要素が少なくとも部分的に任意の情報、動作、または要素に基づく実装形態を含み得る。
本明細書で開示した任意の実装形態は、任意の他の実装形態と組み合わされてもよく、「実装形態」、「いくつかの実装形態」、「代替実装形態」、「様々な実装形態」、「一実装形態」などへの言及は、必ずしも相互に排他的であるとは限らず、実装形態に関連して説明された特定の特徴、構造、または特性が少なくとも1つの実装形態に含まれ得ることを示すものとする。本明細書で使用されているそのような用語は、必ずしもすべてが同じ実装形態を指すとは限らない。本明細書に開示した態様および実装形態と一致する任意の方法で、任意の実装形態を任意の他の実装形態と包括的または排他的に組み合わせることができる。
「または」への言及は、「または」を使用して記載された任意の用語が記載された用語のうちの単一、複数、およびすべてのいずれかを示し得るように包括的であると解釈され得る。
図面、詳細な説明、または任意の請求項における技術的特徴の後に参照符号が続く場合、その参照符号は、図面、詳細な説明、および請求項の理解度を高めるために含まれている。したがって、参照符号もそれらの欠如も、いずれの請求項要素の範囲に対してもいかなる限定的な影響も及ぼさない。
本明細書に記載のシステムおよび方法は、その特性から逸脱することなく他の特定の形態で実施することができる。上記の実装形態は、説明されたシステムおよび方法を限定するのではなく例示的なものである。したがって、本明細書に記載のシステムおよび方法の範囲は、上記の説明ではなく添付の特許請求の範囲によって示され、特許請求の範囲の均等物の意味および範囲内にある変更はその中に包含される。
100 システム
105 ネットワーク
110 データ処理システム
115 コンテンツプロバイダコンピューティングデバイス
120 コンテンツ発行者コンピューティングデバイス
125 エンドユーザコンピューティングデバイス
130 コンテンツ要求モジュール
135 コンテンツレンダリングモジュール
140 レンダリング済みコンテンツ配信モジュール
145 データベース
205 変換モジュール
210 コンテンツマネージャ
211 コンテンツ選択モジュール
212 プレゼンテーションルックアップモジュール
213 プレゼンテーションフィルタ
214 ランキングモジュール
215 コンテンツアセットデータベース
220 プレゼンテーションスキーマデータベース
225 スクリプトデータベース
300 データモデル
305A〜305C コンテンツアセット
310 コンテンツアセットテンプレート
315A、315B プレゼンテーションスキーマ
320A〜320D コンテンツスロット
410 データ処理システム
420A〜420C クライアントデバイス
470A〜470C クライアントデバイス
600 コンピュータシステム
605 通信インターフェース
610 出力デバイス
615 入力デバイス
620 プロセッサ
625 メモリ

Claims (20)

  1. アプリケーションの環境内で提示するためのネイティブコンテンツをサーバ側でレンダリングするための方法であって、
    データ処理システムによって、クライアントデバイスから、リソースによって提供された特定のコンテンツスロットを識別するコンテンツスロット識別子を含むコンテンツの要求を受信するステップと、
    前記データ処理システムによって、前記コンテンツスロット識別子を使用して、データベースにアクセスして、前記リソースの環境内で表示するために、特定の構成に従って、レンダリング済みコンテンツファイルを生成するようにコンテンツ構成要素を配置するために使用されるプレゼンテーションスキーマを識別するステップと、
    前記データ処理システムによって、前記コンテンツの要求に応答して、複数のコンテンツ構成要素を含むコンテンツアセットを識別するステップと、
    前記データ処理システムのコンテンツレンダラによって、前記コンテンツスロットに対応する前記プレゼンテーションスキーマに基づいて、前記複数のコンテンツ構成要素を、レンダリング済みコンテンツファイルとしてレンダリングするステップと、
    前記データ処理システムによって、前記レンダリング済みコンテンツファイルを、前記リソースの前記コンテンツスロット内に表示するために前記クライアントデバイスに送信するステップと
    を含む方法。
  2. 前記コンテンツの要求が、前記要求されたコンテンツのサイズ値を含む、請求項1に記載の方法。
  3. 前記プレゼンテーションスキーマを識別するステップが、
    前記データ処理システムによって、複数のプレゼンテーションスキーマを識別するステップであり、前記プレゼンテーションスキーマの各々が、前記コンテンツスロット識別子に対応するそれぞれのプレゼンテーションスキーマ識別子を含む、ステップと、
    前記データ処理システムによって、前記複数のプレゼンテーションスキーマのサブセットを識別するステップであり、前記サブセットに含まれる前記プレゼンテーションスキーマの各々が、前記要求されたコンテンツの前記サイズ値と一致するサイズ属性を含む、ステップと、
    前記データ処理システムによって、前記識別されたプレゼンテーションスキーマを、前記複数のプレゼンテーションスキーマの前記サブセットから選択するステップと
    を含む、請求項2に記載の方法。
  4. 前記レンダリング済みコンテンツファイルが、前記クライアントデバイスにおいて、前記レンダリング済みコンテンツファイルとの対話に応答して、前記レンダリング済みコンテンツファイルとの前記対話の指示を送信するように構成されたスクリプトを含む、請求項1から3のいずれか一項に記載の方法。
  5. 前記データ処理システムによって、前記対話の前記指示が前記クライアントデバイスから送信されるサーバのアドレスを前記レンダリング済みコンテンツファイルに挿入するステップをさらに含む請求項4に記載の方法。
  6. 前記レンダリング済みコンテンツファイルが、前記クライアントデバイスにおいて前記レンダリング済みコンテンツファイルを表示するように構成されたハイパーテキストマークアップ言語(HTML)スクリプトを含む、請求項1から5のいずれか一項に記載の方法。
  7. 前記レンダリング済みコンテンツファイルが、前記クライアントデバイスにおいて前記レンダリング済みコンテンツファイルを表示するように構成されたカスケーディングスタイルシート(CSS)スクリプトを含む、請求項6に記載の方法。
  8. 前記プレゼンテーションスキーマが、複数のスタイルパラメータを含み、前記スタイルパラメータの各々が、前記リソースの値と一致する値を含む、請求項1から7のいずれか一項に記載の方法。
  9. 前記スタイルパラメータが、前記コンテンツスロットに表示されるセクションカテゴリ、前記コンテンツスロットの背景色、テキストのフォントサイズ、前記テキストの位置、または画像の位置を含む、請求項8に記載の方法。
  10. 前記レンダリング済みコンテンツファイルの視覚的特性が、前記アプリケーションの前記環境の視覚的特性と一致する、請求項1から9のいずれか一項に記載の方法。
  11. アプリケーションの環境内で提示するためのネイティブコンテンツをサーバ側でレンダリングするためのシステムであって、
    プロセッサと、
    前記プロセッサに結合されたメモリとを含み、前記メモリが、コンピュータ実行可能命令を記憶し、前記コンピュータ実行可能命令は、前記プロセッサによって実行されると、前記プロセッサに、
    クライアントデバイスから、リソースによって提供された特定のコンテンツスロットを識別するコンテンツスロット識別子を含むコンテンツの要求を受信させ、
    前記コンテンツスロット識別子を使用して、データベースにアクセスさせて、前記リソースの環境内で表示するために、特定の構成に従って、レンダリング済みコンテンツファイルを生成するようにコンテンツ構成要素を配置するために使用されるプレゼンテーションスキーマを識別させ、
    前記コンテンツの要求に応答して、複数のコンテンツ構成要素を含むコンテンツアセットを識別させ、
    前記コンテンツスロットに対応する前記プレゼンテーションスキーマに基づいて、前記複数のコンテンツ構成要素を、レンダリング済みコンテンツファイルとしてレンダリングさせ、
    前記レンダリング済みコンテンツファイルを、前記リソースの前記コンテンツスロット内に表示するために前記クライアントデバイスへ送信させる
    システム。
  12. 前記コンテンツの要求が、前記要求されたコンテンツのサイズ値を含む、請求項11に記載のシステム。
  13. 前記プレゼンテーションスキーマを識別する際に、前記メモリが、前記プロセッサによって実行されると、前記プロセッサに、さらに、
    複数のプレゼンテーションスキーマを識別させ、前記プレゼンテーションスキーマの各々が、前記コンテンツスロット識別子に対応するそれぞれのプレゼンテーションスキーマ識別子を含み、
    前記複数のプレゼンテーションスキーマのサブセットを識別させ、前記サブセットに含まれる前記プレゼンテーションスキーマの各々が、前記要求されたコンテンツの前記サイズ値と一致するサイズ属性を含み、
    前記識別されたプレゼンテーションスキーマを、前記複数のプレゼンテーションスキーマの前記サブセットから選択させる
    前記コンピュータ実行可能命令を記憶する、請求項12に記載のシステム。
  14. 前記レンダリング済みコンテンツファイルが、前記クライアントデバイスにおいて、前記レンダリング済みコンテンツファイルとの対話に応答して、前記レンダリング済みコンテンツファイルとの前記対話の指示を送信するように構成されたスクリプトを含む、請求項11から13のいずれか一項に記載のシステム。
  15. 前記メモリが、前記プロセッサによって実行されると、前記プロセッサに、さらに、前記対話の前記指示が前記クライアントデバイスから送信されるサーバのアドレスを挿入させる前記コンピュータ実行可能命令を記憶する、請求項14に記載のシステム。
  16. 前記レンダリング済みコンテンツファイルが、前記クライアントデバイスにおいて前記レンダリング済みコンテンツファイルを表示するように構成されたハイパーテキストマークアップ言語(HTML)スクリプトを含む、請求項11から15のいずれか一項に記載のシステム。
  17. 前記レンダリング済みコンテンツファイルが、前記クライアントデバイスにおいて前記レンダリング済みコンテンツファイルを表示するように構成されたカスケーディングスタイルシート(CSS)スクリプトを含む、請求項16に記載のシステム。
  18. 前記プレゼンテーションスキーマが、複数のスタイルパラメータを含み、前記スタイルパラメータの各々が、前記リソースの値と一致する値を含む、請求項11から17のいずれか一項に記載のシステム。
  19. 前記スタイルパラメータが、前記コンテンツスロットに表示されるセクションカテゴリ、前記コンテンツスロットの背景色、テキストのフォントサイズ、前記テキストの位置、または画像の位置を含む、請求項18に記載のシステム。
  20. 前記レンダリング済みコンテンツファイルの視覚的特性が、前記アプリケーションの前記環境の視覚的特性と一致する、請求項11から19のいずれか一項に記載のシステム。
JP2019508244A 2016-12-30 2017-12-28 提示するためのネイティブコンテンツをサーバ側でレンダリングするための方法およびシステム Active JP6761112B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662440748P 2016-12-30 2016-12-30
US62/440,748 2016-12-30
US15/415,322 US20180191798A1 (en) 2016-12-30 2017-01-25 Methods and systems for server-side rendering of native content for presentation
US15/415,322 2017-01-25
PCT/US2017/068736 WO2018126023A1 (en) 2016-12-30 2017-12-28 Methods and systems for server-side rendering of native content for presentation

Publications (2)

Publication Number Publication Date
JP2019530921A true JP2019530921A (ja) 2019-10-24
JP6761112B2 JP6761112B2 (ja) 2020-09-23

Family

ID=62709121

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019508244A Active JP6761112B2 (ja) 2016-12-30 2017-12-28 提示するためのネイティブコンテンツをサーバ側でレンダリングするための方法およびシステム

Country Status (6)

Country Link
US (1) US20180191798A1 (ja)
EP (1) EP3485400B1 (ja)
JP (1) JP6761112B2 (ja)
KR (1) KR102185864B1 (ja)
CN (1) CN109863527B (ja)
WO (1) WO2018126023A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10630751B2 (en) 2016-12-30 2020-04-21 Google Llc Sequence dependent data message consolidation in a voice activated computer network environment
US10956485B2 (en) 2011-08-31 2021-03-23 Google Llc Retargeting in a search environment
US9703757B2 (en) 2013-09-30 2017-07-11 Google Inc. Automatically determining a size for a content item for a web page
US10614153B2 (en) * 2013-09-30 2020-04-07 Google Llc Resource size-based content item selection
US10431209B2 (en) 2016-12-30 2019-10-01 Google Llc Feedback controller for data transmissions
DE112017000054T5 (de) * 2017-03-03 2019-01-31 Google Llc Systeme und verfahren zum detektieren einer unzweckmässigen implementierung einer präsentation von inhaltselementen durch anwendungen, die auf client-geräten ablaufen
US10956529B1 (en) * 2018-03-20 2021-03-23 Pinterest, Inc. Content presentation
CN113158100B (zh) * 2020-01-22 2024-05-03 阿里巴巴集团控股有限公司 页面显示方法和页面显示装置
US11284144B2 (en) 2020-01-30 2022-03-22 Snap Inc. Video generation system to render frames on demand using a fleet of GPUs
US11356720B2 (en) * 2020-01-30 2022-06-07 Snap Inc. Video generation system to render frames on demand
US11991419B2 (en) 2020-01-30 2024-05-21 Snap Inc. Selecting avatars to be included in the video being generated on demand
AT524188A2 (de) * 2020-09-11 2022-03-15 Jentis Gmbh Verfahren zur Nachverfolgung von Benutzerinteraktionen mit Webseiten
KR102455521B1 (ko) * 2020-11-20 2022-10-14 경희대학교 산학협력단 의료 데이터에 대한 즉각 의미 조정 장치 및 그 방법과, 그 장치에서의 스키마 맵 생성 방법
CN113763094A (zh) * 2020-11-23 2021-12-07 北京沃东天骏信息技术有限公司 一种业务信息处理方法、装置、服务器、介质和系统
US11223670B1 (en) * 2020-12-10 2022-01-11 Ebay Inc. Multi request asynchronous delegation for enhanced performance
CN112800370B (zh) * 2021-01-28 2024-04-30 金蝶蝶金云计算有限公司 业务单据的处理方法、装置、计算机设备和存储介质
US11977927B2 (en) * 2021-04-29 2024-05-07 International Business Machines Corporation Deploying dynamic applications and infrastructure according to metadata assigned by content
CN116028697B (zh) * 2023-03-20 2023-07-04 之江实验室 一种页面渲染方法、装置、存储介质及电子设备

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10452756B2 (en) * 2006-09-29 2019-10-22 Oath Inc. Platform for rendering content for a remote device
US8397212B2 (en) * 2007-08-29 2013-03-12 Yahoo! Inc. Module hosting and content generation platform
WO2011065564A1 (ja) 2009-11-30 2011-06-03 楽天株式会社 オブジェクト表示装置、オブジェクト表示方法、オブジェクト表示制御プログラム、及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体
US10289661B2 (en) 2012-09-12 2019-05-14 Flipboard, Inc. Generating a cover for a section of a digital magazine
US9442912B1 (en) * 2012-09-26 2016-09-13 Google Inc. Estimating the number of content items to fill an online space before distributing the content items to the online space
CN104572822B (zh) * 2014-12-04 2018-09-04 百度在线网络技术(北京)有限公司 文本展现方法及装置
US20160344831A1 (en) * 2015-05-21 2016-11-24 Google Inc. Proxy service for content requests

Also Published As

Publication number Publication date
CN109863527A (zh) 2019-06-07
KR102185864B1 (ko) 2020-12-02
US20180191798A1 (en) 2018-07-05
KR20190039230A (ko) 2019-04-10
EP3485400A1 (en) 2019-05-22
EP3485400B1 (en) 2021-12-01
WO2018126023A1 (en) 2018-07-05
CN109863527B (zh) 2023-04-04
JP6761112B2 (ja) 2020-09-23

Similar Documents

Publication Publication Date Title
JP6761112B2 (ja) 提示するためのネイティブコンテンツをサーバ側でレンダリングするための方法およびシステム
US10924574B2 (en) Systems and methods for managing loading priority or sequencing of fragments of a web object
US10091628B2 (en) Message based application state and card sharing methods for user devices
US11233841B2 (en) Systems and methods for configuration-based optimization by an intermediary
US8627204B2 (en) Custom optimization of web pages
US9015657B2 (en) Systems and methods for developing and delivering platform adaptive web and native application content
WO2016015432A1 (zh) 页面的构建方法、装置、系统、设备及非易失性计算机存储介质
US9235636B2 (en) Presenting data in response to an incomplete query
US9443014B2 (en) Custom web page themes
CN106575298A (zh) 包含动态内容和陈旧内容的网站的快速呈现
US9967370B2 (en) OData enabled mobile software applications
US9619444B2 (en) System and method for web content presentation management
US10437926B2 (en) System and method to generate a data-rich template
US20170192941A1 (en) Computer-Automated Generation of Application Deep Links
JP2018508059A (ja) ネットワークベース静的フォントサブセット管理
US10417317B2 (en) Web page profiler
US10942732B1 (en) Integration test framework
US11361048B2 (en) Conditional interpretation of a single style definition identifier on a resource
US20170034266A1 (en) System and Method for the Departmentalization of Structured Content on a Website (URL) through a Secure Content Management System
US11880870B2 (en) Headless content management system (CMS)
CN116010415A (zh) 数据管理方法、装置、设备以及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190314

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200316

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200519

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: 20200811

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200903

R150 Certificate of patent or registration of utility model

Ref document number: 6761112

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250