timwis / jkan

A lightweight, backend-free open data portal, powered by Jekyll
https://jkan.io
MIT License
219 stars 309 forks source link

Add configurable google analytics #46

Closed timwis closed 8 years ago

timwis commented 8 years ago

Perhaps the account number goes in _config.yml and it's configurable on the /admin/ page

jalbertbowden commented 8 years ago

any thoughts around using open source analytics? i know ga is king, but lean towards not using them when its avoidable. just a thought

timwis commented 8 years ago

Interesting. i'm friends with @laurenancona who's a GA whiz so I don't really know what the other options are. JKAN could absolutely support other tags though - it could just be a liquid template conditional. What did you have in mind?

laurenancona commented 8 years ago

The downside of most of the OSS analytics options is the overhead of configuring/maintaining the store yourself, and for sites with significant traffic there are some other performance tweaks that are necessary for client-side tracking. That said, I could probably create a pluggable simple custom event config for Piwik as well as GA without too much hassle. I need to go back the Piwik's docs for tag structure, but it could likely be easily enabled by the presence of an account number in either a Google Analytics or Piwik property number in _config.yml.

Alternately, though it's another Google product, I typically just recommend using Google Tag Manager for this purpose. It's configurable outside the context of the application and allows swapping analytics tools at any time without changing the codebase directly.

Happy to expound on any of the above options, @jalbertbowden, and submit a PR, @timwis.

jalbertbowden commented 8 years ago

i'd love to hear anything else you could offer. especially to hear plus/minus of ga vs ossa (in an acronym i just made up for this conversation) more in depth. perhaps you are aware of any pain points or low hanging fruit for ossa?

timwis commented 8 years ago

Thanks for the thoughtful response @laurenancona. One other point comes to mind -- given JKAN is a static site, there's no way to sort datasets by popularity. I'd love to leverage the analytics product to offer this. If there's a way to query the analytics API to get a list of pages under the /datasets/ directory sorted by popularity, without having to authenticate (or using a public-safe key), that would be pretty cool.

laurenancona commented 8 years ago

@timwis Provided we don't hit it too frequently, we could likely get away with using the superProxy to query top n sets, etc, which handles auth via a server-side Google Apps Engine app (blerg), but has lower API limits than other methods. If you'd like, you might make a separate issue for that & assign both to me - I'll work through a few scenarios.

laurenancona commented 8 years ago

@timwis Though on further thought, I'm not sure this would be super easy for forks to implement. It's sort of a catch22: use the Goog to surface top sets dynamically (which will still require forkers to set and configure a separate Apps Engine instance for their GA account), or go with OSSA (ht/ @jalbertbowden ) and they'd have to go through the not insignificant task of deploying Piwik or similar before they could take advantage of that. I'll think on it some more.