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"
+ ]
}
}