(58)【調査した分野】(Int.Cl.,DB名)
  前記取得部は、前記終了状況に応じて、前記ユーザに提供可能なコンテンツを更新し、当該更新されたコンテンツのうち前記ユーザにより選択されたコンテンツの識別情報を新たに取得する、
  請求項1に記載の端末装置。
【発明の概要】
【発明が解決しようとする課題】
【0004】
  一方で、端末装置で実行中のアプリケーション内のウェブブラウザを介してコンテンツが提供され、そのコンテンツの終了による終了通知を受ける場合、コンテンツを提供するコンテンツサーバからアプリケーションを管理するアプリケーションサーバに通知が行き、その後アプリケーションサーバから端末装置に通知がいくことになる。その場合、コンテンツサーバとアプリケーションサーバとの間、もしくはアプリケーションサーバと端末装置との間の通信失敗などにより終了通知が伝達しない可能性がある。その結果、端末装置におけるコンテンツのユーザへの提供が滞るおそれがある。
【0005】
  本発明は、円滑にユーザにコンテンツを提供することが可能な端末装置、制御方法、ならびに、プログラムを提供することを目的とする。
 
【課題を解決するための手段】
【0006】
  本発明の第1の観点に係る端末装置は、
  アプリケーションサーバに接続してアプリケーションを動作させる端末装置であって、
  ユーザに提供すべきコンテンツの識別情報を取得する取得部と、
  前記取得された識別情報に係るコンテンツを、前記アプリケーションに含まれるアプリ内ブラウザを介して、コンテンツサーバから取得して提供する提供部と、
  前記コンテンツサーバが前記アプリケーションサーバに向けて当該コンテンツの終了状況を示す終了通知を送信したことを検知する検知部と、
  を備え、
  前記終了状況に応じて、前記提供部が前記アプリ内ブラウザを介して前記コンテンツを再度提供、または、前記取得部が前記ユーザに提供すべき他のコンテンツの識別情報を新たに取得する、
  ことを特徴とする。
【0007】
  また、上記観点に係る端末装置において、
  前記検知部は、前記コンテンツの提供が開始されて以後、前記識別情報に応じた閾時間が経過しても前記終了通知を未だ受信していなければ、
  前記アプリ内ブラウザを介して提供されているコンテンツの状態を取得し、
  前記取得された状態から前記終了状況を決定してもよい。
【0008】
  また、上記観点に係る端末装置において、
  前記検知部は、前記閾時間が経過する前に、所定の時間間隔で間欠的に前記アプリ内ブラウザの状態を監視してもよい。
【0009】
  また、上記観点に係る端末装置において、
  前記検知部は、前記アプリ内ブラウザを介して最後に提供されたコンテンツの状態に応じて、前記所定の時間間隔を調整してもよい。
【0010】
  また、上記観点に係る端末装置において、
  前記提供部は、前記アプリ内ブラウザを介して前記コンテンツを再度提供するに先立って、広告コンテンツを提供してもよい。
【0011】
  また、上記観点に係る端末装置において、
  前記取得部は、前記終了状況に応じて、前記ユーザに提供可能なコンテンツを更新し、当該更新されたコンテンツのうち前記ユーザにより選択されたコンテンツの識別情報を新たに取得してもよい。
【0012】
  また、上記観点に係る端末装置において、
  前記提供部は、前記取得された識別情報に係るコンテンツを、前記アプリケーションに含まれるWebViewを介して提供し、
  前記検知部は、前記終了状況を、前記WebViewに対して当該WebViewに表示されている内容を取得するスクリプトプログラムを前記アプリケーションから実行することにより取得してもよい。
【0013】
  本発明の第2の観点に係る制御方法は、
  アプリケーションサーバに接続してアプリケーションを動作させる端末装置が実行する制御方法であって、
  ユーザに提供すべきコンテンツの識別情報を取得する取得ステップと、
  前記取得された識別情報に係るコンテンツを、前記アプリケーションに含まれるアプリ内ブラウザを介して、コンテンツサーバから取得して提供する提供ステップと、
  前記コンテンツサーバが前記アプリケーションサーバに向けて当該コンテンツの終了状況を示す終了通知を送信したことを検知する検知ステップと、
  を備え、
  前記終了状況に応じて、前記アプリ内ブラウザを介して前記コンテンツを再度提供、または、前記ユーザに提供すべき他のコンテンツの識別情報を新たに取得する、
  ことを特徴とする。
