sourcebuster
Version:
Get sources of your site's visitors (utm / organic / referral / typein).
101 lines (81 loc) • 2.59 kB
JavaScript
var terms = require('./terms'),
utils = require('./helpers/utils');
var data = {
containers: {
current: 'sbjs_current',
current_extra: 'sbjs_current_add',
first: 'sbjs_first',
first_extra: 'sbjs_first_add',
session: 'sbjs_session',
udata: 'sbjs_udata',
promocode: 'sbjs_promo'
},
service: {
migrations: 'sbjs_migrations'
},
delimiter: '|||',
aliases: {
main: {
type: 'typ',
source: 'src',
medium: 'mdm',
campaign: 'cmp',
content: 'cnt',
term: 'trm'
},
extra: {
fire_date: 'fd',
entrance_point: 'ep',
referer: 'rf'
},
session: {
pages_seen: 'pgs',
current_page: 'cpg'
},
udata: {
visits: 'vst',
ip: 'uip',
agent: 'uag'
},
promo: 'code'
},
pack: {
main: function(sbjs) {
return (
data.aliases.main.type + '=' + sbjs.type + data.delimiter +
data.aliases.main.source + '=' + sbjs.source + data.delimiter +
data.aliases.main.medium + '=' + sbjs.medium + data.delimiter +
data.aliases.main.campaign + '=' + sbjs.campaign + data.delimiter +
data.aliases.main.content + '=' + sbjs.content + data.delimiter +
data.aliases.main.term + '=' + sbjs.term
);
},
extra: function(timezone_offset) {
return (
data.aliases.extra.fire_date + '=' + utils.setDate(new Date, timezone_offset) + data.delimiter +
data.aliases.extra.entrance_point + '=' + document.location.href + data.delimiter +
data.aliases.extra.referer + '=' + (document.referrer || terms.none)
);
},
user: function(visits, user_ip) {
return (
data.aliases.udata.visits + '=' + visits + data.delimiter +
data.aliases.udata.ip + '=' + user_ip + data.delimiter +
data.aliases.udata.agent + '=' + navigator.userAgent
);
},
session: function(pages) {
return (
data.aliases.session.pages_seen + '=' + pages + data.delimiter +
data.aliases.session.current_page + '=' + document.location.href
);
},
promo: function(promo) {
return (
data.aliases.promo + '=' + utils.setLeadingZeroToInt(utils.randomInt(promo.min, promo.max), promo.max.toString().length)
);
}
}
};
module.exports = data;
;