【问题标题】:Custom cross domain metric tracking system implementation in phpphp中的自定义跨域度量跟踪系统实现
【发布时间】:2012-12-06 02:17:34
【问题描述】:

我需要设计一个网站系统,用户可以在其中创建帐户、注册他们的网站并获取显示图像/链接的自定义跟踪代码。我很想听听一些想法。

sn-p 需要能够做到以下几点:

a) 跟踪网站获得的独特展示次数。

b) 跟踪用户访问持续时间(这需要以秒为单位精确到用户离开网站/域)

c) 让跟踪 sn-p 代码显示可点击的图像(我应该能够根据显示 sn-p 的站点更改此图像)。

d) 能够更改访问者点击图片后将去往的网址/链接。 (当访问者访问网站时,sn-p 需要显示我选择的图像和我选择的链接)。

e) 跟踪此图片的点击次数。

我阅读了有关像素跟踪的信息,但这种设计和我需要的指标有点不同。似乎我可以通过包含 <img src="http://www.mydomain.com/getImage.php?id=5123" /> 并在我的 php 脚本中处理其中一些信息来做一些事情,但我想确保没有更好的方法/更有效的方法来做到这一点。

【问题讨论】:

    标签: php javascript cross-domain pixel metrics


    【解决方案1】:

    您想要做的是让您的用户嵌入一段来自您的服务器的 javascript。示例:

    端点 trackingCode.php 将做一些跟踪工作,然后输出一个 javascript 将执行一些其他跟踪任务。

    a) 跟踪独特的展示次数 您可以在 trackingCode.php 中的服务器端立即执行此操作

    b) 跟踪用户访问时长 一种方法是从 javascript 向服务器上的端点发送定期 ajax 轮询。通过这种方式,您可以大致了解用户在页面上停留的时间。

    c) 显示可点击的图片 您的 javascript 将使用 document.createElement(或等效项)将图像添加到主机网站

    d) 能够更改访问者要去的网址/链接 当您在服务器上动态生成 javascript 时,您可以根据收到的 id 参数为每​​个网站生成不同的 javascript。您可以利用它在上面步骤 c 中添加到网站的图像中拥有不同的图像源和点击 URL。

    e) 跟踪图片的点击次数 您可以创建一个 onclick 事件处理程序并将其附加到它,而不是在上面的步骤 c 中创建具有子元素的元素。 事件处理程序将做两件事 - 向您的服务器发送一个额外的跟踪 ajax 请求并重定向到所需的点击 URL。

    另一种方法是创建一个带有 child 的元素,并在您的服务器上的 url 处具有点的 href 属性(类似于 https://www.mydomain.com/clickThrough.php?id=5134)。这将执行跟踪并返回 302 http 状态(暂时移动),这将导致用户被重定向到实际所需的点击 URL。

    【讨论】:

    • 人们放置此 javascript 代码的最佳位置是什么?对于步骤 e),我是否可以在线查找此功能的一些示例。 onClick vs 子元素重定向? onClick 可能会比使用 302 http 状态重定向它更好?
    • 通常推荐在结束 标签之前。对于步骤 e - 我会说 no-javascript 实现更健壮。但这是一个险些。
    • 您认为这需要多长时间才能实施?
    【解决方案2】:

    b) 跟踪用户访问持续时间(这需要以秒为单位精确到用户离开网站/域)

    不可能。用户离开网站的时间点未定义a secret of the user

    服务器只知道用户开始访问网站的时间点和最后一次请求的时间点。但这两个精确到第二个。

    因此可以在最短的秒数内获得用户访问持续时间,但永远无法获得确切的持续时间。

    【讨论】:

    • 如果您使用 .onbeforeunload() 来查看用户何时卸载页面或使用 .setTimeout() 来点击您的脚本并显示该用户仍处于活动状态
    • 如果用户禁用了就不能使用了。
    【解决方案3】:

    完成您想要完成的任务的最常见方法是创建一个 JavaScript sn-p,它会将图像的 src 属性设置为动态字符串呈现标签,该字符串包含 JavaScript 可以从客户端收集的所有信息(以及 PHP 在服务器端不能)。

    关于访问持续时间,这需要的不仅仅是网页上的图片和链接,它应该是大量的 javascript。

    如果我们谈论登陆页面,那么从窗口的“卸载”事件处理程序运行 ajax 请求是很正常的。任何其他通用发布者可能都不会同意发布这样的代码,因为这是一种“灰色”技术。

    另一种方法是在客户端停止移动鼠标后向您的跟踪服务器发送请求。这会更好,因为如果用户只是在被跟踪网站打开的情况下离开他的 PC,这不会计算时间,并且当用户移动鼠标关闭窗口时不会计算时间。因此,您会看到有效会话的时长。

    但无论哪种方式,您都不应该期望精度级别太高,因为某些跟踪会话会因为驻留在被跟踪网站上的其他 javascript 代码而失败。

    【讨论】:

      猜你喜欢
      • 2020-06-03
      • 2016-01-28
      • 2018-11-30
      • 2019-01-04
      • 2012-10-16
      • 2020-10-30
      • 2015-09-17
      • 2017-09-13
      • 2011-01-26
      相关资源
      最近更新 更多