diff options
| -rwxr-xr-x | StoneIsland/www/index.html | 3 | ||||
| -rwxr-xr-x | StoneIsland/www/js/index.js | 6 | ||||
| -rwxr-xr-x | StoneIsland/www/js/lib/_router.js | 2 | ||||
| -rwxr-xr-x | StoneIsland/www/js/lib/blogs/HubView.js | 2 | ||||
| -rw-r--r-- | StoneIsland/www/js/lib/etc/analytics.js | 49 | ||||
| -rwxr-xr-x | StoneIsland/www/js/lib/etc/push.js | 2 | ||||
| -rwxr-xr-x | StoneIsland/www/js/lib/products/CollectionView.js | 3 |
7 files changed, 64 insertions, 3 deletions
diff --git a/StoneIsland/www/index.html b/StoneIsland/www/index.html index 2e4e50b6..28fd1467 100755 --- a/StoneIsland/www/index.html +++ b/StoneIsland/www/index.html @@ -12,7 +12,7 @@ --> -<meta http-equiv="Content-Security-Policy" content="default-src * gap: 'unsafe-inline' 'unsafe-eval'; script-src * 'unsafe-inline' 'unsafe-eval'; object-src * 'unsafe-inline' 'unsafe-eval'; style-src * 'unsafe-inline' 'unsafe-eval'; img-src * 'unsafe-inline' 'unsafe-eval'; media-src * 'unsafe-inline' 'unsafe-eval'; frame-src * gap: 'unsafe-inline' 'unsafe-eval'; font-src * 'unsafe-inline' 'unsafe-eval'; connect-src * 'unsafe-inline' 'unsafe-eval'"> +<meta http-equiv="Content-Security-Policy" content="default-src * gap: 'unsafe-inline' 'unsafe-eval' https://ssl.gstatic.com https://www.google-analytics.com; script-src * 'unsafe-inline' 'unsafe-eval'; object-src * 'unsafe-inline' 'unsafe-eval' https://ssl.gstatic.com https://www.google-analytics.com; style-src * 'unsafe-inline' 'unsafe-eval'; img-src * 'unsafe-inline' 'unsafe-eval'; media-src * 'unsafe-inline' 'unsafe-eval'; frame-src * gap: 'unsafe-inline' 'unsafe-eval' https://ssl.gstatic.com https://www.google-analytics.com; font-src * 'unsafe-inline' 'unsafe-eval'; connect-src * 'unsafe-inline' 'unsafe-eval'"> <meta name="format-detection" content="telephone=no"> <meta name="msapplication-tap-highlight" content="no"> <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height"> @@ -1334,6 +1334,7 @@ <script src="js/sdk/product.js"></script> <script src="js/sdk/shipping.js"></script> +<script src="js/lib/etc/analytics.js"></script> <script src="js/lib/etc/push.js"></script> <script src="js/lib/etc/deeplink.js"></script> <script src="js/lib/etc/geo.js"></script> diff --git a/StoneIsland/www/js/index.js b/StoneIsland/www/js/index.js index 8574372d..9bc77c38 100755 --- a/StoneIsland/www/js/index.js +++ b/StoneIsland/www/js/index.js @@ -89,6 +89,7 @@ var app = (function(){ document.addEventListener('offline', app.offline, false) cordova.plugins.Keyboard.disableScroll(true) cordova.plugins.Keyboard.hideKeyboardAccessoryBar(false) + analytics.init() geo.fetch() sim.fetch(app.api_ready) var image = new Image @@ -117,8 +118,11 @@ var app = (function(){ if (navigator.onLine) { app.account.connect(window.deepLinkRoute || '/intro') app.blog.fetch(function(){ - console.log("navigating to deep link route after fetch") + console.log("blog fetched, launching router") app.router.initial_route = window.deepLinkRoute || null + if (app.router.initial_route) { + analytics.send('push/' + app.router.initial_route) + } app.router.launch() }) } diff --git a/StoneIsland/www/js/lib/_router.js b/StoneIsland/www/js/lib/_router.js index 75f598e9..9feb262a 100755 --- a/StoneIsland/www/js/lib/_router.js +++ b/StoneIsland/www/js/lib/_router.js @@ -101,6 +101,7 @@ var SiteRouter = Router.extend({ } // window.FirebasePlugin && window.FirebasePlugin.setScreenName(name) + analytics.send(name) console.log("view >>", app.view) app.header.set_back( !! app.view.back ) app.view.show() @@ -128,6 +129,7 @@ var SiteRouter = Router.extend({ if (app.view && app.view.hide) { app.view.hide() } + analytics.send('store/' + code) app.view = app.product app.header.set_back( true ) app.product.load(code) diff --git a/StoneIsland/www/js/lib/blogs/HubView.js b/StoneIsland/www/js/lib/blogs/HubView.js index 30339948..7a6f17d9 100755 --- a/StoneIsland/www/js/lib/blogs/HubView.js +++ b/StoneIsland/www/js/lib/blogs/HubView.js @@ -95,7 +95,7 @@ var HubView = ScrollableView.extend({ app.fullscreenViewer.show(url, url, stonewash(row.title)) }) gallery.on('settle', function(e){ - console.log(".gallery-target-" + row.id) + // console.log(".gallery-target-" + row.id) var currentImage = gallery.selectedElement var title = $(currentImage).get(0).getAttribute('aria-label') || default_title $(".gallery-" + row.id).attr('aria-label', title) diff --git a/StoneIsland/www/js/lib/etc/analytics.js b/StoneIsland/www/js/lib/etc/analytics.js new file mode 100644 index 00000000..0d026f2f --- /dev/null +++ b/StoneIsland/www/js/lib/etc/analytics.js @@ -0,0 +1,49 @@ +var analytics = (function() { + var analytics = {} + + analytics.fields = { + trackingId: 'UA-XXXXXXXX-Y', + clientId: localStorage.getItem('ga:clientId'), + storage: 'none', + } + + analytics.init = function() { + console.log("Analytics init") + analytics.build() + analytics.send('/') + } + + analytics.build = function() { + ;( 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','https://www.google-analytics.com/analytics.js','ga' ); + + analytics.ga = window.ga + analytics.ga('create', analytics.fields) + // prevent tasks that would abort tracking + analytics.ga('set', { + // don't abort if the protocol is not http(s) + checkProtocolTask: null, + // don't expect cookies to be enabled + checkStorageTask: null, + }) + // a callback function to get the clientId and store it ourselves + analytics.ga(function(tracker){ + localStorage.setItem('ga:clientId', tracker.get('clientId')); + }) + } + + analytics.send = function(path) { + console.log("/a\\ send", path) + if (!analytics.ga) return + analytics.ga('send', { + // these are the three required properties, check GA's doc for the optional ones + hitType: 'screenview', + screenName: path, + appName: 'StoneIsland' + }) + } + + return analytics +})() diff --git a/StoneIsland/www/js/lib/etc/push.js b/StoneIsland/www/js/lib/etc/push.js index 74aaf7b5..e09204d3 100755 --- a/StoneIsland/www/js/lib/etc/push.js +++ b/StoneIsland/www/js/lib/etc/push.js @@ -141,9 +141,11 @@ var push = (function(){ } } else if (is_hub) { + analytics.send("push/open/hub") app.router.go("hub") } else { + analytics.send("push/open/store") app.router.go("intro") } } diff --git a/StoneIsland/www/js/lib/products/CollectionView.js b/StoneIsland/www/js/lib/products/CollectionView.js index 70bb22b4..507c51d7 100755 --- a/StoneIsland/www/js/lib/products/CollectionView.js +++ b/StoneIsland/www/js/lib/products/CollectionView.js @@ -84,6 +84,9 @@ var CollectionView = ScrollableView.extend({ return } this.$loader.show() + if (!app.department_id) { + console.log("no department ID, store is closed") + } console.log("fetching", app.department_id) sdk.product.collection({ department_id: app.department_id, |
