以下、図面を参照し、本発明の実施形態を説明する。
(第1の実施形態)
まず、本発明の第1の実施形態を説明する。図1は、本実施形態によるコンテンツ配信システムの構成を示している。図1の広告配信システムは、端末装置1とサーバ2を含む。端末装置1は、スマートフォン等の携帯情報端末やPC(Personal Computer)等であり、サーバ2から配信されるコンテンツを受信する。サーバ2は、映像、音楽、ニュース、広告等のコンテンツを配信する。図1では1台の端末装置と1台のサーバが示されているが、2台以上の端末装置があってもよいし、2台以上のサーバがあってもよい。
本実施形態の端末装置1は、端末装置1のユーザを識別する識別情報(例えばID)を固有情報に変換する。固有情報は、識別情報とは内容が異なる情報であって、1回生成されるたびに内容が変化する情報である。各回で生成された固有情報はそれぞれ異なる。端末装置1は、サーバ2にコンテンツの配信を要求する際に、固有情報を含むコンテンツ配信要求をサーバ2へ送信する。サーバ2は、受信したコンテンツ配信要求に含まれる固有情報を元の識別情報に変換する。サーバ2は、この識別情報に基づいて端末装置1のユーザを識別し、そのユーザに適したコンテンツを選択し、端末装置1へコンテンツを送信する。上記の動作により、端末装置1から送信される固有情報が送信のたびに変化するので、第三者が端末装置1からサーバ2へ送信されるパケットを監視したとしても、端末装置1の挙動を追跡しにくくなり、ユーザの嗜好を把握することが困難となる。
図2は端末装置1の構成を示している。端末装置1は、通信部100、コンテンツ処理部101(固有情報生成部)、プログラム記憶部102、識別情報記憶部103を有する。
通信部100は、サーバ2と通信を行う通信回路を有する。コンテンツ処理部101は、サーバ2から受信したコンテンツを処理する。プログラム記憶部102は、CPU(Central Processing Unit)による読み出しが可能な記録媒体を有しており、端末装置1を動作させるためのプログラムを記憶する。識別情報記憶部103は、CPUによる読み出しが可能な記録媒体を有しており、識別情報を記憶する。
端末装置1の機能は、「コンピュータ読み取り可能な記録媒体」であるプログラム記憶部102に記憶されているプログラムをコンテンツ処理部101が読み込んで実行することにより、実現される。また、上述したプログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは伝送媒体中の伝送波によりコンテンツ送信端末に伝送されることで端末装置1に入力されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように、情報を伝送する機能を有する媒体のことをいう。また、上述したプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能を、コンピュータに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
図3は、コンテンツ処理部101が実行するコンテンツ処理プログラムが実現する機能を示している。コンテンツ処理プログラム130は、暗号処理機能130a、復号処理機能130b、固有情報生成機能130c、通信制御機能130d、コンテンツ処理機能130eを実現するためのライブラリ等で構成されている。
暗号処理機能130aは、識別情報を暗号化する機能である。復号処理機能130bは、暗号化された識別情報を復号し、暗号化される前の識別情報を取得する機能である。固有情報生成機能130cは、識別情報から固有情報を生成する機能である。通信制御機能130dは、サーバ2と通信を行う機能である。コンテンツ処理機能130eは、コンテンツを処理する機能である。
図4は、図3に示した各機能に基づく処理を示している。コンテンツ処理部101は、暗号処理機能130aに対応する処理により、識別情報を暗号化し、暗号化された識別情報(暗号化情報)を識別情報記憶部103に格納する。識別情報記憶部103に格納されている識別情報が暗号化されているため、第三者のプログラムが、暗号化されていない識別情報を取得することは困難である。コンテンツ処理部101は、復号処理機能130bに対応する処理により、暗号化された識別情報を識別情報記憶部103から読み出して復号し、暗号化される前の識別情報を取得する。暗号化・復号のための暗号鍵・復号鍵は、例えばコンテンツ処理プログラム130にハードコーディングされている。
コンテンツ処理部101は、固有情報生成機能130cに対応する処理により、復号後の識別情報から固有情報を生成する。コンテンツ処理部101は、通信制御機能130dに対応する処理により、コンテンツの配信を要求するメッセージであるコンテンツ配信要求をサーバ2へ送信し、コンテンツをサーバ2から受信する。コンテンツ配信要求に固有情報が含まれる場合、固有情報に対応する識別情報によって識別されるユーザに適したコンテンツがサーバ2から送信される。コンテンツ処理部101は、コンテンツ処理機能130eに対応する処理により、サーバ2から受信されたコンテンツを処理する。
コンテンツ処理プログラム130において、少なくとも暗号処理機能130a、復号処理機能130b、固有情報生成機能130cを実現する部分は、解読されないように、難読化されていることが望ましい。例えば、これらを実現する部分を、逆コンパイルが困難なネイティブコード(機械語)で構成すればよい。また、コンテンツ処理プログラム130において、暗号処理機能130a、復号処理機能130b、固有情報生成機能130cを実現するそれぞれの部分を個別に難読化してライブラリ等として構成するのではなく、これらを実現する部分の全体を一体化し、さらに難読化してライブラリ等として構成することが望ましい。これによって、暗号化された識別情報がコンテンツ処理部101に入力されてから固有情報が生成されるまでの過程で生成される情報を第三者のプログラムが取得することは困難である。すなわち、第三者のプログラムが、暗号化されていない識別情報を取得することは困難である。
図5はサーバ2の構成を示している。サーバ2は、通信部200、コンテンツ管理部201、ユーザ情報記憶部202、コンテンツ記憶部203、プログラム記憶部204を有する。
通信部200は、端末装置1と通信を行う通信回路を有する。コンテンツ管理部201は、端末装置1へ送信されるコンテンツを管理する。コンテンツ管理部201は、識別情報生成部201a、コンテンツ選択部201bを有する。識別情報生成部201aは、端末装置1から、コンテンツ配信要求が受信された場合に、コンテンツ配信要求に含まれる固有情報から、その固有情報の生成に使用された識別情報を生成する。また、識別情報生成部201aは、端末装置1のユーザに新しい識別情報を付与する必要がある場合に、新しい識別情報を生成する。コンテンツ選択部201bは、端末装置1へ送信されるコンテンツを選択する。
ユーザ情報記憶部202は、識別情報と、ユーザに提供するコンテンツの選択に利用するコンテンツ選択情報とを対応付けて記憶する。コンテンツ選択情報は、コンテンツに対するユーザの嗜好が反映された何らかの情報(コンテンツの選択履歴、コンテンツに対する評価等)であってもよいし、ユーザの属性に関する情報(ユーザの年齢(あるいは年代)、性別、所属する組織(会社や学校等)、所在地(国、県、市町村、住所等))であってもよい。
コンテンツ記憶部203はコンテンツを記憶する。プログラム記憶部204は、サーバ2を動作させるためのプログラムを記憶する。
サーバ2の機能は、「コンピュータ読み取り可能な記録媒体」であるプログラム記憶部204に記憶されているプログラムをコンテンツ管理部201が読み込んで実行することにより、実現される。また、上述したプログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは伝送媒体中の伝送波によりコンテンツ送信端末に伝送されることでサーバ2に入力されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように、情報を伝送する機能を有する媒体のことをいう。また、上述したプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能を、コンピュータに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
次に、端末装置1のコンテンツ処理部101が固有情報を生成する方法およびサーバ2の識別情報生成部201aが識別情報を生成する方法を説明する。例えば、コンテンツ処理部101は、識別情報と、生成のたびに内容が変化する情報(変化情報)とを組み合わせた情報を暗号化することにより固有情報を生成する。変化情報は、例えば時刻情報や、生成のたびにインクリメント(加算)あるいはデクリメント(減算)される値である。固有情報が生成されるときの時刻、インクリメント値、デクリメント値は毎回異なるので、毎回異なる固有情報が生成される。固有情報を生成する際に使用する暗号鍵は、例えばコンテンツ処理プログラム130にハードコーディングされている。
固有情報の生成にブロック暗号を用いてもよい。例えば、コンテンツ処理部101は、識別情報と上記の変化情報とを組み合わせた情報を複数のブロックに分割し、ECB(Electronic CodeBook:電子符号表)モードで各ブロックを暗号化する。暗号化された全てのブロックで固有情報が構成される。各ブロックの内容を毎回変化させるために、識別情報と変化情報とのそれぞれを複数に分割してそれぞれを各ブロックに配置することがより望ましい。例えば、図6に示すように、識別情報と変化情報とのそれぞれがn個に分割され、分割後の識別情報と変化情報とを1個ずつ組み合わせた情報で1つのブロックが構成される。図6ではn個のブロックが生成される。これらn個のブロックがECBモードで暗号化される。
上記とは異なるブロック暗号の方式を使用して固有情報を生成してもよい。例えば、コンテンツ処理部101は、識別情報をCBC(Cipher Block Chaining:暗号ブロック連鎖)モードで暗号化する。CBCモードでは、識別情報が複数のブロックに分割され、最初のブロックと初期化ベクトルとを組み合わせた情報が暗号化され、最初の暗号化ブロックが生成される。続いて、2番目のブロックと最初の暗号化ブロックとを組み合わせた情報が暗号化され、2番目の暗号化ブロックが生成される。続いて、3番目のブロックと2番目の暗号化ブロックとを組み合わせた情報が暗号化され、3番目の暗号化ブロックが生成される。以降、同様にして暗号化ブロックが生成され、全ての暗号化ブロックで固有情報が構成される。初期化ベクトルには、例えば上記と同様の変化情報が使用される。
識別情報生成部201aは、固有情報が生成される手順と逆の手順で識別情報を生成する。例えば、識別情報生成部201aは、固有情報を復号し、復号後の情報から変化情報を削除することにより(あるいは変化情報以外の情報を抽出することにより)、識別情報を取得する。また、固有情報の生成にブロック暗号が使用される場合には、識別情報生成部201aは、固有情報を構成する複数のブロックに対して、固有情報が生成される手順と逆の手順で復号を行い、復号後のそれぞれのブロックを結合した情報から変化情報を削除することにより(あるいは変化情報以外の情報を抽出することにより)、識別情報を取得する。
次に、端末装置1およびサーバ2の動作を説明する。本実施形態では、サーバ2が識別情報を生成する場合の端末装置1およびサーバ2の動作(第1の動作例)と、端末装置1が識別情報を生成する場合の端末装置1およびサーバ2の動作(第2の動作例)とを説明する。
<第1の動作例>
第1の動作例では、サーバ2が識別情報を生成する。図7は、サーバ2の動作を示している。
コンテンツ管理部201は、通信部200で受信されるメッセージを監視し、コンテンツ配信要求を端末装置1から受信したか否かを判定する(ステップS100)。コンテンツ配信要求が受信されていない場合、ステップS145の処理が行われる。また、コンテンツ配信要求が受信された場合、コンテンツ管理部201は、コンテンツ配信要求に固有情報が含まれているか否かを判定する(ステップS105)。
端末装置1がサーバ2にアクセスしたことがない等の理由により端末装置1の識別情報記憶部103に識別情報が保存されていない場合、端末装置1からのコンテンツ配信要求には固有情報が含まれていない。コンテンツ配信要求に固有情報が含まれていない場合、識別情報生成部201aは、例えばランダムに識別情報を生成することにより、ユーザ情報記憶部202に格納されている全ての識別情報と異なる新しい識別情報を生成し(ステップS125)、生成した識別情報をユーザ情報記憶部202に格納する(ステップS130)。ステップS130では、ユーザから何らかの情報が既に得られており、コンテンツ選択情報が生成されている場合には、識別情報とコンテンツ選択情報とが対応付けられてユーザ情報記憶部202に格納される。
続いて、コンテンツ選択部201bは、コンテンツ記憶部203に格納されているコンテンツの中から任意のコンテンツを選択して読み出す(ステップS135)。続いて、ステップS125で生成された識別情報、およびステップS135で選択されたコンテンツを含むメッセージが通信部200によって端末装置1へ送信される(ステップS140)。ステップS140では、識別情報を含むメッセージとコンテンツを含むメッセージとが時分割で端末装置1へ送信されてもよい。
一方、ステップS105において、コンテンツ配信要求に固有情報が含まれている場合、識別情報生成部201aは、その固有情報に基づいて、端末装置1における固有情報の生成時に使用された識別情報を生成する(ステップS110)。続いて、コンテンツ選択部201bは、ステップS110で生成された識別情報と同一の識別情報を、ユーザ情報記憶部202に格納されている識別情報の中から検索する。コンテンツ選択部201bは、検索により見つかった識別情報と対応付けられているコンテンツ選択情報に基づいて、コンテンツ記憶部203に格納されているコンテンツの中から、ユーザに適したコンテンツを選択して読み出す(ステップS115)。これによって、ユーザの嗜好に適合したコンテンツ、あるいはユーザの属性に適合したコンテンツが選択される。ステップS110で生成された識別情報と同一の識別情報と対応付けられているコンテンツ選択情報がこの時点で存在していない場合には、ステップS135と同様に任意のコンテンツが選択される。
続いて、ステップS115で選択されたコンテンツを含むメッセージが通信部200によって端末装置1へ送信される(ステップS120)。続いて、コンテンツ管理部201は、通信部200で受信されるメッセージを監視し、固有情報およびコンテンツ選択情報を含むメッセージを端末装置1から受信したか否かを判定する(ステップS145)。本実施形態の端末装置1は、コンテンツに対するユーザの嗜好等をサーバ2に報告することがあり、ステップS145では、この報告に関するメッセージの受信の確認が行われる。
固有情報およびコンテンツ選択情報を含むメッセージが受信されていない場合、ステップS100の判定が行われる。また、固有情報およびコンテンツ選択情報を含むメッセージが受信された場合、識別情報生成部201aは、受信されたメッセージに含まれる固有情報に基づいて、端末装置1における固有情報の生成時に使用された識別情報を生成する(ステップS150)。
続いて、識別情報生成部201aは、ステップS150で生成された識別情報と同一の識別情報を、ユーザ情報記憶部202に格納されている識別情報の中から検索する。識別情報生成部201aは、見つかった識別情報と対応付けて、受信されたメッセージに含まれるコンテンツ選択情報をユーザ情報記憶部202に格納する(ステップS155)。続いて、ステップS100の判定が行われる。
次に、端末装置1の動作を説明する。図8は、端末装置1の動作を示している。
コンテンツ処理部101は、コンテンツ配信要求をサーバ2へ送信するか否かを判定する(ステップS200)。ステップS200では、コンテンツを取得する指示がユーザから入力されているか否か等を条件として判定が行われる。
コンテンツ配信要求をサーバ2へ送信しない場合、ステップS250の判定が行われる。また、コンテンツ配信要求をサーバ2へ送信する場合、コンテンツ処理部101は、識別情報記憶部103に、暗号化された識別情報が記憶されているか否かを判定する(ステップS205)。識別情報記憶部103に、暗号化された識別情報が記憶されている場合、コンテンツ処理部101は、識別情報記憶部103から、暗号化された識別情報を読み出し、読み出した識別情報を復号し、暗号化される前の識別情報を取得する(ステップS210)。続いて、コンテンツ処理部101は、復号後の識別情報を使用して固有情報を生成する(ステップS215)。続いて、コンテンツ処理部101は、固有情報を含むコンテンツ配信要求を生成する。生成されたコンテンツ配信要求は、通信部100によってサーバ2へ送信される(ステップS220)。続いて、コンテンツ処理部101は、サーバ2から送信された、コンテンツを含むメッセージを受信する(ステップS225)。
ステップS205において、識別情報記憶部103に、暗号化された識別情報が記憶されていない場合、コンテンツ処理部101は、固有情報を含まないコンテンツ配信要求を生成する。生成されたコンテンツ配信要求は、通信部100によってサーバ2へ送信される(ステップS230)。
コンテンツ配信要求の送信後、通信部100は、サーバ2から送信された、識別情報およびコンテンツを含むメッセージを受信する(ステップS235)。コンテンツ処理部101は、受信されたメッセージに含まれる識別情報を暗号化して識別情報記憶部103に格納する(ステップS240)。
ステップS225またはステップS240の処理が行われた後、コンテンツ処理部101は、受信されたメッセージに含まれるコンテンツを処理する(ステップS245)。例えば、受信されたコンテンツが映像、ニュース、広告等であれば、コンテンツ処理部101は、それらのコンテンツをモニタに表示する処理を行う。受信されたコンテンツが音楽等であれば、コンテンツ処理部101は、そのコンテンツをスピーカから出力する処理を行う。
コンテンツの処理が終了した後、コンテンツ処理部101は、コンテンツ選択情報をサーバ2へ送信するか否かを判定する(ステップS250)。ステップS250では、コンテンツ選択情報を送信する指示がユーザから入力されているか否か等を条件として判定が行われる。
コンテンツ選択情報をサーバ2へ送信しない場合、ステップS200の判定が行われる。また、コンテンツ選択情報をサーバ2へ送信する場合、コンテンツ処理部101は、識別情報記憶部103から識別情報を読み出し、読み出した識別情報を復号し、暗号化される前の識別情報を取得する(ステップS255)。続いて、コンテンツ処理部101は、復号後の識別情報を使用して固有情報を生成する(ステップS260)。続いて、コンテンツ処理部101は、固有情報およびコンテンツ選択情報を含むメッセージを生成する。生成されたメッセージは、通信部100によってサーバ2へ送信される(ステップS265)。ステップS265では、固有情報を含むメッセージとコンテンツ選択情報を含むメッセージとが時分割でサーバ2へ送信されてもよい。ただし、固有情報とコンテンツ選択情報が別々にサーバ2へ送信される場合には、別々に送信される両者が互いに関連付けられている必要がある。
ステップS215,S260で生成される固有情報は、過去に生成された全ての固有情報と異なる固有情報である。このため、端末装置1からサーバ2へ送信される固有情報は、送信のたびに異なる。したがって、第三者が端末装置1からサーバ2へ送信されるパケットを監視したとしても、端末装置1の挙動を追跡しにくくなり、ユーザの嗜好を把握することが困難となる。
<第2の動作例>
第2の動作例では、端末装置1が識別情報を生成する。図9は、サーバ2の動作を示している。図9において、第1の動作例における図7に示した処理と同一の処理には同一の符号が付与されている。以下では、第1の動作例と異なる部分を説明する。
ステップS105において、端末装置1からのコンテンツ配信要求に固有情報が含まれている場合の動作は、図7に示した動作と同様である。また、ステップS105において、端末装置1からのコンテンツ配信要求に固有情報が含まれていない場合、ステップS135で任意のコンテンツが選択され、ステップS120でコンテンツがサーバ2へ送信される。以降の動作は、図7に示した動作と同様である。なお、ステップS155において、ステップS150で生成された識別情報と同一の識別情報がユーザ情報記憶部202に格納されていない場合、識別情報生成部201aは、受信されたメッセージに含まれる識別情報とコンテンツ選択情報とを対応付けてユーザ情報記憶部202に格納する。
次に、端末装置1の動作を説明する。図10は、端末装置1の動作を示している。図10において、第1の動作例における図8に示した処理と同一の処理には同一の符号が付与されている。以下では、第1の動作例と異なる部分を説明する。
ステップS205において、識別情報記憶部103に、暗号化された識別情報が記憶されている場合の動作は、図8に示した動作と同様である。また、ステップS205において、識別情報記憶部103に、暗号化された識別情報が記憶されていない場合、コンテンツ処理部101は、例えばランダムに識別情報を生成することにより、新しい識別情報を生成する(ステップS270)。続いて、コンテンツ処理部101は、ステップS270で生成された識別情報を暗号化して識別情報記憶部103に格納する(ステップS275)。続いて、コンテンツ処理部101は、固有情報を含まないコンテンツ配信要求を生成する。生成されたコンテンツ配信要求は、通信部100によってサーバ2へ送信される(ステップS280)。続いて、ステップS225において、サーバ2から送信されたコンテンツが受信される。以降の動作は、図8に示した動作と同様である。
本実施形態は、最良の形態であり、端末装置1からサーバ2へ送信される固有情報が送信のたびに異なるが、送信される固有情報が、過去に送信された固有情報と常に異なるわけではないという形態であってもよい。同一の固有情報が複数回送信されないことが望ましいが、本発明は、同一の固有情報が複数回送信される場合を含んでいてもよい。すなわち、本発明では、少なくともいずれかのタイミングで送信された固有情報が、過去のいずれかのタイミング(過去の全てのタイミングでも一部のタイミングでもよい)で送信された固有情報と異なっていればよい。
上述したように、本実施形態によれば、端末装置1からサーバ2へ送信される固有情報が送信のたびに変化するので、端末装置1の挙動を追跡することをより困難にすることができる。
また、識別情報と、固有情報を生成するたびに異なる情報とを組み合わせた情報を暗号化して固有情報を生成することによって、簡易な方法で、生成のたびに内容が異なる固有情報を生成することができる。
また、端末装置1からサーバ2へコンテンツ選択情報と共に送信される固有情報が送信のたびに変化することによって、端末装置1の挙動を追跡することをより困難にすることができる。
また、コンテンツ処理プログラム130において、少なくとも暗号処理機能130a、復号処理機能130b、固有情報生成機能130cを実現する部分を難読化することによって、第三者のプログラムが、暗号化されていない識別情報を取得することをより困難にすることができる。
(第2の実施形態)
次に、本発明の第2の実施形態を説明する。本実施形態は、スマートフォン向けのアプリケーションに対する広告を配信する技術におけるプライバシ侵害の発生を抑制する手法を提供する。また、本実施形態は、以下の手法も提供する。
Webブラウザ向けの広告を配信する従来技術では、ユーザは、端末装置に保存されているcookieを自身の判断で削除(消去)し、広告事業者(広告提供者、広告配信者)から新しいcookieを発行してもらうことができる。このため、広告事業者側に蓄積されている、ユーザの嗜好に関する情報をユーザ側の要求により無効化することができる。一方、スマートフォン向けのアプリケーションに対する広告を配信する従来技術では、一旦収集された、ユーザの嗜好に関する情報は固定的なグローバルIDで管理されるため、この情報をユーザ側の要求により無効化することができないという問題がある。これに鑑み、本実施形態は、ユーザの嗜好に関する情報を無効化する手法を提供する。
図11は、本実施形態による広告配信システムの構成を示している。図11の広告配信システムは、端末装置1a,1bとサーバ2a,2bを含む。端末装置1a,1bは、スマートフォン等の携帯情報端末である。端末装置1a,1bは、アプリケーションがインストールされており、かつ、サーバ2a,2bと通信を行い、アプリケーションの画面に広告を表示する端末であればよく、端末の種類は問わない。サーバ2a,2bは、それぞれ異なる広告事業者によって提供(管理)されているサーバである。サーバ2aは広告事業者Aによって提供され、サーバ2bは、広告事業者Aとは異なる広告事業者Bによって提供されている。サーバ2aは、インターネット上で広告事業者Aに割り当てられたドメインに属しており、サーバ2bは、インターネット上で広告事業者Bに割り当てられたドメインに属している。図11では2台の端末装置と2台のサーバが示されているが、3台以上の端末装置があってもよいし、3台以上のサーバがあってもよい。
図12は端末装置1aの構成を示している。端末装置1bの構成は端末装置1aの構成と同様であるので、端末装置1bの構成についての説明を省略する。端末装置1aは、通信部10、表示部11、アプリケーション12a,12b(アプリケーション処理部)、プログラム記憶部13、ID記憶部14、操作部17を有する。
通信部10は、サーバ2a,2bと通信を行う通信回路を有する。表示部11は、情報を表示する液晶パネル等を有する。
アプリケーション12a,12bは、アプリケーションの処理として規定された各種の処理を行う。アプリケーション12a,12bは、広告の画像等を含む広告情報をサーバ2a,2bから受信し、受信した広告情報に基づく広告を表示部11に表示させる広告モジュール15a,15bを有する。広告モジュール15a,15bは、同一の広告事業者、例えばサーバ2aを提供する広告事業者Aによって作成されたモジュールであり、広告事業者Bによって作成された広告モジュールとは異なる。広告モジュール15a,15bは、例えばライブラリとして実装されている。
プログラム記憶部13は、コンピュータのCPUによる情報の読み出しが可能な記録媒体を有しており、アプリケーション12a,12bのそれぞれに対応したアプリケーションプログラム16a,16bを記憶する。例えば端末装置1aがスマートフォンである場合、プログラム記憶部13は、スマートフォンに内蔵されたフラッシュメモリである。アプリケーションプログラム16aが、図示していないCPUによって揮発性のメモリ(RAM:Random Access Memory)に読み込まれることで、アプリケーション12aが起動する。同様に、アプリケーションプログラム16bが、図示していないCPUによって揮発性のメモリに読み込まれることで、アプリケーション12bが起動する。
プログラム記憶部13は、端末装置1aに内蔵される記録媒体、または端末装置1aに外部から挿入される記録媒体であって、少なくとも一定期間、情報を保持できる記録媒体であればよく、ハードディスクドライブやROM(Read Only Memory)等であってもよい。プログラム記憶部13に格納されているアプリケーションプログラム16a,16bは、フレキシブルディスク、光磁気ディスク、CD-ROM、DVD-ROM、カード媒体等の可搬性の記録媒体から、あるいは、外部のコンピュータに内蔵されたフラッシュメモリ、ハードディスクドライブ等の記録媒体からプログラム記憶部13に入力されてプログラム記憶部13に保存されてもよい。また、プログラム記憶部13に保存されるアプリケーションプログラム16a,16bは、インターネット等の通信回線を介して他の装置から伝送されたプログラムであってもよい。
ID記憶部14は、CPUによる読み出しが可能な記録媒体を有しており、複数のアプリケーションからアクセスされるUUID(Universally Unique Identifier)および制御フラグを記憶する。UUIDは、ランダムに生成される固有値であり、例えば乱数である。「ランダム」とは、一度生成された値と同じ値が再度生成されることがない、または、一度生成された値と同じ値が再度生成される確率が極めて低い(確率がほぼ0である)ことを指す。後述するように、UUIDは、サーバ2a,2bにおいて、ユーザの嗜好に関する情報を管理するのに用いられる。ID記憶部14に格納されているUUIDは暗号化されている。制御フラグは、UUIDの制御に関する情報を示す。アプリケーション12a,12bはいずれも、ID記憶部14に格納されたUUIDと制御フラグにアクセスすることが可能である。
例えば端末装置1aがスマートフォンであり、端末装置1aのOS(Operating Systems)がAndroid(登録商標)である場合、ID記憶部14は、スマートフォンに内蔵されたSD(登録商標)カードである。この場合、アプリケーションプログラム16a,16bを構成するファイルの1つであるマニフェストファイルにWRITE_EXTERNAL_STORAGEというパラメータ(パーミッション)を設定する必要がある。例えば端末装置1aがスマートフォンであり、端末装置1aのOSがiOSである場合、ID記憶部14は、スマートフォンに内蔵されたカスタムペーストボードである。ID記憶部14は、端末装置1aに内蔵される記録媒体、または端末装置1aに外部から挿入される記録媒体であって、少なくとも一定期間、情報を保持できる記録媒体であればよく、フラッシュメモリやハードディスクドライブ等であってもよい。
操作部17は、ユーザによって操作されるボタンやキー等の部材や、ユーザの操作を検知する圧電素子等を有する。表示部11と操作部17は、例えばタッチパネルとして一体化されていてもよい。
図12では2個のアプリケーション12a,12bが示されているが、3個以上のアプリケーションがあってもよい。また、広告事業者A以外の広告事業者、例えば広告事業者Bによって作成されたアプリケーションがあってもよい。
図12に示す構成を図2に示す構成と対比させると、通信部10が通信部100に対応し、アプリケーション12a,12b(広告モジュール15a,15b)がコンテンツ処理部101に対応し、プログラム記憶部13がプログラム記憶部102に対応し、ID記憶部14が識別情報記憶部103に対応する。
図13は、アプリケーションプログラム16aに含まれる、広告モジュール15aに対応する広告モジュールプログラムが実現する機能を示している。以下で説明する事項は広告モジュール15bについても同様であるので、広告モジュール15bについての説明を省略する。広告モジュールプログラム150は、暗号処理機能150a、復号処理機能150b、固有情報生成機能150c、通信制御機能150d、広告処理機能150eを実現するためのライブラリ等で構成されている。
暗号処理機能150aは、UUIDを暗号化する機能である。復号処理機能150bは、暗号化されたUUIDを復号し、暗号化される前のUUIDを取得する機能である。固有情報生成機能150cは、UUIDから固有情報を生成する機能である。固有情報を生成する方法は、第1の実施形態における識別情報の代わりにUUIDを使用する点を除いて、第1の実施形態で説明した方法と同様である。通信制御機能150dは、サーバ2aと通信を行う機能である。広告処理機能150eは、広告情報を処理する機能である。
図14は、図13に示した各機能に基づく処理を示している。広告モジュール15aは、暗号処理機能150aに対応する処理により、UUIDを暗号化し、暗号化されたUUID(暗号化情報)をID記憶部14に格納する。ID記憶部14に格納されているUUIDが暗号化されているため、第三者のプログラムが、暗号化されていないUUIDを取得することは困難である。広告モジュール15aは、復号処理機能150bに対応する処理により、暗号化されたUUIDをID記憶部14から読み出して復号し、暗号化される前のUUIDを取得する。暗号化・復号のための暗号鍵・復号鍵は、例えば広告モジュールプログラム150にハードコーディングされている。
広告モジュール15aは、固有情報生成機能150cに対応する処理により、復号後のUUIDから固有情報を生成する。広告モジュール15aは、通信制御機能150dに対応する処理により、広告の配信を要求するメッセージである広告配信要求をサーバ2aへ送信し、広告情報をサーバ2aから受信する。広告配信要求に固有情報が含まれる場合、固有情報に対応するUUIDによって識別されるユーザに適した広告情報がサーバ2aから送信される。広告モジュール15aは、広告処理機能150eに対応する処理により、サーバ2aから受信された広告情報を処理し、表示部11に広告を表示させる。
広告モジュールプログラム150において、少なくとも暗号処理機能150a、復号処理機能150b、固有情報生成機能150cを実現する部分は、解読されないように、難読化されていることが望ましい。例えば、これらを実現する部分を、逆コンパイルが困難なネイティブコード(機械語)で構成すればよい。また、広告モジュールプログラム150において、暗号処理機能150a、復号処理機能150b、固有情報生成機能150cを実現するそれぞれの部分を個別に難読化してライブラリ等として構成するのではなく、これらを実現する部分の全体を一体化し、さらに難読化してライブラリ等として構成することが望ましい。これによって、暗号化されたUUIDが広告モジュール15aに入力されてから固有情報が生成されるまでの過程で生成される情報を第三者のプログラムが取得することは困難である。すなわち、第三者のプログラムが、暗号化されていない識別情報を取得することは困難である。
図15はサーバ2aの構成を示している。サーバ2bの構成はサーバ2aの構成と同様であるので、サーバ2bの構成についての説明を省略する。サーバ2aは、通信部20、広告管理部21、嗜好記憶部22、広告記憶部23、プログラム記憶部24を有する。
通信部20は、端末装置1a,1bと通信を行う通信回路を有する。広告管理部21は、サーバ2aを提供する広告事業者Aの広告の配信に関する管理を行う。広告管理部21は、ID生成部21a、広告選択部21bを有する。
ID生成部21aは、端末装置1a,1bから広告配信要求が受信された場合に、広告配信要求に含まれる固有情報を復号し、その固有情報の生成に使用されたUUIDを生成する。また、ID生成部21aは、端末装置1a,1bのユーザに新しいUUIDを付与する必要がある場合に、新しいUUIDを生成する。広告選択部21bは、端末装置1a,1bへ送信される広告情報を選択する。
嗜好記憶部22は、端末装置1a,1bで表示された広告に対するユーザのアクションに基づくユーザの嗜好に関する嗜好情報を記憶する。広告記憶部23は、広告の画像等を含む広告情報を記憶する。嗜好記憶部22と広告記憶部23は一体化されていてもよい。プログラム記憶部24は、サーバ2aを動作させるためのプログラムを記憶する。
図16は、嗜好記憶部22に格納される嗜好情報の内容の一例を示している。嗜好情報は、UUIDと、このUUIDに対応付けられた広告選択履歴とを含む。広告選択履歴は、端末装置1a,1bで表示された広告に対して、クリック等により、ユーザが反応したこと、言い換えるとユーザが意図的に広告を選択したことを示す情報であり、例えばユーザが選択した広告の種類(あるいは広告に対応する商品の種類)を示す情報である。広告選択履歴は、同一の広告について広告が選択された回数の情報を含んでいてもよい。サーバ2aは、UUIDに基づいて、広告の対象となる商品に対するユーザの嗜好を管理する。
図15に示す構成を図5に示す構成と対比させると、通信部20が通信部200に対応し、広告管理部21がコンテンツ管理部201に対応し、ID生成部21aが識別情報生成部201aに対応し、広告選択部21bがコンテンツ選択部201bに対応し、嗜好記憶部22がユーザ情報記憶部202に対応し、広告記憶部23がコンテンツ記憶部203に対応し、プログラム記憶部24がプログラム記憶部204に対応する。
次に、本実施形態における広告配信の手法を説明する。本実施形態では、サーバ2aがUUIDを生成する場合の端末装置1aおよびサーバ2aの動作と、端末装置1aがUUIDを生成する場合の端末装置1aおよびサーバ2aの動作とを説明する。端末装置1aとサーバ2aの間の通信は、端末装置1aの通信部10とサーバ2aの通信部20を介して行われるが、本実施形態の説明では通信部10,20の動作に関する説明を省略する。
<サーバ2aがUUIDを生成する場合>
図17は、広告配信時の端末装置1aとサーバ2aの動作を示している。また、図18は、表示された広告に対するユーザのアクションが発生したときの端末装置1aとサーバ2aの動作を示している。以下、図17と図18を参照して端末装置1aとサーバ2aの動作を説明する。
端末装置1aにおいて、アプリケーション12aが起動したとき、広告モジュール15aが起動する。広告モジュール15aは、ID記憶部14にUUIDが格納されているか否かを確認する。ID記憶部14にUUIDが格納されている場合と格納されていない場合とで異なる値を制御フラグに設定し、制御フラグの値に基づいてUUIDの有無を確認してもよい。初期状態ではID記憶部14にUUIDが格納されていないものとする。広告モジュール15aは、広告配信要求をサーバ2aへ送信する(ステップS300a)。この広告配信要求には固有情報が含まれていない。
サーバ2aにおいて、広告管理部21は端末装置1aからの広告配信要求を受信し、広告配信要求に基づいて、広告の配信が要求されていることを認識する。続いて、広告管理部21は、広告配信要求に固有情報が含まれているか否かを確認する。この広告配信要求には固有情報が含まれていないので、ID生成部21aは新しいUUIDを生成し、生成したUUIDを嗜好情報の一部として嗜好記憶部22に保存する。この時点では、新たに生成されたUUIDには、対応する広告選択履歴がない。広告選択部21bは、広告記憶部23に格納されている広告情報の中からいずれかをランダムに選択して読み出し、読み出した広告情報と、ID生成部21aによって生成されたUUIDとを含むメッセージを端末装置1aへ送信する(ステップS305a)。広告情報とUUIDとが別々のメッセージにより端末装置1aへ送信されてもよい。
端末装置1aにおいて、広告モジュール15aは、受信したメッセージからUUIDを抽出し、抽出したUUIDを暗号化してID記憶部14に保存する(ステップS310a)。また、広告モジュール15aは、受信したメッセージから広告情報を抽出し、抽出した広告情報を表示部11へ出力し、表示部11に広告を表示させる(ステップS315a)。これによって、アプリケーション12aの画面内に広告が表示される。ID記憶部14へのUUIDの保存と広告の表示とは、どちらが先であってもよい。また、サーバ2aから広告情報を受信して広告を表示した後にサーバ2aからUUIDを受信してもよい。
広告が表示された後、ユーザがGUI(Graphical User Interface)の機能を利用して広告を選択する操作(クリック等)を行うと、操作部17から広告モジュール15aに操作結果が通知される(ステップS400)。広告モジュール15aは、ID記憶部14からUUIDを読み出し、読み出したUUIDを復号し、暗号化される前のUUIDを取得する(ステップS405)。広告モジュール15aは、復号後のUUIDを使用して固有情報を生成し、生成した固有情報と、操作結果に応じた操作情報とを含むメッセージをサーバ2aへ送信する(ステップS410)。操作情報は、ユーザが広告に対して行った操作の内容を示す情報であり、例えばユーザが選択した広告の種類(あるいは広告に対応する商品の種類)を示す情報である。固有情報と操作情報とが別々のメッセージによりサーバ2aへ送信されてもよい。広告の表示後、例えば一定期間内に広告を選択する操作が行われなかった場合に、広告に対して操作が行われなかったことを示す操作情報がサーバ2aへ送信されてもよい。
サーバ2aにおいて、広告管理部21は端末装置1aからのメッセージを受信し、受信したメッセージから固有情報と操作情報を抽出する。ID生成部21aは、この固有情報に基づいて、端末装置1aにおける固有情報の生成時に使用されたUUIDを生成する。さらに、ID生成部21aは、生成されたUUIDと同一のUUIDを嗜好記憶部22から検索し、そのUUIDを含む嗜好情報に対して、操作情報に基づく広告選択履歴を追加する。これによって、端末装置1aで表示された広告に対するユーザの操作の結果が、サーバ2aで管理されている、ユーザの嗜好に関する情報に反映される。広告選択履歴は操作情報と同一の情報であってもよいし、操作情報に対してフォーマットの変換等を行った情報であってもよい。
続いて、端末装置1aにおいて、アプリケーション12bが起動したとき、広告モジュール15bが起動する。広告モジュール15bは、ID記憶部14にUUIDが格納されているか否かを確認する。広告モジュール15aがサーバ2aから受信したUUIDがID記憶部14に格納されているので、広告モジュール15bは、ID記憶部14からUUIDを読み出し、読み出したUUIDを復号し、暗号化される前のUUIDを取得する(ステップS320a)。広告モジュール15aは、復号後のUUIDを使用して固有情報を生成し、広告配信要求をサーバ2aへ送信する(ステップS325a)。この広告配信要求には、ID記憶部14から読み出されたUUIDから生成された固有情報が含まれている。
サーバ2aにおいて、広告管理部21は端末装置1aからの広告配信要求を受信し、広告配信要求に基づいて、広告の配信が要求されていることを認識する。続いて、広告管理部21は、広告配信要求に固有情報が含まれているか否かを確認する。この広告配信要求には固有情報が含まれているので、ID生成部21aは、この固有情報に基づいて、端末装置1aにおける固有情報の生成時に使用されたUUIDを生成する。さらに、ID生成部21aは、生成されたUUIDと同一のUUIDを嗜好記憶部22から検索し、そのUUIDと対応付けられている広告選択履歴を読み出す。広告選択部21bは、嗜好記憶部22から読み出された広告選択履歴に基づいて、広告記憶部23に格納されている広告情報の中から、ユーザに適した広告に対応した広告情報を選択して読み出し、読み出した広告情報を含むメッセージを端末装置1aへ送信する(ステップS330a)。
端末装置1aにおいて、広告モジュール15bは、受信したメッセージから広告情報を抽出し、抽出した広告情報を表示部11へ出力し、表示部11に広告を表示させる(ステップS335a)。これによって、アプリケーション12bの画面内に広告が表示される。
広告が表示された後、ユーザがGUIの機能を利用して広告を選択する操作(クリック等)を行った場合、図18に示した動作と同様の動作により、固有情報と、操作結果に応じた操作情報とを含むメッセージがサーバ2aへ送信される。サーバ2aでは、受信されたメッセージに含まれる固有情報からUUIDが生成され、そのUUIDと同一のUUIDを含む嗜好情報に対して、操作情報に基づく広告選択履歴が追加される。
上記のようにして端末装置1aのID記憶部14に保存されたUUIDは、アプリケーション12a,12bの両方が終了した後もID記憶部14に保存されている。アプリケーション12a,12bが終了した後、再度起動した場合、広告モジュール15a,15bは、ID記憶部14に格納されているUUIDにアクセスする。
<端末装置1aがUUIDを生成する場合>
図19は、広告配信時の端末装置1aとサーバ2aの動作を示している。以下、図19を参照して端末装置1aとサーバ2aの動作を説明する。
端末装置1aにおいて、アプリケーション12aが起動したとき、広告モジュール15aが起動する。広告モジュール15aは、ID記憶部14にUUIDが格納されているか否かを確認する。ID記憶部14にUUIDが格納されている場合と格納されていない場合とで異なる値を制御フラグに設定し、制御フラグの値に基づいてUUIDの有無を確認してもよい。初期状態ではID記憶部14にUUIDが格納されていないものとする。ID記憶部14にUUIDが格納されていないので、広告モジュール15aは、新しいUUIDを生成し(ステップS300b)、生成したUUIDを暗号化してID記憶部14に保存する(ステップS305b)。
続いて、広告モジュール15aは、広告配信要求をサーバ2aへ送信する(ステップS310b)。この広告配信要求には、固有情報が含まれていない。
サーバ2aにおいて、広告管理部21は端末装置1aからの広告配信要求を受信し、広告配信要求に基づいて、広告の配信が要求されていることを認識する。続いて、広告管理部21は、広告配信要求に固有情報が含まれているか否かを確認する。この広告配信要求には固有情報が含まれていないので、広告選択部21bは、広告記憶部23に格納されている広告情報の中からいずれかをランダムに選択して読み出し、読み出した広告情報を含むメッセージを端末装置1aへ送信する(ステップS315b)。
端末装置1aにおいて、広告モジュール15aは、受信したメッセージから広告情報を抽出し、抽出した広告情報を表示部11へ出力し、表示部11に広告を表示させる(ステップS320b)。これによって、アプリケーション12aの画面内に広告が表示される。
広告が表示された後、ユーザがGUIの機能を利用して広告を選択する操作(クリック等)を行うと、図18に示したように、固有情報と、操作結果に応じた操作情報とを含むメッセージが端末装置1aからサーバ2aへ送信される。サーバ2aにおいて、広告管理部21は端末装置1aからのメッセージを受信し、受信したメッセージから固有情報と操作情報を抽出する。ID生成部21aは、この固有情報に基づいて、端末装置1aにおける固有情報の生成時に使用されたUUIDを生成する。さらに、ID生成部21aは、生成されたUUIDと同一のUUIDを嗜好記憶部22から検索し、そのUUIDを含む嗜好情報に対して、操作情報に基づく広告選択履歴を追加する。この時点では、生成されたUUIDと同一のUUIDが嗜好記憶部22に格納されていないため、ID生成部21aは、生成されたUUIDと、操作情報に基づく広告選択履歴とを対応付けて嗜好記憶部22に格納する。これによって、端末装置1aで表示された広告に対するユーザの操作の結果が、サーバ2aで管理されている、ユーザの嗜好に関する情報に反映される。広告選択履歴は操作情報と同一の情報であってもよいし、操作情報に対してフォーマットの変換等を行った情報であってもよい。
続いて、端末装置1aにおいて、アプリケーション12bが起動したとき、広告モジュール15bが起動する。広告モジュール15bは、ID記憶部14にUUIDが格納されているか否かを確認する。ステップS300bで生成されたUUIDがID記憶部14に格納されているので、広告モジュール15bは、ID記憶部14からUUIDを読み出し、読み出したUUIDを復号し、暗号化される前のUUIDを取得する(ステップS325b)。広告モジュール15bは、復号後のUUIDを使用して固有情報を生成し、広告配信要求をサーバ2aへ送信する(ステップS330b)。この広告配信要求には、ID記憶部14から読み出されたUUIDから生成された固有情報が含まれている。
サーバ2aにおいて、広告管理部21は端末装置1aからの広告配信要求を受信し、広告配信要求に基づいて、広告の配信が要求されていることを認識する。続いて、広告管理部21は、広告配信要求に固有情報が含まれているか否かを確認する。この広告配信要求には固有情報が含まれているので、ID生成部21aは、この固有情報に基づいて、端末装置1aにおける固有情報の生成時に使用されたUUIDを生成する。さらに、ID生成部21aは、生成されたUUIDと同一のUUIDを嗜好記憶部22から検索し、そのUUIDと対応付けられている広告選択履歴を読み出す。広告選択部21bは、嗜好記憶部22から読み出された広告選択履歴に基づいて、広告記憶部23に格納されている広告情報の中から、ユーザに適した広告に対応した広告情報を選択して読み出し、読み出した広告情報を含むメッセージを端末装置1aへ送信する(ステップS335b)。
端末装置1aにおいて、広告モジュール15bは、受信したメッセージから広告情報を抽出し、抽出した広告情報を表示部11へ出力し、表示部11に広告を表示させる(ステップS340b)。これによって、アプリケーション12bの画面内に広告が表示される。
広告が表示された後、ユーザがGUIの機能を利用して広告を選択する操作(クリック等)を行った場合、図18に示した動作と同様の動作により、固有情報と、操作結果に応じた操作情報とを含むメッセージがサーバ2aへ送信される。サーバ2aでは、受信されたメッセージに含まれる固有情報からUUIDが生成され、そのUUIDと同一のUUIDを含む嗜好情報に対して、操作情報に基づく広告選択履歴が追加される。
上記のようにして端末装置1aのID記憶部14に保存されたUUIDは、アプリケーション12a,12bの両方が終了した後もID記憶部14に保存されている。アプリケーション12a,12bが終了した後、再度起動した場合、広告モジュール15a,15bは、ID記憶部14に格納されているUUIDにアクセスする。
UUIDが広告モジュール15a,15bによって生成される場合、UUIDは、例えば端末装置1aのグローバルIDと、時刻に関する情報(日付と時刻に関する情報であってもよい)とを組み合わせた値をハッシュ関数の入力値として計算されるハッシュ値であってもよい。前述したように、グローバルIDは、IMEIや、IMSI、MACアドレス、電話番号、OSがランダムに生成するID、これらの情報から生成されるハッシュ値等である。例えば端末装置1aがスマートフォンである場合、グローバルIDは、スマートフォンに内蔵されたフラッシュメモリ等に格納されている。
UUIDを上記のハッシュ値とすることによって、UUIDが、他の広告事業者に対応する広告モジュールによって生成されるUUIDと競合しなくなる。また、異なるタイミングで生成されたUUIDが異なる値となることが保証される。さらに、ハッシュ値は不可逆な値であり、ハッシュ値からハッシュ関数の入力値を再生することはできないので、UUIDから端末装置あるいはユーザを特定することが不可能となる。したがって、UUIDのランダム性を保証すると共に、UUIDから端末装置あるいはユーザが特定されることを防止することができる。また、不可逆な値であれば、ハッシュ値の代わりに用いることが可能である。
ID記憶部14において、UUIDは、広告モジュール15a,15bを作成した広告事業者Aに対応したUUIDを記憶するための専用の領域に格納される。より具体的には、UUIDは、広告事業者Aに対応したUUIDを記憶するためのフォルダに格納される。このフォルダの名称(フォルダ名)には、例えば端末装置1aに固有な情報であるグローバルIDと、広告事業者に固有な値とを組み合わせた値をハッシュ関数の入力値として計算されるハッシュ値が用いられる。
アプリケーションプログラム16a,16bに含まれる広告モジュール15a,15bのそれぞれのプログラムには、広告事業者Aに固有な同一の値が記録されている。広告モジュール15a,15bは、ID記憶部14にUUIDが格納されているか否かを確認する際、グローバルIDを取得し、広告事業者Aに対応したフォルダ名を示すハッシュ値を計算する。広告モジュール15a,15bは、計算したハッシュ値と一致するフォルダ名を有するフォルダをID記憶部14から検索し、そのフォルダがない場合には、ID記憶部14にUUIDが格納されていないと判断する。また、広告モジュール15a,15bは、計算したハッシュ値と一致するフォルダ名を有するフォルダがある場合には、そのフォルダにUUIDが格納されているか否かを確認する。
UUIDと同様に制御フラグも、広告事業者Aに対応したUUIDを記憶するためのフォルダに格納される。
上記の仕組みにより、同一の広告事業者が作成した広告モジュールは、ID記憶部14において、その広告事業者に対応した領域(フォルダ)のUUIDにアクセスし、他の広告事業者に対応した領域のUUIDにはアクセスしない。つまり、ID記憶部14に格納されているUUIDに対する広告モジュール毎の排他的な制御が実現される。このため、同一の広告事業者に対応する複数の広告モジュール間でのみ、ランダムなUUIDが共有され、その広告事業者が提供するサーバにおいて、UUID毎にユーザの嗜好に関する情報が管理される。本実施形態のUUIDは、端末装置あるいはユーザとの結びつきがないランダムな値であるため、それぞれの広告事業者は、それぞれのUUIDがどのユーザに対応しているのかを知ることができず、同一のUUIDに対応付けられている広告選択履歴の範囲内でのみユーザの嗜好を管理することができる。
また、それぞれの広告事業者は、自身が管理しているUUIDと、他の広告事業者が管理しているUUIDとが同一のユーザに対応しているのか否かを知ることはできない。このため、複数の広告事業者が管理している、ユーザの嗜好に関する情報を広告事業者間で交換したとしても、その情報をユーザ毎の情報に統合することは困難である。つまり、異なる複数の広告事業者間で、ユーザの嗜好に関する情報を共有することは困難である。したがって、プライバシ侵害を抑制することができる。
前述したように、ハッシュ値は不可逆な値であるので、UUIDが格納されるフォルダの名称を、広告事業者に固有な名称、特に不可逆なハッシュ値を含む名称とすることによって、フォルダの名称から広告事業者のドメイン名等を推定することが困難となる。このため、その広告事業者が管理しているサーバに対して他の広告事業者等が不正にアクセスし、ユーザの嗜好に関する情報を取得することが困難となる。本実施形態では、フォルダ名にハッシュ値を用いているが、不可逆な値であれば、ハッシュ値の代わりに用いることが可能である。
本実施形態では、新しいUUIDを発行すること、および、端末装置1aからサーバ2aへの固有情報の送信を停止することが可能である。新しいUUIDが発行された場合、サーバ2aでは新しいUUIDに基づいてユーザの嗜好が管理され、広告が配信される。古いUUIDと、新しいUUIDとの間には関連がないため、サーバ2aに蓄積されている嗜好情報をユーザ側の要求により無効化することができる。また、端末装置1aからサーバ2aへの固有情報の送信を停止することで、サーバ2aから端末装置1aへ送信される広告情報がランダム化されるので、サーバ2aに蓄積されている嗜好情報をユーザ側の要求により無効化することができる。
図20は、端末装置1aの表示部11に表示されるアプリケーション(アプリケーション12aまたはアプリケーション12b)の画面の一例を示している。図20(a)は、アプリケーションが起動したときに表示される画面を示している。アプリケーション領域S1には、アプリケーションの処理中の画像や処理結果の画像等が表示される。制御領域S2にはアイコン等のマークM1が表示される。マークM1は、ユーザが新しいUUIDの発行や固有情報の送信の停止等の制御を行う指示を入力するための制御情報である。
ユーザがGUIの機能を利用してマークM1を選択する操作を行った場合、操作部17から広告モジュール(広告モジュール15aまたは広告モジュール15b)に操作結果が通知される。この後、アプリケーションの画面は、図20(b)に示す画面に変化する。図20(b)は、ユーザがGUIの機能を利用してマークM1を選択する操作を行った後に表示される画面の一例を示している。新しいUUIDの発行を示す文字情報C1、個人情報である固有情報の送信の停止を示す文字情報C2、UUID等の情報の取り扱いに対する広告事業者のポリシ(プライバシポリシ)を示す文字情報C3が画面に表示される。ユーザがGUIの機能を利用して文字情報C1,C2,C3のいずれかを選択する操作を行った場合、操作部17から広告モジュールに操作結果が通知される。
以下、新しいUUIDの発行に関する端末装置1aとサーバ2aの動作を説明する。
<サーバ2aがUUIDを生成する場合>
図21は、ユーザによって新しいUUIDの発行(生成)が指示されたときの端末装置1aとサーバ2aの動作を示している。以下、図21を参照して端末装置1aとサーバ2aの動作を説明する。
アプリケーション12aの画面において、図20(b)の文字情報C1が選択された場合、新しいUUIDの発行が指示されたことを示す操作結果(ID発行指示)が操作部17から広告モジュール15aに通知される(ステップS500a)。ID発行指示を受けた広告モジュール15aは、ID記憶部14に格納されているUUIDを削除する(ステップS505a)。このとき、広告モジュール15aは、ID記憶部14において、広告事業者Aに対応したフォルダのUUIDを削除する。
続いて、広告モジュール15aは、新しいUUIDの発行を要求するためのメッセージであるID発行要求をサーバ2aへ送信する(ステップS510a)。このID発行要求には固有情報が含まれていない。
サーバ2aにおいて、広告管理部21は端末装置1aからのID発行要求を受信し、ID発行要求に基づいて、新しいUUIDの発行が要求されていることを認識する。続いて、ID生成部21aは新しいUUIDを生成し、生成したUUIDを嗜好情報の一部として嗜好記憶部22に保存する。このとき、嗜好記憶部22に格納されている全てのUUIDと異なるUUIDが生成されるように、ランダムなUUIDが生成される。ID生成部21aは、生成したUUIDを含むメッセージを端末装置1aへ送信する(ステップS515a)。
端末装置1aにおいて、広告モジュール15aは、受信したメッセージからUUIDを抽出し、抽出したUUIDを暗号化してID記憶部14に保存する(ステップS520a)。このとき、広告モジュール15aは、ID記憶部14において、広告事業者Aに対応したフォルダにUUIDを保存する。
以後、広告モジュール15a,15bは、サーバ2aに広告の配信を要求する際、ステップS520aでID記憶部14に保存された新しいUUIDから生成された固有情報を含む広告配信要求をサーバ2aへ送信する。サーバ2aは、端末装置1aから送信された固有情報に対応する新しいUUIDに基づいて広告の配信を行う。これによって、古いUUIDに基づいてサーバ2aで管理されていた、ユーザの嗜好に関する情報を無効化することができる。
図21に示した動作において、ID記憶部14に格納されているUUIDを削除するタイミングは、ID発行要求をサーバ2aへ送信してから、UUIDを含むメッセージをサーバ2aから受信するまでの間でもよいし、UUIDを含むメッセージをサーバ2aから受信した後でもよい。また、UUIDを含むメッセージをサーバ2aから受信した後、ID記憶部14に格納されているUUIDを、サーバ2aから受信したメッセージに含まれるUUIDを暗号化した情報で上書きすることにより、古いUUIDを削除してもよい。
また、図21に示した動作において、サーバ2aが管理している、古いUUIDを含む嗜好情報を削除してもよい。例えば、広告モジュール15aは、固有情報を含むID削除要求をサーバ2aへ送信する。このID削除要求を受信したサーバ2aのID生成部21aは、ID削除要求に含まれる固有情報に基づいて、端末装置1aにおける固有情報の生成時に使用されたUUIDを生成し、嗜好記憶部22において、このUUIDと同一のUUIDを含む嗜好情報を削除する。
また、図21に示した動作において、ステップS510aでサーバ2aへ送信されるID発行要求は、ステップS300aでサーバ2aへ送信される広告配信要求と同様のメッセージであってもよい。この広告配信要求には固有情報が含まれていない。広告配信要求を受信したサーバ2aは、前述した動作と同様にして、新しいUUIDを生成し、ランダムに選択した広告情報と、生成したUUIDとを含むメッセージを端末装置1aへ送信する。
<端末装置1aがUUIDを生成する場合>
図22は、ユーザによって新しいUUIDの発行(生成)が指示されたときの端末装置1aとサーバ2aの動作を示している。以下、図22を参照して端末装置1aとサーバ2aの動作を説明する。
アプリケーション12aの画面において、図20(b)の文字情報C1が選択された場合、新しいUUIDの発行が指示されたことを示す操作結果(ID発行指示)が操作部17から広告モジュール15aに通知される(ステップS500b)。ID発行指示を受けた広告モジュール15aは、ID記憶部14に格納されているUUIDを削除する(ステップS505b)。このとき、広告モジュール15aは、ID記憶部14において、広告事業者Aに対応したフォルダのUUIDを削除する。
続いて、広告モジュール15aは、新しいUUIDを生成し(ステップS510b)、生成したUUIDを暗号化してID記憶部14に保存する(ステップS515b)。このとき、広告モジュール15aは、ID記憶部14において、広告事業者Aに対応したフォルダにUUIDを保存する。
以後、広告モジュール15a,15bは、サーバ2aに広告の配信を要求する際、ステップS515bでID記憶部14に保存された新しいUUIDを含むメッセージをサーバ2aへ送信する。サーバ2aは、端末装置1aで削除されたUUIDとは異なる新しいUUIDに基づいて広告の配信を行う。これによって、古いUUIDに基づいてサーバ2aで管理されていた、ユーザの嗜好に関する情報を無効化することができる。
図22に示した動作において、新しいUUIDの発行が指示されたことを示す操作結果が操作部17から広告モジュール15aに通知された後、ID記憶部14に格納されているUUIDを、新たに生成されたUUIDを暗号化した情報で上書きすることにより、古いUUIDを削除してもよい。
また、図22に示した動作において、サーバ2aが管理している、古いUUIDを含む嗜好情報を削除してもよい。例えば、広告モジュール15aは、固有情報を含むID削除要求をサーバ2aへ送信する。このID削除要求を受信したサーバ2aのID生成部21aは、ID削除要求に含まれる固有情報に基づいて、端末装置1aにおける固有情報の生成時に使用されたUUIDを生成し、嗜好記憶部22において、このUUIDと同一のUUIDを含む嗜好情報を削除する。
端末装置1aとサーバ2aの通信セッションが継続していると、サーバ2aが、同一の通信セッションで送信されたメッセージに基づいて端末装置1aにおけるUUIDの連続性を把握し、古いUUIDと、新しいUUIDとを対応付ける可能性がある。これらのUUIDが対応付けられてしまうと、古いUUIDと対応付けられている、ユーザの嗜好に関する情報を無効化することができない。このため、広告モジュール15a,15bが起動している間、端末装置1aとサーバ2aの通信セッションが継続するのであれば、サーバ2aに新しいUUIDの発行が要求される前、あるいはサーバ2aに広告の配信が要求される前に、端末装置1aとサーバ2aの通信セッションが一旦切断されることが望ましい。
広告モジュール15aは、サーバ2aに広告の配信を要求する際、サーバ2aとの通信セッションを構築している。広告モジュール15aは、新しいUUIDの発行が指示されたことを示す操作結果が操作部17から広告モジュール15aに通知された後、ID記憶部14に格納されているUUIDを削除する前またはUUIDを削除した後、サーバ2aとの通信セッションを切断する。続いて、広告モジュール15aは、サーバ2aとの新たな通信セッションを構築した後、ID発行要求をサーバ2aへ送信する、または新しいUUIDから生成された固有情報を含む広告配信要求をサーバ2aへ送信する。これによって、サーバ2aが端末装置1aにおけるUUIDの連続性を把握することが困難となるので、ユーザの嗜好に関する情報をより確実に無効化することができる。
サーバ2aが、サーバ2aに送信されたメッセージの送信元のIPアドレスに基づいて端末装置1aにおけるUUIDの連続性を把握し、古いUUIDと、新しいUUIDとを対応付ける可能性もある。スマートフォンの多くは通信事業者のNAT(Network Address Translation)装置の配下にあり、所定の周期で、スマートフォンに割り当てられるIPアドレスが変更される。このため、サーバ2aとの通信セッションを一旦切断してから、サーバ2aとの新たな通信セッションを構築するまでの時間は、通信事業者によって端末装置1aに割り当てられるIPアドレスが変更される周期と同一の時間あるいはその周期よりも長い時間であってもよい。
これによって、ID発行要求または広告配信要求は、通信セッションが切断される前に端末装置1aに割り当てられていたIPアドレスとは異なるIPアドレスから送信されるので、サーバ2aが端末装置1aにおけるUUIDの連続性を把握することが困難となる。したがって、ユーザの嗜好に関する情報をより確実に無効化することができる。
次に、端末装置1aからサーバ2aへの固有情報の送信の停止に関する端末装置1aとサーバ2aの動作を説明する。図23は、ユーザによって固有情報の送信の停止が指示されたときの端末装置1aとサーバ2aの動作を示している。以下、図23を参照して端末装置1aとサーバ2aの動作を説明する。
アプリケーション12aの画面において、図20(b)の文字情報C2が選択された場合、固有情報の送信の停止が指示されたことを示す操作結果(送信停止指示)が操作部17から広告モジュール15aに通知される(ステップS600)。送信停止指示を受けた広告モジュール15aは、ID記憶部14に格納されている制御フラグ(送信停止情報)の値を、固有情報の送信の禁止を示す値に設定する(ステップS605)。このとき、広告モジュール15aは、ID記憶部14において、広告事業者Aに対応したフォルダの制御フラグの値を設定する。制御フラグには、サーバへの固有情報の送信が許可されている場合と、サーバへの固有情報の送信が禁止されている場合とで、異なる値が設定される。
続いて、アプリケーション12bが起動したとき等のタイミングでサーバ2aに広告の配信を要求する際、広告モジュール15bは、ID記憶部14に格納されている制御フラグを読み出し、その値を確認する(ステップS610)。このとき、広告モジュール15bは、ID記憶部14において、広告事業者Aに対応したフォルダの制御フラグを読み出す。
制御フラグの値が固有情報の送信の禁止を示しているので、広告モジュール15bは、ID記憶部14からUUIDを読み出さずに、広告配信要求をサーバ2aへ送信する(ステップS615)。この広告配信要求には固有情報は含まれてなく、固有情報の送信が禁止されていることを示す値が含まれている。広告配信要求に含まれている、固有情報の送信が禁止されていることを示す値は、ID記憶部14に格納されている制御フラグの値と同一であってもよい。このメッセージにはUUIDは含まれてなく、UUIDの送信が禁止されていることを示す値が含まれている。メッセージに含まれている、UUIDの送信が禁止されていることを示す値は、ID記憶部14に格納されている制御フラグの値と同一であってもよい。
サーバ2aにおいて、広告管理部21は端末装置1aからのメッセージを受信し、メッセージに基づいて、広告の配信が要求されていること、および、UUIDの送信が禁止されていることを認識する。続いて、広告管理部21は、広告記憶部23に格納されている広告情報の中からいずれかをランダムに選択して読み出し、読み出した広告情報を含むメッセージを端末装置1aへ送信する(ステップS620)。
端末装置1aにおいて、広告モジュール15bは、受信したメッセージから広告情報を抽出し、抽出した広告情報を表示部11へ出力し、表示部11に広告を表示させる(ステップS625)。これによって、アプリケーション12bの画面内に広告が表示される。
サーバ2aに広告の配信を要求する際、広告モジュール15a,15bは、ID記憶部14に格納されている制御フラグの値が固有情報の送信の許可を示している場合には、ID記憶部14からUUIDを読み出して復号し、復号後のUUIDを使用して生成した固有情報を含む広告配信要求をサーバ2aへ送信する。
図17〜図19を参照して説明した動作では、制御フラグに応じた制御の説明を省略したが、上記と同様に、制御フラグに応じた動作が行われる。図17〜図19では、制御フラグの値が固有情報の送信の許可を示していると仮定して、端末装置1aの動作を説明した。
サーバ2aへの固有情報の送信が停止された後、適宜、サーバ2aへの固有情報の送信を再開することも可能である。例えば、サーバ2aへの固有情報の送信が停止された後、図20(b)に示すアプリケーションの画面において、文字情報C2は、固有情報の送信の再開を示す情報に変化する。この文字情報C2が選択された場合、固有情報の送信の再開が指示されたことを示す操作結果(送信指示)が操作部17から広告モジュール15aに通知される。送信指示を受けた広告モジュール15aは、ID記憶部14に格納されている制御フラグの値を、固有情報の送信の許可を示す値に設定する。
ID記憶部14に格納されている制御フラグの値が、固有情報の送信の禁止を示す値に設定された場合、以下のように、サーバへの操作情報の送信も停止される。アプリケーション12aの画面に広告が表示された後、ユーザがGUIの機能を利用して広告を選択する操作を行うと、操作部17から広告モジュール15aに操作結果が通知される。広告モジュール15aは、ID記憶部14に格納されている制御フラグを読み出し、その値を確認する。制御フラグの値が固有情報の送信の許可を示している場合、図18を参照して説明した動作と同様に、固有情報と操作情報を含むメッセージがサーバ2aへ送信される。また、制御フラグの値が固有情報の送信の禁止を示している場合、サーバ2aへメッセージは送信されない。
上記のように、サーバへの固有情報の送信を停止することによって、サーバから、ランダムに選択された広告情報が送信されるので、サーバへの固有情報の送信が停止されている間、ユーザの嗜好に関する情報を無効化することができる。サーバへの固有情報の送信が停止された後、サーバへの固有情報の送信が再開された場合には、サーバにおいて、その固有情報に対応するUUIDに基づくユーザの嗜好の管理を再開することができる。
図20(b)の文字情報C3が選択された場合、UUID等の情報の取り扱いに対する広告事業者のポリシを説明する文字(文章)が表示される。広告事業者のポリシに関する詳細な説明は省略する。
上記の広告配信の手法において、新しいUUIDを発行する手法(図21、図22)、および、端末装置1aからサーバ2aへの固有情報の送信を停止する手法(図23)を、広告以外のコンテンツを配信する手法に適用してもよい。
上述したように、本実施形態によれば、端末装置からサーバへ送信される固有情報が送信のたびに変化するので、端末装置の挙動を追跡することをより困難にすることができる。
また、異なる複数の広告事業者間で、ユーザの嗜好に関する情報を共有することが困難となる。したがって、プライバシ侵害の発生を抑制することができる。
また、ID記憶部14において、UUIDが広告事業者毎に異なるフォルダに格納され、それぞれの広告モジュールが、その広告モジュールを作成した広告事業者に対応するフォルダのUUIDにアクセスすることによって、異なる複数の広告事業者間で、ユーザの嗜好に関する情報を共有することが困難となる。
また、ID記憶部14において、UUIDが格納されるフォルダの名称を、端末装置に固有なグローバルIDと、広告事業者に固有な情報とに基づく不可逆な値を含む名称にすることによって、ある広告事業者が管理している、ユーザの嗜好に関する情報を、他の広告事業者等が取得することが困難となる。
また、ユーザから新しいUUIDの発行が指示された場合、サーバが新しいUUIDを生成し、端末装置へUUIDを送信する、または端末装置が新しいUUIDを生成することによって、サーバで管理されている、ユーザの嗜好に関する情報を無効化することができる。
また、新しいUUIDの発行に伴って、サーバとの通信セッションを切断することによって、サーバで管理されている、ユーザの嗜好に関する情報をより確実に無効化することができる。さらに、サーバとの通信セッションを切断してから、サーバと新たな通信セッションを構築するまでの時間を、端末装置に割り当てられるIPアドレスの変更周期に応じた時間とすることによって、サーバで管理されている、ユーザの嗜好に関する情報をより確実に無効化することができる。
また、ユーザから、サーバへの固有情報の送信の停止が指示された場合、サーバへの固有情報の送信を停止することによって、ユーザの嗜好に関する情報を無効化することができる。
グローバルIDを使用した従来の広告配信では、サーバ側でのグローバルIDの利用に関して、広告の配信前にユーザの承諾を得る、いわゆるオプトインが推奨されており、その承諾に関する操作が発生する。これに対して、本実施形態では、UUIDに基づく広告の配信をユーザが自身の判断で無効化することができるので、広告の配信前にユーザの承諾を必要としない、いわゆるオプトアウトが実現でき、広告事業者側とユーザ側の負担を軽減することができる。