【0014】
  本発明の第3の観点に係るプログラムは、
  アプリケーションサーバに接続してアプリケーションを動作させるコンピュータを、
  ユーザに提供すべきコンテンツの識別情報を取得する取得部、
  前記取得された識別情報に係るコンテンツを、前記アプリケーションに含まれるアプリ内ブラウザを介して、コンテンツサーバから取得して提供する提供部、
  前記コンテンツサーバが前記アプリケーションサーバに向けて当該コンテンツの終了状況を示す終了通知を送信したことを検知する検知部、
  として機能させ、
  前記終了状況に応じて、前記提供部が前記アプリ内ブラウザを介して前記コンテンツを再度提供、または、前記取得部が前記ユーザに提供すべき他のコンテンツの識別情報を新たに取得する、
  ことを特徴とする。
【0015】
  なお、上記プログラムは、当該プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。更に、上記プログラムを記録する情報記録媒体は、非一時的な(non-transitory)記録媒体であり、コンピュータとは独立して配布・販売することができる。ここで、非一時的な情報記録媒体とは、有形な(tangible)情報記録媒体をいう。非一時的な情報記録媒体は、例えば、コンパクトディスク、フレキシブルディスク、ハードディスク、磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリである。また、一時的な(transitory)情報記録媒体とは、伝送媒体(伝搬信号)それ自体を示す。一時的な記録媒体は、例えば、電気信号、光信号、電磁波である。なお、一時的な(temporary)記憶領域とは、データやプログラムを一時的に記憶するための領域であり、例えばRAM(Random Access Memory)といった揮発性メモリである。
 
【発明の効果】
【0016】
  本発明によれば、円滑にユーザにコンテンツを提供することができる。
 
 
【発明を実施するための形態】
【0018】
  以下に本発明の実施形態を説明する。なお、本実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。従って、当業者であればこれらの各要素若しくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。また、本願発明の実施形態を図面を参照して説明するにあたり、図中同一又は相当する部分には同一符号を付す。
 
【0019】
  図1は、本発明の実施形態に係るコンテンツ提供システム1の構成を示す。コンテンツ提供システム1は、端末装置100が、アプリケーションサーバ200によって管理されるアプリケーションを実行中に、アプリケーションに含まれるブラウザ(以下、アプリ内ブラウザと呼ぶ)がコンテンツサーバ300からコンテンツを取得し、取得したコンテンツをアプリ内ブラウザを介して端末装置100のユーザに提供するシステムである。端末装置100、アプリケーションサーバ200、及びコンテンツサーバ300は、インターネット400により互いに通信可能に接続されている。なお、
図1において、1つの端末装置100が図示されているが、コンテンツ提供システム1において適用可能な端末装置100の数はこれに限られず、複数の端末装置100が適用されてもよい。
 
【0020】
  ここで、アプリ内ブラウザは、HTML(HyperText Markup Language)等のマークアップ言語で記述されたウェブページをアプリケーション内で閲覧するためのブラウザである。アプリ内ブラウザは、例えば、端末装置向けのOS(Operating System)に標準で組み込まれ、ウェブページの読込や描画を行うWebViewと呼ばれるソフトウェア部品を、アプリケーションのプログラムが呼び出すことにより、実現することができる。
 
【0021】
  端末装置100は、コンテンツを利用するユーザが操作するコンピュータである。例えば、端末装置100には、アプリケーションサーバ200によって管理されるアプリケーションがインストールされている。端末装置100は、アプリケーションサーバ200に接続して、アプリケーションを動作させる。端末装置100は、アプリケーションを実行し、アプリ内ブラウザを介してコンテンツサーバ300からコンテンツを取得し、ユーザに提供する。また、端末装置100は、後述するようにコンテンツの終了状況に応じて、同一のコンテンツをユーザに再度提供、または新たなコンテンツをユーザに提供する。
 
【0022】
  アプリケーションサーバ200は、端末装置100で実行されているアプリケーションを管理するサーバである。本実施形態において、アプリケーションサーバ200は、端末装置100のユーザ毎に、提供したコンテンツの終了状況に応じたポイントの付与、広告コンテンツの提示、ポイントの獲得数に応じた特典の付与といった処理を管理する。また、アプリケーションサーバ200は、コンテンツサーバ300から端末装置100におけるコンテンツの終了状況を示す終了通知を受け付けると、端末装置100に終了通知を送信する。
 
【0023】
  コンテンツサーバ300は、アプリ内ブラウザを介して端末装置100にコンテンツを提供するサーバである。本実施形態において、コンテンツサーバ300は、端末装置100のアプリ内ブラウザからコンテンツ要求を受信すると、そのコンテンツ要求に係るコンテンツを端末装置100に提供する。本実施形態において、コンテンツサーバ300により提供されるコンテンツは、ウェブブラウザでプレイ可能なブラウザゲーム(以下、単にゲームと呼ぶ)である。
 
