Add CKAN 2.0 resource download event tracking

This commit is contained in:
Sean Hammond 2012-10-19 16:10:58 +02:00
parent 58693e9d26
commit 70dc8c78d4
3 changed files with 30 additions and 4 deletions

View File

@ -0,0 +1,15 @@
// Add Google Analytics Event Tracking to resource download links.
this.ckan.module('google-analytics', function(jQuery, _) {
return {
options: {
googleanalytics_resource_prefix: ''
},
initialize: function() {
resource_prefix = this.options.googleanalytics_resource_prefix;
jQuery('a.resource-url-analytics').on('click', function(){
resource_url = resource_prefix + encodeURIComponent(this.href);
_gaq.push(['_trackPageview', resource_url]);
});
}
}
});

View File

@ -38,14 +38,22 @@ class GoogleAnalyticsPlugin(p.SingletonPlugin):
self.googleanalytics_javascript_url = h.url_for_static(
'/scripts/ckanext-googleanalytics.js')
self.googleanalytics_resource_prefix = config.get(
'googleanalytics.resource_prefix', commands.DEFAULT_RESOURCE_URL_TAG)
# If resource_prefix is not in config file then write the default value
# to the config dict, otherwise templates seem to get 'true' when they
# try to read resource_prefix from config.
if 'googleanalytics.resource_prefix' not in config:
config['googleanalytics.resource_prefix'] = (
commands.DEFAULT_RESOURCE_URL_TAG)
self.googleanalytics_resource_prefix = config[
'googleanalytics.resource_prefix']
self.show_downloads = converters.asbool(
config.get('googleanalytics.show_downloads', True))
self.track_events = converters.asbool(
config.get('googleanalytics.track_events', False))
p.toolkit.add_resource('fanstatic_library', 'ckanext-googleanalytics')
def update_config(self, config):
'''Change the CKAN (Pylons) environment configuration.

View File

@ -9,7 +9,10 @@
{% block scripts %}
{{ super() }}
{% block googleanalytics_footer %}
{{ h.googleanalytics_footer() }}
{% block googleanalytics_event_tracking %}
{% resource 'ckanext-googleanalytics/googleanalytics_event_tracking.js' %}
<div class="js-hide" data-module="google-analytics"
data-module-googleanalytics_resource_prefix="{{ config['googleanalytics.resource_prefix'] }}">
</div>
{% endblock %}
{% endblock %}