Best way to count page view in Plone

后端 未结 6 545
名媛妹妹
名媛妹妹 2021-01-13 15:00

I\'m working in a case require fairy complex use of page views.

Each content object will have page view, and this should be accessed easily so that we can do various

相关标签:
6条回答
  • 2021-01-13 15:17

    We have done this long time ago (plone2.5). The customer wants this ! Once it was done it was finally not the real need. it was the prefered articles, it is not equal to the most viewed... so content rating was the one.

    So first validate this with your customer.

    Next the best way to achieve your need is to install an analytics tool, googleanalytics or anything else but with an API to ask the most viewed page. If you need this into the portal_catalog you can index the value when an article is viewed + only every hour.

    0 讨论(0)
  • 2021-01-13 15:18

    A write on every access is a worst-case scenario for the ZODB. Relational DBs are generally pretty good at this sort of thing, and I'd look at that first.

    Need to sort on the data? Just add some utility or content type methods to query the db. When you need to lookup, do the catalog search, then use the db-connecting methods to annotate the data for the sort.

    0 讨论(0)
  • 2021-01-13 15:21

    We have used an external log analyser for a client project (a large private intranet). Architecture:

    • A js library adds a 'web bug', an empty gif with additional query parameters, loaded from a dedicated nginx server.
    • A log processor picks up the nginx logs, rotates them, and parses the lines into a database, counting access together with the additional metadata. The entries in the db include the UID of the content, among other interesting angles.
    • The site has read-only access to the same database, to make stats queries.

    Page counts are then easy, just query the database for the right UID. Ranked lists are not much harder; query the statistics, then use the UIDs to attach catalog data to the result set.

    The biggest problem we face now is a lack of data warehousing know-how (turning individual access rows in the database into efficient aggregates), and we are looking into retooling this setup to use Piwik as the statistics engine instead.

    We cannot use Google Analytics in this particular case, but if you do not have such a restriction, I'd certainly would advise you to look into collective.googleanalytics and see if you can make it fit your use case.

    0 讨论(0)
  • 2021-01-13 15:23

    Did you already seen this product? : http://plone.org/products/collective.googleanalytics/

    It seems to fits your needs, or at least it could be a good base for your customizations.

    0 讨论(0)
  • 2021-01-13 15:26

    I noticed that the folks from Nidelven just released http://plone.org/products/Products.ZODBFriendlyCounter, which promises to do this natively without excessive ZODB writes/bloat. Worth checking out, would love to hear more expert opinions on this.

    0 讨论(0)
  • 2021-01-13 15:27

    If you use dexterity ,you should customize a pageview behavior to add annotoatin data to main object and the annotation date use volatile attribute.

    0 讨论(0)
提交回复
热议问题