【0024】
  次に、端末装置100の構成について詳細に説明する。
図2は、端末装置100のハードウェア構成を示す概略ブロック図である。
図2に示すように、端末装置100は、制御部101と、ROM(Read Only Memory)102と、RAM103と、表示部104と、通信部105と、操作部106とから構成され、各部は、バス107により接続されている。
 
【0025】
  制御部101は、例えばCPU(Central Processing Unit)から構成され、端末装置100全体を制御する。
 
【0026】
  ROM102は、制御部101が端末装置100全体を制御するためのプログラムや各種データを格納する不揮発性メモリである。
 
【0027】
  RAM103は、制御部101が生成した情報や、その情報の生成に必要なデータを一時的に格納するための揮発性メモリである。
 
【0028】
  表示部104は、LCD(Liquid Crystal Display)およびバックライト等を備える表示装置から構成される。表示部104は、制御部101による制御の下、各種データを表示する。
 
【0029】
  通信部105は、端末装置100をインターネット400に接続するための通信インターフェースから構成される。
 
【0030】
  操作部106は、ボタン、キーボード、タッチパネル等の入力装置から構成される。操作部106は、端末装置100のユーザからの操作入力を受け付け、受け付けた操作入力に対応する信号を制御部101に出力する。
 
【0031】
  次に、端末装置100の機能構成について説明する。
図3は、端末装置100の機能構成を示す概略ブロック図である。
図3に示すように、端末装置100は、取得部111、提供部112、及び検知部113として機能する。これらの機能は、端末装置100の電源が投入され、ROM102に格納されたアプリケーションのプログラムが実行されることにより、端末装置100の各部が協働して実現される。
 
【0032】
  取得部111は、ユーザに提供すべきコンテンツのコンテンツ識別情報を取得する。例えば、取得部111は、端末装置100のユーザから、操作部106を介して、ユーザが所望するコンテンツの選択を受け付けることにより、選択されたコンテンツのコンテンツ識別情報を取得する。
 
【0033】
  図4に端末装置100の表示部104に表示されるコンテンツ選択画面500の一例を示す。
図4に示すコンテンツ選択画面500は、コンテンツサーバ300からコンテンツとしてゲームが提供される際に、ユーザがプレイを希望するゲームを選択するための画面である。
図4に示すように、コンテンツ選択画面500は、ユーザに提供可能な4つのゲーム「ゲーム1」〜「ゲーム4」にそれぞれ対応するプレイボタン501〜504を含む。プレイボタン501〜504は、「ゲーム1」〜「ゲーム4」のコンテンツ識別情報とそれぞれ対応付けられている。そして、取得部111は、ユーザにより選択されたプレイボタン501〜504に対応する「ゲーム1」〜「ゲーム4」のコンテンツ識別情報を取得する。
 
【0034】
  取得部111は、制御部101及び操作部106が協働することにより実現される。
 
【0035】
  提供部112は、取得部111により取得されたコンテンツ識別情報に係るコンテンツを、アプリ内ブラウザを介して、コンテンツサーバ300から取得して提供する。本実施形態において、提供部112は、取得部111により取得されたコンテンツ識別情報と、端末装置100のユーザを識別するユーザ識別情報とを含むコンテンツ要求をコンテンツサーバ300に送信する。そして、提供部112は、コンテンツサーバ300からコンテンツを受信すると、アプリ内ブラウザにコンテンツを表示する。
 
【0036】
  図5〜
図8に端末装置100の表示部104に表示されるコンテンツ提供画面600の一例を示す。
図5〜
図8に示すように、コンテンツ提供画面600は、アプリ内ブラウザ601を含む。
図5は、アプリ内ブラウザ601に開始ページ602が表示されているコンテンツ提供画面の一例である。
図5に示す例では、提供部112は、「ゲーム1」のコンテンツ識別情報を含むコンテンツ要求をコンテンツサーバ300に送信し、アプリ内ブラウザ601にコンテンツサーバ300から受信した、「ゲーム1」を開始するためのウェブページである開始ページ602を表示する。開始ページ602は、「ゲーム1」をスタートするためのスタートボタン603を含む。スタートボタン603には、「ゲーム1」の開始ページ602の次の展開を表すゲームページ702(
図6参照)へのリンクが対応付けられている。そのため、ユーザがスタートボタン603を選択すると、提供部112は、アプリ内ブラウザ601を介してコンテンツサーバ300に、ゲームページ702を要求する。
 
