Skip to content

Commit

Permalink
Merge pull request #5 from datainsider-co/upgrade_tracking
Browse files Browse the repository at this point in the history
Upgrade tracking
  • Loading branch information
tvc12 authored Jan 9, 2023
2 parents a987429 + 1aae162 commit 2c2b063
Show file tree
Hide file tree
Showing 14 changed files with 758 additions and 586 deletions.
10 changes: 10 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,16 @@ npm i di-web-analytics
```bash
yarn add di-web-analytics
```
🔥 using CDN
```html
<script>
(function(a,b,c,d,e){var f={},g=[],h=function(m){return function(){var n={};n['funcName']=m,n['arguments']=arguments,g['push'](n);};},i=['init','setLoggerLevel','autoTrackDom','enterScreenStart','enterScreen','exitScreen','setGlobalConfig','time','track','identify','setUserProfile','viewProduct','search','register','login','logout','destroySession','addToCart','removeFromCart','trackCheckoutProducts','checkout','cancelOrder','returnOrder','notifyUsingCookies','reset'];for(var j=0x0;j<i['length'];j++){f[i[j]]=h(i[j]);}var k=b['createElement'](c),l=b['getElementsByTagName'](c)[0x0];k['async']=0x1,k['src']=d,l['parentNode']['insertBefore'](k,l),a['createDiAnalytics']=function(){return e=arguments,f;},k['onload']=function(){e&&(a['DiAnalytics']['init']['apply'](a['DiAnalytics'],e),g['forEach'](function(m){m['funcName']&&a['DiAnalytics'][m['funcName']]['apply'](a['DiAnalytics'],m['arguments']);}),a['diQueue']=[]);};}(window,document,'script','https://analytics.datainsider.co/static/js/di-web-analytics/0.8.5/index.js'));
window.DiAnalytics = window.createDiAnalytics(
'YOUR_API_HOST',
'YOUR_API_KEY',
);
</script>
```

#### Init Tracking

Expand Down
8 changes: 4 additions & 4 deletions karma.conf.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,14 @@ module.exports = function (config) {
'tests/base_test_function.js',
{pattern: 'tests/**/*.spec.js', included: true},
],
exclude: [
"tests/generate_data.spec.js"
],
// exclude: [
// "tests/generate_data.spec.js"
// ],
reporters: ['progress'],
port: 9876, // karma web server port
colors: true,
logLevel: config.LOG_INFO,
browsers: [ 'Chrome', 'ChromeHeadless', 'Firefox'],
browsers: [ 'Chrome'],
autoWatch: false,
concurrency: Infinity,
customLaunchers: {
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "di-web-analytics",
"version": "0.8.4",
"version": "0.8.5",
"description": "Data insider web analytics",
"repository": {
"type": "git",
Expand Down
3 changes: 3 additions & 0 deletions src/domain/system_events.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,8 @@ export enum SystemEvents {
CancelOrder = 'cancel_order',
ReturnOrder = 'return_order',
CheckoutProduct = 'checkout_product',
Register = 'register',
Login = 'login',
Logout = 'logout',

}
71 changes: 71 additions & 0 deletions src/init_tracking.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
(function(window, document, tagName, libUrl, initOptions) {
var diAnalytics = {};
var queue = [];
var getFunctionPushToQueue = function(funcName) {
return function() {
queue.push(
{funcName: funcName, arguments: arguments});
};
};
var diFunctions = [
'init',
'setLoggerLevel',
'autoTrackDom',
'enterScreenStart',
'enterScreen',
'exitScreen',
'setGlobalConfig',
'time',
'track',
'identify',
'setUserProfile',
'viewProduct',
'search',
'register',
'login',
'logout',
'destroySession',
'addToCart',
'removeFromCart',
'trackCheckoutProducts',
'checkout',
'cancelOrder',
'returnOrder',
'notifyUsingCookies',
'reset',
];
for (var index = 0; index < diFunctions.length; index++) {
diAnalytics[diFunctions[index]] = getFunctionPushToQueue(diFunctions[index]);
}
var newTag = document.createElement(tagName);
var firstTag = document.getElementsByTagName(tagName)[0];
newTag.async = 1;
newTag.src = libUrl;
firstTag.parentNode.insertBefore(newTag, firstTag);
window.createDiAnalytics = function() {
initOptions = arguments;
return diAnalytics;
};
newTag.onload = function() {
if (initOptions) {
window.DiAnalytics.init.apply(window.DiAnalytics, initOptions);
queue.forEach(function(item) {
if (item.funcName) {
window.DiAnalytics[item.funcName].apply(window.DiAnalytics,
item.arguments);
}
});
window.diQueue = [];
}
};
})(
window,
document,
'script',
'https://analytics.datainsider.co/static/js/di-web-analytics/0.8.4/index.js'
);

window.DiAnalytics = window.createDiAnalytics(
'https://host-api/',
'api-key',
);
22 changes: 18 additions & 4 deletions src/misc/data_manager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,13 @@ export class DataManager {
static readonly USER_ID = 'di_tracking_user_id';
static readonly GLOBAL_PROPERTIES = 'di_tracking_global_properties';
static readonly EVENTS = 'di_events';
static readonly SID = 'di_sid';

static reset() {
this.deleteUserId();
this.deleteGlobalProperties();
}
// static reset() {
// this.deleteUserId();
// this.deleteSID();
// // this.deleteGlobalProperties();
// }

static setTrackingHost(url: string): void {
localStorage.setItem(DataManager.TRACKING_URL, url);
Expand Down Expand Up @@ -84,4 +86,16 @@ export class DataManager {
static deleteTemporaryEvents(): void {
localStorage.removeItem(DataManager.EVENTS);
}

static getSID(): string | undefined {
return localStorage.getItem(DataManager.SID) || void 0;
}

static setSID(sid: string): void {
return localStorage.setItem(DataManager.SID, sid);
}

static deleteSID(): void {
localStorage.removeItem(DataManager.SID);
}
}
Loading

0 comments on commit 2c2b063

Please sign in to comment.