jjzjj

javascript - 具有页面浏览量和时间相关指标的 Bootstrap 模式分析

coder 2024-07-27 原文

我有一个页面(让我们将其命名为概览页面),其中包含大量项目图像,单击即可打开 Bootstrap (v3) 模式,其中包含有关该项目的更多信息。每个项目也有自己的页面(单页)。

我想在用户使用 Google(通用)分析打开模式时跟踪项目的综合浏览量。现在我计划通过将以下代码添加到概述页面上的每个链接来实现这一点:

onClick="ga('send','pageview','/url-to-project-page');"

我希望它能正常工作,因为我在其他关于跟踪 AJAX 调用的综合浏览量的帖子中看到过这种方法。

但我想知道这会如何影响与时间相关的指标,例如页面平均停留时间,因为分析无法知道模式何时关闭(与离开单个页面相同)。

有谁知道这些指标是否与正常的单页浏览量相当,或者指标的某些部分(我猜是与时间相关的指标)是否会因为分析无法跟踪而关闭?

最佳答案

如果我没理解错的话,您想将模式的打开作为项目页面的综合浏览量进行跟踪。这可以通过您刚才所说的来完成,但以我的拙见,使用直接 URL 是不明智的。您最好改用虚拟网址 (VURL)。阅读有关虚拟 URL 的更多信息 here .

它在 Universal Analytics (UA) (analytics.js) 中也可用,当您发送如上所述的综合浏览量时,您是在强制 GA 报告指定 URL 的综合浏览量。你的代码, (1) ga('send','pageview','/url-to-project-page'); 将起作用。

在UA中,ga('send','pageview');用于发送当前pageview。如果您需要发送虚拟浏览量(或尚未发生但希望被记录的浏览量),您也可以将其发送为: (2)

ga('send', 'pageview', {
  'page': '/url-to-project-page'
});

或者作为 (3)

ga('set', 'page', '/url-to-project-page');
ga('send', 'pageview');

或者作为 (4)

ga('send', {
  'hitType': 'pageview',
  'page': '/url-to-project-page'
});

实现1、2、4相同,但3不同。

您可以阅读有关实现的更多信息 here , herehere .

这会影响您的网页浏览量(您会看到增加),但不会增加您的访问量(因为没有用户可以“登陆”虚拟页面(除非您让他们这样做))。这将影响您的跳出率,但从某种意义上说,如果他们以模式查看您的项目,则不会“关闭”,这意味着他们已经与您的网站进行了交互,因此不应将其标记为跳出,这就是当您发送虚拟网页浏览时会发生这种情况。

虽然您想要做的是正确的,但您的实现遇到了无法区分模态视图与实际项目页面 View 的问题。我将通过以一种有意义且语义化的方式组织 VURL 结构来克服这个问题。例如,我不会发送直接对应于您的项目单页 url 的 VURL,而是发送它:ga('send','pageview','/virtual/modal/url-to-project-页');

这样,您可以通过从综合浏览量中为 /virtual 添加排除过滤器来过滤掉 VURL,这样就不会显示虚拟综合浏览量。此外,您还可以使用 /url-to-project-page 查看项目页面的总浏览量。此外,您还可以使用 /virtual/modal 查看打开模态窗口产生的所有虚拟网页浏览量。

“页面停留时间”和“页面浏览量/访问”等指标会发生变化,但这取决于您如何看待它,无论是错误还是准确性的提高。记录虚拟页面浏览的页面停留时间,直到用户导航到新页面,或发送报告 VURL 的请求,或直到 session 关闭(以先发生者为准)。

希望对您有所帮助! :)

关于javascript - 具有页面浏览量和时间相关指标的 Bootstrap 模式分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21032351/

