Merge pull request #10052 from edx/andya/segmentio-performance
Upgrade segment.io and possibly improve its performance
This commit is contained in:
@@ -97,6 +97,7 @@ import json
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<%include file="widgets/segment-io-footer.html" />
|
||||
<div class="modal-cover"></div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
22
cms/templates/widgets/segment-io-footer.html
Normal file
22
cms/templates/widgets/segment-io-footer.html
Normal file
@@ -0,0 +1,22 @@
|
||||
% if settings.CMS_SEGMENT_KEY:
|
||||
<!-- begin segment footer -->
|
||||
<script type="text/javascript">
|
||||
% if user.is_authenticated():
|
||||
// We can't use JQuery's on load method because it
|
||||
// screws up RequireJS' JQuery initialization.
|
||||
var onLoadCallback = function() {
|
||||
analytics.identify("${user.id}", {
|
||||
email: "${user.email}",
|
||||
username: "${user.username}"
|
||||
});
|
||||
};
|
||||
if (window.addEventListener) {
|
||||
window.addEventListener("load", onLoadCallback, false);
|
||||
}
|
||||
else {
|
||||
onLoadCallback();
|
||||
}
|
||||
% endif
|
||||
</script>
|
||||
<!-- end segment footer -->
|
||||
% endif
|
||||
@@ -14,16 +14,12 @@
|
||||
var course_location_analytics = "${locator | escapejs}";
|
||||
%endif
|
||||
|
||||
var analytics=analytics||[];analytics.load=function(e){var t=document.createElement("script");t.type="text/javascript",t.async=!0,t.src=("https:"===document.location.protocol?"https://":"http://")+"d2dq2ahtl5zl1z.cloudfront.net/analytics.js/v1/"+e+"/analytics.min.js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(t,n);var r=function(e){return function(){analytics.push([e].concat(Array.prototype.slice.call(arguments,0)))}},i=["identify","track","trackLink","trackForm","trackClick","trackSubmit","pageview","ab","alias","ready"];for(var s=0;s<i.length;s++)analytics[i[s]]=r(i[s])};
|
||||
// Asynchronously load Segment's analytics.js library
|
||||
!function(){var analytics=window.analytics=window.analytics||[];if(!analytics.initialize)if(analytics.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{analytics.invoked=!0;analytics.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","page","once","off","on"];analytics.factory=function(t){return function(){var e=Array.prototype.slice.call(arguments);e.unshift(t);analytics.push(e);return analytics}};for(var t=0;t<analytics.methods.length;t++){var e=analytics.methods[t];analytics[e]=analytics.factory(e)}analytics.load=function(t){var e=document.createElement("script");e.type="text/javascript";e.async=!0;e.src=("https:"===document.location.protocol?"https://":"http://")+"cdn.segment.com/analytics.js/v1/"+t+"/analytics.min.js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(e,n)};analytics.SNIPPET_VERSION="3.1.0";
|
||||
analytics.load("${ settings.CMS_SEGMENT_KEY }");
|
||||
|
||||
% if user.is_authenticated():
|
||||
analytics.identify("${ user.id }", {
|
||||
email : "${ user.email }",
|
||||
username : "${ user.username }"
|
||||
});
|
||||
|
||||
% endif
|
||||
analytics.page();
|
||||
}}();
|
||||
// Note: user tracking moved to segment-io-footer.html
|
||||
</script>
|
||||
<!-- end Segment -->
|
||||
% else:
|
||||
|
||||
@@ -70,6 +70,7 @@
|
||||
<%static:js group='base_vendor'/>
|
||||
<%static:css group='style-vendor'/>
|
||||
<%include file="widgets/segment-io.html" />
|
||||
<%include file="widgets/segment-io-footer.html" />
|
||||
% endif
|
||||
% if footer_css_urls:
|
||||
% for url in footer_css_urls:
|
||||
|
||||
@@ -75,6 +75,7 @@
|
||||
<%static:js group='base_vendor'/>
|
||||
<%static:css group='style-vendor'/>
|
||||
<%include file="widgets/segment-io.html" />
|
||||
<%include file="widgets/segment-io-footer.html" />
|
||||
% endif
|
||||
% if footer_css_urls:
|
||||
% for url in footer_css_urls:
|
||||
|
||||
@@ -159,6 +159,7 @@ from branding import api as branding_api
|
||||
% endif
|
||||
|
||||
<%block name="js_extra"/>
|
||||
<%include file="widgets/segment-io-footer.html" />
|
||||
<script type="text/javascript" src="${static.url('js/vendor/noreferrer.js')}" charset="utf-8"></script>
|
||||
<script type="text/javascript" src="${static.url('js/utils/navigation.js')}" charset="utf-8"></script>
|
||||
</body>
|
||||
|
||||
14
lms/templates/widgets/segment-io-footer.html
Normal file
14
lms/templates/widgets/segment-io-footer.html
Normal file
@@ -0,0 +1,14 @@
|
||||
% if settings.LMS_SEGMENT_KEY:
|
||||
<!-- begin segment footer -->
|
||||
<script type="text/javascript">
|
||||
% if user.is_authenticated():
|
||||
$(window).load(function() {
|
||||
analytics.identify("${user.id}", {
|
||||
email: "${user.email}",
|
||||
username: "${user.username}"
|
||||
});
|
||||
});
|
||||
% endif
|
||||
</script>
|
||||
<!-- end segment footer -->
|
||||
% endif
|
||||
@@ -2,16 +2,11 @@
|
||||
<!-- begin Segment -->
|
||||
<script type="text/javascript">
|
||||
// Asynchronously load Segment's analytics.js library
|
||||
window.analytics||(window.analytics=[]),window.analytics.methods=["identify","track","trackLink","trackForm","trackClick","trackSubmit","page","pageview","ab","alias","ready","group","on","once","off"],window.analytics.factory=function(t){return function(){var a=Array.prototype.slice.call(arguments);return a.unshift(t),window.analytics.push(a),window.analytics}};for(var i=0;i<window.analytics.methods.length;i++){var method=window.analytics.methods[i];window.analytics[method]=window.analytics.factory(method)}window.analytics.load=function(t){var a=document.createElement("script");a.type="text/javascript",a.async=!0,a.src=("https:"===document.location.protocol?"https://":"http://")+"d2dq2ahtl5zl1z.cloudfront.net/analytics.js/v1/"+t+"/analytics.min.js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(a,n)},window.analytics.SNIPPET_VERSION="2.0.8",
|
||||
!function(){var analytics=window.analytics=window.analytics||[];if(!analytics.initialize)if(analytics.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{analytics.invoked=!0;analytics.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","page","once","off","on"];analytics.factory=function(t){return function(){var e=Array.prototype.slice.call(arguments);e.unshift(t);analytics.push(e);return analytics}};for(var t=0;t<analytics.methods.length;t++){var e=analytics.methods[t];analytics[e]=analytics.factory(e)}analytics.load=function(t){var e=document.createElement("script");e.type="text/javascript";e.async=!0;e.src=("https:"===document.location.protocol?"https://":"http://")+"cdn.segment.com/analytics.js/v1/"+t+"/analytics.min.js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(e,n)};analytics.SNIPPET_VERSION="3.1.0";
|
||||
analytics.load("${ settings.LMS_SEGMENT_KEY }");
|
||||
analytics.page();
|
||||
|
||||
% if user.is_authenticated():
|
||||
analytics.identify("${user.id}", {
|
||||
email: "${user.email}",
|
||||
username: "${user.username}"
|
||||
});
|
||||
% endif
|
||||
}}();
|
||||
// Note: user tracking moved to segment-io-footer.html
|
||||
</script>
|
||||
<!-- end Segment -->
|
||||
% else:
|
||||
|
||||
Reference in New Issue
Block a user