14

我想知道在网站上存储/跟踪用户活动的最佳方式是什么。我正在考虑用户访问的网页,她访问了多少次,他/她的访问时间(即时间戳)。

我目前正在考虑在我的数据库中为我网站上的每个网页创建多个表,每个表都将跟踪我网站上用户活动的一个方面。例如,一个包含访问该网页的每个用户的时间戳和用户 ID 的表,另一个存储他们在网页上完成的操作的表(例如喜欢的东西)

这是跟踪用户活动的好方法,还是有其他更好的方法?

PS:我在网站上使用 PHP 和 MYSQL,这样做是为了改进我的编码,所以我不会使用谷歌分析或类似的东西。

4

4 回答 4

10

是的,将所有内容存储在数据库中。有一个用于用户访问的表,一个用于用户交互等。

首先有一个page_visits包含用户 ID 的表(这是您要解决的第一个问题 - 如何唯一地识别访问者。使用他们的 IP 和/或用户代理识别他们?创建一个引用唯一 ID 的 cookie?那里是不同的方法,具体取决于您的目标 - 没有一个是 100% 万无一失的)以及他们访问的页面 ID 或 URL 以及时间戳。

添加表格以跟踪交互。如何捕获事件取决于您,您是否使用 Javascript 或 jQuery 触发 AJAX 调用来记录点击等事件?此表可以包含诸如user_id, timestamp, action_performed,之类的字段source_page_id

您决定实施的方式完全取决于您,但数据库可能是要走的路。

于 2013-10-15T15:18:39.843 回答
3

尝试在数据库中创建表来存储必要的信息。

在我的脑海中,我可以考虑存储他们的 IP 地址

获取一些 GEO 信息,您可以使用该 IP 地址来获取和存储他们所在的国家/地区。

您可以在访问您的网站之前存储他们所在的网页。

他们访问您的网站的次数以及访问过的页面以及每个页面的访问次数。

IP地址可以使用

$_SERVER['REMOTE_ADDR']

$_SERVER['HTTP_X_FORWARDED_FOR']

可以从许多网站获得获取他们所在国家/地区的地理信息...通常,如果您想要最新信息,则必须付费...有些人关闭免费的旧信息,这仍然非常有用。

这是一个很好的 GEO 信息提供商,您需要付费,但它非常便宜

http://dev.maxmind.com/geoip/geoip2/web-services/

要计算访问量,只需在他们到达时获取他们的 IP 地址,在您的数据库中搜索该 IP,如果存在,则将访问次数增加 1。如果不创建新访问者。对每个单独的页面访问也进行相同的增量。

使用它来获取他们在访问您的网站之前所在的 URL

$_SERVER['HTTP_REFERER']

所以像这样的表:

userId | userIP | userCountry | visits | webpage1Visits | webpage2Visits | webpage3Visits

假设您没有数千页,这可能适用于十几页。

您可以存储大量其他内容,例如平均停留时间等,但这是基本内容。

尝试一下,当您在此过程中遇到问题时提出更多问题,人们会提供帮助:)

于 2013-10-15T15:23:06.897 回答
2

您可以为每个网页使用标志并将增加的标志值保存到相应的用户登录数据库中,以跟踪他正在单击的页面(这仅适用于具有用户数据库的网页)。

于 2017-03-07T10:03:10.033 回答
2

在没有进入整个 GDPR 辩论的情况下,尽管您可能希望在进一步讨论之前考虑到这一点,但这就是我将如何进行的。

我有一个单独的表来存储用户活动,尽管我可能想考虑使用其他东西来存储这些数据。也许是 mongoDB 并将每个会话的所有详细信息存储到一个 json 文件中。但是出于本练习的目的,您可以只使用 MySQL。

我建议根据会话添加条目,以便用户活动表看起来类似于:

 1. usserId
 2. location or ip
 3. referrer
 4. timestamp
 5. sessionToken 

我要做的第二件事是为会话表创建另一个表,并将所有详细信息与时间戳一起存储在那里。

 1. sessionToken
 2. url
 3. timestamp

现在您可以从用户活动表中查询最近访问您网站的 x 个用户,当您在界面中选择其中一个时,您可以看到他访问的所有详细信息。就您的 MySQL 查询而言,这可能是查看此信息的一种不太费力的方法。

这是一个非常复杂的过程,多年来很多公司开始使用它,它被称为真实用户监控

于 2020-05-24T23:53:30.443 回答