IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

特許7511660コンテンツアイテムの配信をデバッグするシステムおよび方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-27
(45)【発行日】2024-07-05
(54)【発明の名称】コンテンツアイテムの配信をデバッグするシステムおよび方法
(51)【国際特許分類】
   G06F 11/36 20060101AFI20240628BHJP
   G06F 11/34 20060101ALI20240628BHJP
   G06Q 10/00 20230101ALI20240628BHJP
   G06F 3/01 20060101ALI20240628BHJP
   G06F 3/0484 20220101ALI20240628BHJP
【FI】
G06F11/36 164
G06F11/34 176
G06Q10/00
G06F3/01 570
G06F3/0484
【請求項の数】 24
(21)【出願番号】P 2022552343
(86)(22)【出願日】2021-10-29
(65)【公表番号】
(43)【公表日】2023-06-16
(86)【国際出願番号】 US2021057192
(87)【国際公開番号】W WO2022094175
(87)【国際公開日】2022-05-05
【審査請求日】2022-10-31
(31)【優先権主張番号】63/108,025
(32)【優先日】2020-10-30
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】オズギュル・オゼル
(72)【発明者】
【氏名】エドワード・ウェン
(72)【発明者】
【氏名】シッディ・タドパトリカル
(72)【発明者】
【氏名】テリーヌ・フォルマン
(72)【発明者】
【氏名】アズマット・アリ・パシャ
(72)【発明者】
【氏名】クレオファス・アンダーソン・デイヴィス・ザ・フォース
(72)【発明者】
【氏名】デイヴィッド・ブラウン
(72)【発明者】
【氏名】エリック・バーンズ
(72)【発明者】
【氏名】エリック・レイチェンシュラグ
(72)【発明者】
【氏名】ヨナ・ワッサーマン
(72)【発明者】
【氏名】メンケ・ワン
(72)【発明者】
【氏名】チアン・リ
(72)【発明者】
【氏名】サミュエル・ストー
(72)【発明者】
【氏名】ウィリアム・シモンズ
(72)【発明者】
【氏名】キャサリン・ゴーイングス・リン
【審査官】石坂 知樹
(56)【参考文献】
【文献】特開2015-018492(JP,A)
【文献】米国特許出願公開第2006/0179352(US,A1)
【文献】米国特許出願公開第2019/0377657(US,A1)
【文献】特開2018-077848(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/36
G06F 11/34
G06Q 10/00
G06F 3/01
G06F 3/0484
(57)【特許請求の範囲】
【請求項1】
コンテンツアイテムの配信をデバッグするコンピュータによって実施される方法であって、
モバイルデバイス上で実行されるモバイルアプリケーションによって、第1のアプリケーションインターフェースを提示するステップと、
コンテンツイベントログからデバッグ情報を生成するステップであって、前記コンテンツイベントログが、前記モバイルアプリケーションにおいてコンテンツアイテムが提示されるコンテンツアイテムスロットに関連付けられる、ステップと、
前記モバイルデバイスによって、所定のユーザアクションを検出するステップであって、前記所定のユーザアクションが、前記モバイルデバイスがデバッグデバイスとして登録されるときの登録要求に含まれる、ステップと、
前記所定のユーザアクションの検出に応じて、デバッグインターフェースによって、前記デバッグ情報を提示するステップとを含む、コンピュータによって実施される方法。
【請求項2】
前記デバッグインターフェースによって、コンテンツアイテムの前記配信の構成を修正することに基づいて、前記デバッグ情報の第1の例外を修復するステップをさらに含む請求項1に記載の方法。
【請求項3】
前記デバッグインターフェースが、前記第1のアプリケーションインターフェース上にオーバーレイとして提示される請求項1に記載の方法。
【請求項4】
前記モバイルアプリケーションによって、識別子および前記所定のユーザアクションを含む登録要求を送信するステップと、
前記モバイルアプリケーションによって、前記モバイルデバイスが登録されていることを示す通知を受信するステップとをさらに含む請求項1に記載の方法。
【請求項5】
前記所定のユーザアクションが、ジェスチャであり、前記ジェスチャが、シェイク、フリック、または前記モバイルアプリケーション内で構成されたユーザ定義のカスタムジェスチャのうちの少なくとも1つである請求項1に記載の方法。
【請求項6】
前記コンテンツイベントログが、時間の閾値の期間またはイベントの閾値の数に基づいていくつかのイベントを含み、前記いくつかのイベントの各イベントが、前記モバイルアプリケーションにおいて提示された前記コンテンツアイテムの使用データを含む請求項1に記載の方法。
【請求項7】
前記コンテンツアイテムスロットの各々が、異なるデバッグ情報を含み、
前記コンテンツイベントログが、前記コンテンツアイテムスロットの各々に関する前記異なるデバッグ情報の新しさに基づいて前記デバッグインターフェース内で編成され、
非アクティブなコンテンツアイテムが、まとめて編成される請求項1に記載の方法。
【請求項8】
前記デバッグインターフェースによって、コンテンツアイテムに関連する追加のデバッグ情報を受信することに基づいて、前記コンテンツイベントログをリアルタイムで更新するステップをさらに含む請求項1に記載の方法。
【請求項9】
前記デバッグインターフェースによって、前記デバッグ情報の詳細な説明を含むように前記デバッグ情報を拡張するステップであって、前記詳細な説明が、1つまたは複数のアクションアイテムを含む、ステップをさらに含む請求項1に記載の方法。
【請求項10】
前記デバッグインターフェースによって、特定のコンテンツネットワークにおける前記コンテンツアイテムに関するコンテンツアイテム試験を要求するステップであって、前記コンテンツアイテムが、前記コンテンツアイテムを表示するための複数のコンテンツネットワークに関連付けられる、ステップをさらに含む請求項1に記載の方法。
【請求項11】
前記デバッグインターフェースによって、前記コンテンツイベントログを修復システムに送信するステップをさらに含む請求項1に記載の方法。
【請求項12】
コンテンツアイテムの配信をデバッグするコンピュータによって実施される方法であって、
モバイルデバイス上のモバイルアプリケーションに関連する識別子およびアクティブ化ジェスチャを含む登録要求を、1つまたは複数の処理回路によって受信するステップであって、前記アクティブ化ジェスチャは、デバッグデバイスとして登録された前記モバイルデバイス上でデバッグインターフェースを提示することをトリガすることができる所定のユーザアクションである、ステップと、
前記モバイルデバイスが登録されていることを示す通知を前記1つまたは複数の処理回路によって前記モバイルデバイス上の前記モバイルアプリケーションに送信するステップと、
特定のコンテンツネットワーク内のコンテンツアイテムのコンテンツアイテム試験要求を前記1つまたは複数の処理回路によって受信するステップと、
前記1つまたは複数の処理回路によって、前記特定のコンテンツネットワーク上で前記コンテンツアイテムを試験するステップと、
前記コンテンツネットワーク上の試験中の前記コンテンツアイテムのデバッグ情報を含むコンテンツイベントログを前記1つまたは複数の処理回路によって前記モバイルデバイス上の前記モバイルアプリケーションに送信するステップとを含む、コンピュータによって実施される方法。
【請求項13】
前記1つまたは複数の処理回路によって、前記モバイルデバイス上で提示するために構成されたデバッグインターフェースと通信するステップをさらに含む請求項12に記載の方法。
【請求項14】
前記デバッグ情報が、前記モバイルデバイス上で提示するために構成されたデバッグインターフェース内に提示するために構成される請求項12に記載の方法。
【請求項15】
前記デバッグインターフェースが、第1のアプリケーションインターフェース上にオーバーレイとして提示するために構成される請求項14に記載の方法。
【請求項16】
前記アクティブ化ジェスチャが、シェイク、フリック、または前記モバイルアプリケーション内で構成されたユーザ定義のカスタムジェスチャのうちの少なくとも1つである請求項12に記載の方法。
【請求項17】
前記コンテンツイベントログが、時間の閾値の期間またはイベントの閾値の数に基づいていくつかのイベントを含み、前記いくつかのイベントの各イベントが、前記モバイルアプリケーションにおいて提示された前記コンテンツアイテムの使用データを含む請求項12に記載の方法。
【請求項18】
前記コンテンツイベントログが、前記モバイルアプリケーションにおいてコンテンツアイテムが提示されるコンテンツアイテムスロットに関連付けられる請求項12に記載の方法。
【請求項19】
前記コンテンツイベントログが、前記モバイルアプリケーションにおいてコンテンツアイテムが提示されるコンテンツアイテムスロットに関連付けられ、
前記コンテンツアイテムスロットの各々が、異なるデバッグ情報を含み、
前記コンテンツイベントログが、前記コンテンツアイテムスロットの各々に関する前記異なるデバッグ情報の新しさに基づいて前記デバッグインターフェース内で編成され、
非アクティブなコンテンツアイテムが、まとめて編成される請求項14に記載の方法。
【請求項20】
前記1つまたは複数の処理回路によって、コンテンツアイテムに関連する追加のデバッグ情報を取得することに基づいて、前記コンテンツイベントログをリアルタイムで更新するステップをさらに含む請求項12に記載の方法。
【請求項21】
前記1つまたは複数の処理回路によって、前記デバッグ情報の詳細な説明を送信するステップであって、前記詳細な説明が、1つまたは複数のアクションアイテムを含む、ステップをさらに含む請求項12に記載の方法。
【請求項22】
前記コンテンツアイテムが、前記コンテンツアイテムを表示するための複数のコンテンツネットワークに関連付けられる請求項12に記載の方法。
【請求項23】
前記1つまたは複数の処理回路によって、前記特定のコンテンツネットワークに1つまたは複数の修復呼び出しを送信するステップをさらに含む請求項12に記載の方法。
【請求項24】
前記1つまたは複数の修復呼び出しを送信するステップが、
前記1つまたは複数の処理回路によって、前記コンテンツイベントログを送信することを含む請求項23に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願
本出願は、2020年10月30日に出願した米国仮特許出願第63/108,025号の優先権および利益を主張するものであり、この仮出願は、その全体が参照により本明細書に組み込まれる。
【背景技術】
【0002】
インターネットなどのコンピュータネットワーク化された環境において、人または会社などのエンティティは、消費者を引き付けるために、コンテンツアイテムスロットに表示するためのコンテンツアイテムを提供する。コンテンツアイテムを提供するエンティティは、コンテンツアイテムの不具合をデバッグすることを望む場合がある。
【発明の概要】
【課題を解決するための手段】
【0003】
いくつかの実装は、コンテンツアイテムの配信をデバッグする方法に関する。1つまたは複数の処理回路によって実施される方法。方法は、モバイルデバイス上で実行されるモバイルアプリケーションによって、第1のアプリケーションインターフェースを提示するステップを含む。さらに、方法は、コンテンツイベントログからデバッグ情報を生成するステップであって、コンテンツイベントログが、モバイルアプリケーションにおいてコンテンツアイテムが提示されるコンテンツアイテムスロットに関連付けられる、ステップを含む。さらに、方法は、モバイルデバイスによって、所定のユーザアクションを検出するステップを含む。さらに、方法は、所定のユーザアクションの検出に応じて、デバッグインターフェースによって、デバッグ情報を提示するステップを含む。
【0004】
一部の実装において、方法は、デバッグインターフェースによって、コンテンツアイテムの構成を修正することに基づいて、デバッグ情報の第1の例外を修復するステップをさらに含む。様々な実装において、デバッグインターフェースは、第1のアプリケーションインターフェース上にオーバーレイとして提示される。一部の実装において、方法は、モバイルアプリケーションによって、識別子およびアクティブ化ジェスチャを含む登録要求を送信するステップと、モバイルアプリケーションによって、モバイルデバイスが登録されていることを示す通知を受信するステップとをさらに含む。様々な実装において、所定のユーザアクションは、ジェスチャであり、ジェスチャは、シェイク、フリック、またはモバイルアプリケーション内で構成されたユーザ定義のカスタムジェスチャのうちの少なくとも1つである。一部の実装において、コンテンツイベントログは、時間の閾値の期間またはイベントの閾値の数に基づいていくつかのイベントを含み、いくつかのイベントの各イベントは、モバイルアプリケーションにおいて提示されたコンテンツアイテムの使用データを含む。様々な実装において、コンテンツアイテムスロットの各々は、異なるデバッグ情報を含み、コンテンツイベントログは、コンテンツアイテムスロットの各々に関する異なるデバッグ情報の新しさに基づいてデバッグインターフェース内で編成され、非アクティブなコンテンツアイテムは、まとめて編成される。一部の実装において、方法は、デバッグインターフェースによって、コンテンツアイテムに関連する追加のデバッグ情報を受信することに基づいて、コンテンツイベントログをリアルタイムで更新するステップをさらに含む。様々な実装において、方法は、デバッグ情報によって、デバッグ情報の詳細な説明を含むようにデバッグ情報を拡張するステップであって、詳細な説明が、1つまたは複数のアクションアイテムを含む、ステップをさらに含む。一部の実装において、方法は、デバッグ情報によって、特定のコンテンツネットワークにおけるコンテンツアイテムに関するコンテンツアイテム試験を要求するステップであって、コンテンツアイテムが、コンテンツアイテムを表示するための複数のコンテンツネットワークに関連付けられる、ステップをさらに含む。様々な実装において、方法は、デバッグ情報によって、コンテンツイベントログを修復システムに送信するステップをさらに含む。
【図面の簡単な説明】
【0005】
図1】一部の実施形態による、デバッグのためのシステムの実装を示すブロック図である。
図2】一部の実施形態による、コンテンツアイテムの配信をデバッグするコンピュータによって実施される方法に関する流れ図である。
図3】一部の実施形態による、コンテンツアイテムの配信をデバッグするコンピュータによって実施される方法に関する流れ図である。
図4】一部の実施形態による登録インターフェースを示す例示的な図である。
図5A】一部の実施形態によるデバッグインターフェースを示す例示的な図である。
図5A-1】一部の実施形態によるデバッグインターフェースを示す例示的な図である。
図5A-2】一部の実施形態によるデバッグインターフェースを示す例示的な図である。
図5B】一部の実施形態によるデバッグインターフェースを示す例示的な図である。
図5B-1】一部の実施形態によるデバッグインターフェースを示す例示的な図である。
図5C】一部の実施形態によるデバッグインターフェースを示す例示的な図である。
図6A】一部の実施形態によるデバッグインターフェースを示す例示的な図である。
図6A-1】一部の実施形態によるデバッグインターフェースを示す例示的な図である。
図6A-2】一部の実施形態によるデバッグインターフェースを示す例示的な図である。
図6B】一部の実施形態によるデバッグインターフェースを示す例示的な図である。
図6B-1】一部の実施形態によるデバッグインターフェースを示す例示的な図である。
図6B-2】一部の実施形態によるデバッグインターフェースを示す例示的な図である。
図6C】一部の実施形態によるデバッグインターフェースを示す例示的な図である。
図6C-1】一部の実施形態によるデバッグインターフェースを示す例示的な図である。
図6C-2】一部の実施形態によるデバッグインターフェースを示す例示的な図である。
図7A】一部の実施形態によるデバッグインターフェースを示す例示的な図である。
図7A-1】一部の実施形態によるデバッグインターフェースを示す例示的な図である。
図7B】一部の実施形態によるデバッグインターフェースを示す例示的な図である。
図7B-1】一部の実施形態によるデバッグインターフェースを示す例示的な図である。
図8】本明細書において説明される様々な配置で使用するのに好適な例示的なコンピューティングシステムを示すブロック図である。
【発明を実施するための形態】
【0006】
図の一部またはすべてが、説明を目的とする概略的な表現であることは認識されるであろう。図は、それらが請求項の範囲または意味を限定するために使用されないことを明確に理解した上で、1つまたは複数の実施形態を例示する目的で提供される。
【0007】
多くの領域において、モバイルデバイス上のモバイルアプリケーションからのデバッグインターフェース(たとえば、ソフトウェア開発キット(SDK))内コンテンツアイテムをデバッグすることが望ましい場合がある。たとえば、不具合(たとえば、ソフトウェアのクラッシュ、ハードウェアの故障など)が発生した場合、不具合を診断し、直すために、デバッグ情報(たとえば、インタラクションデータおよびデバッグデータ)などのコンテンツアイテムのイベントログを閲覧することが望ましい場合が多い。さらに、アプリケーション開発者でない者が、コーディングなしにデバッグインターフェースを通じて不具合を直し、コンテンツアイテムの試験を実行することが望ましいと場合がある。
【0008】
多くのシステムにおいて、モバイルアプリケーションに関連するコンテンツアイテムの不具合を分析し、コンテンツアイテムの構成を修正するために、アプリケーション開発者は、すべてデバッグインターフェース(たとえば、Android SDK、iOS SDK、VMware SDK、Nordic SDK、Java Debug Interface(JDI)、Chrome DevTools、デバッガなど)を利用して、様々な試験技術を利用してコードをデバッグし、コードを修正する。確かに、デバッグインターフェースの導入以来、デバッグインターフェースは、モバイルアプリケーションを開発するための標準的なツールとなっている。しかし、デバッグインターフェースは技術的であり、コードのプログラミングおよび開発の経験を必要とし、モバイルアプリケーション(たとえば、イベントログ、試験)を検査するか、モバイルアプリケーションの健全性(たとえば、不具合、性能、構成)を理解するか、またはモバイルアプリケーションの構成(たとえば、コンテンツアイテムの構成)を修正するためにアプリケーション開発者でない者によって利用され得ない。したがって、アプリケーション開発者でない者がデバッグインターフェースを利用してモバイルアプリケーションを検査し、モバイルアプリケーションの健全性を理解し、モバイルアプリケーションの構成を修正する能力は、概してアプリケーション開発者だけが閲覧および実行することができるデバッグインターフェース上でのアクションを閲覧および実行する能力をアプリケーション開発者でない者に提供する。この独特なデバッグインターフェースおよびコンピュータアーキテクチャの方法論は、改善されたデータの報告および分析経路およびコンピュータアーキテクチャを提供する。経路およびアーキテクチャは、モバイルアプリケーションのイベントログ(たとえば、コンテンツアイテムのイベントログ)を堅牢で適時的な方法で構成し、分析するためにアプリケーション開発者でない者によって呼び出されてよい。
【0009】
したがって、本開示のシステムおよび方法は、概して、モバイルデバイス上のモバイルアプリケーションからのデバッグインターフェース上でコンテンツアイテムをデバッグすることに関する。より詳細には、本開示のシステムおよび方法は、モバイルデバイスからイベントログを提示し、コンテンツアイテムを構成するための独特なデバッグインターフェースおよびコンピュータアーキテクチャの方法論に関する。したがって、本明細書に記載のシステムおよび方法は、コンテンツアイテムをデバッグし、コンテンツアイテムの構成を修正する方法を説明する。様々な実装において、本明細書に記載のモバイルデバイスは、デバッグを実行し、コンテンツネットワーク試験を実行し、デバッグインターフェースを提示するための能力を含む。
【0010】
本明細書において検討されるシステムがユーザおよび/またはエンティティについての個人情報を収集するかまたは個人情報を利用する場合がある状況において、ユーザおよび/またはエンティティは、プログラムまたは特徴がユーザ情報および/またはエンティティ情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルなアクションもしくは活動、職業、ユーザの好み、またはユーザの現在の位置についての情報)を収集するかどうかを制御するか、あるいはユーザおよび/またはエンティティにより関連性がある可能性があるコンテンツをコンテンツサーバから受け取るべきかどうかおよび/またはどのようにして受け取るべきかを制御する機会を与えられる。加えて、または別法においては、特定のデータが、個人を特定することができる情報が削除されるように、そのデータが記憶されるかまたは使用される前に1つまたは複数の方法で処理される場合がある。たとえば、ユーザのアイデンティティ(identity)が、個人を特定することができる情報がユーザに関して決定されることが不可能であるか、または位置情報が取得される場合にユーザの地理的位置が(都市、郵便番号、もしくは州のレベルなどに)一般化される場合があり、したがって、ユーザの特定の位置が決定されることが不可能であるように処理される場合がある。したがって、ユーザおよび/またはエンティティは、情報がユーザおよび/またはエンティティについてどのように収集され、コンテンツサーバによって使用されるかを制御することができる。
【0011】
ここで図1を参照すると、一部の実施形態による、デバッグのためのシステム100の実装を示すブロック図。システム100は、クライアントデバイス10、第1のデータ処理システム300を含む。様々な実装において、システム100のコンポーネントは、ネットワーク60を介して通信する。ネットワーク60は、インターネット、ローカルエリアネットワーク、広域ネットワーク、メトロエリアネットワーク、もしくはその他のエリアネットワークなどのコンピュータネットワーク、イントラネット、衛星ネットワーク、音声もしくはデータモバイル電話通信ネットワークなどのその他のコンピュータネットワーク、これらの組合せ、または任意のその他の種類の電子通信ネットワークを含んでよい。ネットワーク60は、表示ネットワーク(display network)(たとえば、コンテンツプレースメントもしくは検索エンジン結果システムに関連付けられるか、またはサードパーティコンテンツアイテムをコンテンツアイテムプレースメントキャンペーン(content item placement campaign)の一部として含むのにふさわしいインターネット上で利用可能な情報リソースのサブセット)を含むかまたは成す場合がある。様々な実装において、ネットワーク60は、システム100のコンポーネント間の安全な通信を促進する。非限定的な例として、ネットワーク60は、トランスポートレイヤセキュリティ(TLS)、セキュアソケットレイヤ(SSL)、ハイパーテキスト転送プロトコルセキュア(HTTPS)、および/またはその他の任意の安全な通信プロトコルを実装してよい。
【0012】
クライアントデバイス10(本明細書においては「モバイルデバイス」と呼ばれることがある)は、モバイルコンピューティングデバイス、スマートフォン、タブレット、スマートウォッチ、スマートセンサ、またはコンテンツ(たとえば、ウェブページ、モバイルアプリケーションなど)を受信すること、表示すること、およびそのようなコンテンツとインタラクションすることを容易にするように構成された任意のその他のデバイスであってよい。クライアントデバイス10は、オンラインコンテンツを受信および表示し、オンラインコンテンツとのユーザインタラクションを受信するためのアプリケーション12を含んでよい。たとえば、アプリケーション12は、ウェブブラウザであってよい。追加的または代替的に、アプリケーション12は、特定の商業者に関連するモバイルアプリケーションであってよい。クライアントデバイス10は、ネットワーク60を介してデータを伝達する(たとえば、第1のデータ処理システム300と受信および送信する)ための入力/出力回路28も含んでよい。
【0013】
様々な実装において、アプリケーション12は、オンラインコンテンツおよび/またはネットワークコンテンツを受信するためにコンテンツパブリッシャとインタラクションする。たとえば、アプリケーション12は、コンテンツパブリッシャから情報リソースを受信してよい。情報リソースは、ウェブページまたはその他のオンライン文書などのウェブベースのコンテンツアイテムを含んでよい。情報リソースは、アプリケーション12によって解釈されるときに、アプリケーション12に、ユーザに対してインタラクション可能なウェブページおよび/またはインタラクティブなモバイルアプリケーションなどのグラフィカルユーザインターフェース(たとえば、第1のアプリケーションインターフェース)を表示させる命令(たとえば、スクリプト、実行可能コードなど)を含んでよい。様々な実装において、アプリケーション12は、アプリケーション(たとえば、モバイルアプリケーション、ウェブベースのアプリケーション、仮想現実/拡張現実アプリケーション、スマートTVアプリケーションなど)を提示するための1つまたは複数のアプリケーションインターフェースを含み得る。
【0014】
アプリケーション12は、デバッグ回路22およびイベント回路26を有するライブラリ20を含むことが示されている。ライブラリ20は、パッケージに含まれるソフトウェア開発ツール(たとえば、ソフトウェア開発キット(SDK)、アプリケーションプログラミングインターフェース(API)、統合開発環境(IDE)、デバッガなど)の集合を含んでよい。たとえば、ライブラリ20は、アプリケーションプログラミングインターフェース(API)を含む場合がある。別の例において、ライブラリ20は、デバッガを含む場合がある。さらに別の例において、ライブラリ20は、API、デバッガ、およびIDEなどを含むSDKである場合がある。一部の実装において、ライブラリ20は、特定のシステムソフトウェア(たとえば、iOS、Android(登録商標)、Linux(登録商標)など)とインターフェースを取る再利用可能な関数を有する1つまたは複数のライブラリを含む。ライブラリ20は、アプリケーション12に機能を組み込むことを容易にする場合がある。たとえば、開発者は、アプリケーション12上で特定の種類のイベントが発生するときにはいつもイベントログを自動的に送信するためにライブラリ20を使用する場合がある。さらなる例として、ライブラリ20は、デバイスの分析を収集し、報告するように構成された再利用可能な関数を含む場合があり、ユーザは、アプリケーション12の特定のアクション中に(たとえば、試験中)に再利用可能な関数が呼び出されるようにするために、アプリケーション12の命令に再利用可能な関数を挿入してよい。一部の実装において、デバッグ回路22および/またはイベント回路26は、ライブラリ20によって提供される機能(たとえば、再利用可能な関数など)である。
【0015】
デバッグ回路22は、1つまたは複数のデバッグインターフェースを提供するように構成され得る。様々な実装において、デバッグインターフェースは、クライアントデバイス10のビューポートに提示されるアプリケーション12のアプリケーションインターフェース上で呼び出され、オーバーレイ(たとえば、アプリ内オーバーレイ)され得る。たとえば、アプリケーション12の実行中に、ユーザは、アプリケーション12のアプリケーションインターフェース上にデバッグインターフェースを呼び出し、オーバーレイすることができる(たとえば、入力/出力回路28によって捕捉される)入力をクライアントデバイスに与えてよい。デバッグ回路によって提供されるデバッグインターフェースは、アプリケーション開発者でない者が不具合を直し、コンテンツアイテムの試験を実行することを可能にするなど、様々な機能を含み得る。様々な実装において、コンテンツアイテムは、アプリケーション12の実行中にコンテンツアイテムスロット内に提示されることが可能であり、イベント回路26は、様々なコンテンツアイテムスロットにおける様々なコンテンツアイテムとのインタラクションに基づいて、イベント(本明細書においては「要求」と呼ばれることがある)を検出し、イベントログを収集することができる。デバッグ回路22は、さらに、収集されたイベントログを分析して、デバッグ情報を生成することができる。
【0016】
一部の実装において、デバッグ回路22は、アプリケーション12のためのコンテンツアイテムのデバッグ情報(「デバッグ要約(debugging summary)」と呼ばれることがある)を生成するように構成され得る。デバッグ情報は、予めロードされたコンテンツアイテム、デバッガ要求(たとえば、ユーザインタラクション)、および/またはその他の収集されたライブラリインタラクションに基づいて生成され得る。デバッグ情報は、イベント回路26によって収集されたイベントログに基づくコンテンツアイテムのステータス情報を含む可能性がある。たとえば、コンテンツアイテムXが、コンテンツネットワーク1上のコンテンツアイテムスロットAを介してコンテンツアイテムが供給されたことを示すステータス(たとえば、「コンテンツアイテム供給(Content Item Served)」、「充足(Fill)」等)を有する場合がある。別の例においては、コンテンツアイテムYが、コンテンツネットワーク2上のコンテンツアイテムスロットBを介してコンテンツアイテムが供給されなかったことを示すステータス(たとえば、「コンテンツアイテム供給せず(Content Item Didn't Serve)」、「充足せず(No Fill)」等)を有する場合がある。さらに別の例においては、コンテンツアイテムZが、コンテンツネットワーク3上のコンテンツアイテムスロットCを介してコンテンツアイテムが充足されなかったことを示すステータス(たとえば、「充足せず」または「活動なし(No Activity)」)を有する場合がある。各例において、コンテンツアイテムスロットおよびコンテンツネットワークを含むステータスは、イベント回路26によって収集されたイベントログを分析し、デバッグ情報を生成することに基づく。様々な実装において、デバッグ情報は、追加の不具合情報、不具合の理由、修復オプション、タイムスタンプ、供給する/供給しないための経過時間、健全性(たとえば、コンテンツアイテムの健全性についての読むことができる要約)、特定のコンテンツアイテムの要求などを含むがこれらに限定されないその他の情報も含み得る。一部の実装において、デバッグ情報は、新しさ、あるいはユーザによってまたは本明細書において説明される任意のコンピューティングデバイスおよび/もしくは回路によっ
て設定された様々なその他のパラメータによってソートされ得る。デバッグ情報は、さらに、サードパーティまたはその他のコンピューティングデバイスと共有されてよい。たとえば、デバッグ情報は、生成後、ネットワーク60を介してデータベース310に送信されてよい。別の例において、デバッグ情報は、生成後、レポートにまとめられ、(たとえば、電子メール、AirDrop、Bluetooth、メッセージングを介して)別のコンピューティングデバイスに送信されるか、または別のストレージシステムに保存されてよい。
【0017】
例示的な実装において、クライアントデバイス10によって実行されるアプリケーション12は、クライアントデバイス10上でアプリケーションインターフェースがデバッグインターフェースをオーバーレイされるようにすることができる。たとえば、ユーザは、デバッグインターフェースを呼び出すためにクライアントデバイス10上でジェスチャ(たとえば、入力)を実行する場合がある。それに応じて、デバッグインターフェースを実行するデバッグ回路22は、データベース310に記憶されたコンテンツアイテムのイベントログから、または直接イベント回路26からなどのデータを要求してよい。たとえば、要求に応じて、イベント回路26が、コンテンツアイテムのイベントログ(本明細書においては「要求」と呼ばれることがある)の収集を開始し、イベント(または要求)が発生するとき、それらのコンテンツアイテムのイベントログを送信する場合がある。別の例においては、要求に応じて、第1のデータ処理システム300が、(たとえば、データベース310に問い合わせる)データベースクエリを実行して、以前に収集されたコンテンツアイテムのイベントログ(たとえば、過去1時間以内、特定の時間枠間、特定枠間、より最近の10個など)を特定する場合がある。一部の実装において、イベント回路26は、特定のセッションにおけるコンテンツアイテムのイベントログを収集し、特定のセッションが終了したときにそれらのコンテンツアイテムのイベントログをひとまとめにすることができる。たとえば、ユーザは、様々なインタラクション(たとえば、クリック、スクロール、閲覧、ナビゲートなど)を実行することによってアプリケーション12の様々な側面を試験するために試験セッションを初期化する場合があり、試験セッション中、イベント回路26は、様々なデバッグ情報を収集および/または生成してよい。この例においては、セッションが完了されると(たとえば、不具合の後、アプリケーションの終了後、要求に応じてなど)、コンテンツアイテムのイベントログは、イベント回路26によってひとまとめにされ、デバッグ回路22に送信され、クライアントデバイス10に(たとえば、キャッシュ、メモリなどに)記憶され、ならびに/または分析および/もしくは記憶のために第1のデータ処理システム300に送信されることが可能である。
【0018】
別の例示的な実装において、クライアントデバイス10によって実行されるアプリケーション12は、クライアントデバイス10上でウェブブラウザにデバッグインターフェースを表示させることができる。たとえば、ユーザは、デバッグインターフェースをホストするように構築されたウェブサイトに(たとえば、ネットワーク60を介して)接続してよい。様々な実装において、デバッグインターフェースをホストすることは、ホストデバイス(たとえば、コンピューティングデバイス)、およびデバッグインターフェースを定義し、ホストデバイス上に(たとえば、データベースに)記憶されたファイルの集合などであるがこれらに限定されないインフラストラクチャを含み得る。ウェブブラウザは、入力デバイス(たとえば、ポインティングデバイス、キーボード、タッチスクリーン、モバイル電話、または別の形式の入力デバイス)からフィールドへのユニフォームリソースロケータ(URL)の入力を受け取ることによって動作する。それに応じて、ウェブブラウザ内でデバッグインターフェースを実行するデバッグ回路22は、データベース310からのコンテンツアイテムのイベントログからなどのデータを要求してよい。ウェブブラウザは、ナビゲーションコントロール(たとえば、戻るボタンおよび進むボタン、ホームボタン)などのその他の機能を含んでよい。一部の実装において、デバッグインターフェースは、クライアント側インターフェースとサーバ側インターフェースとの両方を含み得る。たとえば、クライアント側インターフェースは、1つまたは複数の汎用プログラミング言語で記述されることが可能であり、クライアントデバイス10によって実行されることが可能である。サーバ側インターフェースは、たとえば、1つまたは複数の汎用プログラミング言語で記述されることが可能であり、第1のデータ処理システム300によって実行されることが可能である。デバッグインターフェースに関連するさらなる詳細は、例示的な図5図7を参照して詳細に説明される。
【0019】
イベント回路26は、アプリケーション12内のイベントを検出してよい。様々な実装において、イベント回路26は、特定のイベント(たとえば、トランザクション、アプリ内購入、アプリ内ゲームにおいて特定レベルに達すること、特定の数のアクションを実行すること、アプリケーションとのインタラクションに特定の量の時間を費やすことなど)を検出することに基づいてその他の機能をトリガするように構成されてよい。たとえば、イベント回路26は、アプリケーション12内のイベントを検出すると、デバッグ回路22をトリガしてよい。様々な実装において、ライブラリ20は、イベント回路26をトリガするためにアプリケーション12に組み込まれる関数を含む。たとえば、ユーザは、イベント回路26に確認されたトランザクションを検出させるライブラリ20の関数をアプリケーション12のトランザクション確認機能内に含めてよい。イベントは、アプリケーション内のユーザにとって重要な任意のアクションを含んでよく、本明細書に明示的に考慮される例に限定されないことを理解されたい。様々な実装において、イベント回路26は、異なる種類のイベントを区別するように構成される。たとえば、イベント回路26は、第1の種類の検出されたイベントに基づいてアクションの第1の組をトリガする場合があり、第2の種類の検出されたイベントに基づいてアクションの第2の組をトリガする場合がある。様々な実装において、イベント回路26は、検出された1つのイベントおよび/または複数のイベントに関連するイベントログを収集し、収集されたイベントログをデバッグ回路22に送信するように構成される。
【0020】
イベント回路26は、イベントログをまとめる(たとえば、集計するなど)場合もある。様々な実装において、イベント回路26は、アプリケーション12および/またはクライアントデバイス10における1つまたは複数の検出されたイベントに関連するイベントログを受信する。イベント回路26は、1つまたは複数のイベントからイベントログを収集し、(たとえば、デバッグ回路22への)送信のためにイベントログをまとめる場合がある。たとえば、イベント回路26は、10個のイベントからイベントログを収集し、イベントログを1つのバンドルへと組み合わせる場合がある。イベントログは、イベントのタイムスタンプ、イベントの名前、および/またはイベントのパラメータ(たとえば、購入された物、価格、通貨、割引、購読情報など)を含む場合がある。一部の実装において、イベント回路26は、バンドルをデバッグ回路22に送信する。追加的または代替的に、イベント回路26は、バンドルを入力/出力回路28および/またはデバッグ回路22に送信する場合がある。様々な実装において、イベント回路26は、データバンドルを生成する。データバンドルは、バンドルインデックス、バンドルタイムスタンプ、バンドルデータ、およびバンドル署名を含む場合がある。様々な実装において、バンドル署名は、イベント回路26によって生成される。一部の実装において、バンドルインデックスは、特定のイベントログがバンドルデータ内のどこにあるかを指定する。たとえば、バンドルデータはバイト配列を含んでよく、バンドルインデックスは、バイト配列のインデックスを含んでよい。
【0021】
様々な実装において、イベント回路26は、指定されたセッションに基づいてイベントログを収集することができる。一例において、指定されたセッションは、アプリケーション12が開かれる/選択されるときからアプリケーション12が閉じられる/終了されるときまでアクティブである場合がある。別の例において、指定されたセッションは、ユーザが開始するようにセッションに要求することおよび終了するようにセッションに要求することに基づいてアクティブである場合がある。各セッションに関して、イベント回路26は、セッションがアクティブである間、イベントログを収集することができる。完成されると、イベントログは、本明細書において説明される任意のシステムに提供されてよい。セッション中、イベントログは、イベントが昇順および/または降順に編成されるように、セッションの各イベントを追跡する場合がある。一部の実装において、イベントは、様々なその他の技術を利用して(たとえば、イベントタイプによって、タイムスタンプによって、不具合によってなど)編成される場合がある。
【0022】
様々な実装において、クライアントデバイス10(たとえば、試験デバイス)のイベント回路26は、アプリケーション12が開かれる(たとえば、クライアントデバイス10の入力/出力デバイス28を介してユーザによって選択される)ときにイベントログの収集を開始し、したがって、セッションを開始する場合がある。一部の実装においては、アプリケーションがユーザによって閉じられると、イベント回路26は、イベントログの収集を停止し、したがって、セッションを終了する場合がある。様々な実装において、ユーザは、現在のセッションがリセットされる可能性があるように、イベントログを強制的に消去させるか、またはアプリケーション12を強制的にリセットさせ、したがって、特定のセッションを終了し、新しいセッションを開始する場合がある。たとえば、コンテンツネットワーク試験がユーザによって望まれる場合、ユーザは、コンテンツネットワーク試験に関連する新しいイベントログのみが収集されるように、アプリケーション12を強制的にリセットさせたい可能性がある。
【0023】
入力/出力回路28は、ネットワーク60を介して(たとえば、第1のデータ処理システム300と)通信を送受信するように構築される。入力/出力回路28は、第1のデータ処理システム300の入力/出力コンポーネントとデータ(たとえば、まとめられたイベントログ、コンテンツイベントログ、インタラクション)、通信、命令などをやりとりするように構築される。1つの実装において、入力/出力回路28は、入力/出力回路28と第1のデータ処理システム300との間のデータ、値、メッセージなどのやりとりを容易にするための通信回路を含む。さらに別の実装において、入力/出力回路28は、入力/出力デバイスと第1のデータ処理システム300との間の情報のやりとりを容易にするための機械可読媒体を含む。さらに別の実施形態において、入力/出力回路28は、ハードウェアコンポーネント、通信回路、および機械可読媒体の任意の組合せを含む。
【0024】
一部の実施形態において、入力/出力回路28は、好適な入力/出力ポートを含み、ならびに/またはプログラミングおよび/もしくはデータ入力、検索、もしくはその他のユーザインタラクションの目的でローカルユーザインターフェースとして働くローカルディスプレイ(たとえば、タッチスクリーンディスプレイ)および/もしくはキーボード/マウスデバイス(該当する場合)などとの相互接続のために相互接続バス(図示せず)を使用する。したがって、入力/出力回路28は、ユーザがクライアントデバイス10に記憶された様々なアプリケーション(たとえば、アプリケーション12)とインタラクションするためのインターフェースを提供してよい。たとえば、入力/出力回路28は、キーボード、キーパッド、マウス、ジョイスティック、タッチスクリーン、マイクロフォン、触覚センサ、自動車センサ(car sensor)、IoTセンサ、生体センサ、加速度センサ、仮想現実ヘッドセット、スマート眼鏡、スマートヘッドセットなどを含む。別の例として、入力/出力回路28は、テレビモニタ、コンピュータモニタ、プリンタ、ファクシミリ、スピーカなどを含んでよいが、これらに限定されない。本明細書において使用されるとき、仮想現実、拡張現実、および複合現実は、それぞれ交換可能なように使用されるが、仮想現実、拡張現実、および複合現実を含む任意の種類のエクステンデッドリアリティ(extended reality)を指す場合がある。
【0025】
一部の実装において、クライアントデバイス10の入力/出力回路28は、(たとえば、センサ、または本明細書において説明される任意のその他の入力/出力デバイス/ポートを介して)ユーザからユーザ入力を受け取ることができる。ユーザ入力は、ジェスチャ(たとえば、クライアントデバイス10のフリック、クライアントデバイス10のシェイク、ユーザ定義のカスタムジェスチャ(たとえば、APIを利用する))、生体データ(たとえば、ストレスレベル、心拍数、手の形状、顔の形状、精神(psyche)など)、および/または挙動データ(たとえば、触覚フィードバック、ジェスチャ、話し方、運動パターン(たとえば、手、食べ物、腕、顔、虹彩など))、またはこれらの組合せなどを含むがこれらに限定されない複数の入力であることが可能である。一部の実施形態においては、クライアントデバイス10上で様々なアクションを実行するために、1つまたは複数のユーザ入力が利用され得る。たとえば、ジェスチャを実行するユーザが、(図5図7を参照してやはり詳細に説明されるように)ライブラリ20に関連するデバッグインターフェースを呼び出す場合がある。
【0026】
入力/出力回路28は、まとめられたイベントログを第1のデータ処理システム300に送信してよい。様々な実装において、入力/出力回路28は、ネットワーク60を介してデータを送信する。入力/出力回路28は、データの送信を確認する場合がある。たとえば、入力/出力回路28は、まとめられたイベントログを第1のデータ処理システム300に送信し、まとめられたイベントログが正常に受信されたことの確認を受信する場合がある。一部の実装において、入力/出力回路28は、まず、まとめられたイベントログを第1のデータ処理システム300に送信しようと試み、それが失敗する場合、時間の予め定義された期間が経過した(たとえば、1分、5分、1時間など)後に、まとめられたイベントログを第1のデータ処理システム300に送信しようと試みる。一部の実装において、入力/出力回路28は、様々な要因(たとえば、データの種類、データの量、時間など)に基づいて、異なるデータを第1のデータ処理システム300に送信する。たとえば、入力/出力回路28は、データが個人を特定するデータであること(たとえば、データの種類)に基づいて、デバイス識別子を有する暗号化されたイベントログを第1のデータ処理システム300に送信する場合があり、データの量(たとえば、暗号化される大量のデータは大きなネットワーク帯域幅を必要とする場合があるので、1ギガバイト、1テラバイトなど)に基づいて異なる時間にデバイス識別子なしの暗号化されていないイベントログを第1のデータ処理システム300に送信する場合がある。
【0027】
様々な実装において、入力/出力回路28は、データを周期的に送信することができる。たとえば、入力/出力回路28は、予め定義された時間にデータを送信する場合がある。別の例として、入力/出力回路28は、ある間隔(たとえば、10分毎、10時間毎など)でデータを送信する場合がある。追加的または代替的に、入力/出力回路28は、閾値に応じてデータを送信してよい。たとえば、入力/出力回路28は、イベント回路26によるイベントからの閾値の数のイベントログ(たとえば、10個のイベント、100個のイベントなど)の受信に応じてデータを送信する場合がある。一部の実装において、入力/出力回路28は、データを動的に送信する。たとえば、入力/出力回路28は、充電源へのクライアントデバイス10の接続に応じてデータを送信する場合がある。さらなる例として、入力/出力回路28は、送信バンドルの指定されたデータサイズ(たとえば、1メガバイト、1ギガバイトなど)への到達に応じてデータを送信する場合がある。
【0028】
一部の実装において、入力/出力回路28は、メトリクス(metrics)を報告する。たとえば、入力/出力回路28は、各データバンドルと一緒にメトリクスを送信する場合がある。メトリクスは、データバンドルのサイズ、データバンドルの送信および/もしくは生成のタイムスタンプ、データバンドルのインデックス、デバッガ識別子、ならびに/またはデータバンドルの署名を含む場合がある。様々な実装において、デバッガ識別子は、ライブラリ20に関連する情報を含む。たとえば、デバッガ識別子は、ライブラリ20のバージョン番号を含む場合がある。データバンドルの署名は、データバンドルの内容のハッシュを含む場合がある。
【0029】
第1のデータ処理システム300は、ライブラリ20からイベントログを受信し、情報を生成するために受信されたデータに対して分析を実行することを容易にする可能性がある。たとえば、第1のデータ処理システム300は、ライブラリ20からイベントログを含むデータバンドルを受信し、情報を生成するために、受信されたデータをデータベース310に記憶されたデータと安全に相互に関連付ける場合がある。別の例として、第1のデータ処理システム300は、ライブラリ20からのトランザクションに関連する第1のデータと、指定されたコンテンツアイテムおよびコンテンツアイテムスロットを含むトランザクションのメタデータに関連する第2のデータとを受信し、第1のデータと第2のデータとを相互に関連付ける場合がある。
【0030】
様々な実施形態において、第1のデータ処理システム300は、集計情報を生成する。たとえば、第1のデータ処理システム300は、何人のユーザがコンテンツアイテムとインタラクションした後にトランザクションを完了したかを判定する場合がある。集計情報は、多くのまたは一群のオンラインインタラクション(たとえば、多くのコンテンツアイテムとのインタラクション)を説明する場合がある。追加的または代替的に、集計情報は、個々のオンラインインタラクション(たとえば、単一のコンテンツアイテムとの単一のインタラクション)を説明する場合がある。集計情報は、一意識別子が含む場合がある。一部の実装において、識別子は、マーケティングキャンペーン(marketing campaign)を特定する。追加的または代替的に、識別子は、各オンラインインタラクションおよび/またはアプリケーションインタラクションを一意に特定する場合がある。一部の実装において、集計情報は、コンテンツアイテムに関連する1つまたは複数のインタラクションを説明する。たとえば、集計情報は、オンラインインタラクションの時間、日付、および/または場所を含む場合がある。匿名のインタラクションデータによって説明されるインタラクションは、コンテンツアイテムを閲覧すること(たとえば、コンテンツアイテムが提示されているウェブページにナビゲートすること、および/またはウェブページが閲覧されているデバイスのビューポート内にアイテムもしくはアイテムの一部が提示されていると判定することなど)、コンテンツアイテムを選択すること/クリックすること、コンテンツアイテム上にホバリングすること、ならびに/あるいはコンテンツアイテムとのその他のインタラクションを含む場合がある。
【0031】
第1のデータ処理システム300は、サーバ、分散処理クラスタ、クラウド処理システム、または任意のその他のコンピューティングデバイスであってよい。第1のデータ処理システム300は、少なくとも1つのコンピュータプログラムまたは少なくとも1つのスクリプトを含むかまたは実行してよい。一部の実装において、第1のデータ処理システム300は、1つまたは複数のスクリプトを実行するように構成された1つまたは複数のプロセッサなどのソフトウェアとハードウェアとの組合せを含む。
【0032】
第1のデータ処理システム300は、データベース310および処理回路320を含むことが示されている。データベース310は、受信されたデータを記憶してよい。たとえば、データベース310は、ライブラリ20から受信されたイベントログおよび/または第1のデータ処理システム300から受信された補足データを記憶する場合がある。一部の実装において、データベース310は、識別子を記憶する。たとえば、データベース310は、仲介識別子を共有するイベントログおよび補足データを記憶する場合がある。識別子は、後で匿名のインタラクションデータの相互の関連付けのために使用される場合がある。データベース310は、1つまたは複数のストレージ媒体を含んでよい。ストレージ媒体は、磁気ストレージ、光ストレージ、フラッシュストレージ、および/またはRAMを含んでよいがこれらに限定されない。第1のデータ処理システム300は、データベースの機能を実行するための(すなわち、データベース310に記憶されたデータを管理する)様々なAPIを実装するかまたは助ける場合がある。APIは、SQL、ODBC、JDBC、NOSQL、および/または任意のその他のデータ記憶および操作APIであることが可能であるがこれらに限定されない。
【0033】
様々な実装において、データベース310は、登録されたユーザ、ユーザ入力(たとえば、ジェスチャ)、およびクライアントデバイスのマッピング情報を記憶することができるフロントエンド330を含み得る。たとえば、登録中に、分析回路328が、新しい登録情報を記憶するためにフロントエンド330に問い合わせてよい。一部の実装において、フロントエンド330は、登録されたユーザ入力(たとえば、特定のジェスチャ)に対する登録されたクライアントデバイスのキー値のペアを含んでよい。
【0034】
処理回路320は、プロセッサ322およびメモリ324を含む。メモリ324は、プロセッサ322によって実行されるときに処理回路320に本明細書において説明される様々な動作を実行させる命令を記憶されてよい。本明細書において説明される動作は、ソフトウェア、ハードウェア、またはこれらの組合せを使用して実施されてよい。プロセッサ322は、マイクロプロセッサ、ASIC、FPGAなど、またはこれらの組合せを含んでよい。多くの実装において、プロセッサ322は、マルチコアプロセッサまたはプロセッサのアレイである場合がある。メモリ324は、プロセッサ322にプログラム命令を与えることができる電子、光、磁気、または任意のその他のストレージデバイスを含んでよいがこれらに限定されない。メモリ324は、フロッピーディスク、CD-ROM、DVD、磁気ディスク、メモリチップ、ROM、RAM、EEPROM、EPROM、フラッシュメモリ、光学式媒体、またはプロセッサ322が命令を読むことができる任意のその他の好適なメモリを含んでよい。命令は、C、C++、C#、Java、JavaScript、Perl、HTML、XML、Python、およびVisual Basicなどであるがこれらに限定されない任意の好適なコンピュータプログラミング言語のコードを含んでよい。
【0035】
メモリ324は、分析回路328を含んでよい。大局的に見て、分析回路328は、データを受信し、データに関する情報を生成してよい。一部の実装において、分析回路328は、登録要求を受信し、(たとえば、ライブラリ20に含まれる)1つまたは複数のデバッガおよび/またはソフトウェア開発キットにユーザアカウント(たとえば、アカウント)を登録することができる。たとえば、ライブラリ20のユーザは、クライアントデバイスがライブラリ20を実行し、様々なデバッグアクションを実行することができるように、クライアントデバイスにユーザのユーザアカウントを登録する場合がある。クライアントデバイスを登録することは、様々な識別情報(たとえば、デバイス名、ジオロケーション、識別子など)、プラットフォームの指定(たとえば、iOS、Android、WebOS、BlackBerry OSなど)、ユーザアクション(たとえば、アクティブ化ジェスチャ、触覚、生体など)、認証情報(たとえば、ユーザ名、パスワード、2段階基準、セキュリティの質問、住所情報など)を提供することを含み得るがそれに限定されない。分析回路328が登録要求を承認すると、要求に関連する情報が、データベース310に記憶されてよい。さらに、クライアントデバイスが登録され、1つまたは複数のアプリケーションに関連する1つまたは複数のデバッガを利用することができることを示す通知が、クライアントデバイスに送信される場合がある。一部の実装において、クライアントデバイスは、複数のアプリケーション(たとえば、アプリケーション12)を含んでよく、分析システム328は、クライアントデバイスのユーザがユーザのユーザアカウントを各アプリケーションに別々に登録すること、および/またはすべてのアプリケーションにまとめて登録することを要求してよい。一部の実装においては、クライアントデバイスが1つまたは複数のデバッガに登録されていない場合、クライアントデバイス(またはクライアントデバイスに関連するアカウント)は、ライブラリ20が実行される場合、停止状態になる場合がある。停止されたクライアントデバイスは、ライブラリ20においていかなる試験および分析も実行することができない場合がある。
【0036】
様々な実装において、分析回路328は、受信されたデータに対して統計演算を実行して、受信されたデータを説明する統計的測定値を生成する。たとえば、分析回路328は、マーケティングキャンペーンに関連するインタラクション率を決定する場合がある。一部の実装において、分析回路328は、デモグラフィック(demographic)情報(たとえば、ユーザの分布など)、地理的結果(たとえば、位置の分布など)、および/または視聴者(たとえば、1つもしくは複数のパラメータに基づくユーザのターゲットグループ、たとえば、閾値の量より多く購入したユーザなど)を生成する。一部の実装において、分析回路328は、イベントログを補足データと相互に関連付ける。たとえば、分析回路328は、中間識別子を使用してイベントに関連するイベントログをコンテンツインタラクションに関連する補足データと相互に関連付けて、イベントを引き起こすことに対するコンテンツインタラクションの影響を判定してよい。様々な実装において、分析回路328は、情報を生成する。情報は、インタラクション率、アプリケーション12の動作を説明するデータなどを含んでよい。
【0037】
さらに、分析回路328によって実行される統計演算は、クライアントデバイス(たとえば、クライアントデバイス10)およびライブラリ20の使用メトリクスを生成することができる。いくつかの使用メトリクスは、デバイス登録のメトリクス(たとえば、試験デバイスの登録--何個のアカウントが少なくとも1つのクライアントデバイスを登録するか、登録された試験デバイスの数--各アカウントが平均して何台の試験デバイスを登録するか)、初期化方法のメトリクス(たとえば、初期化方法--インスペクタ(inspector)を初期化するために使用される方法の内訳はどうなっているか)、デバッガのメトリクス(たとえば、デバッガの使用の全体--デバッガが何回初期化されたか、デバッガの浸透度(penetration)--アプリケーションの何パーセントがデバッガを少なくとも1回使用したか、デバッガの繰り返し使用--最初に使用された後にデバッガがどれだけの頻度で使用されたか)、コンテンツアイテムのステータスのメトリクス(たとえば、充足されたコンテンツのドリルダウン--ユーザの何パーセントがコンテンツアイテム画面に「充足」を示すコンテンツアイテムにドリルダウンするか、充足なしのコンテンツアイテムのドリルダウン--ユーザの何パーセントがコンテンツアイテム画面に「充足せず」を示すコンテンツアイテムにドリルダウンするか、コンテンツアイテムの活動--所与のアプリケーション内のコンテンツアイテムの何パーセントが少なくとも1つのデバッガ要求を受けるか)、コンテンツアイテムのイベントログのメトリクス(たとえば、エラー展開(error expansion)--エラーの何パーセントが展開されるか)、フィードバックのメトリクス(たとえば、フィードバックの使用--ユーザの何パーセントがフィードバックを送ったか)、コンテンツネットワーク試験のメトリクス(たとえば、単一のコンテンツネットワークの使用--ユーザの何パーセントが単一のコンテンツアイテムの試験(single content item test)をオンにするか、ネットワークの使用--単一のコンテンツネットワークのユーザが平均していくつの異なるネットワークを使用するか、ネットワーク使用の程度--ネットワークの何パーセントに対してユーザが単一のコンテンツネットワーク試験(single content network test)を実行したか)を含み得るがこれらに限定されない。分析回路328によって実行される統計演算は、クライアントデバイス(たとえば、クライアントデバイス10)およびライブラリ20のインパクト(impact)メトリクスも生成することができる。いくつかのインパクトメトリクスは、新規パブリッシャのオンボーディングのメトリクス(たとえば、デバッガユーザの何パーセントがそれらのユーザのインタラクションを満足させるか対非デバッガユーザの何パーセントがそれらのユーザのインタラクションを満足させるか(新規パブリッシャ))、新規アプリケーションのオンボーディングファネル(onboarding funnel)のメトリクス(たとえば、デバッガユーザの何パーセントがそれらのユーザのインタラクションを満足させるか対非デバッガユーザの何パーセントがそれらのユーザのインタラクションを満足させるか(新規アプリケーション))、エラー解決のメトリクス(たとえば、デバッガにおいて示されたエラーの何パーセントがその後解決されるか)、プロダクトセールスリード(PSL: product sales lead)のメトリクス(たとえば、PSLに関してケースまたはバグが何パーセント変化したか)、および開発者関係(DevRel: developer relations)/広告主技術ソリューション(ATS: advertiser technical solutions)のメトリクス(たとえば、DevRel/ATSがパブリッシャにデバッガソリューションを何回提案したか)を含み得るがこれらに限定されない。
【0038】
様々な実装において、使用メトリクスおよびインパクトメトリクスは、様々な統計演算および分析を実行することに基づいて計算され得る。使用メトリクスおよびインパクトメトリクスは、さらに、様々な要因(たとえば、パブリッシャのセグメント、パブリッシャの地域、アプリのプラットフォーム、言語設定、新規のパブリッシャかまたは既存のパブリッシャかなど)に基づいて優先順位を付けられ得る。一部の実装においては、受信されたデータおよびデータベース310に記憶された以前収集されたデータ(たとえば、イベントログ、コンテンツアイテム、デバッグ情報)が、機械学習モデルを訓練するために使用され得る。つまり、使用およびインパクトに関する予測が、人工知能または機械学習モデルに基づく可能性がある。たとえば、第1の機械学習モデルが、ライブラリ20の特定のインパクトを特定し、予測を出力するように訓練されてよい。この例においては、第2の機械学習モデルが、ライブラリ20の以前の使用に基づいて使用を特定するように訓練されてよい。様々な実装において、機械学習アルゴリズムは、ニューラルネットワーク、畳み込みニューラルネットワーク、リカレントニューラルネットワーク、線形回帰モデル、およびスパースベクターマシン(sparse vector machine)を含み得るがこれらに限定されない。本明細書において説明される様々なコンピューティングシステム/デバイスは、様々なデータ(たとえば、イベントログ、デバッグ情報など)を機械学習モデルに入力し、実行すべき特定のアクションを示す出力をモデルから受け取ることができる。
【0039】
一部の実装において、分析回路328は、1つまたは複数のコンテンツネットワーク上でコンテンツソース試験を実行するように構成され得る。1つまたは複数のコンテンツネットワーク上でのコンテンツソース試験は、コンテンツアイテムスロットに関連する1つまたは複数のコンテンツアイテムを利用してアプリケーション12上で様々な試験計画を実行することを含み得る。ソース試験中に、様々な不具合および例外が特定され得る。さらに、試験が指定されたコンテンツネットワーク(たとえば、または複数の指定されたコンテンツネットワーク)上で行われるように、コンテンツネットワークが特定され得る。概して、コンテンツネットワークは、コンテンツアイテムを、コンテンツアイテムをホストするアプリケーションおよびウェブサイトに接続する。つまり、コンテンツネットワークは、コンテンツプロバイダからコンテンツを受信することができ、コンテンツネットワークは、その後、ユーザがコンテンツとインタラクションする(たとえば、コンテンツプロバイダのアイテムを購入する、コンテンツプロバイダのサービスに加入する、提供されたコンテンツに基づいて任意のアクションを実行する)ことができるように、1つまたは複数のアプリケーション(たとえば、アプリケーション12)および/またはウェブサイトにコンテンツ(たとえば、コンテンツアイテム)を供給する(または提供する)ことができる。一部の実装において、アプリケーション12(またはライブラリ20)は、1つまたは複数のコンピューティングデバイス(たとえば、図8のコンピュータシステム800)上でホストされるコンテンツネットワーク(たとえば、サードパーティ)と直接通信する場合がある。オンライン広告ネットワークまたはアドネットワークは、広告主を、広告をホストしたいウェブサイトに接続する会社である。アドネットワークの主な機能は、パブリッシャからの広告の供給を集約すること、およびそれを広告主の需要とマッチングすることである。様々な実装において、ライブラリ20は、構成(たとえば、コンテンツアイテムの配信情報、コンテンツアイテムスロット情報など)を取得するためにコンテンツネットワークと直接通信する場合がある。
【0040】
様々な実装においては、デバッグ回路22が、(図5図7を参照してやはり詳細に説明されるように)1つまたは複数のコンテンツネットワーク上でコンテンツソース試験を実行することもできる。一部の実装において、デバッグ回路22および分析回路328は、並列的に働き、様々なコンテンツソース試験を実行する場合があり、ネットワークレイテンシ、帯域幅、および/またはストレージ能力を改善するためにリソースを共有する場合がある。
【0041】
ここで図2を参照すると、一部の実施形態による、コンテンツアイテムをデバッグする方法200に関する流れ図。システム100は、方法200を実行するように構成され得る。さらに、本明細書において説明される任意のコンピューティングデバイスが、方法200を実行するように構成され得る。
【0042】
方法200の広範な概観では、ブロック202において、1つまたは複数の処理回路(たとえば、クライアントデバイス10、第1のデータ処理システム300、および/または図8のコンピュータシステム800など)が、第1のアプリケーションインターフェースを提示し得る。ブロック204において、1つまたは複数の処理回路は、コンテンツイベントログからデバッグ情報を生成し得る。ブロック206において、1つまたは複数の処理回路は、所定のユーザアクションを検出し得る。ブロック208において、1つまたは複数の処理回路は、デバッグ情報を提示し得る。特定の構成に応じて、追加の動作、より少ない動作、または異なる動作が、方法において実行されてよい。一部の構成において、方法200の一部またはすべての動作は、1つまたは複数のコンピューティングデバイス、システム、またはサーバ上で実行される1つまたは複数のプロセッサによって実行されてよい。様々な構成において、各動作は、順序を変更されるか、追加されるか、削除されるか、または繰り返される場合がある。本明細書において説明される方法の動作の組合せおよび変形も、本開示の範囲内に含まれる(たとえば、方法350の1つまたは複数のブロックが方法200に組み込まれ得る)。
【0043】
概して、方法200は、コンテンツアイテムの配信をデバッグする方法を示す。つまり、コーディングなしにデバッグインターフェースを通じて不具合を直し、コンテンツアイテムの試験を実行するために技術者でないもの(たとえば、アプリケーション開発者でない者)に提供され得るデバッグインターフェース。これは、技術者ではない者が、深い技術的知識を必要とせずに、コンテンツアイテムの実装を(物理または仮想デバイス上で)試験することを可能にし得る。発見されたすべての問題(本明細書においては「不具合」と呼ばれることがある)に関して、詳細な情報が、さらなる調査のためにより技術に精通したユーザに伝えられ得る。デバッグインターフェースは、身体的なジェスチャ、APIの呼び出し、別のアクション、またはそれぞれの組合せを使用して呼び出され得る(ライブラリ20(たとえば、SDK)によって容易にされる)アプリ内オーバーレイである。デバッガインターフェースは、ユーザがユーザのアプリケーションのコンテンツアイテムの健全性(たとえば、アプリケーション12)の高レベルのビューから、様々なコンテンツネットワークに対して行われる特定の修復呼び出し(remediation call)を中心とする詳細な技術的対応に至るまで移動し得ることを可能にする。
【0044】
方法200をより詳細に参照すると、ブロック202において、モバイルデバイス上で実行されるモバイルアプリケーションが、第1のアプリケーションインターフェースを提示し得る。様々な実装において、第1のアプリケーションインターフェースは、ユーザがモバイルデバイスのディスプレイ上でモバイルアプリケーションを選択することに基づいて提示するモバイルアプリケーションインターフェースであることが可能である。第1のアプリケーションインターフェースは、ユーザを特定するために、アカウントのサインインを要求する場合がある。一部の実装において、第1のアプリケーションインターフェースは、所与のアプリケーションの「ホーム画面」を提示してよい。さらに、モバイルデバイスのユーザは、追加のアプリケーションインターフェースを表示することができる複数のモバイルアプリケーションを有する場合がある。
【0045】
ブロック204において、モバイルデバイスは、コンテンツイベントログからデバッグ情報を生成することができ、コンテンツイベントログは、モバイルアプリケーションにおいてコンテンツアイテムが提示されるコンテンツアイテムスロットに関連付けられる。モバイルデバイス上で実行されるアプリケーションが所定のユーザアクションを検出した後、ライブラリ20は、コンテンツイベントログに関連するデバッグ情報を自動的に生成(収集も)することができる。たとえば、アプリケーション12を起動すると、セッションが開始してよく、ライブラリがデバッグ情報を自動的に生成することができる。
【0046】
一部の実装において、各コンテンツアイテムスロットは、コンテンツアイテムスロットにおいて供給された(本明細書においては「配信された」と呼ばれることもある)コンテンツアイテム、コンテンツアイテム識別情報(または名前、一意IDなど)、コンテンツアイテムスロットタイプ(たとえば、バナー、インタースティシャル、リワードなど)、ならびにコンテンツアイテムを充足したコンテンツネットワーク(たとえば、コンテンツネットワーク)、コンテンツ充足ステータス(たとえば、コンテンツ供給、コンテンツ供給せずなど)、および最後のイベントのタイムスタンプ(たとえば、2秒前、2分前、2時間前など)を含む1つまたは複数のデバッガ要求を含むがこれらに限定されない様々なデータを含み得る。一例において、コンテンツ充足ステータスは、コンテンツイベントログ内で、「活動なし」ステータス(たとえば、デバッガ要求がセッション中にコンテンツアイテムスロットに関して行われなかった)、「充足」ステータス(たとえば、コンテンツアイテムスロットに関して最も最近終了したデバッガ要求が「充足」に至った)、および「充足せず」ステータス(たとえば、コンテンツアイテムスロットに関して最も最近終了したデバッガ要求が「充足せず」に至った)によって特定され得る。
【0047】
様々な実装において、各コンテンツアイテムスロットは、そのコンテンツアイテムスロットに固有のコンテンツイベントログを含み得る。コンテンツイベントログ(本明細書においては「まとめられたイベントログ」とも呼ばれることがある)は、アプリケーション12上で発生する1つまたは複数のイベントからイベント回路26によって収集されたデータに基づくことが可能である。デバッグ回路22は、イベント回路26および/または第1のデータ処理システム(たとえば、特にデータベース310)からコンテンツイベントログを受信してよく、デバッグ回路22は、各コンテンツイベントログを分析することができ、追加の情報を利用してデバッグ情報を生成してよい。たとえば、ユーザが第1のアプリケーションインターフェースを介してアプリケーション12中をナビゲートしているとき、ユーザは、コンテンツアイテムスロット内のコンテンツアイテムをクリックする場合がある(たとえば、要求を実行する)。この例においては、ユーザがコンテンツアイテムをクリックするたびに、イベント回路26によってコンテンツイベントログが生成されてよい。コンテンツイベントログは、コンテンツアイテムスロットがユーザによってインタラクションされるときのコンテンツアイテムスロットの様々なデータを含んでよい。一部の実装において、ユーザは、コンテンツイベントログがセッションに関連する一連のイベント(たとえば、一連のデバッガ要求)を有することができるように、複数のアクション(たとえば、クリック、閲覧、スクロールなど)を実行することを含むセッションを実行してよい。一例において、一連のイベントは、最も最近終了したデバッガ要求によって降順に順序付けられる場合がある。代替的な例において、一連のイベントは、最も最近終了したデバッガ要求によって昇順に順序付けられる場合がある。一部の実装において、一連のデバッガ要求は、1つまたは複数のコンテンツネットワークに対して行われたそれぞれの試みられた要求を含み得る。セッションおよび一連のイベントに関するさらなる詳細は、図1および図5を参照して説明される。
【0048】
ブロック206において、モバイルデバイスは、所定のユーザアクションを検出し得る。所定のユーザアクションは、ユーザがモバイルデバイスを介して与え得る任意のアクションであることが可能である。モバイルデバイスは、モバイルデバイス上またはモバイルデバイス内に配置された様々なセンサに基づいて(たとえば、図1を参照して詳細に説明された入力/出力回路28によって)所定のユーザアクションを検出することができる。所定のユーザアクションは、モバイルデバイスの登録中にユーザによって設定され、および/または登録後に修正され得る。特に、所定のユーザアクションは、ジェスチャ(たとえば、クライアントデバイス10のフリック、クライアントデバイス10のシェイク、ユーザ定義のカスタムジェスチャ(たとえば、APIを利用する))、生体データ(たとえば、ストレスレベル、心拍数、手の形状、顔の形状、精神など)、および/または挙動データ(たとえば、触覚フィードバック、ジェスチャ、話し方、運動パターン(たとえば、手、足、腕、顔、虹彩など))、またはこれらの組合せなどであることが可能であるがこれらに限定されない。
【0049】
デバッグインターフェースの初期化は、様々な方法を利用してモバイルデバイス上で開始され得る。一部の実装においては、上で示されたように、ユーザが、モバイルデバイス上でデバッグインターフェースを提示することをトリガすることができる所定のユーザアクション(たとえば、身体的なジェスチャ、カスタムアプリケーションプログラミングインターフェース(API)呼び出しなど)を与えることができる。方法に関係なく、デバイスは、デバッグインターフェースを呼び出すためにデバッグデバイスとして登録されることを要求される場合がある。たとえば、ユーザがデバッグインターフェースを呼び出す方法としてカスタムAPIを利用している場合は、デバイスが登録されていない場合、活動がフロントエンドにおいて行われないが、パブリッシャがコードでエラーコールバックを受け取る。様々な実装においては、カスタムAPIが、デバッガを呼び出すために利用されることが可能であり、したがって、ユーザがデバッガをトリガするためにコーディングのいらない(codeless)ジェスチャおよび/またはアクションは必要とされない可能性がある。
【0050】
一部の実装においては、モバイルデバイスがデバッグインターフェースを利用する資格を得るために、ユーザが、モバイルデバイス(たとえば、クライアントデバイス10)を第1のデータ処理システム300にデバッグデバイスとして登録しなければならない場合がある。デバッグツールを有効にすることに加えて、第1のデバイス処理システム300は、開発者がそれらの開発者のアカウントが停止されるリスクなしにコンテンツアイテムをデバッグすることができるように、そのデバイスを「デバッグデバイス」として(たとえば、データベース310のテーブル内で)印を付けることもできる。登録中、モバイルデバイスは、デバイス名、プラットフォーム、コード(たとえば、QRコード(登録商標)、疑似ランダムコードなど)、コンテンツアイテム識別情報、ユーザ/パブリッシャ識別子、および所定のユーザアクションなどのうちの1つまたは複数を提供するようにユーザに促してよいが、これらに限定されない。第1のデータ処理システム300は、促しに基づくユーザ入力を受け取り、提供された入力を用いてデバイスを登録することができる。一部の実装において、第1のデータ処理システム300は、ユーザデバイスが登録される前に、提供された情報を検証するために、(たとえば、データベース310からの)利用可能なユーザ情報を相互参照する場合がある。様々な実装においては、ライブラリ20および/またはデバッグインターフェースを利用するために登録が必要とされない場合がある。さらに、ユーザは、デバッグツール(たとえば、ライブラリ20)を利用するために複数のデバイスを登録する場合がある。たとえば、ユーザは、「移動中に(on the go)」(たとえば、座らずに)使用するためのモバイルデバイスを登録する場合があるが、「家で」または「移動中以外に」(たとえば、座って)使用するためのタブレットも登録する場合がある。
【0051】
ブロック208において、所定のユーザアクションの検出に応じて、デバッグインターフェースは、デバッグ情報を提示し得る。デバッグインターフェースは、様々な活動を示す様々なデータ(たとえば、サブインターフェース)を提示することができる。たとえば、デバッグインターフェースは、1つまたは複数のコンテンツアイテムに関連するすべてのコンテンツアイテムスロットを一覧表示する要約画面を提示してよい。要約画面は、(コンテンツアイテムスロットに関する最も最近完了したデバッガ要求によって下っていく)活動の新しさによって順序付けられてよい。言い換えると、最新のイベント(すなわち、完了したデバッガ要求)が発生したコンテンツアイテムスロットが一番上に記載され、その後に、次に新しいイベントが発生したコンテンツアイテムスロットが続き、以下同様である。一部の実装において、現在のセッションに関していかなるイベントも持たないコンテンツアイテムスロット(活動なし)に関して、それらは、それらのコンテンツアイテムスロット名に基づいてアルファベット順に編成されて、一覧の一番下に現れる。様々な実装において、デバッグインターフェースが提示されている間、デバッグインターフェースは、1つまたは複数の新しい完了したデバッガ要求(たとえば、バナーのリフレッシュ、またはゲームループの終了)に基づいて、新しいイベント情報を含むように動的に更新され得る。つまり、より新しいイベントが存在する場合、(たとえば、デバッグインターフェースは流動的/動的であるため)コンテンツアイテムスロットの順番がリアルタイムに並べ替えられる。一例においては、起動後、ライブラリ20が、(たとえば、小さな帯域幅、パワーセーバーモード、遅いネットワーク速度、過剰使用されたプロセッサ、過熱などに基づいて)クライアントデバイス10がデバッガインターフェースの提示または更新に困難を抱えていると判定する場合、ライブラリ20は、最新の5つのイベントのみを提示し、ユーザがアクションを起こすかまたは明示的にリフレッシュするときにのみリフレッシュするためにデバッグインターフェースを更新する場合がある。デバッグインターフェースに関するさらなる詳細は、図5図7を参照して詳細に説明される。
【0052】
ここで図3を参照すると、一部の実施形態による、コンテンツアイテムをデバッグする方法350に関する流れ図。システム100は、方法200を実行するように構成され得る。さらに、本明細書において説明される任意のコンピューティングデバイスが、方法350を実行するように構成され得る。
【0053】
方法350の広範な概観では、ブロック352において、1つまたは複数の処理回路(たとえば、クライアントデバイス10、第1のデータ処理システム300、および/または図8のコンピュータシステム800など)が、登録要求を受信し得る。ブロック354において、1つまたは複数の処理回路は、モバイルデバイスが登録されていることを示す通知を送信し得る。ブロック356において、1つまたは複数の処理回路は、コンテンツアイテム試験要求を受信し得る。ブロック358において、1つまたは複数の処理回路は、特定のコンテンツネットワーク上でコンテンツアイテムを試験し得る。ブロック360において、1つまたは複数の処理回路は、コンテンツイベントログを送信し得る。特定の構成に応じて、追加の動作、より少ない動作、または異なる動作が、方法において実行されてよい。一部の構成において、方法350の一部またはすべての動作は、1つまたは複数のコンピューティングデバイス、システム、またはサーバ上で実行される1つまたは複数のプロセッサによって実行されてよい。様々な構成において、各動作は、順序を変更されるか、追加されるか、削除されるか、または繰り返される場合がある。本明細書において説明される方法の動作の組合せおよび変形も、本開示の範囲内に含まれる(たとえば、方法200の1つまたは複数のブロックが方法350に組み込まれ得る)。
【0054】
方法350をより詳細に参照すると、ブロック352において、1つまたは複数の処理回路は、モバイルデバイス上のモバイルアプリケーションに関連する識別子およびアクティブ化ジェスチャを含む登録要求を受信し得る。
【0055】
ブロック354において、1つまたは複数の処理回路は、モバイルデバイスが登録されていることを示す通知をモバイルデバイス上のモバイルアプリケーションに送信し得る。様々な実装において、登録要求情報(たとえば、識別子、アクティブ化ジェスチャ)は、データベース310のフロントエンド330に記憶され得る。
【0056】
ブロック356において、1つまたは複数の処理回路は、特定のコンテンツネットワーク内のコンテンツアイテムのコンテンツアイテム試験要求を受信し得る。
【0057】
ブロック358において、1つまたは複数の処理回路は、特定のコンテンツネットワーク上でコンテンツアイテムを試験し得る。様々な実装においては、モバイルデバイスが、特定のコンテンツネットワーク上でコンテンツアイテムの試験を実行する場合がある。一部の実装においては、クライアントデバイスおよび1つまたは複数の処理回路が、試験に向けて集合的に働く場合がある。
【0058】
ブロック360において、1つまたは複数の処理回路は、コンテンツネットワーク上の試験中のコンテンツアイテムのデバッグ情報を含むコンテンツイベントログをモバイルデバイス上のモバイルアプリケーションに送信し得る。
【0059】
ここで図4を参照すると、一部の実施形態による登録インターフェース400の例示的な図。示されるように、ユーザがユーザのユーザアカウントをクライアントデバイス(たとえば、クライアントデバイス10)に登録することを可能にする登録インターフェース400を含む。様々な実装において、ユーザは、データベース(たとえば、データベース310)に記憶されたログイン資格証明情報(credential)およびアカウントデータを有するユーザアカウントを持つ場合がある。アカウントデータは、アプリケーション(たとえば、アプリケーション12)のデバッガ(たとえば、ライブラリ20)に登録されたクライアントデバイスに関する情報を含み得る。つまり、各クライアントデバイスが、クライアントデバイスに記憶された1つまたは複数のアプリケーション上でデバッガを利用し得るように、ユーザアカウントが、複数のクライアントデバイスに登録される場合がある。たとえば、モバイルデバイス1が「アプリケーションX」のデバッグに利用され得るように、Bobのユーザアカウントが「モバイルデバイス1」に登録される場合がある。別の例においては、モバイルデバイス2が「アプリケーションY」のデバッグに利用され得るように、Janeのユーザアカウントが「モバイルデバイス2」に登録される場合がある。
【0060】
さらに、登録プロセス中、登録インターフェース400は、様々なフィールド(たとえば、410、412、414、416、418)を含み得る。入力スロットは、デバイス名フィールド410、プラットフォームフィールド412、コンテンツIDフィールド414、ならびにデバッガフィールド416および418を含み得る。各フィールドは、クライアントデバイスを介してユーザからの入力を受け取ることができる。たとえば、ユーザは、デバイス名およびコンテンツIDをそれらのそれぞれのフィールド(たとえば、410および414)に(たとえば、タッチスクリーンのキーボードを介して)タイピングしてよい。この例において、登録中に、ユーザは、プラットフォームフィールド412に入力を与え、デバッガフィールド418のドロップダウンを選択してもよい。デバッガフィールド418は、ライブラリ20をアクティブ化するためのユーザ入力フィールドを含み得る。示されるように、ユーザ入力フィールドは、ジェスチャであることが可能であり、または図1を参照して上で説明されたように様々なその他のユーザ入力であることが可能である。
【0061】
様々な実装において、各フィールドは、様々な形態の入力フィールド(たとえば、テキスト入力、ボタン、ドロップダウン、スピーチトゥテキストなど)であってよい。さらに、本開示においては、様々な追加のフィールドが想定される。一部の実装において、ユーザが登録インターフェース400の様々なフィールドに入力を与えると、クライアントデバイス10は、入力を、記憶および/または分析のために第1のデータ処理システム300に(たとえば、ネットワーク60を介して)送信してよい。様々な実装において、クライアントデバイスは、入力を送った後、または本明細書において説明されるシステムによる分析の後、瞬時に登録されてよい。一部の実装において、ユーザアカウントに関連するユーザは、1つまたは複数のアプリケーションに登録されたクライアントデバイスを管理することができる場合がある。管理は、クライアントデバイスの削除、構成(たとえば、名前、ジェスチャ)の変更などを含み得るがこれらに限定されない。
【0062】
ここで図5A図5Cを参照すると、一部の実施形態によるデバッグインターフェース23の例示的な図。概して、図5A図5Cは、コンテンツアイテムスロットおよびコンテンツアイテムのイベントログに関連するコンテンツアイテムをデバッグおよび試験するためにクライアントデバイス10においてレンダリングされ得るデバッグインターフェース23を示す。デバッグインターフェース23は、複数のインターフェースおよびオブジェクトを含み得る。たとえば、クライアントデバイス10は、アプリケーション12において実行されるイベントに基づいて、デバッグインターフェース23にデバッグ情報を提供するために実行され得る。
【0063】
例示的な図500において、クライアントデバイス10は、1つまたは複数のコンテンツアイテムスロット(たとえば、コンテンツスロット504)を含み得るアプリケーション12をクライアントデバイス10のビューポート内に提示している。アプリケーション12は、クライアントデバイス10のユーザによって利用される(たとえば、アプリケーションストア内の、ダウンロードされた、カスタムのなど)任意の種類のアプリケーションであることが可能である。様々な実装において、クライアントデバイス10は、(上述のように)アプリケーション12の試験デバイスとして登録され得る。ユーザアクション(たとえば、ジェスチャ)に応じて、例示的な図510が、クライアントデバイス10のビューポート内に提示されてよい。たとえば、クライアントデバイス10が(たとえば、センサによって)シェイクを特定すると、ライブラリ20が初期化されることが可能であり、デバッグインターフェース23がクライアントデバイス10のビューポート内に提示されてよい。
【0064】
例示的な図510においては、識別子512および活動データ516を含むコンテンツアイテムスロットデータなどの様々なデバッグ情報が、提示される場合がある。識別子512は、アプリケーション12の特定のコンテンツアイテムスロットに固有のデータを含み得る。示されるように、識別子は、ゲーム中盤の全画面コンテンツアイテムスロット、トップバナーコンテンツアイテムスロット、ゲームの終わりのボトムバナーコンテンツアイテムスロット、プレイヤー復活リワードコンテンツアイテムスロット(player-revive rewarded content item slot)、ホームバナーコンテンツアイテムスロット、およびホームバナー2コンテンツアイテムスロットであることが可能である。識別子512の各識別子は、活動データ516を含んでよい。活動データ516は、収集されたコンテンツイベントログに関連する活動を示し得る。
【0065】
コンテンツイベントログは、アプリケーション12の実行中(たとえば、セッション中)に、イベント回路26によって収集され得る。デバッグ回路22は、コンテンツイベントログを受信し、コンテンツイベントログを分析し、デバッグ情報を生成してよい。示されるように、活動データは、コンテンツアイテムが特定のコンテンツアイテムスロットにおいて供給された(たとえば、提供された、配信された、示された、提示された)かどうかを示す充足情報を含み得る。活動データは、最新の活動のタイムスタンプと、コンテンツアイテムが供給されたコンテンツネットワークとをさらに含み得る。一部の実装において、非アクティブなコンテンツアイテムスロットは、グレースケール表示されるかまたは目立たなくされる場合があり、識別子の最新の活動データ516は、ビューポートの最上部にあってよく、次に新しい活動データによって下降し、以下同様である。たとえば、ゲーム中盤の全画面識別子は、タイムスタンプを示す最新のイベント、供給ステータス(たとえば、充足、充足せず、配信された、配信せずなど)、および供給する/供給されるコンテンツネットワークを有する場合がある。(たとえば、タッチスクリーンディスプレイを介した)クライアントデバイス10のユーザによる選択514に応じて、例示的な図520が、クライアントデバイス10のビューポート内に提示されてよい。たとえば、クライアントデバイス10が選択を受信すると、ライブラリ20は、選択514によって選択されたコンテンツアイテムスロットに固有のデバッグ情報を提示するためにデバッグインターフェース23を更新することができる。
【0066】
例示的な図520においては、イベントログ524およびイベントログ528を含む詳細なイベントログ522を含むコンテンツアイテムスロットデータなどの様々なデバッグ情報が、提示される場合がある。各イベントログは、供給ステータス523および不具合526(本明細書においては「エラー要約」と呼ばれることがある)を含む追加的なデータを含み得る。示されるように、例示的な図520は、特定のコンテンツアイテムスロットの詳細ビューを提示する。一部の実装において、詳細ビューは、ライブラリ20に関する、各コンテンツネットワークに対して行われた試みられた要求/イベントのすべてのリストを提示することができる。様々な実装において、イベントは、活動に基づいて(たとえば、タイムスタンプ、および最も最近終了したものによって)順序付けられ、各イベントは、サーバステータス(たとえば、充足、充足せずなど)を含み得る。様々な実装において、イベントログ(たとえば、524および528)は、各イベントログが特定のコンテンツアイテムスロットにおける特定のコンテンツアイテムの活動であってよいように、コンテンツアイテムに固有である場合がある。
【0067】
コンテンツイベントログ(たとえば、524および528)は、デバッガ完了時間の時間(たとえば、12:00:59)によってタイトルを付けられ得る。さらに、コンテンツイベントログは、開始時間、終了時間と、秒で示された継続時間との両方も含む。(たとえば、12:00:23 AM、12:00:59 AM (26s))。一部の実装において、イベントログは、特定のイベント(たとえば、成功した充足イベント、ウォーターフォール(waterfall)の終わり)の後に行われた要求を示す場合がある。特に、それぞれの特定のイベントは、コンテンツネットワーク名、イベントの結果(たとえば、充足ステータス)、および実行するためのそのイベントの持続時間(たとえば、各イベントの往復時間)も含む場合があるがこれらに限定されない。一部の実装においては、イベントが進行中の場合、要求は、正常に完了したイベントのみを提示してよい。さらに、示されるように、特定のイベントのデバッグ情報は、不具合(たとえば、526)を含み得る。一例において、不具合526は、コンテンツアイテムの不具合(たとえば、間違ったコンテンツアイテムのサイズ、復帰の失敗(return failure)、例外など)を示す可能性がある。別の例において、不具合526は、クライアントデバイス10、アプリケーション12、ライブラリ20、および/またはネットワーク60のソフトウェアのクラッシュまたはハードウェアの故障を示す可能性がある。一部の実施形態において、不具合は、クライアントデバイス10、コンテンツ回路326、および/または分析回路328によって判定される場合がある。たとえば、クライアントデバイス10が、アプリケーション12に関連するソフトウェアのクラッシュを特定する場合がある。別の例においては、分析回路328が、イベントログのバンドルを受信した後、コンテンツイベントログ(たとえば、524および528)内の特定のイベント間の大きなレイテンシを特定する場合がある。さらに別の例においては、コンテンツ回路326が、クライアントデバイス10上で提示されたコンテンツアイテムスロット内のコンテンツアイテムとの対話を受け取った後、コンテンツアイテムスロット供給エラーを特定する場合がある。
【0068】
図5Bの例示的な図530において、クライアントデバイス10は、デバッグインターフェース23を介して、ユーザが開発経験なしにコンテンツイベントログをさらにデバッグすることを可能にし得る様々な選択532および534を受け取る場合がある。示されるように、ユーザが詳細なイベントログ522内のイベントを選択すると、クライアントデバイス10のビューポートを介して、例示的な図540が提示されてよい。
【0069】
例示的な図540において、詳細なイベントログ522に関する説明(たとえば、542および544)が、分析のために提示され得る。示されるように、原因およびアクションが、それらのそれぞれのイベントに関する説明542および544へと連結され得る。様々な実装において、説明は、コンテンツアイテムの構成を修正するための選択可能なリンクを含んでよい。
【0070】
図5Cの例示的な図550~590において、デバッグインターフェース23は、提示されたデバッグ情報および特にコンテンツイベントログのさらなるシナリオを示す。たとえば、例示的な図550のシナリオ1において、ライブラリ20は、コンテンツネットワーク(たとえば、T-Rex Network、Fantastic Ad Network、AdMob Network)に基づいて充足しなかったコンテンツアイテムスロットのウォーターフォールを実行し、提示した。この例においては、T-RexおよびFantasticネットワークがコンテンツアイテムを返さなかったが、エラー(たとえば、例外および/または不具合)はなく、コンテンツアイテムスロットを充足するコンテンツアイテムがないだけであった。さらに、示されるように、AdMobネットワークがコンテンツアイテムを返さなかったが、エラーに直面し、したがって、エラー、なぜコンテンツアイテムが充足しなかったかを示した。
【0071】
別の例では、例示的な図560のシナリオ2において、ライブラリ20は、コンテンツネットワークに基づいて充足したコンテンツアイテムスロットのウォーターフォールを実行し、提示した。この例においては、T-RexおよびFantasticネットワークがコンテンツアイテムを返さなかったが、エラーはなく、コンテンツアイテムスロットを充足するコンテンツアイテムがないだけであった。さらに、示されるように、AdMobネットワークが、エラーなく充足した。
【0072】
別の例では、例示的な図570のシナリオ3において、ライブラリ20は、コンテンツネットワークに基づいて充足しなかったコンテンツアイテムスロットのウォーターフォールを実行し、提示した。この例においては、AdMobネットワークが充足せず、エラーに直面した(たとえば、広告ユニット(ad unit)がフォーマットに一致しない)。様々な実装において、ユーザは、エラーを修復するために、ライブラリ20を介して、コンテンツアイテムの構成を修正してよい。たとえば、修復は、AdMob Networkを選択し、コンテンツアイテムのフォーマットに関連する特定のコンテンツアイテムの構成を修正することによって実行され得る。
【0073】
別の例では、例示的な図580のシナリオ4において、ライブラリ20は、コンテンツネットワークに基づいて充足したコンテンツアイテムスロットのウォーターフォールを実行し、提示した。この例においては、T-Rexネットワークがコンテンツアイテムを返さなかったが、エラーはなく、コンテンツアイテムスロットを充足するコンテンツアイテムがないだけであった。さらに、示されるように、AdMobネットワークが、エラーなく充足した。
【0074】
さらに別の例では、例示的な図590のシナリオ5において、ライブラリ20は、コンテンツネットワークに基づいて充足したコンテンツアイテムスロットのウォーターフォールを実行し、提示した。この例においては、T-Rexネットワークがコンテンツアイテムを返さなかったが、エラーはなく、コンテンツアイテムスロットを充足するコンテンツアイテムがないだけであった。
【0075】
一部の実装において、エンティティは、コンテンツアイテムスロットへのコンテンツアイテムのプレースメントに入札する場合がある。そのような実装において、例示的な図550~590は、誰が落札したかを含むがこれに限定されない公開入札オークションの結果も含み、それを、ウォーターフォール(たとえば、またはコンテンツイベントログ内のイベント)に関連して価格に基づいてランク付けされた順序で提示する場合がある。一部の実装において、エンティティは、優先順位に関連付けられる場合があり、エラーメッセージは、エンティティの優先順位に基づいて追加のまたはより少ない詳細を含む場合がある。
【0076】
ここで図6A図6Cを参照すると、一部の実施形態によるデバッグインターフェース23の例示的な図。概して、図6A図6Cは、ユーザ(たとえば、アプリケーション開発者でない者)がメディエーションのセットアップおよびサーバ側の構成を試験するために特定のコンテンツネットワークを選択する能力を示す。概して、メディエーションアダプタ(mediation adapter)は、ライブラリが(たとえば、クライアントデバイス10に記憶された、および/またはネットワーク60を介して)その他のライブラリと通信することを可能にするライブラリ(たとえば、ライブラリ20)である。したがって、その他のライブラリは、コンテンツプロバイダがそのコンテンツプロバイダがどのメディエーションアダプタを望むかを選択し、異なるメディエーションのセットアップ(たとえば、5つのメディエーションアダプタを利用する、10個のメディエーションアダプタを利用するなど)を試験してよいように、別々にパッケージングされる場合がある。
【0077】
これらの試験中、ユーザは、デバッグインターフェース23を使用して、ユーザが正しいメディエーションアダプタを使用していること、およびユーザが正しいコンテンツアイテム識別子を入力したことを確実にすることができ、それらの両方が、アプリケーション12においてコンテンツアイテムをレンダリングする(または提示する)ことによって解決され得る。概して、個々のコンテンツネットワーク上でコンテンツネットワーク試験を実行するとき、レイテンシが問題になり得る。しかし、図6A図6Cに示されるように、ユーザは、デバッグインターフェース23を介して、特定のコンテンツネットワーク試験を強制することができる。一部の実装において、コンテンツネットワーク試験は、特定のジオロケーション(たとえば、緯度および経度)において仮想プライベートネットワーク(VPN)を利用して実行され得る。一例において、特定の地理的地域(たとえば、建物、町、州、国)内で試験するためにVPNが利用されてよいように、コンテンツネットワーク試験は、特定の地理的地域に基づき得る。
【0078】
例示的な図600において、デバッグインターフェース23は、トグル式に切り替えられるときに「試験モード」をアクティブ化および非アクティブ化し得る試験トグル602を含んでよい。様々な実装において、試験モードは、特定のコンテンツネットワーク上の様々なコンテンツアイテムおよびコンテンツアイテムスロットの機能を試験することを含み得る。一部の実装において、試験中、クライアントデバイス10は、コンテンツイベントログを収集することができる。たとえば、クライアントデバイス10が選択を受信すると、ライブラリ20は、コンテンツネットワーク試験オーバーレイ612を提示するためにデバッグインターフェース23を更新することができる。
【0079】
例示的な図610においては、コンテンツネットワーク試験オーバーレイ612が、コンテンツネットワークドロップダウン614および選択可能な情報アイコン616を含む様々な機能とともに提示される。一部の実装においては、選択可能な情報アイコン616の選択に応じて、デバッグインターフェース23が、コンテンツネットワーク試験に関する情報を有する追加のページをオーバーレイしてよい。
【0080】
例示的な図620において、クライアントデバイス10は、試験開始選択可能アイコン622の選択を受け取る。たとえば、コンテンツネットワークドロップダウン614においてコンテンツネットワークを選択し、選択可能アイコン622を選択すると、ライブラリ20は、コンテンツネットワーク試験を開始することができる。
【0081】
例示的な図630において、デバッグインターフェース22は、(たとえば、デバッグされている)アプリケーション12が再起動されるべきであることを示す通知632をクライアントデバイス10のビューポートに提供してよい。様々な実装において、アプリケーション12の再起動は、必要ない場合がある。一部の実装において、通知632は、選択可能なアイコン634によって閉じられてよい。
【0082】
例示的な図640において、クライアントデバイス10のビューポート内のデバッグインターフェース23は、コンテンツネットワーク試験がアクティブであることを示すポップアップ通知642を提示してよい。さらに、クライアントデバイス10のビューポート内のデバッグインターフェース23は、試験されているコンテンツネットワークの通知644を含んでよい。様々な実装において、ポップアップ通知642は、常に提示されているように、デバッグインターフェース23全体を通して持続的であってよい。一部の実装においては、ライブラリ20が試験モードであるとき、すべてのデバッガ要求は、選択コンテンツネットワークのためのコンテンツアイテムを返そうとする。たとえば、「コンテンツネットワーク1」が選択されたが、所与のコンテンツアイテムスロットがコンテンツネットワーク1を利用しなかった場合、「コンテンツアイテムスロットがコンテンツネットワーク1と呼ばれるコンテンツネットワークのために構成されていない」ことを示すエラーメッセージ(エラー要約または不具合と呼ばれることがある)をともなう充足せず。
【0083】
例示的な図650において、デバッグインターフェース23は、ユーザがクライアントデバイス10のビューポート内でアプリケーション20とインタラクションすることができるように、最小化されたまたは閉じられた状態になる場合がある。たとえば、ユーザは、コンテンツアイテムスロット654を選択してよく、ライブラリ20は、インタラクションに関連するすべてのイベントを収集してよい。様々な実装において、デバッグインターフェース23は、コンテンツネットワーク試験を開始した後、またはユーザアクション(たとえば、登録中のジェスチャ入力など)の後、自動的に最小化された状態になる場合がある。一部の実装においては、(たとえば、初期化アクションとは異なる)特定のユーザアクションが、コンテンツネットワーク試験中にデバッグインターフェース23の間を「トグル式に切り替える」ために登録中に設定されてよい。
【0084】
例示的な図660において、デバッグインターフェース23は、ユーザアクション(たとえば、ジェスチャ)に基づいて、および/またはコンテンツネットワーク試験の完了に基づいて、アプリケーション12上にオーバーレイされた状態になる場合がある。示されるように、デバッグインターフェース23は、ユーザが試験停止選択可能アイコン664を選択することを可能にする別のコンテンツネットワーク試験オーバーレイ662を含んでよい。
【0085】
例示的な図670において、ユーザは、試験モードを終了するために試験トグル676(たとえば、602も)を選択してよい。様々な実装において、試験モードを終了すると、イベント回路26は、コンテンツネットワーク試験に関連するコンテンツイベントログを、分析のためにデバッグ回路22および/または第1のデータ処理システム300に送信してよい。
【0086】
例示的な図680において、クライアントデバイス10のビューポート内のデバッグインターフェース23は、コンテンツネットワーク試験が非アクティブ化される(たとえば、または停止される)ことを示すポップアップ通知682を提示してよい。
【0087】
ここで図7A図7Bを参照すると、一部の実施形態によるデバッグインターフェースの例示的な図。概して、図7Aは、アプリケーション開発者でない者がデバッグインターフェース23に関連するフィードバックを送信することを可能にする(たとえば、例示的な図700および710)。また、フィードバックは、デバッグインターフェース23への改善、変更、および追加に関するユーザによる直接的なフィードバックを含み得る。一部の実装において、フィードバックを送信することは、不具合/エラーが発見されるときに、コンテンツイベントログがサードパーティシステム(たとえば、第1のデータ処理システム300)に転送され得るようなコンテンツイベントログの共有を含むことも可能である。たとえば、702を選択に応じて、フィードバック送信選択可能リンク714を含むオーバーレイデバッガ構成712が提示される場合がある。一部の実装においては、フィードバック送信選択可能リンク714の選択に応じて、デバッグ回路22は、デバッグ情報をまとめ、コンテンツイベントログのバンドルをサードパーティシステム(たとえば、第1のデータ処理システム300またはネットワーク60上の別のコンピュータ)に(たとえば、電子メール、Bluetooth、テキストなどを介して)送信してよい。様々な実装において、オーバーレイデバッガ構成712は、ライブラリ20のバージョン(たとえば、v19.3、v1.3)および/またはコンテンツネットワークのバージョンを含む場合もある。様々な実装において、デバッグインターフェース23は、アプリケーション開発者でない者が、すべての以前に保存および収集されたコンテンツイベントログを消去することを可能にする場合もある。
【0088】
概して、図7Bは、ライブラリ20によってコンテンツアイテムスロットおよび/またはコンテンツイベントログデータが収集されなかったことを示すデバッグインターフェース23の空の状態を示す。様々な実装において、アカウントがクライアントデバイス10に未登録である場合、空の状態が提示される場合がある。一部の実装においては、ライブラリ20がデバッグインターフェース23を初期化する(またはロードする)ときにエラー(または不具合)があった場合に、空の状態が提示する場合がある。
【0089】
図8は、たとえば、例示的なクライアントデバイス10、例示的な第1のデータ処理システム300、および/または本開示に記載の様々なその他の例示的なシステムを実装するために使用され得るコンピュータシステム800の描写を示す。コンピューティングシステム800は、情報を伝達するためのバス805またはその他の通信コンポーネントと、情報を処理するためのバス805に結合されたプロセッサ810とを含む。コンピューティングシステム800は、情報およびプロセッサ810によって実行される命令を記憶するための、バス805に結合されたランダムアクセスメモリ(RAM)またはその他のダイナミックストレージデバイスなどのメインメモリ815も含む。メインメモリ815は、位置情報、一時的な変数、またはプロセッサ810による命令の実行中のその他の中間情報を記憶するためにも使用され得る。コンピューティングシステム800は、静的な情報およびプロセッサ810のための命令を記憶するための、バス805に結合された読み出し専用メモリ(ROM)820またはその他のスタティックストレージデバイスをさらに含んでよい。ソリッドステートデバイス、磁気ディスク、または光ディスクなどのストレージデバイス825が、情報および命令を永続的に記憶するためにバス805に結合される。
【0090】
コンピューティングシステム800は、ユーザに対して情報を表示するための液晶ディスプレイまたはアクティブマトリックスディスプレイなどのディスプレイ835にバス805を介して結合される場合がある。英数字およびその他のキーを含むキーボードなどの入力デバイス830が、プロセッサ810に情報、およびコマンド選択を伝達するためにバス805に結合される場合がある。別の実装においては、入力デバイス830は、タッチスクリーンディスプレイ835を有する。入力デバイス830は、プロセッサ810に方向情報およびコマンド選択を伝達するためならびにディスプレイ835上でカーソルの動きを制御するためのマウス、トラックボール、またはカーソル方向キーなどのカーソルコントロールを含み得る。
【0091】
一部の実装において、コンピューティングシステム800は、ネットワーキングアダプタなどの通信アダプタ840を含んでよい。通信アダプタ840は、バス805に結合されてよく、コンピューティングもしくは通信ネットワーク130および/またはその他のコンピューティングシステムとの通信を可能にするように構成されてよい。様々な例示的な実装において、(たとえば、イーサネットを介する)有線、(たとえば、WiFi、Bluetoothなどを介する)ワイヤレス、事前構成、アドホック、LAN、WANなどの任意の種類のネットワーク構成が、通信アダプタ840を使用して実現されてよい。
【0092】
本明細書において説明される例示的な実装を実現するプロセスは、プロセッサ810によるメインメモリ815に含まれる命令の配列の実行に応じてコンピューティングシステム800によって実現され得る。そのような命令は、ストレージデバイス825などの別のコンピュータ可読媒体からメインメモリ815に読み込まれ得る。メインメモリ815に含まれる命令の配列の実行は、コンピューティングシステム800に本明細書において記載の例示的なプロセスを実行させる。マルチプロセッシング配列の1つまたは複数のプロセッサも、メインメモリ815に含まれる命令を実行するために使用される場合がある。代替的な実装においては、例示的な実装を実施するためにソフトウェア命令の代わりにまたはソフトウェア命令と組み合わせて、結線された回路が使用される場合がある。したがって、実装は、ハードウェア回路とソフトウェアとの任意の特定の組合せに限定されない。
【0093】
例示的な処理システムが図8に示されたが、本明細書に記載の対象および機能的動作の実装は、本明細書で開示された構造およびそれらの構造的均等物を含む、その他の種類のデジタル電子回路を使用して、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェアで、またはそれらのうちの1つもしくは複数の組合せで実施され得る。
【0094】
本明細書に記載の対象の実装および動作は、本明細書で開示される構造およびそれらの構造的均等物を含むデジタル電子回路を使用して、または有形の媒体上に具現化されたコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはそれらのうちの1つもしくは複数の組合せで実施され得る。本明細書に記載の対象の実装は、1つまたは複数のコンピュータプログラム、すなわち、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために1つまたは複数のコンピュータストレージ媒体上に符号化されたコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。代替的にまたは追加的に、プログラム命令は、データ処理装置による実行のために好適な受信機装置に送信するために情報を符号化するように生成される人為的に生成された伝播信号、たとえば、機械によって生成された電気的信号、光学的信号、または電磁的信号上に符号化され得る。コンピュータ可読ストレージ媒体は、コンピュータ可読ストレージデバイス、コンピュータ可読ストレージ基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらのうちの1つもしくは複数の組合せであることが可能であり、あるいはそれらに含まれることが可能である。さらに、コンピュータストレージ媒体は、伝播信号ではないが、人為的に生成された伝播信号に符号化されたコンピュータプログラム命令の送信元または送信先であることが可能である。また、コンピュータストレージ媒体は、1つもしくは複数の別個のコンポーネントもしくは媒体(たとえば、複数のCD、ディスク、もしくはその他のストレージデバイス)であることが可能であり、またはそれらに含まれることが可能である。したがって、コンピュータストレージ媒体は、有形でありかつ非一時的である。
【0095】
本明細書に記載の動作は、1つもしくは複数のコンピュータ可読ストレージデバイスに記憶されたまたはその他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実装され得る。
【0096】
用語「データ処理装置」または「コンピューティングデバイス」は、例として、1つのプログラミング可能なプロセッサ、1台のコンピュータ、1つのシステムオンチップ、またはそれらの複数もしくは組合せを含む、データを処理するためのすべての種類の装置、デバイス、および機械を包含する。装置は、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含み得る。装置は、ハードウェアに加えて、問題にしているコンピュータプログラムのための実行環境を生成するコード、たとえば、プロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらのうちの1つもしくは複数の組合せを構成するコードも含み得る。装置および実行環境は、ウェブサービスインフラストラクチャ、分散コンピューティングインフラストラクチャ、およびグリッドコンピューティングインフラストラクチャなどの様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
【0097】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイラ型言語またはインタープリタ型言語、宣言型言語または手続き型言語を含む任意の形態のプログラミング言語で記述可能であり、独立型プログラムとしての形態、またはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境内での使用に好適なその他の単位としての形態を含む任意の形態でデプロイされ得る。コンピュータプログラムは、ファイルシステム内のファイルに対応する場合があるが、必ずそうであるとは限らない。プログラムは、その他のプログラムもしくはデータを保持するファイルの一部(たとえば、マークアップ言語のドキュメントに記憶された1つもしくは複数のスクリプト)、問題にしているプログラムに専用の単一のファイル、または複数の組織されたファイル(たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイル)に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つの場所に置かれるか、もしくは複数の場所に分散され、通信ネットワークによって相互に接続される複数のコンピュータ上で実行されるようにデプロイされ得る。
【0098】
本明細書に記載のプロセスおよび論理フローは、入力データに対して演算を行い、出力を生成することによってアクションを行うために1つまたは複数のコンピュータプログラムを1つまたは複数のプログラミング可能なプロセッサが実行することによって実行され得る。また、プロセスおよび論理フローは、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行されることが可能であり、さらに、装置は、それらの専用の論理回路として実装されることが可能である。
【0099】
コンピュータプログラムの実行に好適なプロセッサは、例として、汎用マイクロプロセッサと専用マイクロプロセッサとの両方、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。概して、プロセッサは、読み出し専用メモリ、またはランダムアクセスメモリ、またはこれらの両方から命令およびデータを受け取る。コンピュータの必須の要素は、命令に従ってアクションを実行するためのプロセッサ、ならびに命令およびデータを記憶するための1つまたは複数のメモリデバイスである。また、概してコンピュータは、データを記憶するための1つもしくは複数の大容量ストレージデバイス、たとえば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含むか、またはこれらの大容量ストレージデバイスからデータを受け取るか、もしくはこれらの大容量ストレージデバイスにデータを転送するか、もしくはそれら両方を行うために動作可能なように結合される。しかし、コンピュータは、そのようなデバイスを有していなくてもよい。さらに、コンピュータは、別のデバイス、たとえば、ほんのいくつか例を挙げるとすれば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレイヤー、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブルストレージデバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)に組み込まれることが可能である。コンピュータプログラム命令およびデータを記憶するのに好適なデバイスは、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含むすべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用の論理回路によって補完され得るか、または専用の論理回路に組み込まれ得る。
【0100】
ユーザとのインタラクションを提供するために、本明細書に記載の対象の実装は、ユーザに対して情報を表示するためのディスプレイデバイス、たとえば、CRT(ブラウン管)またはLCD(液晶ディスプレイ)モニタ、ならびにユーザがコンピュータに入力を与えることができるキーボードおよびポインティングデバイス、たとえば、マウスまたはトラックボールを有するコンピュータを使用して実施され得る。その他の種類のデバイスが、ユーザとのインタラクションを提供するためにやはり使用されることが可能であり、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックであることが可能であり、ユーザからの入力は、音響、発言、または触覚による入力を含む任意の形態で受け取られることが可能である。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信し、そのデバイスからドキュメントを受信することによって、たとえば、ウェブブラウザから受信された要求に応じてユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによってユーザとインタラクションすることができる。
【0101】
本明細書に記載の対象の実装は、バックエンドコンポーネントを、たとえば、データサーバとして含むか、またはミドルウェアコンポーネント、たとえば、アプリケーションサーバを含むか、またはフロントエンドコンポーネント、たとえば、ユーザが本明細書に記載の対象の実装とインタラクションすることができるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの任意の組合せを含むコンピューティングシステムを使用して実施され得る。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互に接続されることが可能である。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)および広域ネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク、分散型台帳ネットワーク)を含む。
【0102】
コンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、概して互いに離れており、通常は通信ネットワークを通じてインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されており、互いにクライアント-サーバの関係にあるコンピュータプログラムによって生じる。一部の実装において、サーバは、(たとえば、クライアントデバイスとインタラクションするユーザに対してデータを表示し、そのようなユーザからユーザ入力を受信する目的で)クライアントデバイスにデータ(たとえば、HTMLページ)を送信する。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザインタラクションの結果)が、サーバにおいてクライアントデバイスから受信され得る。
【0103】
一部の実装において、本明細書において開示された特徴は、インターネット接続性を(たとえば、ケーブル、衛星、無線、またはその他の信号によって受け取られる)より旧来型のテレビ番組のソースと統合するように構成された処理回路を含む場合があるスマートテレビモジュール(またはコネクテッドテレビモジュール、ハイブリッドテレビモジュールなど)上に実装されてよい。スマートテレビモジュールは、テレビセットに物理的に組み込まれる場合があり、またはセットトップボックス、ブルーレイもしくはその他のデジタルメディアプレイヤー、ゲームコンソール、ホテルのテレビシステム、および/またはその他のコンパニオンデバイス(companion device)などの別個のデバイスを含む場合がある。スマートテレビモジュールは、ウェブ、ローカルケーブルテレビチャンネル、衛星テレビチャンネルの、またはローカルのハードドライブに記憶されたビデオ、ムービー、写真、およびその他のコンテンツを視聴者が検索し、見つけることを可能にするように構成される場合がある。セットトップボックス(STB)またはセットトップユニット(STU)は、チューナを含み、テレビセットおよび信号の外部ソースに接続する場合がある情報家電デバイスを含んでよく、信号をコンテンツに変換し、そして、そのコンテンツが、テレビのスクリーンまたはその他のディスプレイデバイス上に表示される。スマートテレビモジュールは、ウェブブラウザなどの複数の異なるアプリケーション、および複数のストリーミングメディアサービス(たとえば、Netflix、Vudu、Hulu、Disney+など)、接続されたケーブルまたは衛星媒体のソース、その他のウェブ「チャンネル」などに関するアイコンを含むホーム画面または最上位の画面を提供するように構成されてよい。スマートテレビモジュールは、ユーザに電子番組ガイドを提供するようにさらに構成されてよい。スマートテレビモジュールに対するコンパニオンアプリケーション(companion application)は、利用可能な番組についての追加的な情報をユーザに提供すること、ユーザがスマートテレビモジュールを制御することを可能にすることなどのためにモバイルコンピューティングデバイス上で動作可能であってよい。代替的な実装において、特徴は、ラップトップコンピュータも
しくはその他のパーソナルコンピュータ、スマートフォン、その他のモバイル電話、ハンドヘルドコンピュータ、スマートウォッチ、タブレットPC、またはその他のコンピューティングデバイス上に実装される場合がある。
【0104】
本明細書は多くの特定の実装の詳細を含むが、これらは、いかなる発明の範囲または特許請求される可能性があるものの範囲に対する限定とも見なされるべきでなく、むしろ、特定の発明の特定の実装に固有の特徴の説明と見なされるべきである。別々の実装に関連して本明細書において説明されている特定の特徴が、組み合わせてまたは単一の実装において実施されることも可能である。反対に、単一の実装に関連して説明されている様々な特徴が、複数の実装において、別々に、または任意の適切な部分的組合せで実施されることも可能である。さらに、特徴は、特定の組合せで働くものとして上で説明されている場合があり、最初にそのように主張されてさえいる場合があるが、主張された組合せの1つまたは複数の特徴は、場合によっては組合せから削除されることが可能であり、主張された組合せは、部分的組合せ、または部分的組合せの変形を対象とする場合がある。さらに、特定の見出しに関連して説明された特徴が、その他の見出しの下で説明された例示的な実装に関連して、および/またはそのような実装と組み合わせて利用されてよく。見出しは、提供される場合、読みやすくする目的でのみ含まれ、そのような見出しに関連して提供されたいずれかの特徴を制限するものと解釈されるべきでない。
【0105】
同様に、動作が図中に特定の順序で示されているが、これは、所望の結果を達成するために、そのような動作が示された特定の順序でもしくは逐次的順序で実行されること、または示されたすべての動作が実行されることを必要とするものと理解されるべきでない。特定の状況においては、マルチタスクおよび並列処理が有利である場合がある。さらに、上述の実装における様々なシステムコンポーネントの分割は、すべての実装においてそのような分割を必要とするものと理解されるべきでなく、説明されたプログラムコンポーネントおよびシステムは、概して、単一のソフトウェア製品に一緒に統合されるか、または有形の媒体上に具現化される複数のソフトウェア製品にパッケージングされることが可能であることが理解されるべきである。
【0106】
このように、対象の特定の実装が説明された。その他の実装は、添付の請求項の範囲内にある。場合によっては、請求項に挙げられたアクションは、異なる順序で実行され、それでも所望の結果を達成することができる。加えて、添付の図面に示されたプロセスは、所望の結果を達成するために、必ずしも示された特定の順序または逐次的順序である必要はない。特定の実装においては、マルチタスクおよび並列処理が有利である場合がある。
【符号の説明】
【0107】
10 クライアントデバイス
12 アプリケーション
20 ライブラリ
22 デバッグ回路
23 デバッグインターフェース
26 イベント回路
28 入力/出力回路
60 ネットワーク
100 システム
130 通信ネットワーク
200 方法
300 第1のデータ処理システム
310 データベース
320 処理回路
322 プロセッサ
324 メモリ
326 コンテンツ回路
328 分析回路
330 フロントエンド
350 方法
400 登録インターフェース
410 フィールド
412 フィールド
414 フィールド
416 フィールド
418 フィールド
500 図
504 コンテンツスロット
510 図
512 識別子
514 選択
516 活動データ
520 図
522 詳細なイベントログ
523 供給ステータス
524 イベントログ
526 不具合
528 イベントログ
530 図
532 選択
534 選択
540 図
542 説明
544 説明
550 図
560 図
570 図
580 図
590 図
600 図
602 試験トグル
610 図
612 コンテンツネットワーク試験オーバーレイ
614 コンテンツネットワークドロップダウン
616 選択可能な情報アイコン
620 図
622 試験開始選択可能アイコン
630 図
632 通知
634 選択可能なアイコン
640 図
642 ポップアップ通知
644 通知
650 図
654 コンテンツアイテムスロット
660 図
662 コンテンツネットワーク試験オーバーレイ
664 試験停止選択可能アイコン
670 図
676 試験トグル
680 図
682 ポップアップ通知
700 図
710 図
712 オーバーレイデバッガ構成
714 フィードバック送信選択可能リンク
800 コンピュータシステム、コンピューティングシステム
805 バス
810 プロセッサ
815 メインメモリ
820 読み出し専用メモリ(ROM)
825 ストレージデバイス
830 入力デバイス
835 ディスプレイ
840 通信アダプタ
図1
図2
図3
図4
図5A
図5A-1】
図5A-2】
図5B
図5B-1】
図5C
図6A
図6A-1】
図6A-2】
図6B
図6B-1】
図6B-2】
図6C
図6C-1】
図6C-2】
図7A
図7A-1】
図7B
図7B-1】
図8