/
_analytics.html.haml
37 lines (33 loc) · 1.96 KB
/
_analytics.html.haml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
- create_params = {cookieDomain: (Rails.env.development? ? 'none' : 'auto')}
-# The following dimensions must match in order the custom dimension settings in our Google Analytics account.
- selected_language_dim, age_dim, gender_dim, user_type_dim, env_dim, pixel_ratio, has_teacher = (1..7).map{|x|"dimension#{x}"}
- dimensions = {}
- dimensions[selected_language_dim] = language if (accepted_languages.present? && accepted_languages.first != language)
- dimensions[env_dim] = Rails.env
- if user_signed_in?
- dimensions[age_dim] = current_user.age.to_s
- dimensions[gender_dim] = current_user.gender
- dimensions[user_type_dim] = current_user.user_type
- dimensions[has_teacher] = current_user.teachers.any? ? '1' : '0'
- create_params[:userId] = "#{current_user.id}#{'-dev' unless Rails.env.production?}"
:javascript
// Google Analytics snippet (https://developers.google.com/analytics/devguides/collection/analyticsjs/)
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-37745279-1', 'auto', #{create_params.to_json});
var dimensions = #{dimensions.to_json};
if ('devicePixelRatio' in window) {
dimensions["#{pixel_ratio}"] = window.devicePixelRatio.toString();
}
ga('set', dimensions);
ga('send', 'pageview');
function trackEvent(category, action, label, value) {
ga('send', 'event', category, action, label, value);
}
(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-TZZBRK5');