JP2017522663A - ネイティブアプリケーションに関するディープリンク - Google Patents

ネイティブアプリケーションに関するディープリンク Download PDF

Info

Publication number
JP2017522663A
JP2017522663A JP2016574940A JP2016574940A JP2017522663A JP 2017522663 A JP2017522663 A JP 2017522663A JP 2016574940 A JP2016574940 A JP 2016574940A JP 2016574940 A JP2016574940 A JP 2016574940A JP 2017522663 A JP2017522663 A JP 2017522663A
Authority
JP
Japan
Prior art keywords
native application
uri
application
native
publisher
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
JP2016574940A
Other languages
English (en)
Other versions
JP6370408B2 (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 JP2017522663A publication Critical patent/JP2017522663A/ja
Application granted granted Critical
Publication of JP6370408B2 publication Critical patent/JP6370408B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/951Indexing; Web crawling techniques
    • 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/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

ネイティブアプリケーションディープリンクを自動的に生成し、そのディープリンクから抽出されたコンテンツにインデックス付けを行うための、コンピュータ記憶媒体上に符号化されたコンピュータプログラムを含む、方法、システムおよび装置。

Description

優先権の主張
本出願は、2014年6月25日出願の米国特許出願第62/017,193号に対する米国特許法第119条(e)の優先権を主張し、その内容全体を参照により本明細書に組み込む。
本開示は、ネイティブアプリケーションのディープリンキングに関し、より詳細には、ネイティブアプリケーションのディープリンクを自動的に生成するためのシステムおよび方法に関する。
インターネットにより、多種多様な情報へのアクセスが可能となる。たとえば、デジタルイメージファイル、ビデオおよび/またはオーディオファイル、ならびに、特定の主題または特定のニュース記事に対するウェブページリソースが、インターネットを介してアクセス可能である。ウェブページリソースに関して、これらのリソースの多くは、銀行業務、ホテル予約業務、ショッピングなど特定の機能の実行を容易にする、または、オンライン百科事典、映画データベースなど構造化情報を提供するように設計されている。
様々な検索エンジンが、インターネットを介してアクセス可能な、特定のウェブページリソースを識別するために利用可能である。タブレットコンピュータおよびスマートフォンの出現とともに、ウェブページリソースの使用によって容易になった同一の機能の性能を促進するネイティブアプリケーションが、現在、大量に提供されつつある。
したがって、ユーザの情報ニーズは、ウェブページリソースによって容易になった同一の機能の性能を促進する、または、ウェブページリソースと同一もしくは極めて似ている情報を提供する、特定のウェブページリソースまたはネイティブアプリケーションのうちの一方(または両方)を識別する、検索結果を提供することによって満足され得る。
一般に、本明細書に記載の本主題の1つの革新的な態様は、ネイティブアプリケーションに関する発行者関連データを受け取るアクションを含む方法において具体化され得る。この発行者関連データは、各ネイティブアプリケーションに関しては、ネイティブアプリケーションの関連発行者を定めし、1組のネイティブアプリケーションの各ネイティブアプリケーションに関しては、発行者関連データに基づいて、ネイティブアプリケーションに関して決定されたURIによってアドレスされたコンテンツを提供する発行者と関連しているかどうかを規定し、ネイティブアプリケーションに関して決定されたURIによってアドレスされたコンテンツを提供する発行者と関連していると規定されたネイティブアプリケーションのみに関しては、ネイティブアプリケーションに関するURIパターンに基づいてURIを選択し、検索エンジンによって検索可能なインデックスで、ネイティブアプリケーションに関するURIによってアクセス可能なコンテンツにインデックス付けを行う。この態様の他の実施形態は、コンピュータの記憶デバイスに符号化された方法のアクションを実行するように構成された、対応するシステム、装置およびコンピュータプログラムを含む。
本明細書に記載の本主題の別の革新的な態様は、ネイティブアプリケーションに関するユニフォームリソースアイデンティファイア(uniform resource identifier:URI)パターンを決定することと、ネイティブアプリケーションをインスタンス生成し、URIパターンに基づいて第1のURIを選択してネイティブアプリケーション表示環境においてアプリケーションページを生成することと、検索エンジンによって検索可能なインデックスで、アプリケーションページのアプリケーションページデータにインデックス付けを行うことと、ネイティブアプリケーションに関して、停止イベントが発生するまでリンク付けされたアプリケーションページを反復処理することであって、その反復処理が反復ごとに、アプリケーションページから、第1のアプリケーションページに含むアウトバウンドURIを決定すること、1つまたは複数のアウトバウンドURIを選択して、ネイティブアプリケーション表示環境において1つまたは複数の後続のアプリケーションページを生成すること、1つまたは複数の後続のアプリケーションページのそれぞれについて、アプリケーションページデータにインデックスでインデックス付けを行うことを含む、反復処理することと、等のアクションを含む方法において具体化され得る。この態様の他の実施形態は、コンピュータの記憶デバイスに符号化された方法のアクションを実行するように構成された、対応するシステム、装置およびコンピュータプログラムを含む。
本明細書に記載の本主題の特別な実施形態は、以下の利点のうちの1つまたは複数を実現するように実装され得る。ディープリンクの生成により、アプリケーション開発者がネイティブアプリケーションインデックス付けに参加するのが容易となり、同時に、彼らのアプリケーションのドライブ使用および再使用(re-engagement)の助けとなる。システムはまた、参加の障壁も低める。
本明細書に記載の本主題の1つまたは複数の実施形態の詳細は、添付の図面および以下の説明に述べる。本主題の他の機能、態様および利点は、記述、図面および特許請求の範囲から明らかとなろう。
ネイティブアプリケーションに関するディープリンクが生成される環境の一例のブロック図である。 アプリケーションクローリングおよびインデキシングシステムのブロック図である。 ネイティブアプリケーションに関するディープリンクを生成するためのプロセスの一例の流れ図である。 ネイティブアプリケーションに関するディープリンクを生成するプロセスの別の例の流れ図である。
いくつかの図面において同様の参照番号および名称は同様の要素を示す。
システムはネイティブアプリケーション検索結果を提供する。本明細書で使用される場合、ネイティブアプリケーションは、ユーザデバイス上のブラウザアプリケーションとは独立して動作する。ネイティブアプリケーションは、ブラウザ内ではなく、特別なユーザデバイスのオペレーティングシステムおよびマシンのファームウェア上で実行するように特別に設計されたアプリケーションである。したがって、ネイティブアプリケーションは、ブラウザ、ブラウザベースのアプリケーション、およびブラウザのレンダリングリソースとは異なる。後者は、インスタンス生成またはレンダリングされるたびごとに、ウェブサーバからダウンロードされたすべてまたは少なくとも一部の要素または命令が必要である。さらに、ブラウザベースのアプリケーションおよびブラウザのレンダリングリソースは、ブラウザ内のすべてのウェブ対応の携帯デバイスによって処理することができ、したがって、ネイティブアプリケーションのようにオペレーティングシステム固有のものではない。さらに、本明細書で使用される場合、ネイティブアプリケーション検索結果は、特定のネイティブアプリケーションに対応する検索結果であり、したがって、選択されるとき、特定のネイティブアプリケーションを呼び出す。
ネイティブアプリケーションの例としては、テキスト文書作成、写真編集、音楽演奏、リモートバンキングシステムとのインタフェース等のアプリケーションがある。モバイルネイティブアプリケーションは、スマートフォン、タブレット等の携帯デバイス上で動作するように設計されている。ウェブネイティブアプリケーションは、ウェブブラウザソフトウェア内(視覚的にも機能的にも)で実行するように設計されている。極めて高いレベルで、ネイティブアプリケーション、または単に「アプリ」により、ユーザはコンテンツおよび/または機能へアクセスすることができる。
インターネット検索エンジンは、インターネット上に存在するインデックス付きのウェブページの一群を検索する機能を提供する。典型的な検索エンジンは、クエリに応答して、しばしばユーザが対象の結果に迅速にナビゲートすることが可能なハイパーリンクを有する、クエリに関連する結果リストを提供する。ユーザはリンク付けられた結果を選択することができ、それによりタレント、製品、ビジネス等についてのコンテンツを含むウェブページを提供される。リンクはサイトの「ホームページ」(たとえば、レシピなどクッキング情報を集約したサイトに対するウエルカムおよび検索ページ)に対するもの、または、サイトのホームページからナビゲートしたときユーザがアクセスすることができる「コンテンツページ」(たとえば、クッキング情報サイトにおける特定のレシピ)とすることができる。コンテンツページへのリンクは、ホームページへのリンクに対する対語として、「ディープリンク」と呼ばれる(これらのコンテンツページをクローリングし、インデックス付けし、サービスするプロセスは同様に「ディープリンキング」と呼ばれる)。
ページへナビゲートする機能、ならびに、そのページが提供するコンテンツのアクセス可能性および機能性は、公開されたページの性質によって部分的に規定される。たとえば、あるページは、クローリングおよび検索が困難または不可能な動的コンテンツ(たとえば、非同期ジャバスクリプトおよびXML(AJAX)、Adobe Flash等)を含むことができる。その結果、これらのページは、検索しても利用することはできないことがあり、ユーザはブックマークなどでページを保存することができないことがあり、また、ブラウザ制御によるページナビゲーション(たとえば、履歴を進むおよび戻る)は意図通りには動作しないことがある。
一部のネイティブアプリケーションは、リンクするときに、ウェブサイトのいくつかの基本的な特性を欠く。第1に、検索エンジンがネイティブアプリケーションをクローリングするとき、ページに対する既存のリンクを全く調査することができず、ウェブページのHTMLを調査することによって可能であるかのように、ページのアウトバウンドリンクを調査する。第2に、多くのネイティブアプリケーションは、ウェブサイトが本質的に行うようには互いにリンクしない。そのため、検索エンジンは、ウェブリンクを発見するようにはアプリのディープリンクを発見するためにウェブのクローリングに頼ることはできない。このため、ネイティブアプリケーションがサポートするリンクを発見することが、はるかに困難であるという点において、このことはネイティブアプリケーション検索エンジンにとって困難である。ネイティブアプリケーション検索エンジンがリンクを発見できない場合は、それらのリンクにインデックス付けを行うこと、検索すること、およびユーザに提供することができなくなる。
さらに、一部のネイティブアプリケーションは、ネイティブアプリケーションがアクセスするURIに対して対応するウェブページを有しているが、他のネイティブアプリケーションは有していない。対応するウェブページを有しているもののうち、一部のネイティブアプリケーションは、ネイティブアプリケーションとウェブプラットフォームの間に二重または対応するコンテンツおよび機能性を保持するが、他のネイティブアプリケーションは、モバイルとウェブプラットフォームの間に、わずかなまたは大きな程度の差異を有する。
一部のシステムは、ネイティブアプリケーションにインデックス付けするために開発者を頼り、自らのネイティブアプリケーションディープリンクを、HTMLマークアップとしてウェブページ上に、または、既存のサイトマップ中に、発行する。すなわち、ネイティブアプリケーションプロバイダは、ウェブプラットフォームを有し、かつ、少なくともウェブサイトにネイティブアプリケーションページをマッピングしなければならない。ネイティブアプリケーションディープリンキングを提供する一部のサービスも、開発者に頼って、彼らのウェブページ上にネイティブアプリケーションディープリンクを発行する。
本開示によれば、ネイティブアプリケーションディープリンクは、インデックス付けを行う目的で自動的に生成することができる。ネイティブアプリケーションディープリンクを生成する方法は、ネイティブアプリケーションディープリンクの性質に応じて多数ある。たとえば、いくつかのネイティブアプリケーションは、http://www.example.comなどウェブベースのユニフォームリソースロケータ(URL)に一致するURIを有するディープリンクをサポートする。他のネイティブアプリケーションは、特定のHTTPプロトコルに必ずしも一致しないカスタムURIを使用する。
ウェブベースのURLに基づいて、ディープリンキングをサポートするネイティブアプリケーションの場合は、ネイティブアプリケーションディープリンクを生成するプロセスは以下を含む。
1)ネイティブアプリケーション開発者は、集中型索引作成サービスを用いて公式ウェブサイトを確認する。次いで、そのサービスは、ウェブクローリングによって発見したすでにインデックス付けされたウェブURLに基づいて、ネイティブアプリケーションにインデックス付けを行う。
2)ネイティブアプリケーションデータクローリングおよびインデキシングシステムは、マニフェストファイルなどネイティブアプリケーションの登録情報を調査して、それがウェブサイトの適切なURL構造をサポートしているかどうか判定する。
3)ネイティブアプリケーションが適切なURL構造をサポートしている場合には、ネイティブアプリケーションデータクローリングおよびインデキシングシステムは、評判などの基準に基づいてリンクを決定し、優先順位を付けることができる。ネイティブアプリケーションデータクローリングおよびインデキシングシステムはまた、どのURL経路にインデックス付けをすべきではないかを指定する、登録情報内の任意のインデックスのないタグも重視する。
本開示の第2の態様によれば、カスタムディープリンキングをサポートするネイティブアプリケーションの場合は、システムは以下のステップを含む方法を実装する。
1)ネイティブアプリケーションの開発者は、特定のネイティブアプリケーション文書のURIアドレス、その対応するウェブURL(もしあれば)、ならびに、文書上のすべてのアウトバウンドアプリディープリンクおよび関連するウェブURL(もしあれば)を指定することができるネイティブアプリケーションインデキシングAPIを実装する。
2)ネイティブアプリケーションがデジタル配付元で更新されると、ネイティブアプリケーションデータクローリングおよびインデキシングシステムは、ネイティブアプリケーションを調査して、それがネイティブアプリケーションインデキシングAPIを使用しているかどうか判定する。もし使用している場合には、ネイティブアプリケーションデータクローリングおよびインデキシングシステムは、ネイティブアプリケーションを起動し、ネイティブアプリケーション「ホームページ」へのリンクを捜す。ネイティブアプリケーションデータクローリングおよびインデキシングシステムはまた、アプリケーションページ上の任意のアウトバウンドURIリンクを捜す。アウトバウンドURIがある場合、ネイティブアプリケーションデータクローリングおよびインデキシングシステムは、これらのリンクのそれぞれ(または関連するリンクのみ)にインデックス付けを行い、次に、アウトバウンドURIに対しても同様に、後続のネイティブアプリケーションページの処理を行う。このようにして、ネイティブアプリケーションデータクローリングおよびインデキシングシステムは、自動的にリンクを発見することができる。各ステップにおいて、ネイティブアプリケーションデータクローリングおよびインデキシングシステムは、認証方法として、元のリンクに対してアプリケーションページの現在のリンクをチェックすることができる。
3)ネイティブアプリケーションデータクローリングおよびインデキシングシステムを使用して、ネイティブアプリケーション内のユーザによって実際に見られているリンクのリストを保守し、そのリストをネイティブアプリケーションデータクローリングおよびインデキシングシステムに提供することができる。ネイティブアプリケーションデータクローリングおよびインデキシングシステムは、前のステップで説明した自動発見に加えて、追加的なリンク源としてこのリストを使用する。さらに、実際に見られているリンクのリストは、リンクの評判を判断するのに使用することができ、ネイティブアプリケーションデータクローリングおよびインデキシングシステムは、次いで、リンクの評判に基づいて、クローリングの優先順位を付けることができる。
したがって、本明細書に記載のシステムおよび方法は、ネイティブアプリケーションディープリンクの自動的なインデックス付けを提供することができる。このシステムおよび方法はさらに、実際のユーザ活動からリンクの優先順位付けを決定し、使用することができる。優先順位付けによりとりわけ、検索リソースの使用が最適化される。最後に、対応するウェブページを介してリンクを発行するためにアプリを必要とする既存の技術の限界を克服して、対応するウェブページを有するアプリにも有していないアプリにも対応することができるシステムおよび方法が開示される。
図1は、ネイティブアプリケーションに関するディープリンクが生成される、例示の環境100のブロック図である。インターネットなどのコンピュータネットワーク102が、リソース発行者ウェブサイト104、アプリケーション発行者106、ユーザデバイス108および検索エンジン120を接続している。
リソース発行者ウェブサイト104は、ドメインに関連付けられ、1つまたは複数の場所の1つまたは複数のサーバによってホスティングされた1つまたは複数のウェブリソース105を含む。一般に、リソース発行者ウェブサイトは、テキスト、画像、マルチメディアコンテンツおよびプログラミングエレメントを含むことができる、ハイパーテキストマークアップ言語(HTML)によってフォーマットされたウェブページの集合体である。各ウェブサイト104は、ウェブサイト104を制御し、管理し、かつ/または所有するエンティティであるコンテンツ発行者によって保守される。
ウェブページリソースは、発行者ウェブサイト104によってネットワーク102を介して提供され得る任意のデータであり、リソースのアドレス、たとえばユニフォームリソースロケータ(URL)を有する。ウェブリソースには2〜3例を挙げると、HTMLページ、画像ファイル、ビデオファイル、音声ファイルおよびフィードソースなどがあり得る。リソースは、埋め込み情報、たとえばメタ情報およびハイパーリンク、および/または埋め込み命令、たとえばクライアントサイドスクリプトを含むことができる。
アプリケーション発行者ウェブサイト106はまた、1つまたは複数のウェブリソース105を含み、またネイティブアプリケーション107を提供することができる。ネイティブアプリケーション107は、特定のユーザデバイスのオペレーティングシステムおよびマシンのファームウェア上で実行するように特に設計されたアプリケーションである。ネイティブアプリケーション107は、様々なプラットフォーム上で実行するように設計された多数のバージョンを含むことができる。たとえば、映画データベースウェブサイトに対応するネイティブアプリケーションは、第1のタイプのスマートフォン上で実行する第1のネイティブアプリケーション、第2のタイプのスマートフォン上で実行する第2のネイティブアプリケーション、第1のタイプのタブレット上で実行する第3のネイティブアプリケーション等を含むことができる。
アプリケーションページは、ネイティブアプリケーション内の特別の表示環境であり、その中にテキスト、画像などのコンテンツが表示される。アプリケーションページは、特定のネイティブアプリケーションに特有であり、ネイティブアプリケーションは、ユーザデバイス108の特別なオペレーティングシステムに特有である。アプリケーションページは、ネイティブアプリケーション内で生成されかつそれに特有であるという点で、レンダリングされたウェブリソースと異なり、一方、ウェブリソースは、ウェブページリソースが互換性のある任意のブラウザ内にレンダリングすることが可能であり、ユーザデバイスのオペレーティングシステムから独立している。
一部の発行者104、106は、同一の発行者で、ウェブリソースおよびネイティブアプリケーションの両者に同一のコンテンツを提供してもよい。こうしたコンテンツの配付の管理は、発行者バックエンド130によって取り扱いされる。発行者バックエンド130は、発行者が提供するコンテンツを記憶する発行者ストア132、ウェブリソース(たとえば、ウェブページ)として発行者ストアからコンテンツを提供するウェブサーバ134、およびネイティブアプリケーションからの要求を取り扱うネイティブアプリケーションサーバ136を備える。ウェブページは、ネイティブアプリケーションページに対応し、したがって、多くのネイティブアプリケーションURIに対して、対応するウェブページURIが存在する。一部のネイティブアプリケーションもまた、対応するウェブページとして、単純に同一のURLを使用する。発行者ストア132のコンテンツは、ウェブリソースおよび対応するネイティブアプリケーションページの両方を表すものとしてアクセス可能である。したがって、こうしたコンテンツは「同期した」コンテンツと呼ばれる。
こうした発行者の例にはニュース発行者があり、モバイルデバイス上でニュースコンテンツを読むための「モバイルニュースアプリ」を有することができる。ウェブリソース105によって提供されたニュースコンテンツ(たとえば、ニュース記事のテキスト)は、ネイティブアプリケーション107の対応するアプリケーションページによって提供される同一のコンテンツである。
ユーザデバイス108は、ネットワーク102を介してウェブページリソース105およびネイティブアプリケーション107を要求し、受信することができる電子デバイスである。例示のユーザデバイス108は、パーソナルコンピュータ、携帯通信デバイスおよびタブレットコンピュータを含む。
ウェブインデックス116は、発行者コンテンツのインデックスであり、これは、たとえば、発行者ウェブサイト104からデータフィードを受信することにより、または、他の適切なデータ収集およびインデックス付け方法により、発行者ウェブサイト104をクローリングすることから作成されたものである。
ネイティブアプリケーションインデックス114は、ネイティブアプリケーション107関連のデータを記憶する。アプリケーションインデックス114は、たとえば、発行者104によって提供されたネイティブアプリケーションのリスト、および、ネイティブアプリケーションを識別する識別子を記憶する。さらに、いくつかの実装形態においては、発行者104は、あるネイティブアプリケーション107を使用して、同期したデータにアクセスしそれを表示することを指定することができ、この情報はアプリケーションインデックス中に記憶することができる。たとえば、ニュース発行者は、提供するニュース読み出しアプリケーションがニュース発行者のウェブサイト上に表示された同期したコンテンツを表示するように指定することができる。
ユーザデバイス108は、検索クエリを検索エンジン110に提出する。各クエリに応答して、検索エンジン110は、ウェブインデックス116およびアプリケーションインデックス114にアクセスして、クエリに関連するコンテンツを識別する。検索エンジン110は、たとえば、検索結果ジェネレータ116を使用することによって、ウェブリソース検索結果およびネイティブアプリケーション検索結果の形式で、それぞれリソースおよびアプリケーションを識別することができる。一度生成されると、検索結果はクエリが受信されたユーザデバイス108に提供される。
ウェブリソース検索結果は、特定の検索クエリを満足するリソースのコンテンツに基づいて、ウェブリソースを識別する検索エンジン110によって生成されたデータである。リソースに対するウェブリソース検索結果は、ウェブページのタイトル、リソースから抽出されたテキストの抜粋、およびリソースに対するユニフォームリソースアイデンティファイア(URI)、たとえば、ウェブページのユニフォームリソースロケータ(URL)を含むことができる。ユーザデバイスにおいて選択されると、ウェブリソース検索結果によって、ユーザデバイスがURLに配置されたリソースに対する要求を生成する。受信されたウェブリソースは、次いで、ブラウザアプリケーション中に表示される。
ネイティブアプリケーション検索結果は、ネイティブアプリケーションを指定し、以下でより詳細に説明するように、アプリケーションインデックス114およびウェブインデックス116の検索に応答して生成される。ユーザデバイスにおいて選択されると、ネイティブアプリケーション検索結果によって、ユーザデバイス上にインストールされたネイティブアプリケーションが同期されたコンテンツを要求する。ネイティブアプリケーションは、一度要求されたコンテンツを受信すると、そのコンテンツをネイティブアプリケーションのユーザインタフェース内に表示する。
アプリケーションインデックス114を生成するために、検索システムはアプリケーションクローリングおよびインデキシングシステム120を使用する。図2はアプリケーションクローリングおよびインデキシングシステム120のブロック図である。URLを使用するネイティブアプリケーションのもとでのシステム120の動作は、図3を参照して説明する。カスタムURIを使用するネイティブアプリケーションの動作の変更例は、図4を参照して説明する。
図3は、ネイティブアプリケーションに関するディープリンクを生成するための例示の方法300の流れ図である。方法300は、1つまたは複数のコンピュータのデータ処理装置に実装される。
方法300は、データコレクタ204において、各ネイティブアプリケーションに関して、ネイティブアプリケーションに関する関連発行者を定める、ネイティブアプリケーションに関する発行者関連データ202を受信する(302)。たとえば、発行者は、ネイティブアプリケーション識別子と発行者のサイト識別子の関連など、特定のネイティブアプリケーションが発行者と関連しているというデータを提供する。サイト識別子の一例はドメイン名であるが、発行者とネイティブアプリケーションの関連を定めるための他のタイプのデータも使用され得る。
ネイティブアプリケーションに関して、プロセス300は、発行者関連データに基づいて、ネイティブアプリケーションが、ネイティブアプリケーションに関して決定されたURIによってアドレスされたコンテンツを提供する発行者と関連しているかどうかを判定する(304)。たとえば、アプリケーションパッケージクローラ206は、アプリケーションマニフェストファイル109(または、同様なアプリケーション仕様を定義する他のデータ)から、ネイティブアプリケーションに関するURIフォーマットのスキーム、ホストおよびパスを抽出する。たとえば、Androidマニフェストの場合、以下がインテントフィルタセクションから抽出される。
<data android:scheme="http"
android:host="example.com"
android:pathPrefix="/gizmos" />
ここで、スキームは"http"、ホストは"example.com"、パスは"/gizmos"である。ネイティブアプリケーションに関するURIパターンを決定するプロセス、および、URIパターンがネイティブアプリケーションに関する関連発行者に一致するネイティブアプリケーションに関する関連発行者を定めるかどうかは、発行者関連データ202によって指定される。上述の例示のデータを説明すると、関連データ202がネイティブアプリケーションに関する"http"のスキーム、および"example.com"のホストを定め、ネイティブアプリケーション107のマニフェスト109が同じスキームおよびホストを定める場合、そのネイティブアプリケーションはホストと関連することとなる。
判定が肯定の場合、URIスキームジェネレータ208は、ネイティブアプリケーションに関するデータをURIスキームテーブル210に記憶し、次いで、プロセス300は、ネイティブアプリケーションに関するURIパターンに基づいて、URIを選択する(306)。たとえば、いくつかの実装形態において、URIセレクタ212はURIスキームテーブル210からURIパターンを検索する。セレクタ212は、次いで、URIパターンを含むURLのウェブインデックスを求めて、ウェブインデックス116を検索する。上述の例において、http://example.co m/gizmos/を有する候補URLは、セレクタ212によって処理されることになる。セレクタ212は、クローリングされていないという指標を含み得るURL、最近検索されネイティブアプリケーションに関してインデックス付けされたURL、削除されているまたは非活動状態であると示されたURL、または、いくつかの他の除外基準に合致したURLを廃棄することができる。
選択された残りのURLはURIプロセッサ214に提供され、このプロセッサは次いでURLによってアクセス可能なコンテンツからデータを収集する。プロセス300は、次いで、ネイティブアプリケーションに関するURLによってアクセス可能なコンテンツに、検索エンジンによって検索可能なインデックスによってインデックス付けを行う(308)。データの収集およびインデックス付けは、任意の適切なプロセスによって行うことができる。1つの例示の実装形態において、システム120は、ユーザデバイス用のオペレーティングシステムをエミュレートするバーチャルマシンをインスタンス生成する。バーチャルマシンは、いくつかの実装形態において、オペレーティングシステムの変更バージョンとすることができ、以下でより詳細に説明するように、アプリケーションページからデータを抽出するエクストラクタを含む。
システム120はまた、ユーザデバイス上で表示するためのアプリケーションページをネイティブアプリケーション107内で生成するネイティブアプリケーション107をバーチャルマシン内でインスタンス生成し、次いで、選択されたURLの処理に応答して生成された、ネイティブアプリケーションのアプリケーションページに、バーチャルマシン内でアクセスする。各アプリケーションページに対して、システム110は、アプリケーションページのコンテンツを説明するアプリケーションページデータを生成する。ページのコンテンツは、たとえば、アプリケーションページ上に表示されたテキスト、アプリケーションページ上に表示された画像、他のアプリケーションページまたは他のウェブリソースへのアプリケーションページ上のリンク、およびインデックス付けに適切な他のコンテンツを含むことができる。
いくつかの実装形態において、バーチャルマシンは、インデックス付けのためのコンテンツデータを抽出するエクストラクタを含む。抽出されたコンテンツデータは、たとえば、ネイティブアプリケーションのレンダリングプロセスに提供されるデータである。レンダリングプロセスでは、ユーザデバイス上に表示するためのデータに基づいて、コンテンツをレンダリングする。エクストラクタを使用することにより、アプリケーションページの様々なコンテンツをより正確に識別することが可能となる。たとえば、テキストエクストラクタは、ネイティブアプリケーションのレンダリングプロセスに提供されたテキストデータを抽出する。テキストデータは、アプリケーションページにおいてレンダリングされるテキストを指定する。したがってバーチャルマシンは、アプリケーションページの画像を処理する、または、ディスプレイのバイナリデータを処理するのではなく、ネイティブアプリケーション107の環境においてレンダリングされる実際のテキストを受信する。
画像エクストラクタおよびリストエクストラクタなど、他のエクストラクタも同様に使用することができる。画像エクストラクタは、ネイティブアプリケーション107の環境においてレンダリングされる画像の画像データを提供し、リストエクストラクタは、ネイティブアプリケーション107の環境においてレンダリングされる、スクロール可能な項目のリストのリストデータを提供する。別のアプリケーションページにリンクする、アプリケーションページ内のリンクを記述するアプリケーションページリンクデータ、ユニフォームリソースロケータによって参照されるウェブリソースにリンクし、選択されるとき、ネイティブアプリケーションとは分離したブラウザ環境において、リソースをレンダリングするブラウザアプリケーションをインスタンス生成する、アプリケーションページ内のリンクを記述するウェブページリンクデータなど、他のデータもまた抽出することができる。
上述のエクストラクタおよび他の適切なデータエクストラクタは、特定のオペレーティングシステムのための適切なデータハンドラを使用して、実装することができる。たとえば、Android(商標)オペレーティングシステムの場合、エクストラクタは、TextViewオブジェクト、ImageViewオブジェクト、およびListViewオブジェクトをそれぞれ使用することにより実装することができる。バーチャルマシンはオブジェクトを処理して、たとえば、バーチャルマシンに、レンダリングするために提供された対応するデータにインデックス付けするために記憶させる命令を含むことによって、対応するデータを抽出する。
再び304を参照すると、判定が否定の場合、プロセス300は発行者のURIを処理しない(310)。これにより、発行者と関連のある(たとえば、発行者によって発行される、または発行者コンテンツの表示が発行者によって承認される)ネイティブアプリケーションのみに関する発行者コンテンツのインデックス付けが容易になる。
必ずしもウェブサイトとは一致しないカスタムディープリンキングをサポートするネイティブアプリケーションの場合、異なるプロセスを使用してディープリンクを生成する。図4は、ネイティブアプリケーションに関するディープリンクを生成するための、別の例示のプロセスの流れ図である。プロセス400は、1つまたは複数のコンピュータのデータ処理装置に実装される。
プロセス400は、ネイティブアプリケーションに関するURIパターンを決定する(402)。たとえば、アプリケーションマニフェスト109は、URIスキームを決定するためにアクセスされ得る。URIスキームは、「トップレベル」のネイティブアプリケーションURIリソースを定めるために使用することができ、または、ネイティブアプリケーションに関してすでにインデックス付けされたURIを選択するために使用することができる。
プロセス400は、ネイティブアプリケーションをインスタンス生成し、URIパターンに基づいて第1のURIを選択し、ネイティブアプリケーション表示環境においてアプリケーションページを生成する(404)。たとえば、バーチャルマシンがインスタンス生成され、そのバーチャルマシン上でネイティブアプリケーションもまたインスタンス生成される。URIはネイティブアプリケーションに提供され、アプリケーションページがレンダリングされる。
プロセス400は、反復発見(iterative discovery)プロセスを開始する(406)。このプロセスは、URIの完全なセットが処理されるまで続く。
プロセス400は、アプリケーションページから、第1のアプリケーションページ中に含むアウトバウンドURIを決定する(408)。たとえば、ネイティブアプリケーションAPIは、アプリケーションページデータから、他のネイティブアプリケーションURIにリンクするURIを決定する。この決定は、たとえば、マニフェスト109から生成されたURIパターンに一致するように、アプリケーションページから抽出されたテキストを処理することにより、または、送出URI(outgoing URI)を定義するマークアップテキストを選択するAPIに基づいて、行われ得る。
プロセス400は、1つまたは複数のアウトバウンドURIを選択し、ネイティブアプリケーション表示環境において、1つまたは複数の後続のアプリケーションページを生成する(410)。いくつかの実装形態においては、すべての送出URIが選択される。他の実装形態においては、ネイティブアプリケーションのURIパターンに一致するアウトバウンドURIのみが選択される。
プロセス400は、1つまたは複数の後続のアプリケーションページのそれぞれに対して、アプリケーションページデータにインデックスでインデックス付けを行う(412)。上述のように、システム110は、バーチャルマシンまたは何らかの他の構成要素を使用して、インデックス付けするためにアプリケーションページデータを抽出することができる。
プロセス400は、反復発見プロセスが終了したかどうか判定する(414)。反復発見プロセスが終了した場合、方法400はネイティブアプリケーションのアプリケーションインデックス付けを終了する(416)。終了していない場合には、プロセス400はステップ406に戻り、新たな反復を開始する。
いくつかの実装形態において、実際のユーザがネイティブアプリケーション内のコンテンツを見るとき、ネイティブアプリケーションAPIを使用することにより、アプリケーションクローリングおよびインデキシングシステム120に、ユーザによって実際に見られているリンクを知らせることができる。アプリケーションクローリングおよびインデキシングシステム120は、上述の組織的な発見に加えて、この情報を追加のリンク源として使用することができる。さらに、アプリケーションクローリングおよびインデキシングシステム120はまた、リンクの人気に基づいてクローリングの優先順位付けを行うことができる。
主題に関する実施形態および本明細書に記載の動作は、デジタル電子回路、または、本明細書で開示した構造体およびその構造的同等物を含む、コンピュータソフトウェア、ファームウェアもしくはハードウェア、またはそれらのうちの1つまたは複数の組合せによって実装され得る。本明細書に記載の主題に関する実施形態は、データ処理装置によって実行されるかまたはそれらの動作を制御する、コンピュータ記憶媒体上に符号化された1つまたは複数のコンピュータプログラム、すなわちコンピュータプログラム命令の1つまたは複数のモジュールとして実装され得る。別法として、またはこれに加えて、プログラム命令は、データ処理装置によって実行するために、適切な受信装置に送信する情報を符号化するために生成される人工的に生成された伝搬信号、たとえば、機械生成された電気的、光学的または電磁的信号上で符号化され得る。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶回路基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらのうちの1つもしくは複数の組合せとすることができ、またはそれらに含まれてもよい。さらに、コンピュータ記憶媒体は伝搬信号ではないのに対して、コンピュータ記憶媒体は、人工的に生成された伝搬信号中に符号化されたコンピュータプログラム命令の発信元または宛先とすることができる。コンピュータ記憶媒体もまた、1つまたは複数の別個の物理的コンポーネントまたは媒体(たとえば、複数枚のCD、ディスク、または他の記憶デバイス)とすることができるか、またはそれらに含まれていてもよい。
本明細書に記載の動作は、1つまたは複数のコンピュータ可読記憶デバイスに記憶されたまたは他のソースから受信されたデータに対して、データ処理装置によって実行された動作として実装され得る。
「データ処理装置」という用語は、例として、プログラマブルプロセッサ、コンピュータ、システムオンチップ、またはこれらの複数もしくは組合せを含む、あらゆる種類のデータ処理用の装置、デバイスおよびマシンを包含する。装置はまた、ハードウェアに加えて、当該のコンピュータプログラム用の実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、バーチャルマシン、またはそれらのうちの1つもしくは複数の組合せ、を構成するコードを含むことができる。装置および実行環境は、ウェブサービス、分散コンピューティング、およびグリッドコンピューティングインフラストラクチャなど様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイル型またはインタープリタ型言語、宣言型または手続き型言語を含む任意のプログラミング言語形式で書くことができ、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境で使用するのに適切な他のユニットとしての形式を含む、任意の形式において展開することができる。コンピュータプログラムは、ファイルシステム中のファイルに対応してもよいが、対応する必要はない。プログラムは、当該プログラムに割り当てられた単一ファイル、または複数の協調ファイル(たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの一部を記憶するファイル)中の他のプログラムまたはデータ(たとえば、マークアップ言語文書中に記憶された1つまたは複数のスクリプト)を保持するファイルの一部に記憶され得る。コンピュータプログラムは、1つのサイトに配置された、または、複数のサイトにわたって分散され通信ネットワークによって相互に接続された、1つのコンピュータまたは複数のコンピュータ上で実行するために展開することができる。
本明細書に記載のプロセスフローおよび論理フローは、1つまたは複数のプログラマブルプロセッサが、1つまたは複数のコンピュータプログラムを実行して、入力データに作用し出力を生成することによってアクションを行うことにより実施され得る。コンピュータプログラムを実行するのに適切なプロセッサとしては、一例として、汎用マイクロプロセッサおよび特殊用途のマイクロプロセッサの両者、ならびに、任意の種類のデジタルコンピュータのうちのいずれか1つまたは複数のプロセッサが挙げられる。一般に、プロセッサは、リードオンリメモリまたはランダムアクセスメモリまたは両者から、命令およびデータを受け取る。コンピュータの重要な要素は、命令に従ってアクションを実行するためのプロセッサ、ならびに、命令およびデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、たとえば、磁気ディスク、光磁気ディスク、または光ディスクなどデータを記憶するための1つまたは複数の大量記憶デバイスを含むか、または、それとの間でデータを受け取り、送信し、またはその両方を行うために、動作可能なようにそれに結合される。しかし、コンピュータはこうしたデバイスを有する必要はない。さらに、コンピュータは、ほんの少し名前を挙げるだけでも、たとえば、携帯電話、携帯情報端末(PDA)、携帯オーディオプレーヤもしくは携帯ビデオプレーヤ、ゲーム機、全地球測位システム(GPS)受信機、または携帯記憶デバイス(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ)など、別のデバイスに埋め込むことができる。コンピュータプログラム命令およびデータを記憶するのに適切なデバイスとしては、一例として、たとえば、EPROM、EEPROMなど半導体メモリデバイス、ならびにフラッシュメモリデバイス、たとえば、内蔵ハードディスクまたはリムーバブルディスクなど磁気ディスク、光磁気ディスク、ならびに、CD-ROMおよびDVD-ROMディスクを含む、あらゆる形式の不揮発性メモリ、メディアおよびメモリデバイスが挙げられる。プロセッサおよびメモリは、特殊目的の論理回路によって追加され、またはその中に組み込むことができる。
ユーザとの対話操作を提供するために、本明細書に記載の本主題の実施形態は、情報をユーザに表示するための、たとえば、CRT(陰極線管)モニタまたはLCD(液晶ディスプレイ)モニタなど表示デバイス、ならびに、ユーザがそれによって入力をコンピュータに提供することができる、キーボードおよびたとえばマウスまたはトラックボールなどのポインティングデバイスを有するコンピュータ上に実装することができる。同様に、ユーザとの対話操作を提供するために、他の種類のデバイスも使用することができる。たとえば、ユーザに提供されるフィードバックは、たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックなど、任意の形式の感覚フィードバックとすることができ、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む任意の形式で受け取ることができる。さらに、コンピュータは、たとえば、ウェブブラウザから受信した要求に応答して、ウェブページをユーザのユーザデバイス上のウェブブラウザに送信するなど、ユーザによって使用されるデバイスに文書を送信し、そこから文書を受信することによってユーザと対話することができる。
本明細書に記載の本主題の実施形態は、たとえば、データサーバとしてのバックエンドコンポーネント、または、たとえばアプリケーションサーバなどミドルウェアコンポーネント、または、たとえば、それを通してユーザが本明細書に記載の本主題の実装形態と対話することができるグラフィカルユーザインタフェースもしくはウェブブラウザを有するユーザコンピュータなどフロントエンドコンポーネント、または、1つまたは複数のこれらのバックエンド、ミドルウェア、もしくはフロントエンドコンポーネントのうちの任意の組合せを含む、コンピューティングシステムに実装され得る。システムのコンポーネントは、たとえば、通信ネットワークなどデジタルデータ通信の任意の形式または媒体によって、相互に接続され得る。通信ネットワークの例としては、ローカルエリアネットワーク(「LAN」)、広域ネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、および、ピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)が挙げられる。
コンピューティングシステムは、ユーザおよびサーバを含むことができる。ユーザおよびサーバは、一般的には相互に離れており、通常は通信ネットワークを介して対話する。ユーザとサーバの関係は、それぞれのコンピュータ上で実行し、相互にユーザ/サーバ関係を有するコンピュータプログラムによって生じる。いくつかの実施形態において、サーバはデータ(たとえば、HTMLページ)をユーザデバイスに送信する(たとえば、ユーザデバイスと対話するユーザにデータを表示する、および、ユーザデバイスと対話するユーザからユーザ入力を受け取る目的で)。ユーザデバイスにおいて生成されるデータ(たとえば、ユーザ対話の結果)は、サーバにおいてユーザデバイスから受信され得る。
本明細書は、多くの特定の実装形態の詳細を含んでいるが、これらは、任意の発明の範囲、または特許請求の範囲を制限するものと解釈されるべきではなく、特定の発明の特定の実施形態に固有の特徴を説明したものと解釈されるべきである。本明細書において、別個の実施形態との関連で説明されたある特徴も、1つの実施形態において組み合わせて実装され得る。反対に、1つの実施形態との関連で説明された様々な特徴も、別個の複数の実施形態、または任意の適切な副結合において実装され得る。さらに、特徴が上にてある組合せにおいて動作すると説明され、そのように最初は特許請求され得るとしても、特許請求された組合せからの1つまたは複数の特徴は、いくつかの場合には組合せから実行され、その特許請求された組合せは、副結合または副結合の変形を対象とすることができる。
同様に、動作は図面において特定の順序で記載されているが、望ましい結果を達成するために、こうした動作が示された特定の順序または順番通りに実行される、または示されたすべての動作が実行されることが必要であると考えるべきではない。ある状況においては、マルチタスキングおよび並列処理が有利なことがある。さらに、上述の実施形態において、様々なシステムコンポーネントの区別は、すべての実施形態においてこうした区別が必要であると理解すべきではなく、説明されたプログラムコンポーネントおよびシステムは、一般に、1つのソフトウェア製品に共に統合され、または複数のソフトウェア製品にパッケージ化され得ると理解されたい。
上述のとおり、本主題の特定の実施形態を説明してきた。他の実施形態は、以下の特許請求の範囲内にある。いくつかの場合において、特許請求の範囲で述べられるアクションは、異なる順序で実行することができ、なお望ましい結果を達成することができる。さらに、添付の図面に記載したプロセスは、望ましい結果を達成するために、必ずしも示された特定の順序または順番を必要とはしない。ある実装形態においては、マルチタスキングおよび並列処理が有利なことがある。
100 例示の環境
102 コンピュータネットワーク
104 リソース発行者ウェブサイト
105 ウェブリソース
106 アプリケーション発行者
107 ネイティブアプリケーション
108 ユーザデバイス
109 アプリケーションマニフェストファイル
110 検索エンジン
114 ネイティブアプリケーションインデックス
116 ウェブインデックス、検索結果ジェネレータ
120 検索エンジン、アプリケーションクローリングおよびインデキシングシステム
130 発行者バックエンド
132 発行者ストア
134 ウェブサーバ
136 ネイティブアプリケーションサーバ
202 発行者関連データ
204 データコレクタ
206 アプリケーションパッケージクローラ
208 URIスキームジェネレータ
210 URIスキームテーブル
212 URIセレクタ
214 URIプロセッサ
300 プロセス
400 プロセス

