Skip to content

Commit 95b0e0b

Browse files
committed
added utm handling
1 parent c0eb5c6 commit 95b0e0b

File tree

2 files changed

+59
-4
lines changed

2 files changed

+59
-4
lines changed

dist/breinify-api.js

Lines changed: 57 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12828,6 +12828,25 @@ dependencyScope.jQuery = $;;
1282812828
return value === true || value === false;
1282912829
}
1283012830
});
12831+
attributes.add('HANDLE_UTM', {
12832+
name: 'handleUtm',
12833+
defaultValue: false,
12834+
validate: function (value) {
12835+
return value === true || value === false;
12836+
}
12837+
});
12838+
attributes.add('UTM_MAPPER', {
12839+
name: 'utmMapper',
12840+
defaultValue: function(utmData, user) {
12841+
return {
12842+
'utmData': utmData,
12843+
'user': user
12844+
};
12845+
},
12846+
validate: function (value) {
12847+
return value === null || typeof(value) === 'function';
12848+
}
12849+
});
1283112850
attributes.add('AJAX_TIMEOUT', {
1283212851
name: 'timeout',
1283312852
defaultValue: 4000,
@@ -13413,6 +13432,38 @@ dependencyScope.jQuery = $;;
1341313432
return unixTimestamp + "-" + paraLocalDateTime + "-" + paraTimezone;
1341413433
},
1341513434

13435+
handleUtmParameters: function() {
13436+
13437+
// get the mapper to be used
13438+
var mapper = _config.get(ATTR_CONFIG.UTM_MAPPER);
13439+
if (typeof mapper !== 'function') {
13440+
return;
13441+
}
13442+
13443+
// see https://en.wikipedia.org/wiki/UTM_parameters
13444+
var params = BreinifyUtil.loc.params();
13445+
13446+
var utmSource = Breinify.UTL.isEmpty(params['utm_source']) ? null : params['utm_source'];
13447+
var utmMedium = Breinify.UTL.isEmpty(params['utm_medium']) ? null : params['utm_medium'];
13448+
var utmCampaign = Breinify.UTL.isEmpty(params['utm_campaign']) ? null : params['utm_campaign'];
13449+
var utmTerm = Breinify.UTL.isEmpty(params['utm_term']) ? null : params['utm_term'];
13450+
var utmContent = Breinify.UTL.isEmpty(params['utm_content']) ? null : params['utm_content'];
13451+
13452+
// create the data
13453+
var values = mapper({
13454+
'utmSource': utmSource,
13455+
'utmMedium': utmMedium,
13456+
'utmCampaign': utmCampaign,
13457+
'utmTerm': utmTerm,
13458+
'utmContent': utmContent
13459+
}, {});
13460+
13461+
// make sure we have a result and send the activity
13462+
if ($.isPlainObject(values) && $.isPlainObject(values.user) && $.isPlainObject(values.utmData)) {
13463+
Breinify.activity(values.user, 'utmData', null, null, values.utmData, null);
13464+
}
13465+
},
13466+
1341613467
handleGetParameters: function () {
1341713468
var knownParams = {
1341813469
'brec': {
@@ -13442,7 +13493,7 @@ dependencyScope.jQuery = $;;
1344213493
}
1344313494
},
1344413495

13445-
handleGetParameter: function(name, value, overrides) {
13496+
handleGetParameter: function (name, value, overrides) {
1344613497

1344713498
// parse it and make sure it was parseable
1344813499
var parsedValue = _privates.parseGetParameter(name, value);
@@ -13478,7 +13529,7 @@ dependencyScope.jQuery = $;;
1347813529
*/
1347913530
var user = combinedValue.user;
1348013531
var activity = combinedValue.activity;
13481-
Breinify.activity(user, activity.type, activity.category, activity.description, activity.tags, null, function() {
13532+
Breinify.activity(user, activity.type, activity.category, activity.description, activity.tags, null, function () {
1348213533

1348313534
// mark it as successfully sent
1348413535
BreinifyUtil.cookie.set(hashId, true);
@@ -13521,6 +13572,10 @@ dependencyScope.jQuery = $;;
1352113572
if (_config.get(ATTR_CONFIG.HANDLE_PARAMETERS) === true) {
1352213573
_privates.handleGetParameters();
1352313574
}
13575+
13576+
if (_config.get(ATTR_CONFIG.HANDLE_UTM) === true) {
13577+
_privates.handleUtmParameters();
13578+
}
1352413579
};
1352513580

1352613581
/**

0 commit comments

Comments
 (0)