diff --git a/app/assets/javascripts/discourse/initializers/page_tracking.js b/app/assets/javascripts/discourse/initializers/page_tracking.js index 6ed83dd8b95..aa361ccada4 100644 --- a/app/assets/javascripts/discourse/initializers/page_tracking.js +++ b/app/assets/javascripts/discourse/initializers/page_tracking.js @@ -12,4 +12,11 @@ Discourse.addInitializer(function() { window._gaq.push(['_trackPageview']); }); } + + // Also use Universal Analytics if it is present + if (typeof window.ga !== 'undefined') { + pageTracker.on('change', function() { + window.ga('send', 'pageview'); + }); + } }); diff --git a/app/helpers/common_helper.rb b/app/helpers/common_helper.rb index 9946e9c555d..0ac0cc8b81f 100644 --- a/app/helpers/common_helper.rb +++ b/app/helpers/common_helper.rb @@ -1,4 +1,10 @@ module CommonHelper + def render_google_universal_analytics_code + if Rails.env == "production" && SiteSetting.ga_universal_tracking_code.present? + render partial: "common/google_universal_analytics" + end + end + def render_google_analytics_code if Rails.env == "production" && SiteSetting.ga_tracking_code.present? render partial: "common/google_analytics" diff --git a/app/views/common/_google_universal_analytics.html.erb b/app/views/common/_google_universal_analytics.html.erb new file mode 100644 index 00000000000..c34c8d677fe --- /dev/null +++ b/app/views/common/_google_universal_analytics.html.erb @@ -0,0 +1,10 @@ + diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 913165ead07..ba52b4e21db 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -27,6 +27,8 @@ <%= raw SiteContent.content_for(:head) %> + <%= render_google_universal_analytics_code %> + <%= yield :head %> diff --git a/config/locales/server.en.yml b/config/locales/server.en.yml index 8220ee5f5d9..a75462a4136 100644 --- a/config/locales/server.en.yml +++ b/config/locales/server.en.yml @@ -604,8 +604,10 @@ en: traditional_markdown_linebreaks: "Use traditional linebreaks in Markdown, which require two trailing spaces for a linebreak" post_undo_action_window_mins: "Number of seconds users are allowed to reverse actions on a post (like, flag, etc)" must_approve_users: "Admins must approve all users before they gain access" - ga_tracking_code: "Google analytics tracking code code, eg: UA-12345678-9; see http://google.com/analytics" - ga_domain_name: "Google analytics domain name, eg: mysite.com; see http://google.com/analytics" + ga_tracking_code: "Google analytics (ga.js) tracking code code, eg: UA-12345678-9; see http://google.com/analytics" + ga_domain_name: "Google analytics (ga.js) domain name, eg: mysite.com; see http://google.com/analytics" + ga_universal_tracking_code: "Google Universal Analytics (analytics.js) tracking code code, eg: UA-12345678-9; see http://google.com/analytics" + ga_universal_domain_name: "Google Universal Analytics (analytics.js) domain name, eg: mysite.com; see http://google.com/analytics" enable_escaped_fragments: "Enable workaround solution to help older search engine webcrawlers index your site. WARNING: enable only if you have to." enable_noscript_support: "Enable standard webcrawler search engine support via the noscript tag" top_menu: "Determine which items appear in the homepage navigation, and in what order. Example latest|new|unread|starred|categories|top|read|posted" diff --git a/config/site_settings.yml b/config/site_settings.yml index 6e8fcffe9a7..5b43ab241ec 100644 --- a/config/site_settings.yml +++ b/config/site_settings.yml @@ -30,6 +30,12 @@ basic: ga_domain_name: client: true default: '' + ga_universal_tracking_code: + client: true + default: '' + ga_universal_domain_name: + client: true + default: 'auto' category_featured_topics: client: true default: 3