Claims (22)

  1. データ通信において、1つまたは複数のコンピュータを含むデータ処理装置によって実行されるコンピュータ実装方法であって、
    各ネイティブアプリケーションに関して、ネイティブアプリケーションに関する関連発行者を定める、前記ネイティブアプリケーションに関する発行者関連データを受信するステップと、
    1組のネイティブアプリケーションの各ネイティブアプリケーションに関して、前記発行者関連データに基づいて、前記ネイティブアプリケーションが、前記ネイティブアプリケーションに関して決定されたURIによってアドレスされたコンテンツを提供する発行者と関連しているかどうかを判定するステップと、
    前記ネイティブアプリケーションに関して決定されたURIによってアドレスされたコンテンツを提供する発行者と関連していると判定された、前記ネイティブアプリケーションのみに関して、
    前記ネイティブアプリケーションに関するURIパターンに基づいてURIを選択するステップと、
    前記ネイティブアプリケーションに関する前記URIによってアクセス可能なコンテンツに、検索エンジンによって検索可能なインデックスでインデックス付けを行うステップと
    を含む、コンピュータ実装方法。
  2. 前記発行者関連データに基づいて、ネイティブアプリケーションが、前記ネイティブアプリケーションに関して決定されたURIによってアドレスされるコンテンツを提供する発行者と関連しているかどうかを判定するステップが、
    前記ネイティブアプリケーションに関するURIパターンを決定するステップと、
    前記URIパターンが、前記発行者関連データによって指定される前記ネイティブアプリケーションに関する関連発行者と一致する、前記ネイティブアプリケーションに関する関連発行者を定めているかどうかを判定するステップと、
    前記ネイティブアプリケーションに関する前記URIパターンが、前記発行者関連データによって指定される前記ネイティブアプリケーションに関する関連発行者と一致する、前記ネイティブアプリケーションに関する関連発行者を定めているときのみ、前記ネイティブアプリケーションは前記発行者と関連していると判定するステップと
    を含む、請求項1に記載のコンピュータ実装方法。
  3. 前記ネイティブアプリケーションに関する前記URIパターンを決定するステップが、前記URIパターンを記述するデータに対するネイティブアプリケーションマニフェストファイルを処理するステップを含む、請求項2に記載のコンピュータ実装方法。
  4. 各ネイティブアプリケーションに関する前記発行者関連データが、発行者のドメインと、ネイティブアプリケーションのネイティブアプリケーション識別子との間の関連を定める、
    請求項2に記載のコンピュータ実装方法。
  5. 前記URIパターンが前記ネイティブアプリケーションに関する関連発行者を定めるかどうかを判定する前記ステップが、前記URIが前記発行者の前記ドメインに一致するホスト名を有しているかどうか判定するステップを含み、前記URIのホスト名と前記発行者の前記ドメインの一致が肯定の決定をもたらし、前記URIの前記ホスト名と前記発行者の前記ドメインの不一致が否定の決定をもたらす、請求項4に記載のコンピュータ実装方法。
  6. 前記ネイティブアプリケーションに関する前記URIパターンに基づいてURIを選択するステップが、前記URIパターンを含むURIをインデックスから選択するステップを含む、請求項2に記載のコンピュータ実装方法。
  7. 前記URIがユニフォームリソースロケータ(URL)である、請求項6に記載のコンピュータ実装方法。
  8. 前記ネイティブアプリケーションに関する前記URIパターンに基づいてURIを選択するステップが、
    前記ネイティブアプリケーションをインスタンス生成し、前記URIパターンに基づいて第1のURIを選択して、ネイティブアプリケーション表示環境においてアプリケーションページを生成するステップと、
    前記ネイティブアプリケーションに関して、停止イベントが発生するまでリンク付けされたアプリケーションページを反復処理するステップであって、反復ごとに、
    前記アプリケーションページから、前記第1のアプリケーションページに含むアウトバウンドURIを決定するステップと、
    1つまたは複数の前記アウトバウンドURIを選択して、ネイティブアプリケーション表示環境において、1つまたは複数の後続のアプリケーションページを生成するステップと
    を含む、反復処理するステップと、
    を含む、請求項2に記載のコンピュータ実装方法。
  9. データ通信において、1つまたは複数のコンピュータを含むデータ処理装置によって実行されるコンピュータ実装方法であって、
    ネイティブアプリケーションに関するユニフォームリソースアイデンティファイア(URI)パターンを決定するステップと、
    前記ネイティブアプリケーションをインスタンス生成し、前記URIパターンに基づいて第1のURIを選択して、ネイティブアプリケーション表示環境においてアプリケーションページを生成するステップと、
    前記アプリケーションページのアプリケーションページデータに、検索エンジンによって検索可能なインデックスでインデックス付けを行うステップと、
    前記ネイティブアプリケーションに関して、停止イベントが発生するまでリンク付けされたアプリケーションページを反復処理するステップであって、反復ごとに、
    前記アプリケーションページから、前記第1のアプリケーションページに含むアウトバウンドURIを決定するステップと、
    1つまたは複数の前記アウトバウンドURIを選択して、ネイティブアプリケーション表示環境において、1つまたは複数の後続のアプリケーションページを生成するステップと、
    前記1つまたは複数の後続のアプリケーションページのそれぞれに対する前記アプリケーションページデータに、インデックスでインデックス付けを行うステップと
    を含む、反復処理するステップと
    を含む、コンピュータ実装方法。
  10. 1つまたは複数の前記アウトバウンドURIを選択して、ネイティブアプリケーション表示環境において、1つまたは複数の後続のアプリケーションページを生成するステップが、
    各アウトバウンドURIに対して、前記アウトバウンドURIが前記URIパターンに一致するかどうか判定するステップと、
    前記URIパターンに一致する前記アウトバウンドURIのみを選択するステップと
    を含む、請求項9に記載のコンピュータ実装方法。
  11. 前記アウトバウンドURIが前記URIパターンに一致するかどうか判定するステップが、前記アウトバウンドURIが前記URIパターンを含むかどうか判定するステップを含む、請求項10に記載のコンピュータ実装方法。
  12. データ処理装置と、
    前記データ処理装置によって実行可能な命令を記憶する、非一時的なコンピュータ可読記憶媒体に記憶されたソフトウェアと
    を備え、前記ソフトウェアが実行されると前記データ処理装置に、
    各ネイティブアプリケーションに関して、ネイティブアプリケーションに関する関連発行者を定める前記ネイティブアプリケーションに関する発行者関連データを受信することと、
    1組のネイティブアプリケーションの各ネイティブアプリケーションに関して、前記発行者関連データに基づいて、前記ネイティブアプリケーションが、前記ネイティブアプリケーションに関して決定されたURIによってアドレスされたコンテンツを提供する発行者と関連しているかどうか判定することと、
    前記ネイティブアプリケーションに関して決定されたURIによってアドレスされたコンテンツを提供する発行者と関連していると判定された、前記ネイティブアプリケーションのみに関して、
    前記ネイティブアプリケーションに関する前記URIパターンに基づいてURIを選択することと、
    前記ネイティブアプリケーションに関する前記URIによってアクセス可能なコンテンツに、検索エンジンによって検索可能なインデックスでインデックス付けを行うことと
    を含む動作を実行させる、システム。
  13. 前記発行者関連データに基づいて、ネイティブアプリケーションが、前記ネイティブアプリケーションに関して決定されたURIによってアドレスされたコンテンツを提供する発行者と関連しているかどうか判定することが、
    前記ネイティブアプリケーションに関するURIパターンを決定することと、
    前記URIパターンが、前記発行者関連データによって指定された前記ネイティブアプリケーションに関する関連発行者と一致する前記ネイティブアプリケーションに関する関連発行者を定めているかどうか判定することと、
    前記ネイティブアプリケーションに関する前記URIパターンが、前記発行者関連データによって指定される前記ネイティブアプリケーションに関する関連発行者と一致する前記ネイティブアプリケーションに関する関連発行者を定めているときのみ、前記ネイティブアプリケーションが前記発行者と関連していると判定することと
    を含む、請求項12に記載のシステム。
  14. 前記ネイティブアプリケーションに関する前記URIパターンを決定することが、前記URIパターンを記述するデータに対するネイティブアプリケーションマニフェストファイルを処理することを含む、請求項13に記載のシステム。
  15. 各ネイティブアプリケーションに関する前記発行者関連データが、発行者のドメインと、ネイティブアプリケーションのネイティブアプリケーション識別子との間の関連を定める、
    請求項13に記載のシステム。
  16. 前記URIパターンが前記ネイティブアプリケーションに関する関連発行者を定めるかどうかを前記判定することが、前記URIが前記発行者の前記ドメインに一致するホスト名を有しているかどうか決定することを含み、前記URIのホスト名と前記発行者の前記ドメインの一致が肯定の決定をもたらし、前記URIの前記ホスト名と前記発行者の前記ドメインの不一致が否定の決定をもたらす、請求項15に記載のシステム。
  17. 前記ネイティブアプリケーションに関する前記URIパターンに基づいてURIを選択することが、前記URIパターンを含むURIをインデックスから選択することを含む、請求項13に記載のシステム。
  18. 前記URIがユニフォームリソースロケータ(URL)である、請求項17に記載のシステム。
  19. 前記ネイティブアプリケーションに関する前記URIパターンに基づいてURIを選択することが、
    前記ネイティブアプリケーションをインスタンス生成し、前記URIパターンに基づいて第1のURIを選択して、ネイティブアプリケーション表示環境においてアプリケーションページを生成することと、
    前記ネイティブアプリケーションに関して、停止イベントが発生するまでリンク付けされたアプリケーションページを反復処理することであって、反復ごとに、
    前記アプリケーションページから、前記第1のアプリケーションページに含むアウトバウンドURIを決定することと、
    1つまたは複数の前記アウトバウンドURIを選択して、ネイティブアプリケーション表示環境において、1つまたは複数の後続のアプリケーションページを生成することと
    を含む、反復処理することと
    を含む、請求項18に記載のシステム。
  20. データ処理装置と、
    前記データ処理装置によって実行可能な命令を記憶する、非一時的なコンピュータ可読記憶媒体に記憶されたソフトウェアと
    を備え、前記ソフトウェアが実行されると前記データ処理装置に、
    ネイティブアプリケーションに関するユニフォームリソースアイデンティファイア(URI)パターンを決定することと、
    前記ネイティブアプリケーションをインスタンス生成し、前記URIパターンに基づいて第1のURIを選択して、ネイティブアプリケーション表示環境においてアプリケーションページを生成することと、
    前記アプリケーションページのアプリケーションページデータに、検索エンジンによって検索可能なインデックスでインデックス付けを行うことと、
    前記ネイティブアプリケーションに関して、停止イベントが発生するまでリンク付けされたアプリケーションページを反復処理することであって、反復ごとに、
    前記アプリケーションページから、前記第1のアプリケーションページに含むアウトバウンドURIを決定することと、
    1つまたは複数の前記アウトバウンドURIを選択して、ネイティブアプリケーション表示環境において、1つまたは複数の後続のアプリケーションページを生成することと、
    前記1つまたは複数の後続のアプリケーションページのそれぞれに対する前記アプリケーションページデータに、インデックスでインデックス付けを行うことと
    を含む、反復処理することと
    を含む動作を実行させる、システム。
  21. データ処理装置によって実行可能な命令を記憶する、非一時的なコンピュータ可読記憶媒体であって、実行されると前記データ処理装置に、
    各ネイティブアプリケーションに関して、ネイティブアプリケーションに関する関連発行者を定める前記ネイティブアプリケーションに関する発行者関連データを受信することと、
    1組のネイティブアプリケーションの各ネイティブアプリケーションに関して、前記発行者関連データに基づいて、前記ネイティブアプリケーションが、前記ネイティブアプリケーションに関して決定されたURIによってアドレスされたコンテンツを提供する発行者と関連しているかどうか判定することと、
    前記ネイティブアプリケーションに関して決定されたURIによってアドレスされたコンテンツを提供する発行者と関連していると判定された、前記ネイティブアプリケーションのみに関して、
    前記ネイティブアプリケーションに関するURIパターンに基づいてURIを選択することと、
    前記ネイティブアプリケーションに関する前記URIによってアクセス可能なコンテンツに、検索エンジンによって検索可能なインデックスでインデックス付けを行うことと
    を含む動作を実行させる、非一時的なコンピュータ可読記憶媒体。
  22. データ処理装置によって実行可能な命令を記憶する、非一時的なコンピュータ可読記憶媒体であって、実行されると前記データ処理装置に、
    ネイティブアプリケーションに関するユニフォームリソースアイデンティファイア(URI)パターンを決定することと、
    前記ネイティブアプリケーションをインスタンス生成し、前記URIパターンに基づいて第1のURIを選択して、ネイティブアプリケーション表示環境においてアプリケーションページを生成することと、
    前記アプリケーションページのアプリケーションページデータに、検索エンジンによって検索可能なインデックスでインデックス付けを行うことと、
    前記ネイティブアプリケーションに関して、停止イベントが発生するまでリンク付けされたアプリケーションページを反復処理することであって、反復ごとに、
    前記アプリケーションページから、前記第1のアプリケーションページに含むアウトバウンドURIを決定することと、
    1つまたは複数の前記アウトバウンドURIを選択して、ネイティブアプリケーション表示環境において、1つまたは複数の後続のアプリケーションページを生成することと、
    前記1つまたは複数の後続のアプリケーションページのそれぞれに対する前記アプリケーションページデータに、インデックスでインデックス付けを行うことと
    を含む、反復処理することと
    を含む動作を実行させる、非一時的なコンピュータ可読記憶媒体。