【0037】
  図6は、アプリ内ブラウザ601にゲームページ702が表示されているコンテンツ提供画面600の一例である。提供部112は、コンテンツサーバ300からゲームページ702を受信すると、
図6に示すようにアプリ内ブラウザ601に表示する。ゲームページ702は、選択肢「A」,「B」を選択するための選択ボタン703,704を含む。選択ボタン703,704には、「ゲーム1」においてそれぞれ選択肢「A」,「B」を選択した場合の次の展開を表すゲームページ(図示せず)へのリンクが対応付けられている。そのため、ユーザが選択ボタン703,704のいずれかを選択すると、提供部112は、アプリ内ブラウザ601を介してコンテンツサーバ300に、選択された選択ボタン703,704に対応するゲームページを要求する。このように、端末装置100のユーザがアプリ内ブラウザ601に表示されたウェブページに対して選択等のアクションを行うことにより、コンテンツサーバ300から次の展開のゲームページが提供され、この繰り返しによりゲームが進行する。そして、コンテンツサーバ300は、ユーザが選択したアクションに基づいて、ゲームの結果を表すウェブページ、すなわち後述するクリアページ802(
図7参照)または失敗ページ902(
図8参照)を端末装置100に提供する。
 
【0038】
  図7は、アプリ内ブラウザ601にクリアページ802が表示されているコンテンツ提供画面600の一例である。提供部112は、コンテンツサーバ300からクリアページ802を受信すると、
図7に示すようにアプリ内ブラウザ601に表示する。クリアページ802は、「ゲーム1」の結果がクリアまたは成功である場合に表示されるウェブページである。
 
【0039】
  図8は、アプリ内ブラウザ601に失敗ページ902が表示されているコンテンツ提供画面600の一例である。提供部112は、コンテンツサーバ300から失敗ページ902を受信すると、
図8に示すようにアプリ内ブラウザ601に表示する。失敗ページ902は、「ゲーム1」の結果が失敗である場合に表示されるウェブページである。
 
【0040】
  提供部112は、制御部101、表示部104、及び通信部105が協働することにより実現される。
 
【0041】
  検知部113は、コンテンツサーバ300がアプリケーションサーバ200に向けて当該コンテンツの終了状況を示す終了通知を送信したことを検知する。
 
【0042】
  具体的には、コンテンツサーバ300は、ユーザがプレイしているゲームの結果を決定したとき、コンテンツの提供が所定の終了条件を満たしたと判定する。そして、コンテンツサーバ300は、決定したゲームの結果をコンテンツの終了状況として示す終了通知をアプリケーションサーバ200に送信する。
 
【0043】
  例えば、コンテンツサーバ300は、ユーザがプレイしている「ゲーム1」の結果が「クリア」であると決定したとき、ユーザ識別情報と、「ゲーム1」の結果「クリア」とを示す終了通知をアプリケーションサーバ200に送信する。そして、アプリケーションサーバ200は、コンテンツサーバ300から終了通知を受信すると、ユーザ識別情報により識別されるユーザの端末装置100に、「ゲーム1」の結果「クリア」を示す終了通知を送信する。そして、検知部113は、アプリケーションサーバ200から終了通知を受信することにより、コンテンツサーバ300が終了通知をアプリケーションサーバ200に送信したことを検知する。
 
【0044】
  また、例えば、コンテンツサーバ300は、ユーザがプレイしている「ゲーム1」の結果が「失敗」であると決定したとき、ユーザ識別情報と、「ゲーム1」の結果「失敗」とを示す終了通知をアプリケーションサーバ200に送信する。そして、アプリケーションサーバ200は、コンテンツサーバ300から終了通知を受信すると、ユーザ識別情報により識別されるユーザの端末装置100に、「ゲーム1」の結果「失敗」を示す終了通知を送信する。そして、検知部113は、アプリケーションサーバ200から終了通知を受信することにより、コンテンツサーバ300がアプリケーションサーバ200に終了通知を送信したことを検知する。
 
【0045】
  検知部113は、制御部101及び通信部105が協働することにより実現される。
 
【0046】
  さらに、取得部111は、検知部113により検知された終了通知が示す終了状況がコンテンツとして提供されたゲームのクリアを示すとき、提供すべき他のコンテンツのコンテンツ識別情報を取得する。本実施形態において、取得部111は、検知部113により検知された終了通知が示す終了状況が「クリア」を示すとき、
図7に示すように、コンテンツ提供画面600に、コンテンツ選択画面500に戻るための戻るボタン604を表示する。そして、取得部111は、端末装置100のユーザにより、操作部106を介して、戻るボタン604が選択されると、
図4に示すコンテンツ選択画面500を表示する。そして、取得部111は、コンテンツ選択画面500からユーザが所望する他のコンテンツの選択を受け付けることにより、選択されたコンテンツのコンテンツ識別情報を取得する。
 
