Awesome
ember-metrics-simple-analytics
ember-metrics adapter for Simple Analytics
Compatibility
- Ember.js v3.28 or above
- Embroider or ember-auto-import v2
- ember-metrics v2
Installation
ember install ember-metrics-simple-analytics
Configuration
To setup, you should first configure the service through config/environemnt
:
module.exports = function (environment) {
var ENV = {
metricsAdapters: [
{
name: 'SimpleAnalytics',
environments: ['production'],
}
]
}
}
See the Simple Analytics Docs for more details about the configuration options.
module.exports = function (environment) {
var ENV = {
metricsAdapters: [
{
name: 'SimpleAnalytics',
environments: ['production'],
config: {
autoCollect: 'true',
allowParams: 'product-id',
collectDnt: false,
hostname: 'picturewham.com',
ignoreMetrices: ['scrolled', 'timeonpage'],
ignorePages: ['/search/contact', '/vouchers/*'],
mode: 'hash',
nonUniqueHostnames: 'checkout.stripe.com',
pathOverwriter: 'myPathOverwriter',
src: 'https://my-custom-script.example.org/latest.js',
}
}
]
}
}
Usage
This adapter by default sets Simple Analytics auto collect to false. You must explicitly call trackPage
when you transition into a route and you need to register SimpleAnalytics
as a metrics-adapter
, for example:
// app/routes/application.js
import Route from '@ember/routing/route';
import { getOwner } from '@ember/application';
import { service } from '@ember/service';
import SimpleAnalytics from 'ember-metrics-simple-analytics';
export default class ApplicationRoute extends Route {
@service metrics;
@service router;
constructor() {
super(...arguments);
getOwner(this).register(
'metrics-adapter:simple-analytics',
SimpleAnalytics
);
this.router.on('routeDidChange', () => {
const page = this.router.currentURL;
const title = this.router.currentRouteName || 'unknown';
this.metrics.trackPage({ page, title });
});
}
}
To send custom events use:
this.metrics.trackEvent({ name: 'myCustomeEvent', someotherkey: 'brilliant' });
Deviations from plain Simple Analytics
Auto Collect
If you've used Simple Analytics before without ember-metrics
then you'll notice that auto page view collection is usually enabled for Simple Analytics without this adapter.
Disabling Simple Analytics auto collect page views in this adapter allows for better integration with ember-metrics
; it works well with multiple other adapters and is the expected behaviour of ember-metric adapters.
Metadata or Context
Simple Analytics provides numerous mechanisms to collect additional data for events and page views. The ember-metrics
context
should be used instead of the Simple Analytics specific metadata mechanisms.
Warning Do not include personal data in your metadata like email addresses, identifiers, or any other type of personal data. Simple Analytics don’t allow it and your account might be suspended.
this.metrics.context = {
plan: 'starter'
};
Contributing
See the Contributing guide for details.
License
This project is licensed under the MIT License.