JP2016574940A 2014-06-25 2015-06-25 ネイティブアプリケーションに関するディープリンク Active JP6370408B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201462017193P 2014-06-25 2014-06-25
US62/017,193 2014-06-25
PCT/US2015/037639 WO2015200600A1 (en) 2014-06-25 2015-06-25 Deep links for native applications

Publications (2)

Publication Number Publication Date
JP2017522663A true JP2017522663A (ja) 2017-08-10
JP6370408B2 JP6370408B2 (ja) 2018-08-08

Family

ID=53511031

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016574940A Active JP6370408B2 (ja) 2014-06-25 2015-06-25 ネイティブアプリケーションに関するディープリンク

Country Status (6)

Country Link
US (1) US10073911B2 (ja)
EP (1) EP3161678B1 (ja)
JP (1) JP6370408B2 (ja)
CN (1) CN106663108B (ja)
RU (1) RU2668726C2 (ja)
WO (1) WO2015200600A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10303802B2 (en) 2013-03-15 2019-05-28 Gadget Software, Inc. System for mobile application search
US10152488B2 (en) * 2015-05-13 2018-12-11 Samsung Electronics Co., Ltd. Static-analysis-assisted dynamic application crawling architecture
US10120949B2 (en) * 2015-10-29 2018-11-06 Google Llc Indexing native application data
US9984132B2 (en) * 2015-12-31 2018-05-29 Samsung Electronics Co., Ltd. Combining search results to generate customized software application functions
US20170192941A1 (en) * 2016-01-05 2017-07-06 Quixey, Inc. Computer-Automated Generation of Application Deep Links
US10257342B2 (en) * 2016-03-31 2019-04-09 Microsoft Technology Licensing, Llc Validating stateful dynamic links in mobile applications
US20170289338A1 (en) * 2016-03-31 2017-10-05 Microsoft Technology Licensing, Llc Enabling stateful dynamic links in mobile applications
JP2018048042A (ja) * 2016-09-21 2018-03-29 Jsr株式会社 シリカ系粒子の製造方法、シリカ系粒子、および化学機械研磨用組成物
US10701166B2 (en) * 2017-01-31 2020-06-30 Microsoft Technology Licensing, Llc Automated application linking
US10810278B2 (en) * 2017-04-18 2020-10-20 Google Llc Contextual deep bookmarking
CN108008941B (zh) * 2017-11-16 2019-06-21 北京大学 一种安卓应用的深链接口自动生成方法及深链执行方法
US10409575B2 (en) * 2018-02-09 2019-09-10 Cognizant Technology Solutions India Pvt. Ltd. System and method for developing software applications of wearable devices
CN112262382A (zh) * 2018-06-28 2021-01-22 谷歌有限责任公司 上下文深层书签的注释和检索
CN109918153B (zh) * 2019-03-18 2022-05-27 北京信息科技大学 页面打开方法和装置、页面内容检索方法和装置
EP3726373B1 (en) * 2019-04-15 2024-03-06 Mendix Technology B.V. Creating an app method and system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004038889A (ja) * 2002-07-08 2004-02-05 Ntt Docomo Inc サービス提供システム及びサービス提供方法
JP2008537809A (ja) * 2005-03-04 2008-09-25 チョンヌン インコーポレイテッド ページグループを用いた情報検索サービス提供サーバー、方法及びシステム
US20080313190A1 (en) * 2007-06-15 2008-12-18 Samsung Electronics Co., Ltd. Method and system for searchable web services
JP2010218064A (ja) * 2009-03-13 2010-09-30 Ricoh Co Ltd 情報処理装置、情報処理方法、及びプログラム
JP2012500433A (ja) * 2008-08-21 2012-01-05 マンゴー ムーン トレーディング 1138 シーシー 索引システム
US20140040226A1 (en) * 2012-07-31 2014-02-06 Microsoft Corporation Providing application result and preview

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040030882A1 (en) 2002-08-08 2004-02-12 Forman George Henry Managed application pre-launching
US7076616B2 (en) 2003-03-24 2006-07-11 Sony Corporation Application pre-launch to reduce user interface latency
US7730012B2 (en) 2004-06-25 2010-06-01 Apple Inc. Methods and systems for managing data
US7584194B2 (en) * 2004-11-22 2009-09-01 Truveo, Inc. Method and apparatus for an application crawler
US7739731B2 (en) * 2006-01-09 2010-06-15 Oracle America, Inc. Method and apparatus for protection domain based security
CN101004694B (zh) * 2006-01-09 2012-05-30 太阳微***有限公司 隔离的执行上下文之间数据转移的方法和装置
US8707451B2 (en) 2006-03-01 2014-04-22 Oracle International Corporation Search hit URL modification for secure application integration
CA2711731A1 (en) * 2008-02-14 2009-08-20 Nokia Corporation System and method for implementing a publication
US8086957B2 (en) 2008-05-21 2011-12-27 International Business Machines Corporation Method and system to selectively secure the display of advertisements on web browsers
US8219572B2 (en) * 2008-08-29 2012-07-10 Oracle International Corporation System and method for searching enterprise application data
US20100257466A1 (en) 2009-04-01 2010-10-07 Yahoo! Inc. Method and system for generating a mini-software application corresponding to a web site
US20100306191A1 (en) 2009-05-27 2010-12-02 Lebeau Michael J Computer Application Data In Search Results
US8458384B2 (en) 2010-02-03 2013-06-04 National Instruments Corporation Automatically launching a measurement application in response to measurement device connection
US9098363B2 (en) 2010-04-07 2015-08-04 Apple Inc. Search extensibility to third party applications
US8515979B2 (en) 2010-06-18 2013-08-20 Verizon Patent And Licensing, Inc. Cross application execution service
US20120124061A1 (en) * 2010-11-12 2012-05-17 Microsoft Corporation Rich Search Over and Deep Integration with Applications
EP2533162B1 (en) 2010-11-29 2022-10-26 Hughes Network Systems, LLC Proxy Server Apparatus for pre-fetching content using browser specifics
US9858092B2 (en) 2011-01-06 2018-01-02 Mitel Networks Corporation Contextual application launch via search query
US9317621B2 (en) 2011-01-06 2016-04-19 Microsoft Technology Licensing, Llc Providing deep links in association with toolbars
US20120316955A1 (en) 2011-04-06 2012-12-13 Yahoo! Inc. System and Method for Mobile Application Search
RU110847U1 (ru) 2011-05-05 2011-11-27 Игорь Викторович Лебедев Информационно-поисковая система
WO2012154848A1 (en) 2011-05-09 2012-11-15 Google Inc. Recommending applications for mobile devices based on installation histories
CN102226916B (zh) * 2011-05-30 2015-07-29 华为技术有限公司 管理应用程序的平台、方法及设备
US9519726B2 (en) 2011-06-16 2016-12-13 Amit Kumar Surfacing applications based on browsing activity
US8650139B2 (en) 2011-07-01 2014-02-11 Google Inc. Predicting user navigation events
KR101491878B1 (ko) 2011-08-31 2015-02-09 라인 가부시키가이샤 사용자 단말에서 취득한 정보를 기반으로 모바일 애플리케이션의 순위를 제공하는 시스템 및 방법
US20130110815A1 (en) 2011-10-28 2013-05-02 Microsoft Corporation Generating and presenting deep links
WO2013067000A1 (en) 2011-11-01 2013-05-10 Google Inc. Launching applications from webpages
US8554345B2 (en) 2011-11-10 2013-10-08 Cbs Interactive, Inc. APP rating system
KR101295644B1 (ko) 2011-11-11 2013-09-16 한국전자통신연구원 스마트폰 앱 검증 시스템 및 그 방법
US20130124606A1 (en) 2011-11-14 2013-05-16 Boopsie, Inc. Automatic personalization of downloadable mobile apps
CN103176790B (zh) * 2011-12-26 2016-04-20 阿里巴巴集团控股有限公司 应用发布方法和***
US8793235B2 (en) 2012-01-19 2014-07-29 Google Inc. System and method for improving access to search results
GB2501276A (en) 2012-04-18 2013-10-23 Ibm Determining web page loading at a client
CN102710753B (zh) * 2012-05-15 2015-09-09 华为技术有限公司 一种互联网应用的发布方法、装置及***
US20130311301A1 (en) * 2012-05-17 2013-11-21 Ad-Vantage Networks, Inc. Content easement and management system for internet access providers and premise operators
US9195721B2 (en) 2012-06-04 2015-11-24 Apple Inc. Mobile device with localized app recommendations
US8510764B1 (en) 2012-11-02 2013-08-13 Google Inc. Method and system for deep links in application contexts
US20140358887A1 (en) * 2013-05-29 2014-12-04 Microsoft Corporation Application content search management
CN103838584B (zh) * 2014-03-26 2017-09-15 北京京东尚科信息技术有限公司 一种移动终端应用的开发方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004038889A (ja) * 2002-07-08 2004-02-05 Ntt Docomo Inc サービス提供システム及びサービス提供方法
JP2008537809A (ja) * 2005-03-04 2008-09-25 チョンヌン インコーポレイテッド ページグループを用いた情報検索サービス提供サーバー、方法及びシステム
US20080313190A1 (en) * 2007-06-15 2008-12-18 Samsung Electronics Co., Ltd. Method and system for searchable web services
JP2012500433A (ja) * 2008-08-21 2012-01-05 マンゴー ムーン トレーディング 1138 シーシー 索引システム
JP2010218064A (ja) * 2009-03-13 2010-09-30 Ricoh Co Ltd 情報処理装置、情報処理方法、及びプログラム
US20140040226A1 (en) * 2012-07-31 2014-02-06 Microsoft Corporation Providing application result and preview