【0047】
  また、提供部112は、検知部113により検知された終了通知が示す終了状況がコンテンツとして提供されたゲームの失敗を示すとき、アプリ内ブラウザ601を介して、同じコンテンツを再度提供する。さらに提供部112は、アプリ内ブラウザ601を介してコンテンツを再度提供するに先立って、広告コンテンツを提供する。本実施形態において、提供部112は、検知部113により検知された終了通知が示す終了状況が「失敗」を示すとき、
図8に示すように、コンテンツ提供画面600に、「ゲーム1」を再度プレイするための再プレイボタン605を表示する。そして、提供部112は、端末装置100のユーザにより、操作部106を介して、再プレイボタン605が選択されると、アプリケーションサーバ200に広告コンテンツのコンテンツ要求を送信し、
図9(a)に示すようにアプリ内ブラウザ601に広告コンテンツの一例として、所定の商品やサービスの広告を表す広告ページ1002を表示し、再プレイボタン605を削除する。そして、提供部112は、広告ページ1002の表示を開始してから所定時間(例えば、10秒間)経過した後、
図9(b)に示すように、戻るボタン604及び再プレイボタン605を表示する。そして、ユーザにより操作部106を介して、再プレイボタン605が選択されると、コンテンツサーバ300に「ゲーム1」のコンテンツ要求を送信し、
図5に示すように、アプリ内ブラウザ601に「ゲーム1」の開始ページ602を再度表示する。また、ユーザにより操作部106を介して、戻るボタン604が選択されると、
図4に示すコンテンツ選択画面500を表示する。
 
【0048】
  さらに、検知部113は、コンテンツの提供が開始されてから以後、コンテンツ識別情報に応じた閾時間が経過してもアプリケーションサーバ200から終了通知を未だ受信していないとき、アプリ内ブラウザ601を介して提供されているコンテンツの状態を取得する。そして、検知部113は、取得されたコンテンツの状態に基づいて、コンテンツの終了状況を決定する。ここで、閾時間は、ユーザがコンテンツを利用する標準的な時間に基づいて、コンテンツ毎に予め定められた時間である。コンテンツがゲームの場合、ゲームのプレイを開始してからクリアまたは失敗といったゲームの結果がでるまでの1プレイにかかる時間が、コンテンツを利用する時間であり、閾時間は、例えば、ユーザがコンテンツを利用する時間の平均値(例えば3分間)に所定時間(例えば1分間)を加えた時間である。本実施形態において、コンテンツ識別情報と対応付けられた閾時間が、予めROM102等に記憶されている。検知部113は、コンテンツの提供が開始されてから以後、そのコンテンツのコンテンツ識別情報に対応する閾時間が経過してもアプリケーションサーバ200から終了通知を未だ受信していないとき、コンテンツサーバ300とアプリケーションサーバ200の間の通信、もしくはアプリケーションサーバ200と端末装置100との間の通信に異常があると判定する。そして、検知部113は、アプリケーションサーバ200から受信した終了通知が示す終了状況の代わりに、取得されたコンテンツの状態に基づいて、コンテンツの終了状況を決定する。
 
【0049】
  具体的には、検知部113は、アプリ内ブラウザ601により提供されているコンテンツの状態を取得する方法として、例えば、アプリ内ブラウザ601を提供するWebViewにおいて、「evaluateJavaScript("document.body.innerHTML")」、「evaluateJavaScript("document.getElementsByTagName('pre')[0].innerText")」、「evaluateJavaScript("document.URL")」といったスクリプトプログラムを実行することにより、アプリ内ブラウザ601に表示されているウェブページのHTML全体、preタグに囲まれた内容、URL(Uniform Resource Locator)をコンテンツの状態として取得することができる。検知部113は、このように取得した情報に基づいて、コンテンツの終了状況を決定する。例えば、検知部113は、取得されたHTML全体やpreタグに囲まれた内容に、「クリア」または「失敗」を示すキーワードが含まれている場合、それぞれ終了状況として「クリア」または「失敗」を決定する。また、例えば、コンテンツが終了する際に、
図6に示すゲームページ702のようなゲームの本体を表すページから、
図7及び
図8に示すクリアページ802及び失敗ページ902のようなゲームの結果やゲーム終了の旨を表すページに遷移するようなコンテンツにおいては、検知部113は、「document.URL」により、現在アプリ内ブラウザ601に表示されているページのURLを調べれば、コンテンツが終了しているか否かを調べることができ、コンテンツの終了状況を決定することができる。
 