有关javascript - 具有页面浏览量和时间相关指标的 Bootstrap 模式分析的更多相关文章

  1. ruby - 具有身份验证的私有(private) Ruby Gem 服务器 - 2

    我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..

  2. ruby - 将 Bootstrap Less 添加到 Sinatra - 2

    我有一个ModularSinatra应用程序,我正在尝试将Bootstrap添加到应用程序中。get'/bootstrap/application.css'doless:"bootstrap/bootstrap"end我在views/bootstrap中有所有less文件,包括bootstrap.less。我收到这个错误:Less::ParseErrorat/bootstrap/application.css'reset.less'wasn'tfound.Bootstrap.less的第一行是://CSSReset@import"reset.less";我尝试了所有不同的路径格式,但它

  3. ruby - 在 Ruby 中用键盘诅咒数组浏览 - 2

    我正在尝试在Ruby中制作一个cli应用程序,它接受一个给定的数组,然后将其显示为一个列表,我可以使用箭头键浏览它。我觉得我已经在Ruby中看到一个库已经这样做了,但我记不起它的名字了。我正在尝试对soundcloud2000中的代码进行逆向工程做类似的事情,但他的代码与SoundcloudAPI的使用紧密耦合。我知道cursesgem,我正在考虑更抽象的东西。广告有没有人见过可以做到这一点的库或一些概念证明的Ruby代码可以做到这一点? 最佳答案 我不知道这是否是您正在寻找的,但也许您可以使用我的想法。由于我没有关于您要完成的工作

  4. ruby-on-rails - Ruby 检查日期时间是否为 iso8601 并保存 - 2

    我需要检查DateTime是否采用有效的ISO8601格式。喜欢:#iso8601?我检查了ruby​​是否有特定方法,但没有找到。目前我正在使用date.iso8601==date来检查这个。有什么好的方法吗?编辑解释我的环境,并改变问题的范围。因此,我的项目将使用jsapiFullCalendar,这就是我需要iso8601字符串格式的原因。我想知道更好或正确的方法是什么,以正确的格式将日期保存在数据库中,或者让ActiveRecord完成它们的工作并在我需要时间信息时对其进行操作。 最佳答案 我不太明白你的问题。我假设您想检查

  5. ruby-on-rails - 浏览 Ruby 源代码 - 2

    我的主要目标是能够完全理解我正在使用的库/gem。我尝试在Github上从头到尾阅读源代码,但这真的很难。我认为更有趣、更温和的踏脚石就是在使用时阅读每个库/gem方法的源代码。例如,我想知道RubyonRails中的redirect_to方法是如何工作的:如何查找redirect_to方法的源代码?我知道在pry中我可以执行类似show-methodmethod的操作,但我如何才能对Rails框架中的方法执行此操作?您对我如何更好地理解Gem及其API有什么建议吗?仅仅阅读源代码似乎真的很难,尤其是对于框架。谢谢! 最佳答案 Ru

  6. ruby-on-rails - 将 Ruby 中的日期/时间格式化为 YYYY-MM-DD HH :MM:SS - 2

    这个问题在这里已经有了答案:Railsformattingdate(4个答案)关闭4年前。我想格式化Time.Now函数以显示YYYY-MM-DDHH:MM:SS而不是:“2018-03-0909:47:19+0000”该函数需要放在时间中.现在功能。require‘roo’require‘roo-xls’require‘byebug’file_name=ARGV.first||“Template.xlsx”excel_file=Roo::Spreadsheet.open(“./#{file_name}“,extension::xlsx)xml=Nokogiri::XML::Build

  7. ruby - 查找字符串中的内容类型(数字、日期、时间、字符串等) - 2

    我正在尝试解析一个CSV文件并使用SQL命令自动为其创建一个表。CSV中的第一行给出了列标题。但我需要推断每个列的类型。Ruby中是否有任何函数可以找到每个字段中内容的类型。例如,CSV行:"12012","Test","1233.22","12:21:22","10/10/2009"应该产生像这样的类型['integer','string','float','time','date']谢谢! 最佳答案 require'time'defto_something(str)if(num=Integer(str)rescueFloat(s

  8. ruby-on-rails - Rails 3.1 中具有相同形式的多个模型? - 2

    我正在使用Rails3.1并在一个论坛上工作。我有一个名为Topic的模型,每个模型都有许多Post。当用户创建新主题时,他们也应该创建第一个Post。但是,我不确定如何以相同的形式执行此操作。这是我的代码:classTopic:destroyaccepts_nested_attributes_for:postsvalidates_presence_of:titleendclassPost...但这似乎不起作用。有什么想法吗?谢谢! 最佳答案 @Pablo的回答似乎有你需要的一切。但更具体地说...首先改变你View中的这一行对此#

  9. sql - 查询忽略时间戳日期的时间范围 - 2

    我正在尝试查询我的Rails数据库(Postgres)中的购买表,我想查询时间范围。例如,我想知道在所有日期的下午2点到3点之间进行了多少次购买。此表中有一个created_at列,但我不知道如何在不搜索特定日期的情况下完成此操作。我试过:Purchases.where("created_atBETWEEN?and?",Time.now-1.hour,Time.now)但这最终只会搜索今天与那些时间的日期。 最佳答案 您需要使用PostgreSQL'sdate_part/extractfunction从created_at中提取小时

  10. ruby - 具有两个参数的 block - 2

    我从用户Hirolau那里找到了这段代码:defsum_to_n?(a,n)a.combination(2).find{|x,y|x+y==n}enda=[1,2,3,4,5]sum_to_n?(a,9)#=>[4,5]sum_to_n?(a,11)#=>nil我如何知道何时可以将两个参数发送到预定义方法(如find)?我不清楚,因为有时它不起作用。这是重新定义的东西吗? 最佳答案 如果您查看Enumerable#find的文档,您会发现它只接受一个block参数。您可以将它发送两次的原因是因为Ruby可以方便地让您根据它的“并行赋

随机推荐