Also Published As

Publication number Publication date
RU2018133614A (ru) 2018-10-23
WO2015200600A1 (en) 2015-12-30
EP3161678B1 (en) 2020-12-16
US10073911B2 (en) 2018-09-11
CN106663108B (zh) 2020-08-04
RU2668726C2 (ru) 2018-10-02
CN106663108A (zh) 2017-05-10
RU2016150421A3 (ja) 2018-07-25
RU2016150421A (ru) 2018-07-25
EP3161678A1 (en) 2017-05-03
RU2018133614A3 (ja) 2021-11-30
JP6370408B2 (ja) 2018-08-08
US20150379128A1 (en) 2015-12-31

Similar Documents

Publication Publication Date Title
JP6370408B2 (ja) ネイティブアプリケーションに関するディープリンク
KR102208988B1 (ko) 네이티브 어플리케이션들의 어플리케이션 페이지들을 인덱싱
JP6363738B2 (ja) ネイティブアプリケーションに関する検索結果
JP6173546B2 (ja) リダイレクトの低減
RU2660602C1 (ru) Инициирование и ранжирование нативных приложений
US10068028B1 (en) Deep link verification for native applications
US9311407B2 (en) Native application search results
US9146972B2 (en) Ranking of presentation modes for particular content
CN107408065B (zh) 监视应用加载
JP6410992B1 (ja) バックグラウンドにおけるネイティブアプリケーションの事前インスタンス化
JP6580708B2 (ja) 対応するリソースへのアプリケーション部分ディープリンク
US11003728B1 (en) Native application search results
RU2774319C2 (ru) Глубинные ссылки для нативных приложений

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180423

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180710

R150 Certificate of patent or registration of utility model

Ref document number: 6370408

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250