【0050】
  次に、本発明の実施形態にかかる端末装置100の動作について説明する。
図10は、端末装置100により実行されるコンテンツ制御処理の流れを表すフローチャートである。本処理は、例えば、操作部106が端末装置100のユーザからアプリケーションの実行を指示する入力を受け付けたことを契機として開始する。
 
【0051】
  本処理が開始されると、取得部111は、コンテンツ選択画面500を表示部104に表示する(ステップS101)。
 
【0052】
  そして、取得部111は、操作部106を介してコンテンツの選択を受け付けたか否かを判定する(ステップS102)。取得部111は、コンテンツの選択を受け付けるまで待機する(ステップS102;No)。
 
【0053】
  取得部111が操作部106を介してコンテンツの選択を受け付けると(ステップS102;Yes)、提供部112は、選択されたコンテンツのコンテンツ識別情報と、ユーザ識別情報とを含むコンテンツ要求をコンテンツサーバ300に送信する(ステップS103)。
 
【0054】
  次に、提供部112は、コンテンツサーバ300からコンテンツを受信したか否かを判定する(ステップS104)。提供部112は、コンテンツを受信するまで待機する(ステップS104;No)。
 
【0055】
  そして、提供部112は、コンテンツサーバ300からコンテンツを受信したと判定すると(ステップS104;Yes)、アプリ内ブラウザ601を介して、受信したコンテンツの提供を開始する(ステップS105)。
 
【0056】
  そして、検知部113は、ステップS105においてコンテンツの提供を開始してから閾時間経過したか否かを判定する(ステップS106)。検知部113は、閾時間経過していないと判定したとき(ステップS106;No)、アプリケーションサーバ200から終了通知を受信したか否かを判定する(ステップS107)。検知部113は、終了通知を受信していないと判定したとき(ステップS107;No)、ステップS106の処理に戻る。また、検知部113は、終了通知を受信したと判定したとき(ステップS107;Yes)、ステップS110の処理に進む。
 
【0057】
  一方、検知部113は、閾時間経過したと判定したとき(ステップS106;Yes)、検知部113は、アプリ内ブラウザ601で提供しているコンテンツの状態を取得する(ステップS108)。そして、検知部113は、ステップS108において取得されたコンテンツの状態に基づいて、コンテンツの終了状況を決定する(ステップS109)。
 
【0058】
  そして、検知部113は、ステップS107において受信した終了通知が示す終了状況、またはステップS109において決定した終了状況が、「クリア」を示すか否かを判定する(ステップS110)。
 
【0059】
  そして、検知部113は、終了状況が「クリア」を示すと判定したとき(ステップS110;Yes)、戻るボタン604を表示する(ステップS111)。
 
【0060】
  そして、取得部111は、操作部106を介して戻るボタン604の選択を受け付けたか否かを判定する(ステップS112)。取得部111は、戻るボタン604の選択を受け付けるまで待機する(ステップS112;No)。
 
【0061】
  取得部111は、戻るボタン604の選択を受け付けたと判定すると(ステップS112;Yes)、ステップS101におけるコンテンツ選択画面500の表示に戻る。
 
【0062】
  一方、検知部113は、終了状況が「クリア」を示さないと判定したとき(ステップS110;No)、提供部112は、コンテンツ再提供処理を実行する(ステップS113)。
 
【0063】
  図11は、端末装置100により実行されるコンテンツ再提供処理の流れを表すフローチャートである。本処理が開始されると、提供部112は、再プレイボタン605を表示する(ステップS201)。
 
【0064】
  そして、提供部112は、操作部106を介して再プレイボタン605の選択を受け付けたか否かを判定する(ステップS202)。提供部112は、再プレイボタン605の選択を受け付けるまで待機する(ステップS202;No)。
 
【0065】
  提供部112は、再プレイボタン605の選択を受け付けたと判定すると(ステップS202;Yes)、アプリケーションサーバ200に広告コンテンツのコンテンツ要求を送信する(ステップS203)。
 
【0066】
  次に、提供部112は、アプリケーションサーバ200から広告コンテンツを受信したか否かを判定する(ステップS204)。提供部112は、広告コンテンツを受信するまで待機する(ステップS204;No)。
 
【0067】
  そして、提供部112は、コンテンツサーバ300から広告コンテンツを受信したと判定すると(ステップS204;Yes)、アプリ内ブラウザ601を介して、受信した広告コンテンツの提供を開始する(ステップS205)。
 
