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

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

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

特表2024-544124プライバシー保全のためのロケーション証明
<>
  • 特表-プライバシー保全のためのロケーション証明 図1
  • 特表-プライバシー保全のためのロケーション証明 図2
  • 特表-プライバシー保全のためのロケーション証明 図3
  • 特表-プライバシー保全のためのロケーション証明 図4
  • 特表-プライバシー保全のためのロケーション証明 図5
  • 特表-プライバシー保全のためのロケーション証明 図6
  • 特表-プライバシー保全のためのロケーション証明 図7
  • 特表-プライバシー保全のためのロケーション証明 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-11-28
(54)【発明の名称】プライバシー保全のためのロケーション証明
(51)【国際特許分類】
   G06Q 30/0241 20230101AFI20241121BHJP
【FI】
G06Q30/0241
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024525902
(86)(22)【出願日】2021-12-17
(85)【翻訳文提出日】2024-06-28
(86)【国際出願番号】 US2021064088
(87)【国際公開番号】W WO2023113819
(87)【国際公開日】2023-06-22
(81)【指定国・地域】
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】アレックス・ジェイコブソン
(72)【発明者】
【氏名】ニック・サバティーノ
(72)【発明者】
【氏名】スディ・ハーレ
【テーマコード(参考)】
5L030
【Fターム(参考)】
5L030BB08
(57)【要約】
非一時的コンピュータ読み取り可能媒体は、アプリケーションプログラミングインターフェース(API)を実装する命令を格納する。APIは、コンピューティングデバイス上で実行されているソフトウェアエンティティによって呼び出されると、そのアプリケーションから、地理的ロケーションを示す標識を受け取る(304)ことと、コンピューティングデバイスのオペレーティングシステムから、ユーザのホームロケーションに関連する概略地理的エリアを示す標識を取得することであって、オペレーティングシステムが、概略地理的エリアを示す標識にソフトウェアエンティティがアクセスできないようにする、取得する(306)ことと、ソフトウェアエンティティに、地理的ロケーションが概略地理的エリア内にあるかどうかを示す標識を提供する(308)こととを行うように構成される。
【特許請求の範囲】
【請求項1】
アプリケーションプログラミングインターフェース(API)を実装する命令を格納した非一時的コンピュータ読み取り可能媒体であって、前記APIが、ポータブルデバイス上で実行されているソフトウェアエンティティによって呼び出されると、
前記アプリケーションから、地理的ロケーションを示す標識を受け取ることと、
前記ポータブルデバイスのオペレーティングシステムから、前記ポータブルデバイスのホームロケーションに関連する概略地理的エリアを示す標識を取得することであって、前記オペレーティングシステムが、前記概略地理的エリアを示す前記標識に前記ソフトウェアエンティティがアクセスできないようにする、取得することと、
前記ソフトウェアエンティティに、前記地理的ロケーションが前記概略地理的エリア内にあるかどうかを示す標識を提供することと
を行うように構成される、非一時的コンピュータ読み取り可能媒体。
【請求項2】
前記概略地理的エリアを示す前記標識を取得するために、前記APIが、前記ポータブルデバイスのメモリの特権領域にアクセスするように構成され、前記メモリの前記特権領域が、前記ソフトウェアエンティティにとってアクセス不可能である、請求項1に記載の非一時的コンピュータ読み取り可能媒体。
【請求項3】
前記概略地理的エリアが、前記ポータブルデバイスの1つまたは複数のセンサの定期的な読取値に基づいて特定される、請求項1または2に記載の非一時的コンピュータ読み取り可能媒体。
【請求項4】
前記概略地理的エリアが、前記ポータブルデバイスのユーザインターフェースを介してユーザから受け取られる、請求項1または2に記載の非一時的コンピュータ読み取り可能媒体。
【請求項5】
前記APIが、
前記アプリケーションから、粗さレベルを受け取ること
を行うようにさらに構成され、
前記APIが、前記粗さレベルに従って前記地理的ロケーションを前記概略地理的エリアと比較する、
請求項1から4のいずれか一項に記載の非一時的コンピュータ読み取り可能媒体。
【請求項6】
前記粗さレベルが、国または大陸の一方に対応する、請求項5に記載の非一時的コンピュータ読み取り可能媒体。
【請求項7】
前記APIが、
前記地理的ロケーションを示す前記標識に基づいて、S2セルを特定することと、
前記特定されたS2セルが、前記ユーザの前記ホームロケーションに関連する前記概略地理的エリアに対応するS2セル内にあるかまたは前記S2セルと一致する場合、前記地理的ロケーションが前記概略地理的エリア内にあることを示す前記標識を提供することと
を行うようにさらに構成される、請求項1から6のいずれか一項に記載の非一時的コンピュータ読み取り可能媒体。
【請求項8】
前記APIが、
前記ソフトウェアエンティティが所定の時間期間の間に前記APIをN回よりも多く呼び出したとの決定に応答して、エラーコードを返すこと
を行うようにさらに構成される、請求項1から7のいずれか一項に記載の非一時的コンピュータ読み取り可能媒体。
【請求項9】
前記ソフトウェアエンティティが、前記ポータブルデバイスの前記オペレーティングシステムを実行するように構成された非ネイティブソフトウェアアプリケーションである、請求項1から8のいずれか一項に記載の非一時的コンピュータ読み取り可能媒体。
【請求項10】
前記ソフトウェアエンティティが、前記ポータブルデバイス上のネイティブ閲覧アプリケーション内で実行されるように構成されたスクリプトである、請求項1から9のいずれか一項に記載の非一時的コンピュータ読み取り可能媒体。
【請求項11】
ポータブルデバイスのオペレーティングシステムにおいて実施される方法であって、
1つまたは複数のプロセッサによって、前記ポータブルデバイスのホームロケーションに関連する概略地理的エリアを特定するステップと、
前記1つまたは複数のプロセッサによって、前記概略地理的エリアを示す標識を、前記ポータブルデバイスのメモリの特権領域内に格納するステップと、
前記1つまたは複数のプロセッサによって、前記標識へのアクセスを制限するステップであって、
前記1つまたは複数のプロセッサによって、前記ポータブルデバイス上で実行されているソフトウェアアプリケーションが前記標識にアクセスできないようにするステップ、および
前記1つまたは複数のプロセッサによって、前記ソフトウェアアプリケーションに公開されているAPIであって、前記ソフトウェアアプリケーションに前記標識を明らかにすることなく前記標識に作用するように構成されたAPIに、前記標識へのアクセス権を与えるステップ
を含む、ステップと
を含む、方法。
【請求項12】
前記概略地理的エリアを特定するステップが、前記ポータブルデバイスの1つまたは複数のセンサの定期的な読取りを実施するステップを含む、請求項11に記載の方法。
【請求項13】
前記概略地理的エリアを特定するステップが、前記概略地理的エリアを示す標識を前記ポータブルデバイスのユーザインターフェースを介して受け取ることを実施するステップを含む、請求項11に記載の方法。
【請求項14】
1つまたは複数のプロセッサと、
命令を格納した非一時的コンピュータ読み取り可能媒体であって、前記命令が前記1つまたは複数のプロセッサによって実行されると、前記ポータブルデバイスに、請求項11から13のいずれか一項に記載の方法を実施させる、非一時的コンピュータ読み取り可能媒体と
を備える、ポータブルデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ロケーション検証に関し、より詳細には、ユーザのホームロケーションが特定の地理的エリアに対応するかどうかを、ユーザのホームロケーションを明らかにすることなく検証するためのアプリケーションプログラミングインターフェースに関する。
【背景技術】
【0002】
本明細書において提供される背景技術についての説明は、本開示の背景を大まかに提示するためのものである。現在名を連ねている発明者らの、本背景技術セクションにおいて説明される範囲内の研究、および出願時にその他の形で従来技術とみなされないことのある本説明の態様は、明示的にも黙示的にも、本開示に対する従来技術として自認されるものではない。
【0003】
ユーザデバイスが対話することのできる特定のサービスは、ロケーションベースの制限を適用し、より一般には、コンテンツまたはコンテンツの提示を、ユーザデバイスの現在のロケーションに応じて修正する。例えば、音楽のストリーミングサービスおよびダウンロードサービスはしばしば、音楽のデジタルカタログへのアクセスを、コンテンツを求める要求の到来元の国に基づいて制限する。オンラインビデオストリーミングサービスは同様の制限を課す。
【0004】
さらに、ターゲットを絞ったデジタル広告(または「アド(ad)」)のプロバイダはしばしば、コンテンツ、提示フォーマット、提示頻度などを、コンテンツが提示されるデバイスのロケーションに基づいて調整する。広告主は広告シンジケート組織(advertisement syndication)を使用することもでき、広告シンジケート組織を使うと、広告主が、広告主のテキスト広告または画像広告をその広告に関連するコンテンツを有するウェブページに載せるサードパーティオンライン発行者などのさらなるパートナーに広告を配信することによって、自身のマーケティングリーチを拡大できるようになる。広告主は、広告主がどれだけ配置を価値あるものとみなすかに基づいて、配置に入札することができる。付け値は、広告のクリックスルーレートを含む、広告のインプレッションの特定の態様、および広告が提供される地理的ロケーションに基づくことができる。
【0005】
ユーザは、いくつかの場合には、コンピューティングデバイスが、しばしば別の国内の、遠隔ネットワークのインターネットプロトコル(IP)アドレスを獲得するように、仮想プライベートネットワーク(VPN)をセットアップする。このようにして、国A内に現在位置し、国B内においてのみ特定のコンテンツにアクセスすることを許されているユーザは、コンピューティングデバイスを国B内で動作しているように見せ、したがって、ロケーション制限のあるコンテンツへのアクセスを得ることができる。今日、特定のバッドアクター(bad actor)がVPNを使用して、広告主がコンテンツの提示の代金として比較的低い価格を支払っている国からのユーザを、広告主がコンテンツの提示の代金として比較的高い価格を支払っている別の国からのユーザと見せかけてだましている。いくつかの場合には、ポータブルデバイスがアプリケーションまたはスクリプトに、ユーザのロケーションがどこであるかを直接示すことが可能であるが、そのようにすることで、ユーザが享受するプライバシーのレベルが著しく低下することになる。一方、ユーザのVPN接続をセットアップできる自由を制限すると、さまざまな合法のVPNベースのサービスが妨げられることになる。
【発明の概要】
【課題を解決するための手段】
【0006】
本開示のアプリケーションプログラミングインターフェース(API)は、ポータブルデバイス上で実行されているアプリケーションが、特定の地理的ロケーションがそのポータブルデバイスのホームロケーションに関連するかどうかを、プライバシーを損なうことまたはVPN機能を妨げることなく判定することができるようにするものである。
【0007】
これらの技法の例示的な一実施形態は、アプリケーションプログラミングインターフェース(API)を実装する命令を格納した非一時的コンピュータ読み取り可能媒体であって、このアプリケーションプログラミングインターフェース(API)が、コンピューティングデバイス上で実行されているソフトウェアエンティティによって呼び出されると、そのアプリケーションから、地理的ロケーションを示す標識を受け取ることと、コンピューティングデバイスのオペレーティングシステムから、ユーザのホームロケーションに関連する概略地理的エリア(general geographic area)を示す標識を取得することであって、オペレーティングシステムが、概略地理的エリアを示す標識にソフトウェアエンティティがアクセスできないようにする、取得することと、ソフトウェアエンティティに、地理的ロケーションが概略地理的エリア内にあるかどうかを示す標識を提供することとを行うように構成される、非一時的コンピュータ読み取り可能媒体である。
【0008】
これらの技法の別の例示的な実施形態は、ポータブルデバイスのオペレーティングシステムにおいて実施される方法である。方法は、ポータブルデバイスのホームロケーションに関連する概略地理的エリアを特定することと、概略地理的エリアを示す標識を、ポータブルデバイスのメモリの特権領域内に格納することと、標識へのアクセスを制限することとを含む。制限することは、ポータブルデバイス上で実行されているソフトウェアアプリケーションが標識にアクセスできないようにすることと、ソフトウェアアプリケーションに公開されているAPIであって、ソフトウェアアプリケーションに標識を明らかにすることなく標識に作用するように構成されたAPIに、標識へのアクセス権を与えることとを含む。
【0009】
これらの技法のさらに別の例示的な実施形態は、1つまたは複数のプロセッサと、非一時的コンピュータ読み取り可能メモリとを備える、ポータブルデバイスである。メモリは、上記の方法を実施するための、1つまたは複数のプロセッサ上で実行可能な命令を格納する。
【図面の簡単な説明】
【0010】
図1】例示的なコンピューティング環境、およびユーザプライバシーを損なうことなくロケーション証明を行うための本開示の技法を実施するポータブルデバイスのブロック図である。
図2】ホームロケーションAPIを使用して、ポータブルデバイスの特定されたロケーションがポータブルデバイスのホームロケーションであるかどうかを判定するための、サードパーティアプリケーションにおいて実施することのできる例示的な方法のフロー図である。
図3】標識ロケーションがポータブルデバイスのホームロケーションであるかどうかを判定するための、本開示のAPIにおいて実施することのできる方法の図である。
図4図1のホームロケーション推定モジュールがメモリの特権領域内のホームロケーション情報フィールドをどのようにして埋めるかを概略的に示す図である。
図5】マルチメディアアプリケーションが、本開示のホームロケーションAPIをどのようにして使用して、ロケーション制限のある特定のコンテンツをマルチメディアアプリケーションがポータブルデバイスのユーザインターフェースを介して提供すべきかどうかを判定するかを概略的に示す図である。
図6】インストーラスクリプトが、本開示のホームロケーションAPIをどのようにして使用して、特定のアプリケーションをインストールしたユーザが現在旅行中であるかどうかを示す標識を提供するかを概略的に示す図である。
図7】ポータブルデバイスがVPNを使用してオンラインサービスと通信するときに、ウェブブラウザが本開示のホームロケーションAPIをどのようにして使用するかを概略的に示す図である。
図8】プライバシーを保全しながらロケーション証明をサポートするための、ポータブルデバイスのオペレーティングシステムにおいて実施することのできる例示的な方法のフロー図である。
【発明を実施するための形態】
【0011】
一般的に言えば、本開示のAPIは、ポータブルデバイス上で実行されているアプリケーションが、特定の地理的ロケーションがそのポータブルデバイスのホームロケーションに関連するかどうかを判定することができるようにするものである。アプリケーションがAPIに示す地理的ロケーションは、ポータブルデバイスの現在の地理的ロケーションを推定したものである。APIは、示された地理的ロケーションを、アプリケーションにとってアクセス不可能なメモリ領域内に格納されたホームロケーションを示す標識と比較する。APIは、アプリケーションにホームロケーションを明らかにしないことによって、ユーザのプライバシーの保護を改善する。
【0012】
最初に図1を参照すると、これらの技法は、スマートフォン、ラップトップコンピュータ、タブレットコンピュータ、スマートウォッチ、または他の任意の汎用もしくは専用のコンピューティングデバイスなど、例示的なポータブルコンピューティングデバイス(または単に「ポータブルデバイス」)102において実施することができる。ポータブルデバイス102は、環境100内で動作し、インターネット110などの広域ネットワークを介して、例えば、ストリーミングサーバ104からロケーション制限のあるコンテンツ114に、またアプリケーションサーバ106からアプリケーション116に、アクセスすることができる。さらに、広告(「アド」)サーバ108が、ポータブルデバイス102ならびにサーバ104および106と対話して、さまざまなフォーマット(静止画像、インタラクティブバナー、オーディオセグメント、ビデオセグメントなど)の広告をポータブルデバイス102に提供することができる。アドサーバ108は、ロケーションベースの入札モデル118を使用して、地理に基づいてアドの最少入札額および価格調整を決定することができる。
【0013】
いくつかの場合には、ポータブルデバイスは、VPNサーバ120経由でデータをトンネリングすることによって、仮想プライベートネットワーク(VPN)内で動作することができる。図7を参照してより詳細に論じるように、VPNサーバ120は、ポータブルデバイス102がコンテンツを要求する、ストリーミングサーバ104、アプリケーションサーバ106、およびアドサーバ108などのサーバに、IPアドレスを提示することができる。
【0014】
ポータブルデバイス102のハードウェア130は、1つまたは複数のプロセッサ132、プロセッサ132によって読み取り可能な非一時的メモリ134、1つまたは複数の測位センサ135、ユーザインターフェース136、およびネットワークインターフェース138を含む。プロセッサ132は、1つまたは複数の中央処理装置(CPU)、1つまたは複数のグラフィック処理装置(GPU)、専用ハードウェアなどを含むことができる。プロセッサ132によって読み取り可能な任意の適切な非一時的記憶装置を含むことのできるメモリ134は、ポータブルデバイス102の特定のソフトウェアコンポーネントにとってはアクセス可能であるが、ユーザがポータブルデバイス102上にインストールすることのできるサードパーティアプリケーションや、ポータブルデバイス102上で実行されているネイティブアプリケーションによって実行されるさまざまなサードパーティスクリプトおよびサードパーティプログラムなど、他のソフトウェアコンポーネントにとってはアクセス不可能な、特権領域または特権的エリア140を含む。測位センサ135は、全地球測位サービス(GPS)モジュールを含むことができる。OS160は、ワイヤレスローカルエリアネットワーク(WLAN)インターフェース、ワイヤレスパーソナルエリアネットワーク(WPAN)インターフェース、およびネットワークインターフェース138の一部として動作する他の無線コンポーネントを使用して、ポータブルデバイス102の位置を特定すること、またはGPSモジュールの読取値を強化することもできる。ユーザインターフェース136は、タッチスクリーン、マイクロホン、スピーカ、ならびに他の適切な入力デバイスおよび/または出力デバイスを含むことができる。
【0015】
ポータブルデバイス102のソフトウェア150は、オペレーティングシステム(OS)160およびOS APIレイヤ170を含む。ハードウェア130はOS160およびOS APIレイヤ170とともに共同で、さまざまなネイティブおよび非ネイティブ(例えばサードパーティ)のアプリケーションを実行することのできるプラットフォームを定める。標準のOSレベル機能に加えて、本開示のOS160は、ホームロケーション推定モジュール162も含むことができ、このホームロケーション推定モジュール162は、動作の際に、ポータブルデバイス102のホームロケーションを特定し、特定されたホームロケーション情報を特権的エリア140内のフィールド164内に格納するものである。OS APIレイヤ170は、フィールド164にアクセスすることのできるホームロケーションAPI172を含む。さまざまなソフトウェアアプリケーション、プログラム、他のアプリケーション内で実行されているスクリプト(より一般には「ソフトウェアエンティティ」)は、特定のロケーションがホームロケーションに関連するかどうかをチェックするためにホームロケーションAPI172を呼び出すことができるが、一般には特権的エリア140に、具体的にはホームロケーション情報164に、アクセスすることはできない。
【0016】
いくつかの実装形態では、ホームロケーション推定モジュール162は、例えばバックグラウンドタスクまたはデーモンとして、測位センサ135に定期的にアクセスし、ホームロケーション情報を推定しかつ/またはフィールド164内のホームロケーション情報を更新するように動作する。ホームロケーション推定モジュール162は、別法として、ホームロケーションAPI172のコンポーネントとして動作することもでき、API172を呼び出すソフトウェアエンティティはそれに直接アクセスすることができない。
【0017】
引き続き図1を参照すると、アプリケーションレイヤ180は、例えばマルチメディアアプリケーション182、ソーシャルネットワークアプリケーション184、およびブラウザアプリケーション186を含むことができる。アプリケーションレイヤ180は一般に、任意数のアプリケーションを含むことができる。この例示的な構成では、マルチメディアアプリケーション182およびソーシャルネットワークアプリケーション184は、異なるそれぞれのサードパーティディベロッパによって開発され、OS160に適合された、非ネイティブのサードパーティアプリケーションである。図1の例におけるブラウザアプリケーション186は、OS160専用に開発されたネイティブアプリケーションである。しかし、ブラウザアプリケーション186は、OS160およびOS APIレイヤ170の機能の一部にアクセスすることを許されていることのあるサードパーティスクリプト190を実行することができる。
【0018】
次に図2を参照すると、方法200を、マルチメディアアプリケーション182などのサードパーティアプリケーションにおいて実施することができる。方法200はブロック202から開始し、ブロック202では、サードパーティアプリケーションがポータブルデバイス102の現在のロケーションを特定する。この目的のために、アプリケーションは、ポータブルデバイス102のユーザがアプリケーションに、測位センサ135、またはOS160によって格納された現在のロケーション情報にアクセスする許可を与えているときに、これらのセンサにアクセスすることができる。他の場合には、アプリケーションはブロック202において、ポータブルデバイス102のロケーションを、IPアドレス、フォームを介して直接受け取ったユーザ入力、リファラ情報、または別の適切な情報源に基づいて特定する。
【0019】
ブロック204において、アプリケーションが、ホームロケーションAPI172を呼び出し、ブロック202において特定されたロケーションとすることのできる地理的ロケーションを示す標識を提供する。例えば、ホームロケーションAPI172は、isHome Location(inputLocation)というフォーマットを有する関数を含むことができ、これは、指定のロケーションがポータブルデバイス102のホームロケーションに対応する場合にはtrueを返し、そうでない場合にはfalseを返す。ホームロケーションAPI172は、この関数の実行の結果にかかわらず、フィールド164内に格納されたホームロケーションを公開しない。このようにして、ホームロケーションAPI172は、ユーザのプライバシーを保護する。
【0020】
下で図3を参照してさらに論じるように、ホームロケーションAPI172は、任意の望ましい粒度(または粗さ)レベルをサポートすることができる。したがって、例えば、アプリケーションは、ロケーションをGPS座標のセットとして指定することができ、ホームロケーションAPI172は、このGPS座標がポータブルデバイス102のホーム国(home country)の境界内にある場合にtrueを返す。別の例として、アプリケーションは、ポータブルデバイス102のIPアドレスを特定し、そのインターネットアドレスのインターネットサービスプロバイダ(ISP)が登録されている町または市を指定することができ、ホームロケーションAPI172は、その町または市がポータブルデバイス102のホーム国内にある場合にtrueを返す。
【0021】
ホームロケーションAPI172の実装形態のいくつかでは、インターフェースは、粒度を示す標識、例えばisHome Location(inputLocation, granularityLevel)を含み、ただしgranularityLevelは、{「大陸」、「国」、「州」、「市」}などの事前定義のセット内の、事前定義の値のうちの1つとすることができる。granularityLevelパラメータは、別法として、所望の精度半径(radius of accuracy)の大きさ、例えば「100マイル」とすることもできる。
【0022】
ブロック206において、アプリケーションが、ブロック204において受け取ったホームロケーションAPI172の出力に従って、コンテンツの提示を調整する。例えば、アプリケーションは、サブスクリプションベースの映画ストリーミングサービスとすることができ、ブロック204においてホームロケーションAPI172がfalseを返したとき、アプリケーションは、再生を不能にし、「申し訳ありませんが、あなたはホームロケーション内にいません」というエラーメッセージを表示する。別の例として、アプリケーションは、タプル(現在の国、「旅行中」)または(現在の国、「ホーム」)をアドサーバ108に提供することができ、アドサーバ108が、ポータブルデバイス102上に表示するためのアドコンテンツを調整することができる。
【0023】
図3は、ホームロケーションAPI172などの適切なAPIにおいて実施することのできる、例示的な方法300を示す。ブロック302において、APIが、ポータブルデバイスのホームロケーションを特定し、特定されたホームロケーションを、メモリ134の特権的エリア140内に格納する。いくつかの実装形態では、ホームロケーション推定モジュール162が、測位センサ135の複数の読取値を使用して、ホームロケーションを推定する。例えば、ホームロケーション推定モジュール162は、M日間のN個のサンプルを収集し、地理的平均を計算することができる。ホームロケーション推定モジュール162は、収集および推定を定期的に、例えば12時間ごとに、24時間ごとに、または72時間ごとに、実施することができる。
【0024】
センサデータとしては、GPS座標、ポータブルデバイス102のIPアドレス情報、ポータブルデバイス102がそこにおいて動作するWLANのアクセスポイント(AP)のIPアドレスなどがあり得る。別の例として、APIは、夜間のサンプルを収集することができ、というのも、ユーザはその時に在宅する可能性がより高いためである。ユーザは、APIの実装形態の少なくともいくつかによれば、特定の制御を働かせることまたは特定のソフトウェアをインストールすることによって、APIがこのデータの獲得を許されていることを示す。さらに別の実装形態では、APIは、ホームロケーションに関してユーザに明示的に照会する。
【0025】
APIは、ホームロケーションを、ホームロケーション情報164として、任意の所望の粒度レベルで格納することができる。さまざまな実装形態では、APIは、ホームロケーションを、大陸(例えば「アジア」、「北アメリカ」)、大規模地理的地域(例えば「東ヨーロッパ」、「北アフリカ」)、国(例えば「日本」、「フランス」)、州(例えば「ビハール」、「アラバマ」)、または市もしくは町(例えば「ロンドン」、「サンフランシスコ」)のレベルで格納することができる。他の実装形態では、APIは、ホームロケーションを、2次元座標系上に地球の球面を任意の適切なズームレベルで投影したものであるS2セルまたはS2セルのセットとして格納することができる。さらに、APIは、いくつかの場合には、ホームロケーションをGPS座標のセットとして格納することができる。
【0026】
次に、ブロック304において、APIが、ポータブルデバイス102の推定された現在のロケーションと、いくつかの実装形態では、所望の粒度レベル(上のブロック204についての議論を参照されたい)とを示す、照会を受け取る。上で論じたように、APIは、多様なサードパーティアプリケーション、スクリプト、または他のソフトウェアエンティティに公開することができる。
【0027】
ブロック306において、APIが、ブロック304において受け取ったロケーションを、ホームロケーションと比較する。この目的のために、APIは、ホームロケーション情報164に関連する概略地理的エリアを示す標識を取得することができる。例えば、ホームロケーション情報164は、市を示す標識を格納することができ、アプリケーションは、粒度レベルを「国」に設定した状態で、APIを呼び出すことができる。APIは、両方のロケーションをS2セルに変換し、S2セルツリーを巡回して、特定されたロケーションのS2セルがホームロケーションのS2セル内にあるかどうかを判定することなど、任意の適切な技法を使用することができる。次いで、ブロック308において、APIが、比較に基づいてtrueやfalseなどの証明値を生成する。
【0028】
この例示的な実装形態におけるAPIは特に、ソフトウェアエンティティによって指定されたロケーションを、メモリの特権的エリア内に格納されたホームロケーションと比較するように構成されているが、APIは一般に、APIを呼び出すエンティティにメモリの特権的エリア内に格納されたホームロケーションを明らかにすることなくホームロケーションに対して特定の適切な動作を実施するように、構成することができる。
【0029】
いくつかの実装形態では、APIは、ソフトウェアエンティティが、多数の可能性を反復し、それによりホームロケーションを特定しようとして、特定の所定の時間期間内にAPIを頻繁に呼び出すこと、ができないようにする。例えば、APIは、ソフトウェアエンティティが1日当たりにAPIを呼び出す回数を制限し、またはfalseを返した後でロックアウト期間を課すことができる。いくつかの実装形態では、APIは、ソフトウェアエンティティが所定の時間期間(例えば12時間、24時間)の間にAPIをN回(例えば3回、5回)よりも多く呼び出したとの決定に応答して、エラーコードを返す。
【0030】
さらに明確にするために、アプリケーションがホームロケーション172を呼び出すいくつかの例示的なシナリオについて、次に図4図7を参照して論じる。
【0031】
最初に図4を参照すると、シナリオ400におけるホームロケーション推定モジュール162は、測位センサ135、ユーザインターフェース136、またはネットワークインターフェース138のうちの1つまたは複数からの1つまたは複数の読取値402を取得することができる。1つのそのようなシナリオでは、ホームロケーション推定モジュール162は、特定の時間期間の間、測位センサ135からの複数のGPS読取値を取得し、それらの読取値をクラスタ化し、最大クラスタの幾何学的中心を決定する。次いで、ホームロケーション推定モジュール162は、低い粒度レベル(例えば国)でS2セルを特定し、この比較的粗いS2セルに対応する特定された国の名前を、フィールド164内に格納する404。別のシナリオでは、ロケーション推定モジュール162は、特定の時間期間にわたって、ネットワークインターフェース138に割り当てられたIPアドレスの複数の読取値を取得し、上で論じたように、比較的粗いS2セルを特定する。さらに別の例示的なシナリオでは、ホームロケーション推定モジュール162は、ユーザインターフェース136を介してユーザの入力を促し、指定された国をフィールド164内に格納する404。ホームロケーション推定モジュール162は、これらの技法の任意の適切な組合せを実施することもできる。
【0032】
次に、図5は、マルチメディアアプリケーション182が、ホームロケーションAPI172を使用して、特定のコンテンツの再生をマルチメディアアプリケーション182が可能にすべきかどうかを判定する、例示的なシナリオ500を概略的に示す。この場合のマルチメディアアプリケーション182は、ユーザが現在、自身のホーム国にいる場合にのみ、ストリーミングメディアを提供するように、制限することができる。
【0033】
動作501は、マルチメディアアプリケーション182が、ユーザ許可510を得ることを条件として測位センサ135からの読取値を取得することによって、ポータブルデバイス102の現在のロケーションを特定することに対応する。より具体的には、OS160が、マルチメディアアプリケーション182に測位センサ135へのアクセス権を与える前に、ユーザに、マルチメディアアプリケーション182が現在のロケーションLOCcurrentにアクセスすることを明示的に可能にするように、求めることがある。OS160は、例えばマルチメディアアプリケーション182のインストール時または実行時に、許可510を確認することができる。
【0034】
マルチメディアアプリケーション182は、特定されたロケーションLOCcurrentをホームロケーションAPI172に提供する502。ホームロケーションAPI172のほうは、フィールド164からホームロケーション情報を取得する。この例示的なシナリオにおけるマルチメディアアプリケーション182は、ポータブルデバイス102が現在そのホームロケーション内で動作していることを示すために、マルチメディアアプリケーション182に値「true」を返す503。マルチメディアアプリケーション182はそれに応じて、再生を可能にする。
【0035】
図6は、シナリオ600におけるインストーラスクリプト602が、ホームロケーションAPI172をどのようにして使用して、特定のアプリケーション604をインストールしたユーザが自身のホーム国にいるか、それとも現在旅行中であるかを示す標識を提供するかを概略的に示す。特定のコンテンツプロバイダは、ユーザがその国への訪問者であるかどうかに応じて別様に、インストールを価値あるものとみなすことがあり、インストーラスクリプト602は、アプリケーション604のプロバイダまたは別のサードパーティに、ポータブルデバイス102のホーム国内でインストールが行われたかどうかを報告する。より具体的な例として、インストーラスクリプト602は、アプリケーション604のプロバイダに、タプル{US、ホーム}または{US、旅行中}をそれぞれ、ポータブルデバイス102がUS内に居住するユーザに属しているか、それともUSを訪問中のユーザに属しているかに応じて、報告することができる。
【0036】
概ね同様に、広告のプロバイダも、特定の国内で、ポータブルデバイス102を動作させているユーザがその国内に居住しているか、それともその国を訪問中であるかに応じて別様に、インプレッション(またはユーザインターフェースを介して広告が表示されるインスタンス)を価値あるものとみなすことがある。インストーラスクリプト602に概ね類似したスクリプトが、広告サーバに、特定のキャンペーンについて、{日本、旅行中}または{インド、ホーム}などのタプルを報告することができる。広告サーバは、この情報を使用して、{国、ホーム}および{国、旅行中}状況について異なるオークションを実行する(例えば異なる入札額を指定する)ことができる。
【0037】
図6に示すように、インストーラスクリプト602は、ブラウザアプリケーション186の環境内で実行される。より具体的には、インストーラスクリプト602は、ブラウザアプリケーション186によって実行可能な、Javascriptなどのスクリプト言語で書かれた命令を含むことができる。インストーラスクリプトは、国標識(例えば「US」)をブラウザアプリケーション186に提供し611、次いで、ブラウザアプリケーション186は、国標識を用いてホームロケーションAPI172を呼び出す612。この例示的なシナリオでは、ホームロケーション172は「false」を返し、ブラウザアプリケーションはインストーラスクリプト602に、ユーザが指定の国内を旅行中であると報告する614。
【0038】
次に、図7は、ブラウザアプリケーション186が、ロケーション制限のあるコンテンツ114にアクセスするときにホームロケーションAPI172をどのようにして使用することができるかを概略的に示す。この場合のユーザは、VPNサーバ120経由でストリーミングサーバ104とのVPN接続をセットアップしている。ポータブルデバイス102とサーバ104との間のトラフィックはそれに応じて、VPNサーバまたはVPNホスト120経由で進行する702。結果として、ブラウザアプリケーション186および/またはブラウザアプリケーション186の環境内で動作するソフトウェアコンポーネント(例えばハイパーテキストマークアップ言語(HTML)命令、プラグイン、およびスクリプト、仮想プラットフォーム上で実行される命令)は、ポータブルデバイスの現在のロケーションが、ポータブルデバイス102とは異なる国または大陸内で稼働していることのあるVPNサーバ120のロケーションLOCVPN Serverであると特定する712ことができる。ストリーミングサーバ104が、コンテンツ114へのアクセスを特定の国に制限しているとき、ユーザは、この国内で稼働しているVPNサーバ120を選択し、したがって、制限のあるコンテンツへのアクセスを得ることがある。
【0039】
ブラウザアプリケーション186は、LOCVPN Serverをパラメータとして用いてホームロケーションAPI172を呼び出す714。ホームロケーションAPI172は、この例示的なシナリオでは「false」を返し716、というのも、フィールド164内に格納されているロケーションは、示されたロケーションに対応しないためである。いくつかのシナリオでは、ストリーミングサーバ104が、ロケーション制限のあるコンテンツ114とともにソフトウェアコンポーネントを提供することができる。ホームロケーションAPI172が「false」を返した後で、このソフトウェアコンポーネントが、「あなたの地域ではこのコンテンツは再生できません」などのエラーメッセージを提供することができる。別法として、ブラウザアプリケーション186が、ホームロケーションAPI172を呼び出した結果を、ストリーミングサーバ104に提供することができ、ストリーミングサーバ104が、エラーメッセージを、ロケーション制限のあるコンテンツ114のストリーミングフォーマットで提供することができる。
【0040】
最後に、図8は、ロケーション証明機能をサポートするための、OS160などのオペレーティングシステムが実施することのできる例示的な方法800を示す。ブロック802において、オペレーティングシステムが、ポータブルデバイスのホームロケーションを特定する。上で図3のブロック302を参照して論じたように、ホームロケーション推定モジュール162など、OSのコンポーネントが、測位センサ135、ユーザインターフェース136、および/またはネットワークインターフェース138からの1つまたは複数の読取値を使用することができる。
【0041】
ブロック804において、オペレーティングシステムが、特定されたホームロケーションを示す標識を、フィールド164など、メモリの特権領域内に格納する。オペレーティングシステムは、標識を、任意の所望の粗さレベルで格納することができる。次に、ブロック806および808において、オペレーティングシステムが、格納された標識へのアクセスを選択的に制限する。具体的には、オペレーティングシステムは、特定のソフトウェアエンティティ(例えばホームロケーションAPI172)のみに標識への読出しアクセス権を与え(ブロック806)、他のソフトウェアエンティティ(例えばマルチメディアアプリケーション182、ソーシャルネットワークアプリケーション184、ブラウザアプリケーション186、サードパーティスクリプト190)が標識にアクセスできないようにする(ブロック808)。このようにして、オペレーティングシステムはソフトウェアエンティティに、ホームロケーションの格納された標識に間接的にのみ、かつホームロケーションAPI172を介してのみアクセスするように求める。
【0042】
以下の追加の考慮事項は、前述の議論に当てはまる。
【0043】
特定の実施形態については、本開示の中でロジックまたはいくつかのコンポーネントもしくはモジュールを含むものとして説明される。モジュールは、ソフトウェアモジュール(例えば非一時的機械読み取り可能媒体上に格納されたコード)とすることもでき、あるいはハードウェアモジュールとすることもできる。ハードウェアモジュールは、特定の動作を実施することの可能な有形のユニットであり、特定の様式で構成または配置することができる。ハードウェアモジュールは、特定の動作を実施するように(例えばフィールドプログラマブルゲートアレイ(FPGA)や特定用途向け集積回路(ASIC)などの専用プロセッサとして)永久的に構成される、専用の回路またはロジックを備えることができる。ハードウェアモジュールは、特定の動作を実施するようにソフトウェアによって一時的に構成される(例えば汎用プロセッサまたは他のプログラマブルプロセッサ内に包含される)プログラマブルロジックまたはプログラマブル回路を備えることもできる。ハードウェアモジュールを専用の永久的に構成される回路として実装するか、それとも(例えばソフトウェアによって構成される)一時的に構成される回路として実装するかの決定は、コスト的考慮事項および時間的考慮事項によって決定されてよい。
【0044】
ソフトウェアとして実装されるとき、本技法は、オペレーティングシステムの一部、複数のアプリケーションによって使用されるライブラリ、特定のソフトウェアアプリケーションなどとして提供することができる。ソフトウェアは、1つもしくは複数の汎用プロセッサまたは1つもしくは複数の専用プロセッサによって実行することができる。
【符号の説明】
【0045】
100 環境
102 ポータブルコンピューティングデバイス、ポータブルデバイス
104 ストリーミングサーバ
106 アプリケーションサーバ
108 広告サーバ、アドサーバ
110 インターネット
114 ロケーション制限のあるコンテンツ
116 アプリケーション
118 ロケーションベースの入札モデル
120 VPNサーバ、VPNホスト
130 ハードウェア
132 プロセッサ
134 非一時的メモリ
135 測位センサ
136 ユーザインターフェース
138 ネットワークインターフェース
140 特権領域、特権的エリア
150 ソフトウェア
160 オペレーティングシステム(OS)
162 ホームロケーション推定モジュール
164 フィールド、ホームロケーション情報
170 OS APIレイヤ
172 ホームロケーションAPI、ホームロケーション
180 アプリケーションレイヤ
182 マルチメディアアプリケーション
184 ソーシャルネットワークアプリケーション
186 ブラウザアプリケーション
190 サードパーティスクリプト
200 方法
300 方法
400 シナリオ
402 読取値
500 シナリオ
510 ユーザ許可
600 シナリオ
602 インストーラスクリプト
604 アプリケーション
800 方法
図1
図2
図3
図4
図5
図6
図7
図8
【手続補正書】
【提出日】2024-07-05
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
アプリケーションプログラミングインターフェース(API)を実装する命令を格納したコンピュータ読み取り可能記憶媒体であって、前記APIが、ポータブルデバイス上で実行されているソフトウェアエンティティによって呼び出されると、
プリケーションから、地理的ロケーションを示す標識を受け取ることと、
前記ポータブルデバイスのオペレーティングシステムから、前記ポータブルデバイスのホームロケーションに関連する概略地理的エリアを示す標識を取得することであって、前記オペレーティングシステムが、前記概略地理的エリアを示す前記標識に前記ソフトウェアエンティティがアクセスできないようにする、取得することと、
前記ソフトウェアエンティティに、前記地理的ロケーションが前記概略地理的エリア内にあるかどうかを示す標識を提供することと
を行うように構成され、
前記地理的ロケーションが前記概略地理的エリア内にないとき、前記ソフトウェアエンティティは、前記ポータブルデバイス上のストリーミングサービスの再生を不能にする、
ンピュータ読み取り可能記憶媒体。
【請求項2】
前記概略地理的エリアを示す前記標識を取得するために、前記APIが、前記ポータブルデバイスのメモリの特権領域にアクセスするように構成され、前記メモリの前記特権領域が、前記ソフトウェアエンティティにとってアクセス不可能である、請求項1に記載のコンピュータ読み取り可能記憶媒体。
【請求項3】
前記概略地理的エリアが、前記ポータブルデバイスの1つまたは複数のセンサの定期的な読取値に基づいて特定される、請求項1または2に記載のコンピュータ読み取り可能記憶媒体。
【請求項4】
前記概略地理的エリアが、前記ポータブルデバイスのユーザインターフェースを介してユーザから受け取られる、請求項1または2に記載のコンピュータ読み取り可能記憶媒体。
【請求項5】
前記APIが、
前記アプリケーションから、粗さレベルを受け取ること
を行うようにさらに構成され、
前記APIが、前記粗さレベルに従って前記地理的ロケーションを前記概略地理的エリアと比較する、
請求項1から4のいずれか一項に記載のコンピュータ読み取り可能記憶媒体。
【請求項6】
前記粗さレベルが、国または大陸の一方に対応する、請求項5に記載のコンピュータ読み取り可能記憶媒体。
【請求項7】
前記APIが、
前記地理的ロケーションを示す前記標識に基づいて、S2セルを特定することと、
前記特定されたS2セルが、ユーザの前記ホームロケーションに関連する前記概略地理的エリアに対応するS2セル内にあるかまたは前記S2セルと一致する場合、前記地理的ロケーションが前記概略地理的エリア内にあることを示す前記標識を提供することと
を行うようにさらに構成される、請求項1から6のいずれか一項に記載のコンピュータ読み取り可能記憶媒体。
【請求項8】
前記APIが、
前記ソフトウェアエンティティが所定の時間期間の間に前記APIをN回よりも多く呼び出したとの決定に応答して、エラーコードを返すこと
を行うようにさらに構成される、請求項1から7のいずれか一項に記載のコンピュータ読み取り可能記憶媒体。
【請求項9】
前記ソフトウェアエンティティが、前記ポータブルデバイスの前記オペレーティングシステムを実行するように構成された非ネイティブソフトウェアアプリケーションである、請求項1から8のいずれか一項に記載のコンピュータ読み取り可能記憶媒体。
【請求項10】
前記ソフトウェアエンティティが、前記ポータブルデバイス上のネイティブ閲覧アプリケーション内で実行されるように構成されたスクリプトである、請求項1から9のいずれか一項に記載のコンピュータ読み取り可能記憶媒体。
【請求項11】
ポータブルデバイスのオペレーティングシステムにおいて実施される方法であって、
1つまたは複数のプロセッサによって、前記ポータブルデバイスのホームロケーションに関連する概略地理的エリアを特定するステップと、
前記1つまたは複数のプロセッサによって、前記概略地理的エリアを示す標識を、前記ポータブルデバイスのメモリの特権領域内に格納するステップと、
前記1つまたは複数のプロセッサによって、前記標識へのアクセスを制限するステップであって、
前記1つまたは複数のプロセッサによって、前記ポータブルデバイス上で実行されているソフトウェアアプリケーションが前記標識にアクセスできないようにするステップ、および
前記1つまたは複数のプロセッサによって、前記ソフトウェアアプリケーションに公開されているAPIであって、前記ソフトウェアアプリケーションに前記標識を明らかにすることなく前記標識に作用するように構成されたAPIに、前記標識へのアクセス権を与えるステップ
を含む、ステップと
前記ホームロケーションが前記概略地理的エリア内にないとき、前記ソフトウェアアプリケーションが、前記ポータブルデバイス上のストリーミングサービスの再生を不能にするステップと、
を含む、方法。
【請求項12】
前記概略地理的エリアを特定するステップが、前記ポータブルデバイスの1つまたは複数のセンサの定期的な読取りを実施するステップを含む、請求項11に記載の方法。
【請求項13】
前記概略地理的エリアを特定するステップが、前記概略地理的エリアを示す標識を前記ポータブルデバイスのユーザインターフェースを介して受け取ることを実施するステップを含む、請求項11に記載の方法。
【請求項14】
1つまたは複数のプロセッサと、
命令を格納したコンピュータ読み取り可能記憶媒体であって、前記命令が前記1つまたは複数のプロセッサによって実行されると、前記ポータブルデバイスに、請求項11から13のいずれか一項に記載の方法を実施させる、コンピュータ読み取り可能記憶媒体と
を備える、ポータブルデバイス。
【国際調査報告】