|
179 | 179 | return unixTimestamp + "-" + paraLocalDateTime + "-" + paraTimezone; |
180 | 180 | }, |
181 | 181 |
|
| 182 | + handleUtmParameters: function() { |
| 183 | + |
| 184 | + // get the mapper to be used |
| 185 | + var mapper = _config.get(ATTR_CONFIG.UTM_MAPPER); |
| 186 | + if (typeof mapper !== 'function') { |
| 187 | + return; |
| 188 | + } |
| 189 | + |
| 190 | + // see https://en.wikipedia.org/wiki/UTM_parameters |
| 191 | + var params = BreinifyUtil.loc.params(); |
| 192 | + |
| 193 | + var utmSource = Breinify.UTL.isEmpty(params['utm_source']) ? null : params['utm_source']; |
| 194 | + var utmMedium = Breinify.UTL.isEmpty(params['utm_medium']) ? null : params['utm_medium']; |
| 195 | + var utmCampaign = Breinify.UTL.isEmpty(params['utm_campaign']) ? null : params['utm_campaign']; |
| 196 | + var utmTerm = Breinify.UTL.isEmpty(params['utmTerm']) ? null : params['utm_term']; |
| 197 | + var utmContent = Breinify.UTL.isEmpty(params['utmContent']) ? null : params['utm_content']; |
| 198 | + |
| 199 | + // create the data |
| 200 | + var values = mapper({ |
| 201 | + 'utmSource': utmSource, |
| 202 | + 'utmMedium': utmMedium, |
| 203 | + 'utmCampaign': utmCampaign, |
| 204 | + 'utmTerm': utmTerm, |
| 205 | + 'utmContent': utmContent |
| 206 | + }, user); |
| 207 | + |
| 208 | + // make sure we have a result and send the activity |
| 209 | + if ($.isPlainObject(values) && $.isPlainObject(values.user) && $.isPlainObject(values.utmData)) { |
| 210 | + Breinify.activity(values.user, 'utmData', null, null, values.utmData, null); |
| 211 | + } |
| 212 | + }, |
| 213 | + |
182 | 214 | handleGetParameters: function () { |
183 | 215 | var knownParams = { |
184 | 216 | 'brec': { |
|
208 | 240 | } |
209 | 241 | }, |
210 | 242 |
|
211 | | - handleGetParameter: function(name, value, overrides) { |
| 243 | + handleGetParameter: function (name, value, overrides) { |
212 | 244 |
|
213 | 245 | // parse it and make sure it was parseable |
214 | 246 | var parsedValue = _privates.parseGetParameter(name, value); |
|
244 | 276 | */ |
245 | 277 | var user = combinedValue.user; |
246 | 278 | var activity = combinedValue.activity; |
247 | | - Breinify.activity(user, activity.type, activity.category, activity.description, activity.tags, null, function() { |
| 279 | + Breinify.activity(user, activity.type, activity.category, activity.description, activity.tags, null, function () { |
248 | 280 |
|
249 | 281 | // mark it as successfully sent |
250 | 282 | BreinifyUtil.cookie.set(hashId, true); |
|
287 | 319 | if (_config.get(ATTR_CONFIG.HANDLE_PARAMETERS) === true) { |
288 | 320 | _privates.handleGetParameters(); |
289 | 321 | } |
| 322 | + |
| 323 | + if (_config.get(ATTR_CONFIG.HANDLE_UTM) === true) { |
| 324 | + _privates.handleUtmParameters(); |
| 325 | + } |
290 | 326 | }; |
291 | 327 |
|
292 | 328 | /** |
|
0 commit comments