【问题标题】:How should I track widget renders?我应该如何跟踪小部件渲染?
【发布时间】:2010-10-21 11:00:55
【问题描述】:

我创建了一个小部件,我的网站的用户将嵌入到他们的网站上。我想跟踪小部件呈现的次数以及引用 URL。小部件是用 flex 编写的,我的后端是 Rails。

一个明显的方法是让我的小部件对后端进行服务调用以注册命中。但是,当我的小部件加载时,它会获取一个配置 XML。如果我添加另一个渲染服务调用,每个小部件渲染将有 3 个请求(一个用于获取 swf,一个用于获取配置,一个用于渲染)。我可以使 config.xml 动态化并在那里处理渲染,然后返回 XML……但这对缩放不利吗?

另一种方法是使嵌入源 URL 指向一个脚本,该脚本处理命中然后返回一个 swf...我很确定这是可能的。但我也不确定这是否是最好的方法。

我对这方面的任何专业建议感兴趣。专业人士如何有效地实施这个简单的系统?

谢谢!

【问题讨论】:

    标签: ruby-on-rails database apache-flex statistics widget


    【解决方案1】:

    您提到的所有三个选项似乎都是完全有效的方法,但是在返回 .swf 或 .xml 配置文件的同时注册这些命中似乎是一件明智的事情,因为 AFAIK 大多数浏览器他们可以向同一主机发出的并发 HTTP 请求的数量有一个非常低的限制(我认为它是两个或类似的东西)所以如果必须发出更多请求才能在浏览器中呈现某些内容,那么那些会过去此限制必须等待第一个限制完成才能启动。它还可能需要您少做一些工作。

    我能想到的唯一区别是,返回 .swf 并不意味着 Flash Player 实例会渲染它,因此在返回配置 xml 时“注册渲染”似乎可以让您更可靠地测量某人的浏览器已成功加载并显示此 .swf 的次数(假设 Flash 应用程序将在成功加载此配置文件后发起对该配置文件的请求)。

    就扩展问题而言,无论您何时注册命中,它仍然需要在服务器上进行相同数量的处理(我无法想象这样的事情会非常高),所以我不认为这是一个大问题。

    【讨论】:

      【解决方案2】:

      执行此操作的标准方法是从您的网站加载 1 像素图像(“错误”),并在您的网站上使用分析来跟踪统计信息。这种技术有很多创新,但它们都是基于简单的 1px 图像加载,并使用相关的 HTTP 标头。

      维基百科有一篇关于这种技术的好文章:

      http://en.wikipedia.org/wiki/Web_bug

      (此外,浏览器对并发 HTTP 请求的限制仅适用于发送到同一域的请求。您可以通过使用多个子域或任何其他技术来解决此问题,以确保您的资源并非全部来自同一个域。)

      【讨论】:

      • 我不确定这种情况下的网络错误方法。我需要将 user_id 传递回服务器,这样我就知道渲染了哪个用户的小部件。因此,仅在小部件中嵌入图像并跟踪该图像被渲染的次数是行不通的。那只会告诉我小部件被所有用户呈现的次数。你有什么想法?
      • 对 html 内容使用 img 标签是一种聪明的方法,但是当您在 Flash 应用程序中实现此功能时,没有理由加载图像(或任何其他任意小资源)。您需要做的就是在加载小部件时发送带有所需参数的 HTTP GET 请求,既然您已经这样做以获取配置 XML,为什么不将跟踪参数与该请求一起打包呢? (当然,假设 XML 文件请求在小部件加载时发送)
      • 好点哈塞格,任何 GET 请求都可以工作。托尼,如果您要使用网络错误,您可以在 URL 路径或图像名称中编码像 user_id 这样的参数。您在服务器端有路由来捕获这些。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-06
      • 2019-06-26
      • 2014-09-25
      • 1970-01-01
      相关资源
      最近更新 更多