本開示の一態様に係る情報処理方法は、サーバ装置が実行する情報処理方法であって、第一ビーコン装置からビーコン信号を受信した第一携帯端末から、当該第一携帯端末の現在位置を示す第一位置情報を取得する取得ステップと、取得された前記第一位置情報と、前記サーバ装置によって予め管理されている第二位置情報であって前記第一ビーコン装置の設置位置を示す前記第二位置情報とを比較することにより、前記第一ビーコン装置の異常度を算出する算出ステップと、算出された前記異常度に応じた処理を行う処理ステップとを含む。
このような情報処理方法によれば、ビーコン装置の設置位置のずれに基づいてビーコン装置の異常度を算出することができる。また、このような情報処理方法によれば、算出した異常度に応じてビーコン装置の不正利用を抑制するための処理を行うことができる。
また、前記算出ステップにおいては、前記第一位置情報が示す現在位置と、前記第二位置情報が示す設置位置との差が大きいほど、前記異常度を高く算出してもよい。
このように、上記情報処理方法では、具体的には、ビーコン装置の設置位置のずれが大きいほど、異常度が高く算出されてもよい。
また、前記情報処理方法は、さらに、複数の第二携帯端末のそれぞれが前記第一ビーコン装置から受信したビーコン信号に含まれる第一IDの受信日時を第一チェックイン履歴として管理する第一管理ステップを含み、前記算出ステップにおいては、前記第一チェックイン履歴をさらに用いて前記異常度を算出してもよい。
このような情報処理方法によれば、例えば、携帯端末の現在位置情報の改ざんが行われた場合であっても、異常度を精度よく算出することができる。
例えば、前記算出ステップにおいては、前記第一位置情報の取得をしたときの前記第一チェックイン履歴と、前記第一位置情報の取得をしたときよりも前の前記第一チェックイン履歴とを比較することにより、前記異常度を算出してもよい。
このような情報処理方法によれば、現在と過去のチェックイン履歴の比較に基づいて異常度を算出することができる。
また、前記第一管理ステップにおいては、前記複数の第二携帯端末のそれぞれから送信される前記第一IDの受信日時を、当該第一IDを送信した前記第二携帯端末から送信されるユーザIDと対応付けて前記第一チェックイン履歴として管理し、前記算出ステップにおいては、前記第一チェックイン履歴に含まれる同一のユーザIDの数に応じて前記異常度を算出してもよい。
このような情報処理方法によれば、ビーコン装置を利用するユーザ数の偏りに基づいて異常度を算出することができる。
また、前記情報処理方法は、さらに、複数の第三携帯端末のそれぞれが前記第一ビーコン装置とは異なる第二ビーコン装置から受信したビーコン信号に含まれる第二IDの受信日時を第二チェックイン履歴として管理する第二管理ステップを含み、前記算出ステップにおいては、前記第一チェックイン履歴と、前記第二チェックイン履歴とを比較することにより、前記異常度を算出してもよい。
このような情報処理方法によれば、一のビーコン装置の利用状況と他のビーコン装置の利用状況との比較に基づいて異常度を算出することができる。
また、前記処理ステップにおいては、算出された前記異常度が所定値以上の場合に、前記第一ビーコン装置とは異なる第三ビーコン装置からのビーコン信号の取得を前記第一携帯端末に指示する前記処理を行ってもよい。
このような情報処理方法によれば、一のビーコン装置で異常が疑われる場合に、他のビーコン装置を利用して異常の有無を判断できる。
また、前記処理ステップにおいては、算出された前記異常度が所定値よりも低い場合、前記第一携帯端末に関する所定の処理を行い、算出された前記異常度が所定値以上の場合、前記所定の処理を保留してもよい。
このような情報処理方法によれば、異常度に応じて所定の処理を保留することができる。
また、前記第一携帯端末には、前記サーバ装置によってデータが管理されるゲームのアプリケーションがインストールされ、前記所定の処理は、前記ゲーム内で使用されるゲーム報酬を前記データ上で付与する処理であってもよい。
このように、上記情報処理方法は、例えば、ビーコン装置との通信に基づくゲーム報酬の付与に利用できる。
また、前記処理ステップにおいては、算出された前記異常度が所定値以上の場合、前記第一ビーコン装置の機能を停止させるための情報を、前記第一携帯端末を介して前記第一ビーコン装置に送信する前記処理を行ってもよい。
このような情報処理方法によれば、異常度が高い場合にビーコン装置を停止させることができる。
また、前記第一ビーコン装置の機能を停止させるための情報は、前記第一ビーコン装置が保持する鍵情報によって復号可能な、暗号化された情報であってもよい。
このような情報処理方法によれば、ビーコン装置とサーバ装置との通信をこれらの装置以外の装置が傍受することを抑制できる。
また、前記第一ビーコン装置の機能を停止させるための情報は、前記第一ビーコン装置が保持する前記鍵情報を削除するための情報を含んでもよい。
このような情報処理方法によれば、異常度が高い場合にビーコン装置を完全に停止させ、鍵情報を削除して安全性を高めることができる。
また、前記第二位置情報は、前記サーバ装置が備える記憶部に記憶されていてもよい。
また、前記取得ステップ、前記算出ステップおよび前記処理ステップの少なくとも1つは、前記サーバ装置が備えるプロセッサにより行われてもよい。
なお、これらの包括的または具体的な態様は、システム、装置、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD−ROMなどの記録媒体で実現されてもよい。また、これらの包括的または具体的な態様は、システム、装置、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
以下、実施の形態について、図面を参照しながら具体的に説明する。
なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
なお、各図は模式図であり、必ずしも厳密に図示されたものではない。また、各図において、実質的に同一の構成に対しては同一の符号を付しており、重複する説明は省略または簡略化される場合がある。
(実施の形態1)
[実施の形態1に係る情報提供方法の基礎となった知見]
実施の形態1では、ゲーム用アプリケーションを搭載した情報機器に対する情報提供方法について説明する。
ユーザ(プレーヤ)は、例えばスマートフォンのような情報機器を用いてゲーム用アプリケーションをダウンロードすることできる。ダウンロードされるゲームの中には、ゲームの進行レベルに応じてゲーム報償(ゲームアイテム)が得られるタイプのものがある。
例えば、ユーザがゲーム上で商品を販売し、その売り上げが最初の目標額に達するとスタンプが付与されるルールのゲームがある。このようなゲームでは、ユーザの売り上げが次の目標額に達すると次のスタンプがさらに付与される。ユーザが所定数(例えば5個)のスタンプを取得すると、ユーザはゲームを進める上で有効なゲームアイテムを獲得できる。
また、例えば、ユーザがゲームをプレイできる時間に制限を設け、一定時間を経過しなければ、同一のゲームを再開できない仕組みを有するゲームがある。この場合、有効なゲームアイテムは、上記の一定時間を短縮する機能を有する。このため、ユーザは、有効なゲームアイテムを使用することにより、上記一定時間の経過を待たずに、ゲームと同一のゲームを再開できる。
本願発明者は、この種のゲーム用アプリケーションと、例えば、薬局、雑貨店、または衣料販売店などの店舗とを連携させ、ゲーム用アプリケーションにおけるスタンプ又はゲームアイテムの取得を、店舗での販売促進に結びつける方法を見出した。
そこで、実施の形態1では、ゲームを利用してゲームのプレーヤに現実の店舗への来店の動機を与えることができる情報提供方法(ゲーム報酬付与システム)について説明する。
[構成]
以下、実施の形態1に係るゲーム報酬付与システムについて説明する。図1は、ゲーム報酬付与システムの概略構成を示す図である。
図1に示されるように、ゲーム報酬付与システム100は、サーバ10と、モバイル端末20とを備える。サーバ10とモバイル端末20とはネットワーク40(例えば、インターネット)を通じて接続されている。また、図1には、モバイル端末20によって実行されるゲームのコラボレーションの対象となる店舗30も図示されている。
なお、ゲーム報酬付与システム100においては、ユーザは、モバイル端末20を用いてサーバ10からゲーム用アプリケーション(以下、単に「ゲームアプリ」とも記載する。)をダウンロードする。ユーザのゲームの進行状況などの情報は、サーバ10に記憶される。
また、実施の形態1では、モバイル端末20で実行されるゲームは、ユーザがゲーム上で商品を販売し、その売り上げが最初の目標額に達するとスタンプが付与されるルールのゲームであるものとする。このゲームでは、ユーザの売り上げが次の目標額に達すると次のスタンプがさらに付与される。ユーザが所定数(例えば5個)のスタンプを取得すると、ユーザはゲームを進める上で有効なゲームアイテムを獲得できる。
ゲーム報酬付与システム100においては、上記スタンプがゲームの進行によって付与されるだけでなく、ユーザがモバイル端末20を現実の店舗30に持参することによっても付与される点が特徴である。
次に、ゲーム報酬付与システム100の具体的な構成について説明する。図2は、ゲーム報酬付与システム100の機能構成を示すブロック図である。まず、サーバ10について説明する。
図2に示されるように、サーバ10は、サーバ制御部11と、店舗情報DB13と、ゲームアプリ情報DB14と、ユーザ情報DB15とを備える。
サーバ制御部11は、モバイル端末20からの各要求を受信し、要求に応じて各DB(店舗情報DB13、ゲームアプリ情報DB14、およびユーザ情報DB15)を参照し、必要な場合は各DB情報の更新を行う。また、サーバ制御部11は、上記要求に応じてゲームに必要な情報(画面情報など)をモバイル端末20に送信する。
サーバ制御部11は、具体的には、プロセッサであるが、マイクロコンピュータや専用回路など、どのような態様であってもよい。
次に、モバイル端末20について説明する。モバイル端末20は、制御部21と、記憶部22と、OS(Operating System)26とを備える。また、記憶部22には、ゲームアプリが記憶されており、ゲームアプリには、ゲーム部23と、SDK(Software Development Kit)部24と、サーバ情報DB25とが含まれる。モバイル端末20は、具体的には、スマートフォン、タブレット端末、またはノートPCなどの表示部を有する端末である。なお、図2では表示部の図示が省略されている。
制御部21は、OS26を立ち上げて記憶部22に記憶されたゲームアプリを実行する。制御部21は、プロセッサであるが、マイクロコンピュータや専用回路など、どのような態様であってもよい。なお、以下の実施の形態では、制御部21がゲームアプリを実行することによって行われる処理は、単に「ゲーム部23は・・する」または「SDK部24は・・する」と記載される。
次に、上記各DBに記憶される情報について簡単に説明する。図3は、店舗情報DB13に記憶される情報を示す図である。図4は、ゲームアプリ情報DB14に記憶される情報を示す図である。図5は、ユーザ情報DB15に記憶される情報を示す図である。
図3に示されるように、店舗情報DB13には、店舗属性情報131と、広告情報132と、購入者特典情報133とが記憶される。
また、図4に示されるように、ゲームアプリ情報DB14には、スタンプ情報141と、ゲーム属性情報142と、報酬付与条件情報143と、報酬一覧情報144と、報酬出現確率情報145と、購入者特典報酬情報146とが記憶される。
さらに、図5に示されるように、ユーザ情報DB15には、ユーザログイン情報151と、ユーザ達成度情報152と、ユーザチェックインログ153と、ユーザ達成度ログ154と、ユーザ報酬付与情報155とが記憶される。
[初期化処理]
次に、モバイル端末20においてゲームアプリを実行する場合の初期化処理について説明する。まず、初期化処理の全体の流れについて説明する。図6は、初期化処理のシーケンス図である。
ゲーム初期化処理(S10)においては、ゲーム部23は、SDK部24にログイン要求を送信し(S11)、SDK部24は、ログイン要求処理を行う(S12)。SDK部24は、具体的には、サーバ制御部11へログイン要求を送信する(S13)。
サーバ制御部11は、受信したログイン要求に応じてログイン処理(S14)を行い、ログイン処理の完了後、ユーザIDをSDK部24に送信する(S15)。SDK部24は、ログイン完了通知をゲーム部23に送信する(S16)。
ログインが完了すると、ゲーム部23は、店舗コラボ情報取得要求をSDK部24に送信し(S17)、SDK部24は、店舗コラボ情報取得処理を行う(S18)。SDK部24は、具体的には、サーバ制御部11へ店舗コラボ情報生成要求を送信する(S19)。
サーバ制御部11は、受信した店舗コラボ情報生成要求に応じて店舗コラボ情報生成処理を行い(S20)、生成した店舗コラボ情報をSDK部24に送信する(S21)。そして、SDK部24は、店舗コラボ情報取得完了通知をゲーム部23に送信する(S22)。
以上により、ゲーム初期化処理(S10)が完了する。続いて、ゲーム部23は、ゲーム画面描画・表示処理(S23)を行う。具体的には、ゲーム部23は、店舗コラボ画像描画・表示要求をSDK部24に送信し(S24)、SDK部24は、店舗コラボ画像描画・表示処理を行う(S25)。店舗コラボ画像描画・表示処理の完了後、SDK部24は、店舗コラボ画像描画・表示完了通知をゲーム部23に送信する。
なお、ログイン処理時には、モバイル端末20の表示部には、図7の(a)のようなログイン画面27aが表示される。また、ゲーム画面描画・表示処理完了時には、図7の(b)のようなゲーム画面27bが表示される。なお、ゲーム画面27bには、ゲーム固有画像28aと店舗コラボ画像28bとが含まれる。
次に、初期化処理におけるゲーム部23、SDK部24およびサーバ10(サーバ制御部11)の動作の詳細について説明する。まず、初期化処理におけるゲーム部23の動作について説明する。図8は、初期化処理におけるゲーム部23の動作のフローチャートである。
図8に示されるように、ゲーム部23は、ゲーム初期化処理(S31)を行った後、SDK部24にログイン要求を送信し(S32)、SDK部24に店舗コラボ情報取得要求を送信する(S33)。ゲーム部23が店舗コラボ情報の取得に成功した場合(S34でYes)、店舗コラボフラグがONされる(S35)。ゲーム部23が店舗コラボ情報の取得に失敗した場合(S34でNo)、リトライ(S36でYes)が行われた後、店舗コラボフラグがOFFされる(S37)。なお、リトライは、例えば、所定回数行われる。
なお、これ以降のゲーム部23からSDK部24への各種処理要求(例えば、図6の店舗コラボ画像描画・表示要求)は、店舗コラボフラグがONの場合のみ行われる。
続いて、初期化処理におけるSDK部の動作について説明する。図9は、初期化処理におけるSDK部24の動作のフローチャートである。
まず、SDK部24は、アプリユーザIDが生成済みであるか否かを判断する(S41)。アプリユーザIDが生成済みでない場合は(S41でNo)、SDK部24は、OS26からUUID(Universally Unique Identifier)を取得し、取得したUUIDをアプリユーザIDとする(S42)。
次に、SDK部24は、WebViewを作成し、アプリユーザIDとアプリIDとを引数とする、ログインページ表示の部品要求をサーバ10に送信する(S43)。なお、WebViewは、モバイル端末20のアプリ(ここでは、ゲームアプリ)がアプリ内にWebページを表示するための機能(仕組み)である。
そして、SDK部24は、サーバ10からログインページ表示の部品を受信し、WebView上にログイン画面27aを表示する(S44)。ここで、ユーザは、モバイル端末20を通じてユーザ名およびパスワードの入力を行う。つまり、SDK部24は、ユーザが入力するユーザ名およびパスワードを取得する。
続いて、SDK部24は、ユーザが入力したユーザ名およびパスワード、アプリユーザID並びにアプリIDを引数とするログイン要求をサーバ10へ送信する(S45)。サーバ10からの応答がない場合(S46でNo)、ログイン要求の再送信が行われる。サーバ10からの応答が得られれば(S46でYes)、処理は終了となる。
次に、部品要求、ログイン要求、およびこれらの応答の具体例について説明する。図10および図11は、部品要求、ログイン要求、およびこれらの応答のHTML文書の一例を示す図である。
図10の(a)に示されるように、部品要求29は、アプリユーザID29a、アプリID29b、およびアクション29cを含む。
また、図10の(b)に示されるように、ログイン要求31は、アプリユーザID31a、アプリID31b、アクション31c、ユーザ名31d、およびパスワード31eを含む。
ログイン要求31に対し、サーバ10は、図10の(c)に示される応答32b(エラーなしを示す応答)を送信する(ステップS46でYes)。なお、ログイン要求31で指定したユーザ名とパスワードとの組み合わせではログインができないような場合には、図10の(d)に示される応答32cが送信される(ステップS46でNoとなり、ステップS45の処理が再度行われる)。
なお、ログイン画面を表示する場合には、部品要求29に対して図11に示される応答32aのように、htmlおよびjavascript(登録商標)の形式の応答が送信される。つまり、WebView表示用の「部品」は、htmlおよびjavascript(登録商標)形式で送信される。応答32aでは、前半部分(図11の上方の枠で囲まれた部分)は、モバイル端末20において送信ボタンが押された場合のログイン要求送信処理およびリトライ処理が記述されている。応答32aでは、後半部分(図11の下方の枠で囲まれた部分)は、ログイン画面27aをモバイル端末20の表示部に表示するための部品が記述されている。
続いて、サーバ10(サーバ制御部11)の動作について説明する。図12は、初期化処理におけるサーバ10の動作のフローチャートである。図13は、ユーザ情報DB15内のユーザログイン情報151およびユーザ達成度情報152を示す図である。なお、図13の(a)に示されるように、ユーザログイン情報151においては、ユーザID151aとユーザ名およびパスワードとが対応付けられている。図13の(b)に示されるように、ユーザ達成度情報152に含まれる各ユーザ達成度情報152fにおいては、ユーザID152aと、アプリユーザID、アプリID、ゲームのスコア、レベル152d、スタンプシート152b、およびスタンプ数152cとが対応付けられている。
サーバ制御部11は、モバイル端末20から送信された部品要求29またはログイン要求31からアプリユーザID29a(31a)、アプリID29b(31b)、およびアクション29c(31c)を取得する(S51)。アクションが「login」を示す場合、つまり、モバイル端末20からログイン要求31が送信された場合(S52でYes)、サーバ制御部11は、ログイン要求からユーザ名31dおよびパスワード31eを取得する(S53)。そして、サーバ制御部11は、ユーザログイン情報151を検索してユーザID151aを取得する(S54)。
サーバ制御部11は、ユーザID151aの取得に成功した場合(S55でYes)、かつユーザID151a、アプリユーザID31a、およびアプリID31bの組み合わせがユーザ達成度情報152に存在しない場合は、ユーザID151a、アプリユーザID31a、およびアプリID31bの組み合わせをユーザ達成度情報152に登録する(S56)。なお、ユーザID、アプリユーザID、及びアプリID以外の値については、デフォルト値(例えば、スコアー=0、レベル=1、スタンプシート=1、スタンプ数=0)とする。そして、サーバ制御部11は、ユーザ達成度情報152の登録の有無に関わらずモバイル端末20にログイン成功を示す応答32bを送信する(S58)。
また、サーバ制御部11は、ユーザIDの取得に失敗した場合(S55でNo)、モバイル端末20にログイン失敗を示す応答32cを送信する(S57)。
一方、ステップS52でアクションが「View」を示す場合、つまり、モバイル端末20から部品要求29が送信された場合(S52でNo)、サーバ制御部11は、アプリユーザID29aおよびアプリID29bに基づいて応答32aを生成し、モバイル端末20に送信する(S59)。
[店舗コラボ情報の生成処理]
次に、ゲーム画面の描画・表示処理のうち店舗コラボ情報の生成処理について説明する。まず、SDK部24の店舗コラボ情報の取得方法について説明する。図14は、店舗コラボ情報の取得方法のフローチャートである。図15は、店舗コラボ情報要求(図15の(a))および店舗コラボ情報(図15の(b))の一例を示す図である。図16は、サーバ情報DB25内のサーバ情報の一例を示す図である。図17は、スタンプシート画面の一例を示す図である。
SDK部24は、アプリユーザID33aおよびアプリID33bを引数とする店舗コラボ情報要求を送信する(S61)。そして、SDK部24は、店舗コラボ情報34をサーバ制御部11から受信し、サーバ情報DB25内にサーバ情報35として格納する(S62)。そして、SDK部24は、ゲーム部23に店舗コラボ情報34の取得完了通知を行う(S63)。
なお、店舗コラボ情報34は、店舗コラボ画像を生成するための情報であり、店舗コラボ情報34には、応答34aと、スタンプ数34bと、メッセージ34cとが含まれ、サーバ情報35についてもこれらの情報が含まれる。
応答34aは、サーバ制御部11にて店舗コラボ情報34の生成に成功したか否か(エラーが発生しないかどうか)を示す情報である。店舗コラボ情報34の生成に成功した場合は、”NONE”、サーバ制御部11とのネットワーク接続に失敗した場合は、”connection_error”、アプリIDがサーバに登録されていない場合は、”bad_app_id”と記述される。
スタンプ数34bは、アプリIDによって特定されるゲームにて、アプリユーザIDによって特定(識別)されるアプリユーザのスタンプの進捗を示す情報である。実施の形態1では、獲得スタンプ数/ゴールスタンプ数のように表現される。なお、ゴールスタンプ数とは、スタンプシートをいっぱいにするために必要なスタンプ数であり、実施の形態1では「5」である。したがって、図17に示されるスタンプシート画面27cのようにスタンプが1つも押されていない場合は0/5のように表現される。
メッセージ34cは、サーバ制御部11が生成した、店舗30への来店を喚起するためのメッセージである。
次に、サーバ10(サーバ制御部11)の店舗コラボ情報34の生成処理について説明する。図18は、店舗コラボ情報34の生成方法のフローチャートである。図19は、店舗情報DB13内の店舗属性情報の一例を示す図である。図20は、ゲームアプリ情報DB14内のスタンプ情報141の一例を示す図である。
サーバ制御部11は、制御部21(SDK部24)から受信した店舗コラボ情報要求33からアプリユーザID33aおよびアプリID33bを取り出す(S71)。そして、サーバ制御部11は、取り出したアプリユーザID33aおよびアプリID33bに基づいて、ユーザ情報DB15から対応するユーザ達成度情報152fを取得する(S72)。
続いて、サーバ制御部11は、店舗情報DB13から一定数の店舗属性情報131(図19)を取得し(S73)、これらより、ランダムに1つを選択する(S74)。なお、ステップS73の処理の詳細については後述する。
そして、サーバ制御部11は、ゲームアプリ情報DB14内のスタンプ情報141からアプリID33bに対応するアプリのスタンプシート枚数のゴールスタンプ数を取得する(S75)。ここで、スタンプシート枚数は、ユーザ達成度情報152fに含まれるスタンプシート152bにより特定され、ここでは「2」である。また、図20のスタンプ情報141aに示されるように、このときのゴールスタンプ数は、「5」である。
最後に、サーバ制御部11は、ユーザ達成度情報152fに含まれるスタンプ数152cより特定される獲得スタンプ数と、上記ゴールスタンプ数と、上記ステップS74にて選択した店舗属性情報に含まれるメッセージ(例えばステップS74で選択された店舗属性情報が131dの場合は、メッセージ36f)とが含まれる店舗コラボ情報34を生成し、モバイル端末20に送信する(S76)。
次に、店舗情報DB13から一定数の店舗属性情報131を取得する処理(上記ステップS73の処理)の一例について説明する。図21Aおよび図21Bは、店舗情報DB13から一定数の店舗属性情報131を取得する処理のフローチャートである。図22は、ユーザチェックインログ153(図22の(a))およびゲーム属性情報142(図22の(b))の一例を示す図である。
なお、以下の説明では、サーバ制御部11が、チェックインリストCL、店舗リストSL1およびSL2、並びにスコアSCを用いて一定数の店舗属性情報131を取り出す例について説明する。
サーバ制御部11は、ユーザ情報DB15内のユーザチェックインログ153から一定期間のチェックイン情報(チェックインの履歴。例えば、一定期間=1ヶ月、現在時刻が2014年2月7日12:00である場合、時刻が2014年1月7日12:00〜2014年2月7日12:00迄である、図22の(a)のチェックイン情報153aおよび153b。)を取得し、チェックインリストCLに追加する(S81)。そして、サーバ制御部11は、店舗リストSLを空にし(S82)、チェックインリストCLが空であるか否かを判定する(S83)。
チェックインリストCLが空でない場合(S83でNo)、サーバ制御部11は、チェックインリストCLからチェックイン情報を1つ取り出す(S84)。また、サーバ制御部11は、店舗属性情報131を参照して、取り出したチェックイン情報の店舗IDと一致する店舗IDを有する店舗属性情報131を取得し、店舗リストSLに追加する(S85)。例えば、図22の(a)のチェックイン情報153aが取り出された場合、店舗ID153cは、str00005であり、図19の店舗属性情報131のうち店舗属性情報131eが取得される。
さらに、サーバ制御部11は、店舗属性情報131を参照して、チェックイン情報の店舗ID153cが示す店舗の近隣の店舗の店舗属性情報131を取得し、店舗リストSLに追加する(S86)。なお、近隣の店舗の有無の判定は、店舗属性情報に含まれる緯度、及び経度を利用して、店舗間の距離を算出することによって行われる。具体的には、店舗間の距離が一定値以下(例えば、500m以内)であれば、近隣の店舗であると判定される。SQL(Structured Query Language)で近隣500mの店舗属性情報131を検索する場合、図23のように記述される。例えば、店舗属性情報131e(緯度34.72101、経度135.3122)から500m以内の緯度・経度情報をもつ店舗属性情報は、店舗属性情報131b及び131dである。この場合、店舗リストSLには、店舗属性情報131b及び131dが追加される。
ステップS84からステップS86の処理は、チェックインリストCLが空になるまで(S83でYes)行われる。
次に、サーバ制御部11は、ゲームアプリ情報DB14のゲーム属性情報142から、店舗コラボ情報要求33に含まれるアプリID33bとアプリIDが一致するゲーム属性情報(ここでは、ゲーム属性情報142a)を取得する(S87)。
店舗リストSLが空でない場合(S88でNo)、サーバ制御部11は、スコアSC=0として店舗リストSLから店舗属性情報131を1つ取り出す(S89)。取り出した店舗属性情報131(以下、対象の店舗属性情報131とも記載する。)のジャンル傾向が、ゲーム属性情報142aのジャンル142bと同一の場合、サーバ制御部11は、対象の店舗属性情報131のスコアSCに所定値(店舗属性情報131のジャンル傾向にて括弧内に記載される数値、例えば、店舗属性情報131dの場合は、0.5)を加える(S90)。
また、対象の店舗属性情報131のアプリ傾向が、店舗コラボ情報要求33に含まれるアプリID33bと同一の場合は、サーバ制御部11は、対象の店舗属性情報131のスコアSCに所定値(店舗属性情報131のアプリ傾向にて括弧内に記載される数値、例えば、店舗属性情報131aの場合は、0.2)を加える(S91)。
また、対象の店舗属性情報131の開発者傾向が、ゲーム属性情報142aの開発者142cと同一の場合は、サーバ制御部11は、対象の店舗属性情報131のスコアSCに所定値(店舗属性情報131の開発者傾向にて括弧内に記載される数値、例えば店舗属性情報131bの場合は、0.3)を加える(S92)。
最後に、サーバ制御部11は、対象の店舗属性情報131にステップS90〜ステップS92で算出したスコアSCを含めて店舗リストSL2に追加し、店舗リストSL2内の店舗属性情報131をスコアSCが高い順番に並べ替える(S93)。
ステップS89からステップS93の処理は、店舗リストSLが空になるまで(S88でYes)、店舗リストSL内の各店舗属性情報131に対して行われる。
以上のような処理により、店舗リストSL2の上位一定数の店舗属性情報131、つまり、過去一定期間にプレーヤが来店した近隣の店舗であって、プレーヤが現在プレイするゲームアプリに関連性の高い店舗が一定数取り出される(S94)。
[ゲーム画面描画・表示処理]
以上説明したような店舗コラボ情報34を用いたゲーム画面描画・表示処理について説明する。図24は、ゲーム画面描画・表示処理のフローチャートである。図25は、店舗コラボ画像28bの生成処理のフローチャートである。図26は、店舗コラボ画像28bの一例を示す図である。
図24に示されるように、ゲーム部23は、まず、ゲーム固有画像28aの描画・表示を行う(S101)。店舗コラボフラグがONである場合(S102でYes)、ゲーム部23は、SDK部24に店舗コラボ画像28bの描画・表示要求を送信する(S103)。
図25に示されるように、店舗コラボ画像28bの描画・表示要求を受信したSDK部24は、まず、店舗コラボ画像28b(図26)の背景部分を描画する(S111)。続いて、SDK部24は、店舗コラボ情報34からスタンプ数34b(獲得スタンプ数およびゴールスタンプ数)を取得し(S112)、店舗コラボ画像28bのうちスタンプ数表示部28cを描画する(S113)。
さらに、SDK部24は、店舗コラボ情報34からメッセージ34cを取得し(S114)、店舗コラボ画像28bのうちメッセージ表示部28dを描画する(S115)。なお、メッセージ表示部28dにおいては、メッセージ34cは、スクロール表示される。
[ゲーム処理および報酬付与処理]
次に、ゲーム処理および報酬付与処理について説明する。図27は、ゲーム処理および報酬付与処理のシーケンス図である。
ゲーム処理S121において、ゲーム部23は、達成度送信要求をSDK部に送信する(S122)。達成度送信要求を受信したSDK部24は、達成度送信処理を行う(S123)。SDK部24は、具体的には、サーバ制御部11に報酬付与判定要求を送信する(S124)。なお、報酬付与判定要求には、達成度が含まれる。
サーバ制御部11は、送信された報酬付与判定要求に基づいて報酬付与判定処理を行い(S125)、報酬付与が不要であると判定した場合には、報酬付与無しの応答(報酬付与情報)をSDK部24に送信する(S126)。そして、SDK部24は、報酬付与無しの応答(報酬付与情報)をゲーム部23に送信する(S127)。
報酬付与がなされる場合も同様に、ゲーム部23は、達成度送信要求をSDK部に送信し(S128)、SDK部24は、達成度送信処理を行う(S129、S130)。サーバ制御部11は、送信された報酬付与判定要求に基づいて報酬付与判定処理を行い(S131)、報酬付与が必要であると判定した場合には、報酬付与有りの応答(報酬付与情報)をSDK部24に送信する(S132)。そして、SDK部24は、報酬付与有りの応答をゲーム部23に送信する(S133)。
報酬付与有りの応答を受信したゲーム部23は、報酬画面表示要求をSDK部24に送信する(S134)。報酬画面表示要求を受信したSDK部24は、報酬画面表示処理を行う(S135)。具体的には、SDK部24は、報酬画面情報要求をサーバ制御部11に送信する(S136)。報酬画面情報要求を受信したサーバ制御部11は、報酬画面情報を生成し(S137)、生成した報酬画面情報をSDK部24に送信する(S138)。SDK部24は、受信した報酬画面情報を利用して、モバイル端末20の表示部に報酬獲得の旨の表示を行う。
報酬画面情報を表示した後、SDK部24は、報酬付与処理を行う(S139)。SDK部24は、具体的には、報酬情報要求をサーバ制御部11に送信する(S140)。報酬情報要求を受信したサーバ制御部11は、報酬情報を生成し(S141)、生成した報酬情報をSDK部24に送信する(S142)。
SDK部24は、受信した報酬情報をゲーム部23に送信し(S143)、ゲーム部23は、報酬処理を行う(S144)。
上述のように、実施の形態1に係るゲームにおいては、ユーザがゲーム上で商品を販売し、その売り上げが所定の金額に達するとスタンプが付与される。図28は、ゲーム上で商品を販売するときのゲーム画面27bを示す図である。
図28の(a)に示されるように、ゲーム画面の左上には、売り上げが示されている。ここで、図28の(b)に示されるように、売り上げが「190G」(Gは、ゲーム内での通貨単位)の状態でゲーム上の商品の販売がなされると、図28の(c)に示されるように、売り上げが増える。ここでは、「80G」が追加され、売り上げは「270G」に増える。このような、売り上げの増加は、「達成度」として上記達成度送信要求に含められ、ゲーム部23からSDK部24に送信される。また、この達成度は、上記報酬付与判定要求にも含められ、SDK部24からサーバ制御部11に送信される。
ここで、上記達成度に応じて行われるスタンプの付与、つまり、上述のスタンプシート画面27cにおいてスタンプを追加する処理は、上記報酬付与判定処理に含まれる(なお、スタンプシートを表示する処理は、上記報酬画面表示処理に含まれる。)。図29は、スタンプシート画面27cにスタンプが押される様子を示す図である。
図29の(a)〜(e)に示されるように、報酬付与判定処理においては、ゲームで一定の達成をする毎にひとつずつスタンプが報酬として与えられ、報酬画面情報生成処理によって、スタンプシート画面27cにスタンプがひとつずつ押されていく画面が生成される。スタンプは、サーバ10で管理される報酬情報であり、ゲーム部23は獲得スタンプ数、ゴールスタンプ数を意識する必要はない。獲得スタンプ数がゴールスタンプ数(ここでは5つ)に達した場合、図29の(f)に示されるように、ユーザに対してゲーム内で貴重なアイテムが付与される。
ここでユーザに付与されるアイテムは、スタンプと異なり、ゲーム部23が付与処理を行う必要のある情報である。アイテム付与に関する表示は、報酬画面情報生成処理によって行われるが、付与アイテムをゲームへ反映させる処理は、SDK部24より送信される報酬情報を受け取ったゲーム部23が、報酬処理にて行う。
次に、ゲーム処理および報酬処理についてフローチャートを用いて詳細に説明する。図30は、ゲーム処理および報酬処理のフローチャートである。
ゲーム部23は、SDK部24から報酬情報を受信している場合、つまり報酬情報がある場合(S151でYes)、報酬情報にしたがってゲーム制御用の変数・DBを更新する(S158)。
報酬情報がない場合(S151でNo)、または、ステップS158の処理の後には、ゲーム固有ロジック処理が行われる(S152)。そして、ゲーム部23は、SDK部24に達成度送信要求を送信する(S153)。
ここで、ゲーム部23は、報酬付与有りの応答を受信した場合(S154でYes)には、SDK部24に報酬画面表示要求を送信し、報酬画面表示終了を待つ(S157)。
ゲーム部23が報酬付与無しの応答を受信した場合(S154でNo)、又は報酬画面表示が終了した後、ゲーム部23は、ゲーム固有画描画・表示処理を行い(S155)、SDK部24は、店舗コラボ画像描画・表示処理を行う(S156)。そして、再度、報酬情報の有無の判断(S151)が行われる。
次に、SDK部24の達成度送信処理についてフローチャートを用いて詳細に説明する。図31は、達成度送信処理のフローチャートである。図32は、報酬付与判定要求(図32の(a))および報酬付与情報(図32の(b))の一例を示す図である。
図31に示されるように、SDK部24は、アプリユーザID38a、アプリID38b、および達成度38cを引数とする報酬付与判定要求38をサーバ10(サーバ制御部11)に送信する(S161)。そして、SDK部24は、サーバ10から報酬付与情報39を受信する(S162)。報酬付与情報には、エラーの有無を示す応答39aと、報酬付与の有無を示す応答39bとが含まれる。
報酬付与情報が報酬付与有りを示す応答39bを含む場合(S163でYes)、SDK部24は、ゲーム部23に報酬付与有りの応答を送信する(S164)。一方、報酬付与情報が報酬付与無しを示す応答39bを含む場合(S163でNo)、SDK部24は、ゲーム部23に報酬付与無しの応答を送信する(S165)。
次に、サーバ制御部11の報酬付与判定処理についてフローチャートを用いて詳細に説明する。図33は、報酬付与判定処理のフローチャートである。図34は、報酬付与条件情報143の一例を示す図である。図35は、ユーザ達成度ログ154(図35の(a)および(b))およびユーザ報酬付与情報155(図35の(c))の一例を示す図である。
サーバ制御部11は、SDK部24から受信した報酬付与判定要求38からアプリユーザID38a、アプリID38b、および達成度38cを取得する(S171)。サーバ制御部11は、ユーザ情報DB15内のユーザ達成度情報を参照して、アプリユーザID38aおよびアプリID38bの組合せに対応するユーザ達成度情報152fを取得する(S172)。
そして、サーバ制御部11は、アプリユーザID38a、アプリID38b、および達成度38cに現在時刻を付与したユーザ達成度ログ情報154aを生成し、ユーザ達成度ログ154に追加する(S173)。また、サーバ制御部11は、報酬付与条件情報143を参照してアプリID38bおよびユーザのレベルに対応する報酬付与条件情報143aを取得する(S174)。なお、図34に示されるように、報酬付与条件情報143aには報酬ID143bが含まれる。
ユーザ達成度ログ154を集計した結果が報酬付与条件情報143aを満たす場合(S175でYes)、サーバ制御部11は、ユーザ報酬付与情報155を生成する(S177)。図35の(c)に示されるように、具体的なユーザ報酬付与情報155aは、アプリユーザID38a、アプリID38b、報酬ID143b、ギフトID、画面表示済みフラグ、および報酬付与済みフラグを含む。なお、ギフトIDは、任意のユニークな数値であり(例えば1より単純増加する整数であり、他のユーザ報酬付与情報と重複しない)、画面表示済みフラグおよび報酬付与済みフラグは、いずれもこの時点では「FALSE」に設定される。
そして、サーバ制御部11は、報酬付与有りを示す応答39bを含む報酬付与情報39をSDK部24に送信する(S178)。
ステップS175においてユーザ達成度ログ154を集計した結果が報酬付与条件情報143aを満たさない場合(S175でNo)、サーバ制御部11は、報酬付与無しを示す応答39bを含む報酬付与情報39をSDK部24に送信する(S176)。
次に、報酬画面表示処理についてフローチャートを用いて詳細に説明する。図36は、報酬画面表示処理のフローチャートである。図37は、報酬画面情報要求の一例を示す図である。図38は、スタンプシート画面27cを表示する場合の報酬画面情報の一例を示す図である。図39は、アイテム付与画面を表示する場合の報酬画面情報の一例を示す図である。
SDK部24は、WebViewを作成し、アプリユーザID41aおよびアプリID41bを引数とする報酬画面情報要求41を、サーバ10(サーバ制御部11)に送信する(S181)。
次に、SDK部24は、サーバ制御部11から報酬画面情報42a(または報酬画面情報42b)を受信し、WebView上に報酬画面としてスタンプシート画面27c(またはアイテム付与画面27d)を表示する(S182)。
例えば、スタンプシート画面27cにスタンプが4つ押された状態から5つ目のスタンプを押すような表示を行う場合、報酬画面情報42aは、図38の太線枠のように記述される。また、例えば、アイテムの画像と、名称と、個数とを指定してアイテム付与画面27dを表示する場合、報酬画面情報42bは、図39のように記述される。すなわち、JavaScript(登録商標)にて記述された画面表示処理showScreen()が、引数に応じてスタンプ付与画面や、報酬画面の表示を動的に行う。なお、showScreen()の処理詳細については、記載しない。
なお、報酬画面情報42a(または報酬画面情報42b)にゲーム側報酬付与情報42dが含まれる場合(S183でYes)、報酬付与処理が行われる(S184)。ゲーム側報酬付与情報42dとは、具体的には、報酬画面情報42bの14行目の「location.href=”appcmd:gift=”+GIFT_ID」のことである。これは、JavaScript(登録商標)で記述された処理から、SDK部24の報酬付与処理を呼び出すための一般的な方法である。
location.href=URLは、WebViewにて表示しているWEBページをURLへ切り替えるために利用されるが、WebViewは、切り替え可否をWebViewの生成元であるSDK部24に問い合わせる。SDK部24は、URLとappcmd:が前方一致する場合、URL切り替えとは判断せず、JavaScript(登録商標)からSDK部24への処理要求と判断する。報酬画面情報42bの場合は、「gift=1」を引数として報酬付与処理が行われる。
なお、報酬画面情報42bの14行目の処理は、関数screen_show_completed()内部の処理である。この関数screen_show_completed()は、前記のshowScreen()の引数として指定され、showScreen()は、報酬画面の表示後、screen_show_completed()を呼び出す。
次に、報酬画面情報の生成方法についてフローチャートを用いて説明する。図40は、報酬画面情報の生成方法のフローチャートである。図41は、報酬一覧情報144の一例を示す図である。
サーバ制御部11は、報酬画面情報要求41からアプリユーザID41aおよびアプリID41bを取得する(S191)。次に、サーバ制御部11は、取得したアプリユーザID41aおよびアプリID41bに対応するユーザ報酬付与情報155aをユーザ報酬付与情報155から取得する(S192)。なお、このときの検索条件には、画面表示済みフラグが「FALSE」であるという条件、すなわち、未だ表示されていないユーザ報酬付与情報155aのみに限定するという条件が含まれる。
続いて、サーバ制御部11は、アプリID41bおよび取得したユーザ報酬付与情報155に対応する報酬一覧情報144aを報酬一覧情報144から取得する(S193)。
報酬一覧情報144aの報酬種別がスタンプである場合(S194でYes)、サーバ制御部11は、報酬画面情報42aを生成する(S195)。サーバ制御部11は、具体的には、ユーザ達成度情報152fに含まれるスタンプシート152bおよびスタンプ数152c、及び当該スタンプ数に報酬一覧情報144aの「報酬個数」を加算した報酬付与後スタンプ数(加算した結果、ゴールスタンプ数を超える場合は、ゴールスタンプ数とする)とを用いて報酬画面情報42aを生成する。
報酬一覧情報144aの報酬種別がアイテムである場合(S194でNo)、サーバ制御部11は、ユーザ報酬付与情報155aに含まれるギフトIDと、報酬一覧情報144aに含まれる報酬イメージおよび報酬名とを用いて報酬画面情報42bを生成する(S196)。
最後に、サーバ制御部11は、ユーザ報酬付与情報155の画面表示済みフラグを「TRUE(ON)」とし、報酬画面情報42a(または報酬画面情報42b)をSDK部24に送信する(S197)。なお、サーバ制御部11は、報酬画面情報42a(または報酬画面情報42b)をSDK部24に送信してからユーザ報酬付与情報155の画面表示済みフラグを「TRUE」としてもよい。
次に、報酬付与処理(図36のS184)についてフローチャートを用いて詳細に説明する。図42は、報酬付与処理のフローチャートである。図43は、報酬情報要求(図43の(a))および報酬情報(図43の(b))の一例を示す図である。
SDK部24は、サーバ制御部11から送信された報酬画面情報42a(または報酬画面情報42b)からギフトIDを取得する(S201)。そして、アプリユーザID43a、アプリID43b、およびギフトID43cを引数とする報酬情報要求43を生成し、サーバ制御部11に送信する(S202)。
続いて、SDK部24は、サーバ制御部11から報酬情報44を受信する(S203)。報酬情報44にエラーなしを示す応答(”ERROR”:”NONE”)が含まれている場合(S204でYes)、報酬情報44の報酬IDおよび報酬個数を少なくとも含む、ゲーム部23用の報酬情報をゲーム部23に送信する(S205)。
次に、報酬情報生成処理についてフローチャートを用いて詳細に説明する。図44は、報酬情報生成処理のフローチャートである。
サーバ制御部11は、SDK部24から取得した報酬情報要求43からアプリユーザID43a、アプリID43b、およびギフトID43cを取得する(S211)。そして、サーバ制御部11は、アプリユーザID43a、アプリID43b、およびギフトID43cに対応するユーザ報酬付与情報155aをユーザ報酬付与情報155から取得する(S212)。なお、このときの検索条件には、報酬付与済みフラグが「FALSE」であるという条件も含まれる。
対応するユーザ報酬付与情報155aを取得できた場合(S213でYes)、サーバ制御部11は、アプリID43bおよびユーザ報酬付与情報155aに含まれる報酬IDに対応する報酬一覧情報144aを報酬一覧情報144から取得する(S214)。
報酬一覧情報144aの報酬種別がスタンプである場合(S215でYes)、サーバ制御部11は、アプリユーザID43aおよびアプリID43bに対応するユーザ達成度情報152fをユーザ達成度情報152から取得する(S216)。そして、サーバ制御部11は、ユーザ達成度情報152fのスタンプ数に報酬一覧情報144aにより特定される報酬個数(スタンプ数)を加算し、かつ、報酬情報44を生成および送信する(S217)。これにより、上述した図13の(c)に示されるように、ユーザ達成度情報152fのスタンプ数が加算される。
報酬一覧情報144aの報酬種別がアイテムである場合(S215でNo)、サーバ制御部11は、報酬情報44を生成および送信する(S218)。このときの報酬情報44には、ユーザ報酬付与情報155aに含まれる報酬IDと、報酬一覧情報144aに含まれる報酬個数とが含まれる。
サーバ制御部11は、ステップS217、またはステップS218の後、ユーザ報酬付与情報155aの報酬付与済みフラグを「TRUE」とする(S219)。
上記ステップS213で対応するユーザ報酬付与情報155aを取得できなかった場合(S213でNo)、サーバ制御部11は、エラーが発生したことを示す応答(”ERROR”:”NO_REWARD_FOUND”)を含む報酬情報44を生成および送信する(S220)。
なお、図示されないが、上記スタンプ加算処理において、スタンプ数がゴールスタンプ数を超えた場合は、サーバ制御部11は、スタンプ情報141から、現在のスタンプシート152bの報酬IDを取得し、ユーザ報酬付与情報155aを生成する。なお、ユーザ報酬付与情報生成の手順は、ステップS177と同様であるため、詳細な説明は省略する。サーバ制御部11は、あわせて、ユーザ達成度情報152fを更新する(スタンプシートの枚数を1加算し、スタンプ数をリセットする)。
[チェックインに基づく報酬付与]
次に、ゲーム報酬付与システム100の特徴的な処理であるチェックイン(または店舗30における購買)に基づく報酬付与について説明する。図45は、チェックインに基づく報酬付与のシーケンス図である。なお、実施の形態1において、チェックインとは、店舗30に設けられた2次元コードをモバイル端末20の撮像部により読み取る等により、モバイル端末20がスタンプ付与のための識別情報(実施の形態1では店舗IDまたは購入IDを含む情報)を取得する処理を意味する。
まず、SDK部24は、来店予備行動感知処理を行い(S221)、近隣店舗判定要求をサーバ制御部11に送信する(S222)。サーバ制御部11は、近隣店舗判定処理を行い(S223)、近隣店舗情報をSDK部24に送信する(S224)。
SDK部24は、近隣店舗判定処理の結果に応じて、表示切替要求をゲーム部23に送信する(S225)。このときゲーム部23は、ゲーム処理中であるため(S226)、表示切替要求を受信後、プレーヤに対するゲーム体験を妨げないようゲーム処理を進めた後、来店情報取得要求をSDK部24に送信する(S227)。なお、ゲーム部23は、表示切替要求受信時に、「チェックイン画面に切り替える」旨のボタンを表示し、ユーザが本ボタンを押下したタイミングで来店情報取得要求をSDK部24に送信してもよい。
続いて、SDK部は、来店情報取得処理を行う(S228)。具体的には、チェックイン要求(または購買要求)をサーバ制御部11に送信し(S229)、サーバ制御部11は、チェックイン処理(購買処理)を行う(S230)。サーバ制御部11は、報酬付与が必要である場合には、報酬付与有りの応答(報酬付与情報)をSDK部24に送信する(S231)。以降、報酬画面表示処理(S232)〜報酬処理(S241)が行われるが、これらの処理は、既に説明した処理と同様であるため、詳細な説明は省略される。
次に、来店予備行動感知処理についてフローチャートを用いて詳細に説明する。図46は、来店予備行動感知処理のフローチャートである。図47は、近隣店舗判定要求(図47の(a))および近隣店舗情報(図47の(b))の一例を示す図である。
まず、SDK部24は、モバイル端末20が備える位置情報取得部を起動し、位置情報を取得する(S251)。位置情報取得部は、具体的にはGPSモジュールであるが、モバイル端末20の位置が取得できるのであればどのような態様であってもよい。
次に、SDK部24は、近隣店舗判定要求45を生成し、サーバ制御部11に送信する(S252)。図47の(a)に示されるように、近隣店舗判定要求45は、アプリユーザID45a、アプリID45b、および位置情報45cを含む。
続いて、SDK部24は、サーバ制御部11から近隣店舗情報46を受信する(S253)。図47の(b)に示されるように、近隣店舗情報46は、近隣店舗の有無を示す応答46aを含む。
近隣店舗がある場合、すなわち、近隣店舗情報46に近隣店舗が有ることを示す応答46aが含まれる場合(S254でYes)、SDK部24は、ゲーム部23に表示切替要求を送信する(S255)。
次に、近隣店舗判定処理についてフローチャートを用いて詳細に説明する。図48は、近隣店舗判定処理のフローチャートである。
サーバ制御部11は、受信した近隣店舗判定要求45から、アプリユーザID45a、アプリID45b、および位置情報45cを取得する(S261)。続いて、サーバ制御部11は、店舗属性情報131を参照して店舗の位置が所定の範囲内である店舗についての店舗属性情報を取得する(S262)。サーバ制御部11は、例えば、位置情報45cが示す位置から500mの範囲内の店舗属性情報を取得する。
店舗属性情報を1つ以上取得できた場合(S263でYes)、近隣店舗が有ることを示す応答46aを含む近隣店舗情報46を生成し、SDK部24に送信する(S264)。店舗属性情報を取得できなかった場合(S263でNo)、近隣店舗が無いことを示す応答46aを含む近隣店舗情報46を生成し、SDK部24に送信する(S265)。
次に、来店情報取得処理についてフローチャートを用いて詳細に説明する。図49は、来店情報取得処理のフローチャートである。図50は、チェックイン要求(図50の(a))および報酬付与情報(図50の(b))の一例を示す図である。図51は、チェックインに用いられる2次元コードの一例を示す図である。
まず、SDK部24は、モバイル端末20が備える撮像部を起動し、撮像部に2次元コードを読み取らせることによって2次元コードから店舗ID(店舗IDを含む識別情報)を取得する(S271)。図51に示されるように、店舗30には2次元コードが印刷されたパネルが設置されており、この2次元コードは、店舗IDを情報として含む。ユーザは、店舗30に来店してモバイル端末20によって2次元コードの読み取りを行う。2次元コードは、例えば、QRコード(登録商標)であるが、その他の2次元コードであってもよい。また、2次元コードに代えてバーコード等、その他の識別情報が用いられてもよい。なお、ステップS271において取得されるIDは、後述する購買IDであってもよい。
続いて、SDK部24は、モバイル端末20が備える位置情報取得部を起動し、位置情報を取得する(S272)。
次に、SDK部24は、チェックイン要求47を生成し、サーバ制御部11に送信する(S273)。図50の(a)に示されるように、チェックイン要求47は、アプリユーザID47a、アプリID47b、位置情報47c、および店舗又は購買ID47dを含む。
続いて、SDK部24は、サーバ制御部11から報酬付与情報48を受信する(S274)。図50の(b)に示されるように、報酬付与情報48は、報酬付与の有無を示す応答48aを含む。
報酬付与がある場合(S275でYes)、SDK部24は、ゲーム部23に報酬画面の表示を行う旨を通知する(S276)。そして、上述の報酬画面表示処理が行われる。なお、実際ここで行われる報酬画面表示処理には、上述の報酬画面表示処理とは、広告バナーが表示されるなどの差異がある。
次に、チェックイン処理(購買処理)についてフローチャートを用いて詳細に説明する。図52は、チェックイン処理(購買処理)のフローチャートである。図53は、報酬出現確率情報145の一例を示す図である。図54は、広告情報132の一例を示す図である。図55は、購入者特典情報133の一例を示す図である。
サーバ制御部11は、SDK部24からチェックイン要求47を受信し、アプリユーザID47a、アプリID47b、位置情報47c、および店舗又は購買ID47dを受信したチェックイン要求47から取得する(S281)。
ここで、サーバ制御部11は、店舗又は購買ID47dが店舗IDか、又は購買IDかを判定するために、購入者特典情報133を参照して店舗又は購買ID47dと購買IDが一致する購入者特典情報133aを取得する(S282)。ここで購入者特典情報133aを取得できなかった場合(S283でNo)、サーバ制御部11は、店舗又は購買ID47dは、購買IDであると判定し、店舗属性情報131を参照して、店舗又は購買ID47dと店舗IDが一致する店舗属性情報(一例として店舗属性情報131aとする)を取得する(S284)。なお、購入者特典情報133aを取得できた場合は、(S283でYes)、後述する購入者特典付与処理が行われる(S296)。
ステップS284において取得の対象となる店舗属性情報131aは、店舗ID47d(以下、店舗又は購買ID47dではなく、店舗ID47dと記載する)、および、取得した位置情報47cが示す位置に近接する位置を示す位置情報(緯度および経度)を有する店舗属性情報131aである。ここで、これらの条件を満たす店舗属性情報131aを取得できなかった場合(S285でNo)は、サーバ制御部11は、報酬付与無しを示す応答を含む報酬付与情報をSDK部24に送信する(S286)。
このような、ステップS284〜ステップS286の処理は、ユーザがチェックインに基づく報酬付与を受けるためには、2次元コードを読み取るだけでは十分でなく、店舗30の近辺で2次元コードを読み取らなければならないことを意味する。このような構成によりユーザを確実に店舗30に集めることができる。
ステップS285において条件を満たす店舗属性情報131aを取得できた場合(S285でYes)、サーバ制御部11は、ユーザ達成度情報152を参照してアプリユーザID47aおよびアプリID47bを有するユーザ達成度情報152fを取得する。サーバ制御部11は、取得したユーザ達成度情報152fからユーザID152aを取り出す(S287)。そして、サーバ制御部11は、ユーザチェックインログ153を参照して、取り出したユーザID152aに対応するユーザIDを有し、かつ、時刻が当日の時刻であるチェックイン情報(一例としてチェックイン情報153aとする)を取得する(S288)。
チェックイン情報153aが取得できた場合(S289でYes)、サーバ制御部11は、報酬付与無しを示す応答を含む報酬付与情報をSDK部24に送信する(S286)。
このような、ステップS287〜ステップS289の処理は、ユーザが1日に1回だけチェックインに基づく報酬付与を受けることができるようにするために行われる。なお、チェックインに基づく報酬付与を再度受けるために必要な期間は、上記のように1日に限定されるものではなく、どのように設定されてもよい。また、期間に関係なく1回だけ報酬付与が行われる場合は、ステップS287〜ステップS289において時刻の判断が不要となる。
ステップS289においてチェックイン情報153aが取得できなかった場合(S289でNo)、サーバ制御部11は、ユーザチェックインログ153に、ユーザID152a、店舗ID47d、アプリID47b、および現在時刻を含むチェックイン情報を追加(登録)する(S290)。
次に、サーバ制御部11は、ステップS287において取得したユーザ達成度情報152fからレベル152dを取り出し、報酬出現確率情報145を参照して、アプリID47bおよびレベル152dを有する報酬出現確率情報145aを1以上取得する(S291)。
ここで、レベル152dは、ゲームの進行状況を示す進行レベルを意味し、レベル152dは、進行レベルに応じて報酬の内容を変えるために用いられる。
例えば、報酬として付与されるスタンプまたはアイテムの数は、ゲームの進行レベルが進む程多く設定される。一般に、ゲームにおいては、ゲームの進行レベルが進むほど難易度が上がるため、ゲームバランスを保つために上記のように設定される。
次に、サーバ制御部11は、取得した1以上の報酬出現確率情報145aの抽選を行う(S292)。抽選は、報酬出現確率情報に含まれる報酬出現確率に基づいて行われる。また、サーバ制御部11は、抽選した報酬出現確率情報に含まれる報酬IDを取り出す(S293)。一方で、サーバ制御部11は、広告情報132から店舗ID47dに関連する広告情報132aを取り出す(S294)。なお、広告情報132は、店舗属性情報131と組み合わせられて使用される情報であるため、広告情報132には、店舗ID等は含まれない。
最後に、サーバ制御部11は、ステップS293において取り出した報酬IDに基づいて報酬画面情報の生成処理(図40のステップS193〜S197)を行う(S295)。
なお、ステップS294において広告情報132aを取り出すことができた場合は、取り出した広告情報に含まれるバナーイメージ(バナー情報)を追加した報酬画面情報が生成される。図56は、バナーイメージを追加した報酬画面情報の一例を示す図である。なお、図56に示される報酬画面情報は、アイテム付与画面27dの表示に用いられるものであるが、スタンプシート画面27cの表示に用いられる報酬画面情報についても同様である。
図56に示される報酬画面情報42cによれば、モバイル端末20の表示部には、バナーイメージを含むアイテム付与画面27dが表示される。アイテム付与画面27dのように、バナーイメージには、例えば、チェックイン用の2次元コードが設けられた店舗にて買い物を行えばさらにスタンプが追加で付与される旨が表示されてもよい。これにより、ユーザに対して店舗30における商品の購入を促すことができる。
次に、購入者特典付与処理について説明する。図57は、購入者特典付与処理に用いられる2次元コードが印刷されたチケットの一例を示す図である。
図57に示されるチケットは、購買IDを含む2次元コードを含む名刺サイズ程度の紙であって、店舗30で商品を購入した場合に配布されるものである。実施の形態1では、商品の購入金額に応じて異なるチケットが配布される。例えば、商品の購入金額が所定の金額(ここでは1000円)未満のユーザには、図57の(a)に示されるチケットが配布され、商品の購入金額が所定の金額以上のユーザには図57の(b)に示されるチケットが配布される。つまり、ユーザの購入金額に応じて異なる種類のチケットが配布される。なお、図57に示されるチケットは、商品購入の対価として配布されるため、店舗30に設けられたチェックイン用の2次元コード(図51)とは異なり、店舗30の近隣において読み取られる必要はない。
以下、購入者特典付与処理(図52のステップS283でYesの場合の処理)について、フローチャートを用いて詳細に説明する。図58は、購入者特典付与処理のフローチャートである。図59は、購入者特典報酬情報146の一例を示す図である。
図52のステップS283において取得した購入者特典情報133aの使用済みフラグが「TRUE」である場合(S301でYes)、サーバ制御部11は、報酬付与無しを示す応答を含む報酬付与情報をSDK部24に送信する(S302)。
図52のステップS283において取得した購入者特典情報133aの使用済みフラグが「FALSE」である場合(S301でNo)、サーバ制御部11は、購入者特典報酬情報146を参照して、購入者特典報酬情報146aを取得する(S303)。ここで、取得の対象となる購入者特典報酬情報146aは、購入者特典情報133aに含まれる購入者特典IDと一致する購入者特典IDを有する購入者特典報酬情報である。
続いて、購入者特典情報133aの使用済みフラグを「TRUE」に更新する(S304)。そして、サーバ制御部11は、取得した購入者特典報酬情報146aに含まれる報酬IDに基づいて報酬画面情報の生成処理(図40のステップS193〜S197)を行う(S305)。
以上説明したように、実施の形態1に係るゲーム報酬付与システム100によれば、ユーザは、ゲーム進行させて得られる報酬と同じ態様の報酬をチェックインに基づいて得ることができる。
ゲーム報酬付与システム100においては、小さな達成の積み重ねをスタンプの押印のような効果的な視覚効果で表現し、大きな達成と報酬につなげるゲーム的手法をユーザの現実の行動(店舗への来店)に適用しているといえる。このような手法は、ゲーミフィケーションと呼ばれ、効果的であることが実証されている。なお、ゲーミフィケーションとは、ゲームのメカニズムを健康・教育等の他分野へ応用し、これらを改善する方法論を意味する。
また、ゲーム報酬付与システム100を実現するためには、既存のゲーム用アプリケーション(ゲーム部23)に上記SDK(SDK部24)を組み込むだけでよい。言い換えれば、既存のゲーム用アプリケーションに、上述のチェックインに基づく報酬付与機能を付加することは容易である。つまり、ゲーム報酬付与システム100は、汎用性が高いといえる。
[まとめ]
以上、実施の形態1に係るゲーム報酬付与システム100を用いた情報提供方法について説明した。ここで、ゲーム報酬付与システム100は、ゲームの進行レベルに応じてゲーム報償を得るタイプのゲーム用アプリケーションを搭載し且つディスプレイを有するモバイル端末20とネットワーク40を介して接続される。
ここで、ゲーム報酬付与システム100は、情報管理システムの一例であり、モバイル端末20は、情報機器の一例である。また、ゲーム報償は、具体的には、ゲーム上で得られるスタンプまたはアイテムである。
実施の形態1に係る情報提供方法においては、所定の店舗を示す店舗IDを含む識別情報(2次元コードに含まれる情報)を取得したモバイル端末20からネットワーク40を介して、店舗IDと共にモバイル端末20において起動中のゲーム用アプリケーションを示すアプリID及びゲーム用アプリケーションのユーザを示すユーザID(アプリユーザID)を受信する。
そして、実施の形態1に係る情報提供方法においては、アプリID及びアプリユーザIDに応じて、第1データベース(ユーザ情報DB15)、及び、第2データベース(ゲームアプリ情報DB14)を参照して、ゲームの進行レベルに応じた第1ゲーム報償が付与される旨の第1指示データ(報酬画面情報)を、ネットワーク40を介してモバイル端末20に送信する。
ここで、ユーザ情報DB15内のユーザ達成度情報152においては、アプリID及びユーザIDと対応付けてユーザによるゲームの進行レベルが管理されている。また、ゲームアプリ情報DB14の報酬出現確率情報145においては、アプリID及び進行レベルに対応して付与される第1ゲーム報償を示す第1ゲーム報償ID(報酬ID)が管理されている。
また、上記情報提供方法においては、具体的には、登録されている登録店舗を管理する第3データベース(店舗情報DB13の店舗属性情報131)を参照して、受信した店舗ID示す店舗が登録店舗に含まれるか否かを判断する(図52のS285)。そして、受信した店舗ID示す店舗が登録店舗に含まれる場合、第1指示データを、ネットワーク40を介してモバイル端末20に送信する(図52のS295)。
また、上記識別情報は、所定の店舗の位置を示す第1位置情報を含む(識別情報に含まれる店舗IDが店舗属性情報131において位置情報(緯度および経度)と対応付けられている)。
そこで、上記情報提供方法においては、モバイル端末20からモバイル端末20の位置を示す第2位置情報を、GPSシステムを用いて取得する(図52のS281)。そして、第2位置情報が示す位置が、第1位置情報が示す位置から所定距離の範囲内にある場合(図52のS285でYes)、第1指示データを、ネットワーク40を介してモバイル端末20に送信する(図52のS295)。
また、上記情報提供方法においては、第1指示データがモバイル端末に送信された後、アプリIDが示すアプリケーションを起動しているユーザIDが示すユーザに対して、第1ゲーム報償を既に付与した旨を示す状態情報(報酬付与済みフラグが「TRUE」)を管理する。
また、第1指示データは、店舗IDが示す店舗にて購買すればさらにゲーム報償が追加で付与される旨の広告情報(図56のバナーイメージ)を含む。そこで、上記情報提供方法においては、店舗30にて商品又はサービスを購買したことを示す購入ID(図57に示される2次元コードに含まれる購買ID)を読み取ったモバイル端末20からネットワーク40を介して、購入IDと共にアプリIDを受信する(図52のS281)。
そして、アプリIDに応じて、アプリID及びアプリIDに対応して付与される第2ゲーム報償を示す第2ゲーム報償ID(報酬ID)を管理する第3データベース(ゲームアプリ情報DB14の購入者特典報酬情報146)を参照して(図58のS303)、第2ゲーム報償が追加で付与される旨の第2指示データ(報酬画面情報)を、ネットワーク40を介してモバイル端末20に送信する(図58のS305)。
また、第3データベースは、アプリID及び第2ゲーム報償IDと対応付けて、どの価格帯の商品又はサービスを購入したかを示す特典ID(購入者特典ID)を管理している。
そこで、上記情報提供方法では、購入ID及び特典IDを読み取ったモバイル端末20からネットワーク40を介して、購入ID及び特典IDと共にアプリIDを受信する(図52のS281)。そして、特典ID及びアプリIDに応じて、第3データベースを参照して(図58のS303)、第2ゲーム報償が追加で付与される旨の第2指示データを、ネットワーク40を介してモバイル端末20に送信する。
このような情報提供方法によれば、ゲームのプレーヤに現実の店舗30への来店の動機を与えることができる。
[実施の形態1の変形例]
上記実施の形態1において説明された複数のデータベース(店舗情報DB13、ゲームアプリ情報DB14、およびユーザ情報DB15)は、1つのデータベースとして構成されてもよい。また、上記実施の形態1において説明されたデータベースに記憶される情報の内容や、情報のデータベースへの振り分けは、一例であり、特に限定されるものではない。また、上記実施の形態1では、サーバ10が複数のデータベースを備えたが、複数のデータベースは、サーバ10の外部に設けられてもよい。
また、上記実施の形態1においてゲーム画面27b、スタンプシート画面27c、またはアイテム付与画面27dには、チェックインに基づく報酬付与のイベントが開催されている旨の広告(バナー広告)が表示されてもよい。また、このような広告は、モバイル端末20が備える位置情報取得部の位置情報の取得により、ユーザが店舗30の位置から所定の範囲内に位置している場合に表示されてもよい。これにより、さらに店舗30へ集客を図ることができる。なお、このような広告の表示は、上記実施の形態1で説明した、モバイル端末20のユーザ(モバイル端末20)が店舗30の近くにいるか否かの判定処理と同様の処理を用いて実現可能である。
(実施の形態2)
[実施の形態2に係る情報処理方法の基礎となった知見]
上記実施の形態1では、チェックインの際には、モバイル端末20の撮像部により2次元コードの読み取りが行われた。しかしながら、モバイル端末20が店舗IDを取得できるのであれば、2次元コードの読み取り以外でチェックインが行われてもよい。例えば、店舗30において無線通信によって店舗ID(実施の形態2では、後述するビーコン装置のデバイスID)が配信されることによりチェックインが行われてもよい。
例えば、店舗30内にビーコン装置を設置し、ビーコン装置から送信される無線信号であるビーコン信号をモバイル端末20で受信することにより、チェックインが行われる構成が考えられる。
このような構成においては、ビーコン装置が送信するビーコン信号の盗聴や、ビーコン装置の盗難が行われると、ゲームのプレーヤに現実の店舗30への来店の動機を与えることが難しくなる。したがって、ビーコン装置の不正利用を抑制するための対策が課題となる。
そこで、実施の形態2では、ビーコン装置の不正利用を抑制することができる情報処理方法(ゲーム報酬付与システム)について説明する。なお、以下の実施の形態2では、実施の形態1との相違点を中心に説明し、実質的に同一の内容については説明が省略される場合がある。
[構成]
まず、実施の形態2に係るゲーム報酬付与システムの構成について説明する。図60は、実施の形態2に係るゲーム報酬付与システムの機能構成を示す図である。
図60に示されるように、実施の形態2に係るゲーム報酬付与システム100aは、サーバ10a(サーバ装置の一例)と、モバイル端末20a(携帯端末の一例)とを備える。サーバ10aとモバイル端末20aとはネットワーク40(例えば、インターネット)を通じて接続されている。また、図60には、モバイル端末20aにおいて実行されるゲームのコラボレーションの対象となる店舗30aも図示されている。
モバイル端末20aとモバイル端末20との違いは、SDK部24aの処理内容である。また、モバイル端末20aは、GPS(Global Positioning System)部21a(実施の形態1の位置情報取得部。実施の形態1では図示せず。)と、無線通信部21bとを備える点もモバイル端末20と異なる。
GPS部21aは、モバイル端末20aの現在位置情報を取得するGPSモジュールである。現在位置情報の取得は、制御部21がGPS部21aを制御することにより行われる。
無線通信部21bは、モバイル端末20aと、店舗30aに設けられた複数のビーコン装置50a〜50nとが無線通信を行うための無線通信モジュールである。モバイル端末20aと複数のビーコン装置50a〜50nとの間の信号の送受信は、制御部21が無線通信部21bを制御することにより行われる。無線通信部21bが行う無線通信の通信規格は、例えば、Bluetooth(登録商標)であるが、無線LANなど、その他の通信規格であってもよい。
サーバ10と、サーバ10aとの違いは、サーバ制御部11aの処理内容である。また、サーバ10aは、サーバ記憶部16を備える点もサーバ10と異なる。さらに、実施の形態2では、店舗30aに複数のビーコン装置50a〜50nと、PC60とが設けられている点が実施の形態1と異なる。
以下、ゲーム報酬付与システム100aの詳細な機能構成について説明する。図61は、ゲーム報酬付与システム100aの詳細な機能構成を示すブロック図である。なお、図61では、以下の実施の形態2の説明において主に説明される構成要素が図示されており、図60において図示された構成要素のうち一部の構成要素については図示が省略されている。
また、実施の形態1と同様に、以下の実施の形態2では、制御部21がゲームアプリを実行することによって行われる処理は、単に「ゲーム部23は・・する」または「SDK部24aは・・する」と記載される。また、SDK部24aの構成要素によって行われる処理も同様に、構成要素を主体とした表現で記載される。
また、モバイル端末20a(SDK部24a)とサーバ10a(サーバ制御部11a)との間の通信(例えば、ビーコン通信部73と、ビーコン制御部83との間の通信)は、制御部21(通信部)及びネットワーク40を通じて行われるものとする。
また、モバイル端末20a(SDK部24a)と複数のビーコン装置50a〜50nとの間の通信は、無線通信部21bを通じて行われるものとする。つまり、モバイル端末20a(SDK部24a)と複数のビーコン装置50a〜50nとの通信は、モバイル端末20aの無線通信機能を利用して行われる。
まず、モバイル端末20aのSDK部24aについて詳細に説明する。SDK部24aは、情報収集部71と、広告表示部72と、ビーコン通信部73と、リワード付与部74とを備える。
情報収集部71は、ユーザの性別、年齢、及び、住所(居所)などのユーザに関する情報を取得する。また、情報収集部71は、ユーザに関する情報をサーバ10aの情報取得部81に送信する。なお、ユーザに関する情報は、例えば、情報収集部71がモバイル端末20aの表示部に表示する入力受付画面を通じて取得されるが、モバイル端末20a内に予め記憶されていてもよい。
広告表示部72は、図14に示される店舗コラボ情報の取得処理と同様の処理、及び、図25に示される店舗コラボ画像の描画処理と同様の処理を行う。
ビーコン通信部73は、店舗30aに設置されたビーコン装置(例えば、ビーコン装置50a)からビーコン信号を受信し、受信したビーコン信号に含まれるデバイスIDをビーコン制御部83に送信する。また、ビーコン通信部73は、アプリID、アプリユーザID、及びモバイル端末20aの現在位置情報をビーコン制御部83に送信する。アプリID及びアプリユーザIDは、ゲーム部23に含まれる。また、現在位置情報は、モバイル端末20aが備えるGPS部21aから取得される。
リワード付与部74は、図36に示される報酬画面表示処理と同様の処理、及び、図42に示される報酬付与処理と同様の処理を行う。
次に、サーバ10aのサーバ制御部11aについて説明する。サーバ制御部11aは、情報取得部81と、広告配信部82と、ビーコン制御部83と、リワード制御部84と、広告指定受付部85とを備える。
情報取得部81は、情報収集部71からユーザに関する情報を取得し、取得した情報をアプリ利用者情報としてサーバ記憶部16に記憶する。
広告配信部82は、図18に示される店舗コラボ情報の生成処理と同様の処理、及び、図18に示される店舗コラボ情報の送信処理と同様の処理を行う。
なお、実施の形態2では、実施の形態1と異なり、広告配信部82が生成する店舗コラボ情報の内容を、店舗30aに設けられたPC60を通じて指定することも可能である。具体的には、広告指定受付部85は、店舗30aの広告担当者がPC60を通じて入力する、コラボレーションの対象となる店舗の指定や、ゲーム報酬の内容の指定を受け付ける。
また、店舗30aの広告担当者は、アプリ利用者情報に基づいて、店舗コラボ情報を送信するモバイル端末20aを指定することも可能である。つまり、店舗30aの広告担当者は、PC60を通じて広告の配信先を指定することができる。店舗30aの広告担当者は、具体的には、例えば、30歳以上のユーザのモバイル端末にのみ店舗コラボ情報を送信することができる。
なお、広告指定受付部85が受け付けた指定の内容は、例えば、サーバ記憶部16に記憶される。
ビーコン制御部83は、モバイル端末20aの周辺に存在するビーコン装置情報の提供、異常度の算出、及び、算出した異常度に応じた処理を行う。ビーコン制御部83は、具体的には、モバイル端末20aのビーコン通信部73から、当該モバイル端末20aの現在位置を示す現在位置情報(第一位置情報の一例)を取得する。また、ビーコン制御部83は、取得された現在位置情報と、ビーコン装置50aの設置位置を示す設置位置情報(後述する、ビーコンID情報)とを比較することにより、モバイル端末20aの周囲に存在するビーコン装置に関する情報の提供を行う。また、ビーコン制御部83は、取得された現在位置情報と、ビーコン装置50aの設置位置を示す設置位置情報とを比較することにより、ビーコン装置50aの異常度を算出し、算出された異常度に応じた処理を行う。ビーコン制御部83のこのような動作は、サーバ10aの特徴的な動作であり、詳細については後述する。
ビーコン制御部83内には、鍵情報86a〜86nが保持(記憶)されている。鍵情報86a〜86nは、それぞれビーコン装置50a〜50nと暗号化通信を行うための鍵情報である。鍵情報86aによって暗号化された信号は、ビーコン装置50aが保持する鍵情報51aによって復号可能であり、鍵情報51aによって暗号化された信号は、鍵情報86aによって復号可能である。同様に、鍵情報86nによって暗号化された信号は、ビーコン装置50nが保持する鍵情報51nによって復号可能であり、鍵情報51nによって暗号化された信号は、鍵情報86nによって復号可能である。なお、鍵情報51nと鍵情報86nは同一であってもよい(共通鍵暗号)。
リワード制御部84は、図40に示される報酬画面情報の生成処理と同様の処理、及び図44に示される報酬情報生成処理と同様の処理を行う。
次に、店舗30aに設置された構成要素(ビーコン装置50a〜50n及びPC60)について説明する。
ビーコン装置50a〜50nのそれぞれは、店舗30aに設けられ、無線通信用の電波であるビーコン信号を周期的に繰り返し送信する装置である。ビーコン信号には、例えば、当該ビーコン信号を送信したビーコン装置のデバイスID(識別情報)が含まれる。ビーコン装置50aは、第一ビーコン装置の一例であり、ビーコン装置50nは、第二ビーコン装置の一例である。
ビーコン装置50a〜50nの態様は、特に限定されるものではないが、実施の形態2では、3cm×3cm程度の基板に回路部品が実装された小さなモジュールが使用される。また、実施の形態2では、ビーコン装置50a〜50nは、ボタン電池で駆動するが、メンテナンスの観点から、電池交換の頻度が抑えられることが望ましい。そこで、ビーコン装置50a〜50nは、消費電力を抑えるために、GPSモジュールなどの自装置の位置情報を取得するための構成要素を有しない。
また、上述のように、ビーコン装置50a〜50nのそれぞれは、ビーコン制御部83と暗号化通信を行うための鍵情報51a〜51nを保持している。なお、ビーコン装置50a〜50nは、サーバ10aと直接通信を行う構成要素を有しないため、ビーコン装置50a〜50nがサーバ10aと通信を行う場合には、モバイル端末20aを介して情報の送受信が行われる。しかしながら、モバイル端末20aは、鍵情報51a〜51nに対応する鍵情報を保持していないため、モバイル端末20aにおいて情報の改ざん等を行うことは難しい。
なお、実施の形態2では、1つの店舗30a、つまり、1つの建物(空間)内に複数のビーコン装置が設置されているが、店舗30aには少なくとも1つのビーコン装置が設置されていればよく、複数設置される必要はない。
PC60は、店舗30aに設けられたパーソナルコンピュータであり、店舗30aの広告担当者が店舗コラボ情報の内容の指定などに使用する。なお、PC60は、必ずしも店舗30aに設けられる必要はない。また、PC60に代えて、スマートフォンなどの他の情報通信端末が用いられてもよい。
最後に、サーバ記憶部16について説明する。図62は、サーバ記憶部16に記憶される情報を示す図である。
図62に示されるように、サーバ記憶部16には、ビーコンID情報161と、チェックイン履歴162とが記憶される。また、図示されないが、サーバ記憶部16には、上述のアプリ利用者情報、及び、広告指定受付部85が受け付けた指定の内容も記憶される。
ビーコンID情報161は、第二位置情報の一例であって、サーバ10aによって予め管理されている情報であり、具体的には図63に示されるような情報である。図63は、ビーコンID情報の一例を示す図である。
図63に示されるように、ビーコンID情報161においては、複数のビーコン装置のデバイスIDと、当該ビーコン装置の設置位置とが対応付けられた情報である。なお、ビーコンID情報161には、その他に、複数のビーコン装置それぞれのデバイス名、設置店舗の店舗ID、設置場所、電波強度(RSSI:received signal strength intensity)、不正フラグなどの情報も含まれる。
チェックイン履歴162は、チェックインのログである。図64は、チェックイン履歴の一例を示す図である。後述するように、ビーコン装置50a〜50nからビーコン信号を受信したモバイル端末20aは、ビーコン信号に含まれるデバイスIDをサーバ10aに送信する。このとき、サーバ10aは、モバイル端末20aから送信されるデバイスIDを、当該デバイスIDの受信日時と対応付けてチェックイン履歴としてサーバ記憶部16に記憶する。同様に、サーバ10aは、他のモバイル端末から送信されるデバイスIDの受信日時についても、サーバ記憶部16にチェックイン履歴162として記憶する。
つまり、複数のモバイル端末(第二携帯端末の一例)のそれぞれは、ビーコン装置50aから受信したビーコン信号に含まれるビーコンID(第一IDの一例)を、サーバ10aに送信する。サーバ10aは、複数のモバイル端末のそれぞれから送信されるビーコンIDの受信日時をチェックイン履歴162として管理する。同様に、複数のモバイル端末(第三携帯端末の一例)のそれぞれは、ビーコン装置50aとは異なるビーコン装置(例えば、ビーコン装置50n)から受信したビーコン信号に含まれるビーコンID(第二IDの一例)を、サーバ10aに送信する。サーバ10aは、さらに、複数のモバイル端末のそれぞれから送信されるビーコンIDの受信日時をチェックイン履歴162として管理する。
なお、図64に示されるように、チェックイン履歴162には、その他に、チェックイン時におけるモバイル端末の現在位置であるチェックイン位置、アプリユーザID、及び、アプリID(図示せず)などの情報も含まれる。
なお、以下の実施の形態2では、ビーコン装置50aのデバイスIDの受信日時からなるチェックイン履歴は、第一チェックイン履歴とも記載される。また、複数のビーコン装置50a〜50nのうちビーコン装置50a以外のビーコン装置のデバイスIDの受信日時からなるチェックイン履歴は、第二チェックイン履歴とも記載される。
[動作]
次に、ゲーム報酬付与システム100aの動作について説明する。図65Aは、ゲーム報酬付与システム100aの動作のシーケンス図である。なお、図65Aの動作は、ユーザが店舗30aに来店し、モバイル端末20a内に記憶されたゲームアプリを起動したときに行われる。具体的には、例えば、アプリ起動中の画面からユーザがトリガボタンを押下することにより図65Aの動作が開始される。
まず、モバイル端末20aのビーコン通信部73は、モバイル端末20aの現在位置付近のデバイスのデバイスIDの取得要求をサーバ10aのビーコン制御部83に送信する(S311)。このとき、ビーコン通信部73は、GPS部21aを起動し、GPS部21aから取得したモバイル端末20aの現在位置情報を、デバイスIDの取得要求に含めて送信する。
次に、ビーコン制御部83は、モバイル端末20aの現在位置の近傍に位置するビーコン装置のデバイスIDのリストを送信する(S312)。例えば、ビーコン制御部83は、サーバ記憶部16内のビーコンID情報161を参照して、モバイル端末20aの現在位置から所定の範囲内(例えば、1km圏内)に設置されているビーコン装置を選択し、選択したビーコン装置のデバイスIDのリストをビーコン通信部73に送信する。ただし、ビーコンID情報161において不正フラグの値が「ペンディング」、「一時停止」、「完全停止」を示すビーコン装置は、不正に利用されている可能性がある。このため、ビーコン制御部83は、このようなビーコン装置のデバイスIDは、上記リストには含めない。
一方、店舗30aに設けられた複数のビーコン装置50a〜50nのそれぞれ(例えば、ビーコン装置50a)は、ビーコン信号を周期的に繰り返し送信している(S313)。ここで、ビーコン通信部73は、ビーコン装置50aからビーコン信号を受信すると、ビーコン装置50aに接続し(S314)、ビーコン装置50aにデバイスIDの取得要求を送信する(S315)。
デバイスIDの取得要求を受信したビーコン装置50aは、当該ビーコン装置50aのデバイスIDを含むビーコン信号をビーコン通信部73に送信する(S316)。
なお、ビーコン装置50aは、上記ステップS313〜ステップS316のように、ビーコン装置50aとモバイル端末20aとの間の双方向通信によりデバイスIDをモバイル端末20aに送信してもよいし、上記ステップS313においてデバイスIDを含むビーコン信号をモバイル端末20aへ送信(ブロードキャスト)してもよい。図65Bは、ゲーム報酬付与システム100aのこのような動作のシーケンス図である。
図65Bに示されるようなゲーム報酬付与システム100aの動作においては、上記ステップS314〜ステップS316の処理が省略され、ステップS313においてビーコン装置50aデバイスIDを含むビーコン信号がブロードキャストされる。つまり、デバイスIDの送信のために双方向通信を行う必要がなくなり、通信の高速化、通信のための消費電力の低減が可能である。一方、ビーコン信号に含めることができる情報量には制限があるため、デバイスIDのデータ長が制限されることになる。
ビーコン通信部73は、ビーコン信号を受信すると、受信したビーコン信号に含まれるデバイスIDと、この時点でGPS部21aから取得されるモバイル端末20の現在位置情報とを含む報酬付与の要求をビーコン制御部83に送信する(S317)。なお、報酬付与の要求には、アプリID及びアプリユーザIDも含まれる。
ビーコン制御部83は、ビーコン通信部73から、報酬付与の要求を受信する(S318)。言い換えれば、ビーコン制御部83は、デバイスID及び当該モバイル端末20aの現在位置を示す現在位置情報を取得する。次に、ビーコン制御部83は、チェックイン情報を保存する(S319)。つまり、ビーコン制御部83は、モバイル端末20aから送信されるデバイスID及び現在位置情報の受信日時をチェックイン履歴162(第一チェックイン履歴)として管理(記憶)する。そして、ビーコン制御部83は、ビーコン装置50aの異常度を算出する(S320)。ビーコン制御部83は、例えば、サーバ記憶部16に記憶されたビーコンID情報161を参照してモバイル端末20aの設置位置を読み出し、読み出した設置位置と取得された現在位置情報とを比較することによりビーコン装置50aの異常度を算出する。そして、ビーコン制御部83は、ステップS320において算出された異常度に応じた処理を行う(S321)。
[異常度の算出方法]
次に、図65AのステップS320の異常度の算出方法について詳細に説明する。なお、以下の説明では、一例として、最も異常度が高い場合は、異常度=1、最も異常度が低い場合、つまり正常な場合は、異常度=0とする。
上述のようにサーバ記憶部16には、ビーコンID情報161が記憶されている。つまり、ビーコン制御部83は、ビーコン装置50aの設置位置を示すビーコンID情報161を予め管理している。
ここで、ステップS318で取得されたモバイル端末20aの現在位置情報が示す位置が、ビーコンID情報161が示すビーコン装置50aの設置位置と大きく異なる場合、ビーコン装置50aが盗難等によりビーコンID情報161が示す設置位置と異なる位置に設置されていることが疑われる。
そこで、ビーコン制御部83は、例えば、ビーコンID情報161が示す設置位置と、モバイル端末20aの現在位置との差が所定値以内であればビーコン装置50aが正常(異常度=0)、所定値よりも大きい場合異常(異常度=1)と判断する。
上記の判断は最もシンプルな例である。実施の形態2では、ビーコン制御部83は、ステップS318で取得されたモバイル端末20aの現在位置情報が、ビーコンID情報161が示す設置位置と、取得された現在位置情報が示す現在位置との差が大きいほど、異常度を高く算出する。
なお、異常度の算出においては、上記のような現在位置情報以外の情報が用いられてもよい。上述のように、ビーコン制御部83は、複数のモバイル端末のそれぞれから送信されるビーコン装置50aのビーコンIDの受信日時を第一チェックイン履歴として管理(サーバ記憶部16に記憶)している。異常度の算出には、この第一チェックイン履歴が用いられてもよい。
店舗30aにビーコン装置50aが設けられる場合には、チェックイン数は、店舗ごと、時間帯ごとにばらつく傾向がある(例えば、店舗1では、12時〜13時の時間帯は、チェックイン数が比較的多いが、20時〜21時の時間帯は、比較的少ない、など)。
しかしながら、ビーコン装置50aが不正に利用されている場合には、上記チェックイン数の傾向が通常と異なったり、チェックイン数が通常よりも激減していたりする場合が多い。つまり、このような場合、現在の第一チェックイン履歴は、過去の第一チェックイン履歴と比べて大きく異なるものと考えられる。
したがって、ビーコン制御部83は、ステップS318で現在位置情報の取得を行ったときの第一チェックイン履歴と、これよりも前の過去の第一チェックイン履歴とを比較することにより、異常度を算出してもよい。例えば、ビーコン制御部83は、現在のチェックイン数の分布と、過去のチェックイン数の分布間との類似度を算出し、算出した類似度が低いほど異常度が高いと算出する。なお、類似度の算出には、公知の手法が用いられる。
例えば、モバイル端末20aのユーザが、GPS部21aのデータ改ざん等を行った場合、上記、ビーコン装置50aの示す設置位置と、モバイル端末20aの現在位置との比較によっては異常度を正しく算出できない可能性がある。このような場合、チェックイン履歴を用いた異常度の算出が有効である。
また、異常度の算出においては、店舗30aに設置されたビーコン装置50a〜50nのうち、ビーコン装置50a以外のビーコン装置(例えば、ビーコン装置50n)のデバイスIDの受信日時からなる第二チェックイン履歴が用いられてもよい。具体的には、ビーコン制御部83は、第一チェックイン履歴と、第二チェックイン履歴とを比較することにより、異常度を算出してもよい。
上述のように、ビーコン制御部83は、複数のモバイル端末のそれぞれから送信されるビーコン装置50a以外のビーコン装置のビーコンIDの受信日時を第二チェックイン履歴として管理(サーバ記憶部16に記憶)している。ここで、第二チェックイン履歴を構成するチェックインの数の分布と、第一チェックイン履歴を構成するチェックイン数の分布とが大きく異なる場合、ビーコン装置50aは、他のビーコン装置と利用のされ方が異なるものと考えられる。つまり、ビーコン装置50aは、店舗30a以外の場所に設置されて不正に利用されていると判断できる。
例えば、ビーコン制御部83は、第一チェックイン履歴を構成するチェックインの数の分布と、第二チェックイン履歴を構成するチェックイン数の分布との類似度を算出し、算出した類似度が低いほど異常度が高いと算出する。なお、類似度の算出には、公知の手法が用いられる。
また、上述のように第一チェックイン履歴には、アプリユーザIDが含まれるが、同一のアプリユーザIDの数に基づいて異常度が算出されてもよい。例えば、ビーコン制御部83は、第一チェックイン履歴に含まれる同一のアプリユーザIDの数に応じて異常度を算出してもよい。
図66に示されるように、同一のアプリユーザIDのチェックインが所定数以上連続する場合や、同一のアプリユーザIDのチェックインの割合(頻度)が所定値よりも高い場合が考えられる。図66は、異常発生時のチェックイン履歴162aの一例を示す図である。図66に示されるような場合、特定のユーザがビーコン装置50aを不正利用していることが疑われる。そこで、このような場合、ビーコン制御部83は、異常度が高いと算出してもよい。また、ビーコン制御部83は、例えば、所定期間内に含まれる同一のアプリユーザIDの数が多いほど、異常度が高いと算出してもよい。ただし、ビーコン装置50aが正常に利用されているが、たまたま特定のユーザのみがその店舗に来店している、という場合も十分に考えられる。このため、所定期間内に含まれる同一のアプリユーザIDの数は、上記過去履歴の類似度比較とあわせて、補助的な条件として用いられる。
以上説明したように、異常度の算出には、ビーコン装置50aの設置位置とモバイル端末20aの現在位置とのずれ、または、チェックイン履歴162が用いられる。なお、異常度の算出には、ビーコン装置50aの設置位置とモバイル端末20aの現在位置とのずれと、チェックイン履歴162との両方が用いられてもよい。この場合は、それぞれの手法で異常度が算出された後、算出された異常度の重み付け和が算出されること等により、1つの異常度が決定される。
[異常度に応じた処理]
次に、図65AのステップS321の異常度に応じた処理について説明する。ビーコン制御部83は、上述のように算出した異常度に応じた処理を実行する。実施の形態2では、ビーコン制御部83は、異常度に応じて5種類の処理を行う。図67は、ビーコン制御部83の異常度に応じた処理の決定方法のフローチャートである。なお、図67のフローチャートで使用される異常度の閾値や、閾値の数などは一例である。
まず、ビーコン制御部83は、算出された異常度が第1の閾値である0.2よりも小さいか否かを判断する(S331)。算出された異常度が0.2よりも小さい場合(S331でYes)、ビーコン制御部83は、ビーコン装置50aを用いた報酬付与認証処理(アクション1)を実行する(S332)。
算出された異常度が0.2以上である場合(S331でNo)、ビーコン制御部83は、算出された異常度が第2の閾値である0.4よりも小さいか否かを判断する(S333)。算出された異常度が0.4よりも小さい場合(S333でYes)、ビーコン制御部83は、ビーコン通信部73にビーコン装置50aとは異なる他のビーコン装置(例えば、ビーコン装置50n)を用いた報酬付与認証処理(アクション2)を実行する(S334)。
算出された異常度が0.4以上である場合(S333でNo)、ビーコン制御部83は、算出された異常度が第3の閾値である0.6よりも小さいか否かを判断する(S335)。算出された異常度が0.6よりも小さい場合(S335でYes)、ビーコン制御部83は、報酬付与をペンディングする処理(アクション3)を実行する(S336)。
算出された異常度が0.6以上である場合(S335でNo)、ビーコン制御部83は、算出された異常度が第4の閾値である0.8よりも小さいか否かを判断する(S337)。算出された異常度が0.8よりも小さい場合(S337でYes)、ビーコン制御部83は、ビーコン装置50aの機能を一時停止する処理(アクション4)を実行する(S338)。
算出された異常度が0.8以上である場合(S337でNo)、ビーコン制御部83は、ビーコン装置50aの機能を完全に停止する処理(アクション5)を実行する(S339)。
以下、異常度に応じた各処理の詳細について説明する。
[報酬付与認証処理(アクション1)]
まず、報酬付与認証処理(アクション1)について詳細に説明する。図68は、報酬付与認証処理のシーケンス図である。報酬付与認証処理は、異常度が低い場合(正常な場合)に行われる所定の処理であり、報酬付与認証処理が完了すると、ゲームアプリ内で使用されるゲーム報酬(例えば、スタンプまたはアイテム)がデータ上で付与される。
まず、サーバ10aのビーコン制御部83は、ビーコン装置50a及びモバイル端末20aにアクション1を指示する制御信号と、乱数(ワンタイムパスワード)とを生成する。なお、乱数は、通信の傍受(盗聴)に対する対策に用いられる。
ビーコン制御部83は、生成した制御信号及び乱数を、ビーコン装置50aが有する鍵情報51aに対応した鍵情報86aによって暗号化した暗号化信号をビーコン通信部73に送信する(S341)。
モバイル端末20aのビーコン通信部73は、ビーコン制御部83から暗号化信号を受信するが、モバイル端末20a内には鍵情報51aが記憶されていない。つまり、ビーコン通信部73は、暗号化信号を復号することができない。よって、ビーコン通信部73は、受信した暗号化信号をそのままビーコン装置50aに送信する(S342)。
ビーコン装置50aは、受信した暗号化信号を鍵情報51aで復号し(S343)、制御信号と乱数とを取得する。そして、ビーコン装置50aは、制御信号が示すアクション1の指示にしたがって当該指示を含む応答信号をビーコン通信部73に送信する(S344)。このとき、ビーコン装置50aは、鍵情報51aによって暗号化信号を復号することによって得られる乱数を当該鍵情報51aによって再度暗号化し、応答信号に含めて送信する。
応答信号を受信したビーコン通信部73は、応答信号に含まれるアクション1の指示にしたがって、暗号化された乱数を含む報酬付与要求をビーコン制御部83に送信する(S345)。
ビーコン制御部83は、報酬付与要求を受信し、乱数を確認して報酬を付与するための処理を行う(S346)。より具体的には、ビーコン制御部83は、まず、暗号化された乱数を鍵情報86aによって復号し、復号の結果得られる乱数が、ステップS341においてビーコン制御部83が送信した乱数と一致するかどうかを確認する。そして、一致した場合には、報酬を付与するための処理を開始する。
ここで、報酬を付与するための処理は、図40で説明した報酬画面の生成と同様の処理や、図44で説明した報酬情報生成処理と同様の処理であり、リワード制御部84によって行われる。この結果、ゲームアプリ内で使用されるゲーム報酬(例えば、スタンプまたはアイテム)がデータ上で付与される。
このように、ビーコン制御部83は、算出された異常度が所定値(ここでは、0.2)よりも低い場合、モバイル端末20aに報酬を付与するための所定の処理を行う。
[他のビーコン装置を用いた報酬付与認証処理(アクション2)]
次に、他のビーコン装置を用いた報酬付与認証処理(アクション2)について詳細に説明する。図69は、他のビーコン装置を用いた報酬付与認証処理のシーケンス図である。なお、図69では、図68と実質的に同一のステップについては図68と同様の符号が付され、説明が簡略化される。
上述のように、店舗30aには複数のビーコン装置が設置されているため、ビーコン装置50aの不正利用が疑われる場合には、ビーコン装置50a以外の他のビーコン装置(ここでは、ビーコン装置50n)を用いて報酬付与認証処理を行う。これにより、ビーコン装置50aが盗難されているような場合には、報酬付与認証処理が実施できないため、不正なゲーム報酬の取得を抑制できる。
まず、サーバ10aのビーコン制御部83は、アクション2を指示する制御信号及び乱数を含む暗号化信号をビーコン通信部73に送信する(S341)。ビーコン通信部73は、受信した暗号化信号をそのままビーコン装置50aに送信する(S342)。
ビーコン装置50aは、受信した暗号化信号を鍵情報51aで復号し(S343)、制御信号と乱数とを取得する。そして、ビーコン装置50aは、制御信号が示すアクション2の指示にしたがって当該指示と再度暗号化された乱数とを含む応答信号をビーコン通信部73に送信する(S344)。
ここで、応答信号を受信したビーコン通信部73は、応答信号に含まれるアクション2の指示(ビーコン装置50nとの通信指示)にしたがって、暗号化された乱数を含む再認証要求をビーコン制御部83に送信する(S351)。
ビーコン制御部83は、再認証要求を受信し、乱数を確認して暗号化信号を再度送信する(S352)。具体的には、ビーコン制御部83は、ビーコン装置50n及びモバイル端末20aにアクションを指示する制御信号と、乱数とを生成し、生成した制御信号及び乱数を含む、鍵情報86nによって暗号化した暗号化信号をビーコン通信部73に送信する(S352)。ビーコン通信部73は、受信した暗号化信号をそのままビーコン装置50nに送信する(S353)。
ビーコン装置50nは、受信した暗号化信号を鍵情報51nで復号し(S354)、制御信号と乱数とを取得する。そして、ビーコン装置50nは、制御信号が示すアクションの指示にしたがって当該指示と再度暗号化された乱数とを含む応答信号をビーコン通信部73に送信する(S355)。
応答信号を受信したビーコン通信部73は、応答信号に含まれるアクションの指示にしたがって、暗号化された乱数を含む報酬付与要求をビーコン制御部83に送信する(S356)。
ビーコン制御部83は、報酬付与要求を受信し、乱数を確認して報酬を付与するための処理を行う(S357)。より具体的には、ビーコン制御部83は、まず、暗号化された乱数を鍵情報86nによって復号し、復号の結果得られる乱数が、ステップS352においてビーコン制御部83が送信した乱数と一致するかどうかを確認する。そして、一致した場合には、報酬を付与するための処理を開始する。
このように、ビーコン制御部83は、算出された異常度が所定値(ここでは、0.2)以上の場合に、ビーコン装置50aとは異なるビーコン装置50nからのビーコン信号(応答信号)の取得をモバイル端末20aに指示する処理を行う。
これにより、ビーコン装置50aが盗難されているような場合には、モバイル端末20aは、ビーコン装置50aからのビーコン信号を受信できないため、ビーコン装置50aの不正な利用を抑制できる。
なお、ビーコン装置50aとは異なるビーコン装置の選択方法は、特に限定されるものではない。例えば、ビーコン制御部83は、ビーコン装置の設置位置情報を参照し、ビーコン装置50aに最も近接するビーコン装置を選択してもよい。また、ビーコン制御部83は、ビーコン装置の設置位置情報を参照し、ビーコン装置50a近傍のビーコン装置群の中からランダムにビーコン装置を選択してもよい。
[報酬付与をペンディングする処理(アクション3)]
次に、報酬付与をペンディングする処理(アクション3)について詳細に説明する。図70は、報酬付与をペンディングする処理のシーケンス図である。なお、図70では、図68と実質的に同一のステップについては図68と同様の符号が付され、説明が簡略化される。
報酬付与をペンディングする処理においては、ビーコン装置50aの不正利用が疑われる場合に、報酬を付与するための処理の開始をペンディング状態とする。ペンディング状態の間、店舗30aにて、店員がビーコン装置50aの状態を実際に確認し、正常であることが確認された場合に、報酬を付与するための処理が開始される。
まず、サーバ10aのビーコン制御部83は、ビーコンID情報161におけるビーコン装置50aのデバイスIDに対応する不正フラグを「ペンディング」に設定した後(S360)、アクション3の動作を指示する制御信号及び乱数を含む暗号化信号をビーコン通信部73に送信する(S341)。ビーコン通信部73は、受信した暗号化信号をそのままビーコン装置50aに送信する(S342)。
ビーコン装置50aは、受信した暗号化信号を鍵情報51aで復号し(S343)、制御信号と乱数とを取得する。そして、ビーコン装置50aは、制御信号が示すアクション3の指示にしたがって当該指示と再度暗号化された乱数とを含む応答信号をビーコン通信部73に送信する(S344)。
ここで、応答信号を受信したビーコン通信部73は、応答信号に含まれるアクション3の指示にしたがって、表示部にメッセージ1を表示する(S361)。図71は、メッセージ1が表示されたモバイル端末20aの模式図である。
図71に示されるように、メッセージ1では、報酬の付与がペンディングされる旨がメッセージとして表示される。
ここで、ビーコン通信部73は、さらに、上記アクション3の指示にしたがって、暗号化された乱数を含む報酬付与要求をビーコン制御部83に送信する(S362)。
ビーコン制御部83は、報酬付与要求を受信し、乱数を確認した上で報酬を付与するための処理をペンディング状態とする(S363)。ここで、ペンディング状態の解除(報酬を付与するための処理の開始)は、例えば、ビーコン装置50aが正常であることを確認した店員がPC60を通じてその旨をビーコン制御部83に通知することにより行われる。なお、正常動作が確認された場合は、ビーコン制御部83は、ビーコンID情報161におけるビーコン装置50aのデバイスIDに対応する不正フラグを「なし」にリセットする。
このように、ビーコン制御部83は、算出された異常度が所定値(ここでは、0.4)以上の場合、報酬を付与するための所定の処理を保留する処理を行う。これにより、ビーコン装置50aの状態を確認した上で、報酬を付与するための所定の処理を開始することを抑制できる。
[ビーコン装置の機能を一時停止する処理(アクション4)]
次に、ビーコン装置50aの機能を一時停止する処理(アクション4)について詳細に説明する。図72は、ビーコン装置50aの機能を一時停止する処理のシーケンス図である。なお、図72では、図68と実質的に同一のステップについては図68と同様の符号が付され、説明が簡略化される。
ビーコン装置50aの機能を一時停止する処理は、異常度が比較的高い場合に行われる処理である。
まず、サーバ10aのビーコン制御部83は、ビーコンID情報161におけるビーコン装置50aのデバイスIDに対応する不正フラグを「一時停止」に設定した後(S370)、アクション4を指示する制御信号を含む暗号化信号をビーコン通信部73に送信する(S341)。ビーコン通信部73は、受信した暗号化信号をそのままビーコン装置50aに送信する(S342)。
ビーコン装置50aは、受信した暗号化信号を鍵情報51aで復号し(S343)、制御信号を取得する。そして、ビーコン装置50aは、制御信号が示すアクション4の指示にしたがって当該指示を含む応答信号をビーコン通信部73に送信する(S344)。
ここで、応答信号を受信したビーコン通信部73は、応答信号に含まれるアクション4の指示にしたがって、表示部にメッセージ2を表示する(S371)。図73は、メッセージ2が表示されたモバイル端末20aの模式図である。
図73に示されるように、メッセージ2では、デバイスの機能が一時停止する旨がメッセージとして表示される。
一方、ビーコン装置50aは、ステップS344において応答信号を送信した後、アクション4の指示にしたがって機能を一時停止する(S372)。ビーコン装置50aは、具体的には、ビーコン信号の送信を停止する。なお、この場合、ビーコン装置50aは、ビーコン装置50aの管理者等による所定の復帰処置が行われることにより、再稼動が可能である。管理者による復帰処置の実施後、ビーコン制御部83は、ビーコンID情報161におけるビーコン装置50aのデバイスIDに対応する不正フラグを「なし」にリセットする。
このように、ビーコン制御部83は、算出された異常度が所定値(ここでは、0.6)以上の場合、ビーコン装置50aの機能を一時的に停止させるための情報を、モバイル端末20aを介してビーコン装置50aに送信する処理を行う。これにより、ビーコン装置50aが不正に利用されることを抑制できる。
[ビーコン装置の機能を完全に停止する処理(アクション5)]
次に、ビーコン装置50aの機能を完全に停止する処理(アクション5)について詳細に説明する。図74は、ビーコン装置50aの機能を完全に停止する処理のシーケンス図である。なお、図74では、図68と実質的に同一のステップについては図68と同様の符号が付され、説明が簡略化される。
ビーコン装置50aの機能を完全停止する処理は、異常度が非常に高い場合に行われる処理である。
まず、サーバ10aのビーコン制御部83は、ビーコンID情報161におけるビーコン装置50aのデバイスIDに対応する不正フラグを完全停止に設定した後(S380)、アクション5を指示する制御信号を含む暗号化信号をビーコン通信部73に送信する(S341)。ビーコン通信部73は、受信した暗号化信号をそのままビーコン装置50aに送信する(S342)。
ビーコン装置50aは、受信した暗号化信号を鍵情報51aで復号し(S343)、制御信号を取得する。そして、ビーコン装置50aは、制御信号が示すアクション5の指示にしたがってビーコン装置50a内に保持(記憶)された鍵情報51aを削除して、機能を完全に停止させる(S381)。なお、この場合、ビーコン装置50aの再稼動は不可能である。
ここで、ビーコン通信部73は、ステップS342で暗号化信号を送信してから所定期間以上応答信号を受信できない場合、表示部にメッセージ3を表示する(S382)。図75は、メッセージ3が表示されたモバイル端末20aの模式図である。
図75に示されるように、メッセージ3では、処理に失敗した旨がメッセージとして表示される。
このように、ビーコン制御部83は、算出された異常度が所定値(ここでは、0.8)以上の場合、ビーコン装置50aの機能を完全に停止させるための情報を、モバイル端末20aを介してビーコン装置50aに送信する処理を行う。ここで、ビーコン装置50aの機能を停止させるための情報は、ビーコン装置50aが保持している鍵情報51aによって復号可能な、暗号化された情報である。そして、ビーコン装置50aの機能を停止させるための情報は、ビーコン装置50aが保持する鍵情報51aを削除するための情報を含む。
これにより、鍵情報51aが流出する可能性を低減し、ゲーム報酬付与システム100aの不正利用を抑制することができる。
[まとめ]
以上、実施の形態2に係るゲーム報酬付与システム100aを用いた情報処理方法について説明した。実施の形態2に係る情報処理方法においては、サーバ10aは、ビーコン装置50aからビーコン信号を受信したモバイル端末20aから、モバイル端末20aの現在位置を示す現在位置情報を取得する。また、サーバ10aは、取得された現在位置情報と、サーバ10aによって予め管理されている設置位置情報(ビーコンID情報)であってビーコン装置50aの設置位置を示す設置位置情報とを比較することにより、ビーコン装置50aの異常度を算出する。そして、サーバ10aは、算出された異常度に応じた処理を行う。
このような情報処理方法においては、モバイル端末20aが有するGPS部21aを利用して、ビーコン装置50aの異常度が算出される。異常度の算出の対象となるビーコン装置50aには、GPSモジュールが搭載される必要はなく、ビーコン装置50aの簡素化(低消費電力化)が実現される。
また、このような情報処理方法によれば、ビーコン装置の異常度に応じて、ビーコン装置の不正利用を抑制するための処理を行うことができる。
[実施の形態2の変形例]
上記実施の形態2では、ビーコンID情報161(設置位置情報)は、サーバ10aが備えるサーバ記憶部16に記憶された。しかしながら、ビーコンID情報161は、サーバ10aの外部に設けられた記憶装置から取得されてもよい。なお、ビーコンID情報161は、ビーコン装置50a〜50nから送信される情報ではなく、予めサーバ10aの管理者またはビーコン装置50a〜50nの管理者によってサーバ記憶部16に登録されている情報である。
また、本開示の技術は、ゲーム報酬付与システム100aとして実現されてもよいし、サーバ10aとして実現されてもよい。また、本開示の技術は、モバイル端末20aに適用されるアプリケーションや、ゲームアプリ(ゲーム部23)に適用されるSDK(SDK部24a)として実現されてもよい。
また、本開示の情報処理方法は、ゲーム報酬付与システム100a以外のシステム(例えばゲームに関連しない他のシステム)にも適用可能である。
(その他の実施の形態)
以上のように、本出願において開示する技術の例示として、実施の形態1及び2を説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置き換え、付加、省略などを行った実施の形態にも適用可能である。また、上記実施の形態1及び2で説明した各構成要素を組み合わせて、新たな実施の形態とすることも可能である。
例えば、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPUまたはプロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
また、上記各実施の形態において、特定の処理部が実行する処理を別の処理部が実行してもよい。また、複数の処理の順序が変更されてもよいし、複数の処理が並行して実行されてもよい。
以上、一つまたは複数の態様に係る情報提供方法及び情報処理方法について、実施の形態に基づいて説明したが、本開示は、この実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、一つまたは複数の態様の範囲内に含まれてもよい。