【问题标题】:Counting Pageviews for some urls计算某些网址的浏览量
【发布时间】:2011-08-27 21:53:36
【问题描述】:

我喜欢 Varnish,不过我有点问题。

我正在计算我网站上某些资源的综合浏览量。页面浏览量增量通过会话进行限制,以便不计算每个用户的多次浏览量。

我对 varnish conf 进行了一些调整,缓存可以正常工作,但不幸的是,我之前的计数器将失效,直到页面过期(并且页面浏览量像雨中的眼泪一样丢失)。

您知道如何保留此功能吗?

我考虑过 Ajax 调用,但这不是最佳选择。

还有其他方法可以做到吗?

谢谢!

【问题讨论】:

    标签: php varnish


    【解决方案1】:

    谷歌分析事件跟踪

    我只允许 Google Analytics track the events。这使您可以跟踪对资源的唯一访问。我已经在许多网站上成功地实现了这一点。

    文档

    _trackEvent(category, action, opt_label, opt_value)
    

    类别(必填) 您为要跟踪的对象组提供的名称。

    操作(必需) 与每个类别唯一配对的字符串,通常用于定义 Web 对象的用户交互类型。

    标签(可选) 为事件数据提供额外维度的可选字符串。

    值(可选) 一个整数,可用于提供有关用户事件的数字数据。

    Event Tracking Guide page有更多详情。

    示例

    在页面中实现为 javascript 调用,如下所示:

    _gaq.push(['_trackEvent', 'category', 'action', 'opt_label', 'opt_value']);
    
    // or a worked example from the Event Tracking Guide
    _gaq.push(['_trackEvent', 'Videos', 'Play', 'Gone With the Wind']);
    

    谷歌分析数据导出 API

    要检索数据,您可以使用Google Analytics Data Export API。该 API 允许您缩小返回的 certain filters 的统计信息。

    在您的情况下,您对以下过滤器感兴趣:

    • ga:eventCategory
    • ga:eventAction
    • ga:eventLabel

    所以你可以通过以下方式缩小范围:

    &filters=ga:eventCategory==AccessResource;ga:eventAction==Download
    

    翻译为:

    WHERE ga:eventCategory = 'AccessResource' AND ga:eventAction = 'Download'
    

    您甚至可以使用文档中的API explorer 进行尝试。

    【讨论】:

    • 这是一个干净的解决方案,但是这些页面浏览量是为用户设计的,他们会创建诸如“今天查看最多的图片”之类的图表,所以我需要将它们放在我的数据库中
    • 我已经更新了我的答案,以包含有关如何从 Google Analytics 中获取数据以用于绘图等的详细信息。希望对您有所帮助。
    • 理论上这是一个相当不错的主意,[un]幸运的是,有太多对象甚至无法开始考虑必须每天运行的外部服务...显示第 0 - 29 行(~35,002,499共 1 条,查询耗时 0.0268 秒)
    • 真可惜。我在一个大而繁忙的网站上使用它就好了。它让我忘记维护日志表等。听起来你当时正在 AJAXing 它。
    • 您每天跟踪多少事件?有多少对象?谷歌解析数据需要多长时间?
    猜你喜欢
    • 2020-10-24
    • 2013-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-21
    • 2011-05-28
    相关资源
    最近更新 更多