diff --git a/app/analytics.html b/app/analytics.html deleted file mode 100644 index 8f5138f..0000000 --- a/app/analytics.html +++ /dev/null @@ -1,12 +0,0 @@ - - - diff --git a/app/index.html b/app/index.html index d2a50b6..86fc6c1 100644 --- a/app/index.html +++ b/app/index.html @@ -1,22 +1,32 @@ - - + + ShareDrop - - + + - - + + {{content-for "head"}} - - + + {{content-for "head-footer"}} - {{content-for "analytics"}} diff --git a/app/initializers/prerequisites.js b/app/initializers/prerequisites.js index e4bd718..87bdf22 100644 --- a/app/initializers/prerequisites.js +++ b/app/initializers/prerequisites.js @@ -59,12 +59,11 @@ export function initialize(application) { // TODO: move it to a separate initializer function trackSizeOfReceivedFiles() { $.subscribe('file_received.p2p', (event, data) => { - Analytics.trackEvent( - 'file', - 'received', - 'size', - Math.round(data.info.size / 1000), - ); + Analytics.trackEvent('received', { + event_category: 'file', + event_label: 'size', + value: Math.round(data.info.size / 1000), + }); }); } diff --git a/app/services/analytics.js b/app/services/analytics.js index e8f5d3b..96f1208 100644 --- a/app/services/analytics.js +++ b/app/services/analytics.js @@ -1,11 +1,7 @@ export default { - hasAnalytics() { - return window.ga && typeof window.ga === 'function'; - }, - - trackEvent(category, action, label, value) { - if (this.hasAnalytics()) { - window.ga('send', 'event', category, action, label, value); + trackEvent(name, parameters) { + if (window.gtag && typeof window.gtag === 'function') { + window.gtag('event', name, parameters); } }, }; diff --git a/config/environment.js b/config/environment.js index 3c6c319..84952a6 100644 --- a/config/environment.js +++ b/config/environment.js @@ -46,7 +46,7 @@ module.exports = function (environment) { } if (environment === 'production') { - ENV.GOOGLE_ANALYTICS_ID = 'UA-41889586-2'; + ENV.googleAnalyticsId = 'UA-41889586-2'; } return ENV; diff --git a/ember-cli-build.js b/ember-cli-build.js index ab174d0..2d1e444 100644 --- a/ember-cli-build.js +++ b/ember-cli-build.js @@ -1,9 +1,6 @@ /* eslint-env node */ const EmberApp = require('ember-cli/lib/broccoli/ember-app'); -const env = process.env.EMBER_ENV; -const config = require('./config/environment')(env); - module.exports = function (defaults) { const app = new EmberApp(defaults, { dotEnv: { @@ -17,19 +14,6 @@ module.exports = function (defaults) { fingerprintAssetMap: true, }, - inlineContent: { - analytics: { - file: 'app/analytics.html', - enabled: !!config.GOOGLE_ANALYTICS_ID, - postProcess(content) { - return content.replace( - /\{\{GOOGLE_ANALYTICS_ID\}\}/g, - config.GOOGLE_ANALYTICS_ID, - ); - }, - }, - }, - sassOptions: { extension: 'sass', }, diff --git a/lib/google-analytics/index.js b/lib/google-analytics/index.js new file mode 100644 index 0000000..98c8dd0 --- /dev/null +++ b/lib/google-analytics/index.js @@ -0,0 +1,27 @@ +const { name } = require('./package'); + +module.exports = { + name, + + isDevelopingAddon() { + return true; + }, + + contentFor(type, config) { + const id = config.googleAnalyticsId; + + if (type === 'head' && id) { + return ` + + + `; + } + + return ''; + }, +}; diff --git a/lib/google-analytics/package.json b/lib/google-analytics/package.json new file mode 100644 index 0000000..6a526e4 --- /dev/null +++ b/lib/google-analytics/package.json @@ -0,0 +1,6 @@ +{ + "name": "google-analytics", + "keywords": [ + "ember-addon" + ] +} diff --git a/package.json b/package.json index 72d7545..d37eac2 100644 --- a/package.json +++ b/package.json @@ -93,5 +93,10 @@ }, "ember": { "edition": "octane" + }, + "ember-addon": { + "paths": [ + "lib/google-analytics" + ] } }