【0068】
  そして、提供部112は、ステップS205において広告コンテンツの提供を開始してから所定時間経過したか否かを判定する(ステップS206)。提供部112は、所定時間経過していないと判定したとき(ステップS206;No)、広告コンテンツを表示したまま待機する。
 
【0069】
  提供部112は、所定時間経過したと判定したとき(ステップS206;Yes)、戻るボタン604及び再プレイボタン605を表示する(ステップS207)。
 
【0070】
  次に、提供部112は、操作部106を介して再プレイボタン605の選択を受け付けたか否かを判定する(ステップS208)。提供部112は、再プレイボタン605の選択を受け付けたと判定すると(ステップS208;Yes)、同一コンテンツのコンテンツ要求をコンテンツサーバ300に送信する(ステップS209)。そして、提供部112は、
図10のステップS104の処理に戻る。
 
【0071】
  また、提供部112は、再プレイボタン605の選択を受け付けていないと判定すると(ステップS208;No)、操作部106を介して戻るボタン604の選択を受け付けたか否かを判定する(ステップS210)。提供部112は、戻るボタン604の選択を受け付けていないと判定すると(ステップS210;No)、ステップS208の処理に戻る。一方、提供部112は、戻るボタン604の選択を受け付けたと判定すると(ステップS210;Yes)、
図10のステップS101の処理に戻る。
 
【0072】
  端末装置100は、以上のコンテンツ制御処理及びコンテンツ再提供処理を、例えばアプリケーションの実行が終了するまで、繰り返し実行する。
 
【0073】
  以上説明したように、本発明の実施形態に係る端末装置100は、アプリ内ブラウザ601を介して提供されているコンテンツの終了状況に応じて、コンテンツの再提供、または他のコンテンツのコンテンツ識別情報を取得する。そのため、端末装置100は、アプリ内ブラウザ601を介して提供されているコンテンツの終了状況に応じて、再度同じコンテンツを提供すべきか、または新たなコンテンツを提供すべきかを判断する契機を知ることができる。その結果、端末装置100は、円滑にユーザにコンテンツを提供することができる。
 
【0074】
  また、端末装置100は、コンテンツの提供が開始されて以後、コンテンツ識別情報に応じた閾時間が経過しても終了通知を未だ受信していなければ、アプリ内ブラウザ601により提供されているコンテンツの状態を取得し、取得された状態から終了状況を決定する。そのため、端末装置100は、コンテンツの標準的な利用時間である閾時間を超えても終了通知を受信していないときに、単にタイムアウトとしてエラーを表示する代わりに、アプリ内ブラウザ601を介して提供されているコンテンツの状態に基づいて終了状況を決定し、決定した終了状況に応じて、再度同じコンテンツを提供すべきか、または新たなコンテンツを提供すべきかを判断する契機を知ることができる。その結果、端末装置100は、円滑にユーザにコンテンツを提供することができる。
 
【0075】
  以上に本発明の実施形態について説明したが、上記実施形態は一例であり、本発明の適用範囲はこれに限られない。即ち、本発明の実施形態は種々の応用が可能であり、あらゆる実施の形態が本発明の範囲に含まれる。
 
【0076】
  例えば、上記の実施形態において、取得部111は、コンテンツ選択画面500を表示し、操作部106を介してユーザにより選択されたコンテンツのコンテンツ識別情報を取得する例について説明した。しかし、取得部111がコンテンツ識別情報を取得する方法は、これに限られない。例えば、取得部111は、アプリケーションサーバ200の管理者が端末装置100のユーザに特定のコンテンツを閲覧させたい場合、アプリケーションサーバ200がコンテンツ識別情報を指定してもよい。この場合、端末装置100は、アプリケーションサーバ200に指定されたコンテンツ識別情報を取得することができる。
 
【0077】
  また、上記の実施形態において、取得部111は、コンテンツの終了状況に応じて、ユーザに提供可能なコンテンツを更新し、当該更新されたコンテンツのうちユーザにより選択されたコンテンツの識別情報を新たに取得してもよい。例えば、
図7に示すように「ゲーム1」の終了状況が「クリア」であるとき、
図7の戻るボタン604が選択されると、取得部111は
図12(a)に示すように、「ゲーム1」と対応する位置に、終了状況が「クリア」であることを示すクリアアイコン606を含むコンテンツ選択画面500を表示してもよい。また、取得部111は、終了状況が「クリア」である「ゲーム1」のプレイボタン501を所定期間(例えば、1日)選択できないようにし、例えば
図12(a)に示すようにプレイボタン501をグレイアウト(灰色表示)にしてもよい。また、例えば、
図8に示すように「ゲーム1」の終了状況が「失敗」であるとき、
図8の再プレイボタン605が選択され、
図9(a)及び(b)のように広告コンテンツが表示された後、
図9(b)の戻るボタン604が選択されると、取得部111は
図12(b)に示すように、「ゲーム1」と対応する位置に、終了状況が「失敗」であることを示す失敗アイコン607を含むコンテンツ選択画面500を表示してもよい。このように、コンテンツ選択画面500にコンテンツの終了状況が反映されることにより、ユーザは、自身が現在利用可能なコンテンツや、コンテンツの終了状況を容易に把握することができる。
 
