質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Q&A

4回答

1432閲覧

スマートホンでウェブサイトを見ている人の閲覧履歴の作成について

desafinado

総合スコア8

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

0グッド

0クリップ

投稿2017/05/11 05:46

PCとスマホ(Android・iOS)にてブラウザ上で閲覧するウェブサイトを作っています。
このウェブサイトで商品情報を掲載しているのですが、ユーザーがログインしておらず再度このウェブサイトへ訪問した際に、便利なように閲覧履歴の機能を実装したいです。

PCでウェブサイトを閲覧している人に関してはIPアドレスで機能をつくれば良いと思うのですが、スマートホンでウェブサイトを見ている人(ログインしていない人)に関しては、どのような方法で閲覧履歴を作成するのが一般的なのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

SessionやCookieを使うのが一般的ですね。
Cookieとは、ブラウザに小さなデータを保持して置ける機能です。

サイトにアクセスしてきたユーザーのCookieを確認し、データがなければ個別のIDを割り当て、保存します。
閲覧履歴は、そのIDと紐づけて保存します。(FileやDB等に)

次にそのユーザがアクセスした際には、CookieからIDが取得できますので、そのIDに紐づいた閲覧履歴をDBやFileから取得する、と言う形です。
※直接Cookieに閲覧履歴を保持しておくことも、まぁ可能ではありますが。あまり大きなデータはCookieからあふれます

この方法の欠点としては、Cookieはブラウザ別のモノとなりますので、例えばスマホデフォルトのブラウザでサイトに来たあと、FireFox等他のブラウザでアクセスされた場合、同じスマホであっても「別ユーザー」と認識される事ですね。
また、Cookieはデフォルトで許可しない設定にする事も出来る為、ユーザーに拒否された場合は使えません。
また、Cookieはユーザーの意思で削除する事も出来ますので、消された場合には改めて新規ユーザー扱いとなってしまいます。

投稿2017/05/11 05:54

kunai

総合スコア5405

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

desafinado

2017/05/11 06:09

とても具体的な説明ありがとうございます。なるほど、その方法であればログインしていない状態の方の履歴を把握できますね。もし可能でしたら教えてほしいのですが、UDIDなどは使えないのでしょうか?
kunai

2017/05/11 06:30

使えませんね。WEBですよね?AppleやGoogleに認可されたアプリをインストールさせてそのアプリ内のブラウザ機能(WebView)でアクセスするならやりようはありますが。
desafinado

2017/05/11 07:11

そうですね。おっしゃるとおりです。早とちりしてしまいました。^^; ありがとうございます。
guest

0

以下の3つの方法があります。

1.session で管理
2.cookie に id を入れ、サーバ側に DB 等を作成して管理
3.local storage に履歴を保存

1 が楽だと思います。
行動履歴を分析したい場合、2 を選択することになります。
クライアントサイドで勝手によしなにやってほしい場合、3 が便利です。

投稿2017/05/11 06:53

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

desafinado

2017/05/11 07:15

分かりやすく説明頂きありがとうございます。とても助かります。 今の所「2.cookie に id を入れ、サーバ側に DB 等を作成して管理」で考えているのですが、おっしゃられている「行動履歴を分析」とはどういうことでしょうか?現状では、閲覧した商品の履歴を見れるようにしたいと思っています。
退会済みユーザー

退会済みユーザー

2017/05/11 07:32

履歴から、どんな行動を取ったのか調査することです。 たとえば、商品Aを見た人のBを見る割合とか。
desafinado

2017/05/11 07:58

なるほど、そういう使い方もできるんですね。ありがとうございます。とても参考になりました。
guest

0

単純に閲覧履歴であれば、Cookieでいいと思います。

内容をどのようにしたいかによりますが、ログインしていないという場合は
CookieとSessionを使い分ければよいような気がします。

投稿2017/05/11 05:56

kanimaru

総合スコア1013

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

desafinado

2017/05/11 06:07

ありがとうござます。とても助かりました。
guest

0

localStorageに貯めておくという手段もあります。テキストのみしか入らないので、配列をJSON.stringifyでJSON文字列にして保存しておけば管理もしやすいと思います。
※ localStorageという名前のとおりユーザー側にしか保存されないので、閲覧データをサーバ側で利用したい場合は定期的にサーバに送るなどする必要があります。

【LocalStorageがおもいのほか便利すぎたのでまとめ - それマグで!】
http://takuya-1st.hatenablog.jp/entry/20110815/1313415947

【localStorageで複数のデータを保存する | Tips Note by TAM】
https://www.tam-tam.co.jp/tipsnote/javascript/post5978.html

【Window.localStorage - Web API インターフェイス | MDN】
https://developer.mozilla.org/ja/docs/Web/API/Window/localStorage

投稿2017/05/11 06:56

kei344

総合スコア69407

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

desafinado

2017/05/11 07:24

そういう方法もあるんですね。ありがとうございます。大変助かります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問