【0078】
  また、上記の実施形態において、送信された終了通知が示す終了状況が「失敗」を示す場合、提供部112は、アプリ内ブラウザ601を介して広告コンテンツを提供する例について説明した。しかし、提供部112は、広告コンテンツを提供しなくてもよく、
図8に示す再プレイボタン605が選択された後、アプリ内ブラウザ601を介して
図5に示すような開始ページ602を取得し、すぐにコンテンツを再度提供してもよい。
 
【0079】
  また、上記の実施形態において、検知部113は、コンテンツの提供を開始してからコンテンツ識別情報に応じた閾時間が経過しても終了通知を未だ受信していなければ、アプリ内ブラウザ601を介して提供されているコンテンツの状態を取得する例について説明した。しかし、検知部113がコンテンツの状態を取得するタイミングはこれに限られない。例えば、検知部113は、閾時間が経過する前に、所定の時間間隔(例えば、10秒間)で間欠的にアプリ内ブラウザ601を介して提供されているコンテンツの状態を監視してもよい。さらに、検知部113は、通信状況や、アプリ内ブラウザ601を介して最後に提供されたコンテンツの状態に応じて、コンテンツの状態を監視する所定の時間間隔を調整してもよい。例えば、検知部113は、最後に提供されたコンテンツの終了通知を閾時間が経過する前にアプリケーションサーバ200から受信した場合、次に提供すべきコンテンツの状態を監視する所定の時間間隔を、最後に提供されたコンテンツの状態を監視する所定の時間間隔よりも長くなるように調整してもよい。また、検知部113は、最後に提供されたコンテンツの終了通知を閾時間が経過する前にアプリケーションサーバ200から受信していない場合、次に提供すべきコンテンツの状態を監視する所定の時間間隔を、最後に提供されたコンテンツの状態を監視する所定の時間間隔よりも短くなるように調整してもよい。これにより、端末装置100は、間欠的に通信状況を監視し、通信異常によるタイムアウトが生じる前に、端末装置100のアプリケーション側でユーザへのコンテンツの提供に対する対応を決定し、円滑にコンテンツを提供することができる。
 
【0080】
  なお、本発明に係る端末装置100は、上記の機能を実現するための構成を予め備えて提供されることも可能な他、プログラムの適用により、既存のパーソナルコンピュータや情報端末機器等を、本発明に係る端末装置100として機能させることもできる。即ち、上記実施形態で例示した端末装置100による各機能構成を実現させるためのプログラムを、既存のパーソナルコンピュータや情報端末機器を制御するCPU等が実行できるように、既存のパーソナルコンピュータや情報端末機器に適用することで、そのパーソナルコンピュータや情報端末機器を本発明に係る端末装置100として機能させることができる。また、本発明に係る制御方法は、端末装置100を用いて実施できる。
 
【0081】
  また、このようなプログラムは、上記に限られず、任意の方法で適用可能である。プログラムを、例えば、コンピュータが読取可能な記録媒体[CD−ROM(Compact Disc Read-Only Memory)、DVD(Digital Versatile Disc)、MO(Magneto Optical disc)等]に格納して適用できる他、インターネット等のネットワーク上のストレージにプログラムを格納しておき、これをダウンロードさせることにより適用することもできる。
 
 
【解決手段】アプリケーションサーバ200に接続してアプリケーションを動作させる端末装置100は、取得部111と、提供部112と、検知部113とを備える。取得部111は、ユーザに提供すべきコンテンツのコンテンツ識別情報を取得する。提供部112は、取得されたコンテンツ識別情報に係るコンテンツを、アプリケーションに含まれるアプリ内ブラウザを介して、コンテンツサーバ300から取得して提供する。検知部113は、コンテンツサーバ300がアプリケーションサーバ200に向けて当該コンテンツの終了状況を示す終了通知を送信したことを検知する。終了状況に応じて、提供部112がアプリ内ブラウザを介してコンテンツを再度提供、または、取得部111がユーザに提供すべき他のコンテンツのコンテンツ識別情報を新たに取得する。