This repository has been archived by the owner on Apr 8, 2021. It is now read-only.
forked from snowplow/snowplow-javascript-tracker
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
671 lines (600 loc) · 27.1 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
Version 2.17.3 (2020-02-16)
---------------------------
Fix flushBuffer not working if first function call (#896)
Bump wdio to 6.12 (#898)
Version 2.17.2 (2020-02-10)
---------------------------
Fix dynamic contexts not being evaluated on each page ping (#891)
Version 2.17.1 (2020-02-03)
---------------------------
Prevent samesite cookie warning from triggering (#886)
Remove server side anonymisation headers on Beacon (#887)
Version 2.17.0 (2020-12-15)
---------------------------
Upgrade typescript to 4.1 (#870)
Bump ava to 3.13 (#869)
Bump tslib to 2.0.3 (#868)
Bump rollup to 2.34 (#867)
Bump babel to 7.12 (#866)
Bump Jest to 26.6.3 (#865)
Upgrade WebDriverIO to 6.10 (#864)
Upgrade saucelabs to 4.6.0 (#863)
Bump ChromeDriver to 87.0.0 (#862)
Improve test coverage (#861)
Bump snowplow-micro to 1.1.0 (#876)
Ensure tracker emits `tv` that matches version in package.json (#850)
Add support for SP-Anonymous HTTP Header on all requests (#842)
Bump ini to 1.3.8 (#878)
Add macOS 11 Big Sur and Safari 14 to Saucelabs tests (#875)
Pin Github Actions to ubuntu-20.04 (#858)
Version 2.16.3 (2020-11-18)
---------------------------
Fix submit_form event not emitting when submitting a form (#856)
Version 2.16.2 (2020-10-19)
---------------------------
Fix Missing Enhanced Ecommerce Contexts (#851)
Version 2.16.1 (2020-10-05)
---------------------------
Fix v_tracker not tracking as expected (#848)
Version 2.16.0 (2020-09-28)
---------------------------
Switch to Github Actions (#844)
Add license banner to rollup builds (#845)
Bump snowplow-tracker-core to 0.9.2 (#841)
Update Snowplow Micro to v1 (#837)
Use Closure Compiler to reduce sp.js size (#583)
Switch to rollup and gulp (#752)
Version 2.15.0 (2020-08-17)
---------------------------
Add anonymized tracking options (#793)
Add support for callback after trackEvent (#30)
Add User Agent Client Hints Context (#816)
Return full element in transform function within form tracking (#825)
Fix silent failure if OptimizelyX is enabled but optimizely.get doesn't exist (#798)
Make browser feature fields optional (#850)
Metric GET failure should not block queue executing (#769)
Canceled request with slow3g (#642)
Change initial page ping to fire at minimum visit length when less than heart beat delay (#803)
Switch page ping code to use arrays of events (#46)
Update SauceLabs to group tests into builds (#828)
Add Snowplow Maintenance Badge (#820)
Add CONTRIBUTING.md (#819)
Add Snyk configuration (#822)
Update README to direct to new docs website (#827)
Update Copyright notices to 2020 (#826)
Version 2.14.0 (2020-02-28)
---------------------------
Fix SameSite cookie warning for storage Cookies (#795)
Version 2.13.0 (2020-02-07)
---------------------------
Add activity tracking callback mechanism (#774)
Reset activity on page view (#750)
Update beacon support to handle "gotchas" (#716)
Remove user_fingerprint (#549)
Change setup process to use Docker (#782)
Handle errors in tracker callback (#784)
Fix al.optimizely.get is not a function error (#619)
Further harden the Optimizely integrations (#654)
Use local sp.js for example pages (#790)
Change deprecation strings to constants and reuse (#791)
Version 2.12.0 (2019-10-31)
---------------------------
Core: Add function to allow setting Useragent (#744)
Fix OptimizelyX context collecting (#730)
Fix osx+safari testing setup issues (#760)
Fix tracker continuing to insert events up to max Local Storage quota (#764)
Fix dynamic context callbacks sometimes returning null (#743)
Fix stateStorageStrategy localStorage not increasing session counters (#718)
Update packages and test harness (#756)
Add Snowplow Micro tests (#755)
Version 2.11.0 (2019-08-28)
---------------------------
Core: Send focus_form 'type' field as 'elementType' (#731)
Update Sauce Connect version (#735)
Add GDPR context (#645)
Rotate npm token (#737)
Deploy tracker asset directly to Github Tagged release rather than cloudfront (#741)
Ensure that the intended version is deployed (#739)
Version 2.10.2 (2019-02-07)
---------------------------
Update integration template to set eventMethod arg to get (#713)
Make POST default instead of Beacon API (#712)
Fix Beacon tracking to flush to OutQueue (#708)
Add method to disallow braces in URL (#711)
Version 2.10.1 (2019-02-01)
---------------------------
Catch Beacon safelist exception for Chrome (#706)
Add flag for disabling stm event parameter (#705)
Remove chromeFirstPaint from PerformanceTiming context (#635)
Version 2.10.0 (2019-01-17)
---------------------------
Transpile helpers.js and detectors.js (#693)
Allow dynamic context callbacks for link and form tracking (#585)
Fix default configOptOutCookie value (#672)
Remove outdated addClickListener method (#667)
Error-handling for tracker methods (#675)
Beacon API option for sending events to collector (#674)
Tracking click events on forms (#579)
Update tracker script banner (#684)
Add new local testing workflow (#686)
Clean up indentation of integration test template (#691)
Update outdated dependencies (#685)
Fix typo in sesname variable (#671)
Add global contexts features (#405)
Add Babel to build process (#665)
Replace YUI Compressor with UglifyJS (#687)
Fix log output for failed integration tests (#689)
Use modularized imports for lodash (#502)
Update npm steps in .travis.yml (#690)
Consolidate request method API (#700)
Fix Beacon API support (#702)
Version 2.9.3 (2019-01-09)
--------------------------
Add option to set a custom POST request path (#696)
Refresh npm authentication token (#688)
Version 2.9.2 (2018-07-24)
--------------------------
Remove wheel and passive event listener feature flags (#661)
Version 2.9.1 (2018-06-20)
--------------------------
Keep node type definitions at version 9.6.7 (#649)
Update page ping context on every call to trackPageView (#612)
Core: fix type incompatibility in consent methods (#652)
Added src/js/lib_managed to .gitignore (#650)
Use passive event listeners for mouse wheel event (#478)
Check if browser has full support of Performance Timing API (#539)
Add Java 10 to Ansible playbooks (#657)
Version 2.9.0 (2018-02-27)
--------------------------
Add ability to change field content before sending form tracking (#465)
Add a method to start a new session (#515)
Make newDocumentTitle variable local (#580)
Enforce that geolocation.timestamp is an integer (#602)
Remove respectOptOutCookie from the Tracker function comments (#605)
Add jsDelivr hits badge (#611)
Add identifyUser as alias for setUserId (#621)
Add trackConsentGranted method (#623)
Add trackConsentWithdrawn method (#624)
Bump semver to 4.3.2 (#625)
LocalStorage domain user ID is not persisted properly (#627)
Core: add trackConsentGranted method (#629)
Core: add trackConsentWithdrawn method (#630)
Update OS X test targets for Saucelabs (#632)
Install dependencies and update shrinkwrap before deployment (#633)
Version 2.8.2 (2017-08-21)
--------------------------
Fix opt-out cookie check (#604)
Version 2.8.1 (2017-07-26)
--------------------------
Use trackCallback for all events (#589)
Fix grunt ts in CI/CD (#598)
Fix tech docs icon (#596)
Fix string ids in Optimizely Summary context (#591)
Fix race condition with pageViewId creation (#592)
Version 2.8.0 (2017-05-18)
--------------------------
Add support for users opting out of state tracking using cookie or localStorage (#459)
Add support for recording state in localStorage rather than cookies (#506)
Exclude password fields from form tracking (#521)
Add Parrable context (#525)
Add support for OptimizelyX context (#551)
Update README markdown in according with CommonMark (#561)
Add support for not recording any state (#563)
Deprecate useCookies (#565)
Deprecate useLocalStorage (#566)
Prevent multiple setInterval from being created (#571)
Guard against non-integer values for minimumVisitLength and heartBeatDelay (#572)
Provide read-only access to domainSessionIndex (#573)
Provide read-only access to cookieName (#574)
Provide read-only access to pageViewId (#575)
Version 2.7.2 (2017-03-07)
--------------------------
Add defensive check for window.optimizely.data in getOptimizelyStateContexts (#555)
Version 2.7.1 (2017-03-06)
--------------------------
Add defensive check for window.optimizely.data (#553)
Version 2.7.0 (2017-01-09)
--------------------------
Add CI/CD (#529)
Add ngrok credentials (#527)
Add Sauce Labs credentials (#528)
Add npm credentials to .travis.yml (#536)
Add AWS credentials to .travis.yml (#537)
Remove random upload path (#538)
Add an option to change life of the visitor cookie, or disable, on tracker creation (#504)
Make tracker Content Security Policy (CSP) compliant (#490)
Add Optimizely summary context (#466)
Add the option to regenerate the page view ID with each page view event (#436)
Add automatic & manual tracking of JS errors to JavaScript tracker (#16)
Get Code Climate badge to green (#152)
Add ability to set true timestamp (#484)
Add timestamp argument for tracking methods (#532)
Remove deprecated visibility state check (#470)
Update Selenium version to 2.48.0 (#487)
Add date for release 2.6.2 to CHANGELOG (#520)
Add trackSelfDescribingEvent method (#471)
Fix integration tests suite (#523)
Bump Core version to 0.5.0 (#301)
Restrict package versions (#522)
Core: only send custom contexts if non-empty array (#540)
Core: add support of true timestamp (#531)
Core: add trackSelfDescribing method (#533)
Core: port to TypeScript (#526)
Version 2.6.2 (2016-07-14)
--------------------------
Add date for release 2.6.1 to CHANGELOG (#495)
Don't send invalid viewport dimensions (#488)
Check whether elements of navigator.plugins array are undefined (#492)
Only call navigator.javaEnabled on instances of Navigator (#491)
Stop using String.startsWith (#493)
Ensure page view ID is passed to synchronous tracker (#485)
Version 2.6.1 (2016-04-14)
--------------------------
Prevent CSS class listing from failing for elements with no CSS classes (#473)
Explicitly set suites field in Intern config (#475)
Version 2.6.0 (2016-03-03)
--------------------------
Bumped ngrok version used in CI to 2.x (#460)
Allowed random upload path in grunt task (#461)
Ensured that PerformanceTiming context doesn't contain properties inherited from Object.prototype (#458)
Added `forceUnsecureTracker` Tracker argument, thanks @bloodyowl! (#374)
Added subset of Augur data as a new context (#386)
Added deprecation warning to setSessionCookieTimeout (#394)
Added setting to automatically use top-level domain for duid (#409)
Added Optimizely contexts (#448)
Added trackEnhancedEcommerceAction() method (#452)
Added addEnhancedEcommerceActionContext() method (#453)
Added addEnhancedEcommerceImpressionContext() method (#454)
Added addEnhancedEcommerceProductContext() method (#455)
Added addEnhancedEcommercePromoContext() method (#456)
Made domainUserId a UUID (#274)
Attached device sent timestamp (stm) to events at last possible moment (#355)
Attempting to create a new tracker using an existing namespace should do nothing (#411)
Using a different library to publish to S3 (#422)
Prevented error running grunt-cloudfront (#426)
Respected doNotTrack in IE 11 and Safari 7.1.3+, thanks @grzegorzewald! (#440)
Version 2.5.3 (2015-11-10)
--------------------------
Bumped Node version to 4.1.2 in .travis.yml (#420)
Bumped Intern version to 3.0.6 (#370)
Bumped version of temporary to 0.0.8 (#425)
Bumped grunt-yui-compressor to 0.4.0 (#424)
Bumped grunt-browserify to 3.28.1 (#427)
Fixed jstimezonedetect version at 1.0.5 (#429)
Removed Browserify from devDependencies (#428)
Made extraction of DOM element classes compatible with IE9 (#418)
Stopped dereferencing undefined nodes when setting up form tracking (#423)
Version 2.5.2 (2015-08-13)
--------------------------
Prevented the tracker from setting cookies on initialization if "useCookies" is disabled (#403)
Remove tests for unsupported environments (#406)
Version 2.5.1 (2015-07-27)
--------------------------
Fixed prerender detection (#391)
Made page title tracking dynamic (#392)
Added warning about using a file URL to example pages (#397)
Version 2.5.0 (2015-07-22)
--------------------------
Generated a unique session ID for each new session (#347)
Added a page view UUID (#369)
Maintained visit count when cookies are disabled (#388)
Bumped payload_data schema to 1-0-3 (#385)
Added Grunt task to build the tracker skipping the lodash and minification tasks (#382)
Added ability to configure the session cookie timeout in the argmap (#383)
Removed deprecated performanceTiming argument to trackPageView (#375)
Added ability to pass a context-generating function to trackPageView (#372)
Removed configWriteCookies setting (#390)
Updated browser feature detection tests (#378)
Version 2.4.3 (2015-04-15)
--------------------------
Added License button to README (#357)
Set the ID cookie as soon as the tracker loads (#358)
Updated the session count as soon as the tracker loads (#361)
Made single events exceeding the maximum POST request size attempt to fire exactly once (#359)
Fixed querystring decoration for links with inner elements (#360)
Version 2.4.2 (2015-04-07)
--------------------------
Set a maximum size for POST requests (#353)
Fixed QuotaExceededError bug (#352)
Version 2.4.1 (2015-03-27)
--------------------------
Counted any 2xx or 3xx collector response to a POST request as successful (#343)
Counted any 4xx or 5xx collector response to a POST request as failed (#344)
Prevented the localStorage event buffer from being flushed more than once simultaneously (#345)
Cancelled the XMLHttpRequest timeout callback when the request fails (#348)
Stopped adding null PerformanceTiming context (#354)
Version 2.4.0 (2015-03-16)
--------------------------
Added ability to modify links allowing cross-domain tracking (#109)
Added timing event (#320)
Increased safety of document size detection (#334)
Started randomly generating ngrok subdomain in integration tests (#333)
Fixed Vagrant setup to use latest Peru version (#336)
Stopped caching page URL and referrer URL (#337)
Stopped caching PerformanceTiming context (#339)
Added common contexts to link_click, change_form, and submit_form events (#340)
Version 2.3.0 (2015-03-03)
-------------------------
Added support for sending events via POST (#168)
Removed dependency on fblundun fork of grunt-yui-compressor (#172)
Added support for batching events (#186)
Started sending PerformanceTiming context with all events (#317)
Added ability to send geolocation context with all events (#191)
Added ability to send context containing all GA cookies with all events (#253)
Improved document height detection (#236)
Added integration tests (#154)
Added functional tests for document size detection and browser features (#270)
Added ability to whitelist or blacklist specific forms and specific form fields (#287)
Added dedicated Vagrant setup (#312)
Added Vagrant "push core" to build and publish Tracker Core (#315)
Added Vagrant "push tracker" to build and deploy JavaScript Tracker (#313)
Renamed deploy to dist (#319)
Stopped sending NaN for page scroll offsets (#324)
Version 2.2.2 (2015-03-03)
--------------------------
Corrected time at which minimum and maximum scroll offsets are reset (#325)
Version 2.2.1 (2015-01-28)
--------------------------
Fixed QuotaExceededError bug with localStorage in Safari (#308)
Stopped sending empty PerformanceTiming context (#306)
Prevented PerformanceTiming context being sent multiple times (#309)
Stopped automatically setting Cloudfront URL in synchronous tracker, thanks @vassilevsky! (#311)
Fixed lodash-cli version at 2.4.2 (#314)
Prevented accidental publication of snowplow-tracker to npm (#300)
Added missing tid ticket to CHANGELOG under 2.1.0 (#302)
Version 2.2.0 (2014-12-15)
--------------------------
Made trackerDictionary object available in onload callbacks, thanks @murphybob! (#294)
Ensured all page offsets are integers (#291)
Added public method to get duid (#289)
Added public method to get user fingerprint (#288)
Added bundle.js to deploy/.gitignore (#281)
Started using grunt-cloudfront for cache invalidation (#276)
Added ability to disable use of localStorage (#181)
Added ability to disable cookies (#140)
URL encoded custom contexts if base 64 encoding is disabled (#299)
Version 2.1.2 (2014-11-15)
--------------------------
Removed requestEnd field from PerformanceTiming context (#285)
Version 2.1.1 (2014-11-06)
--------------------------
Rounded chromeFirstPaint field to an integer (#282)
Version 2.1.0 (2014-11-05)
--------------------------
Added automated form submission tracking (#252)
Stopped outbound queue from triggering multiple times per event (#251)
Added PerformanceTiming context using HTML5 Web Performance API (#248)
Added ability to execute a custom callback once sp.js is loaded (#246)
Added internal site search event (#241)
Started using grunt-cloudfront-clear for CloudFront cache invalidation (#230)
Renamed /dist to /deploy (#216)
Moved context querystring to end of JS-generated beacons (#204)
Added guard to wait until outbound queue is empty before unloading (#202)
Added event_id generation (#190)
Stopped sending tid (#218)
Added content field to link click events (#187)
Replaced "Getting started" with Vagrant-using "Contributing quickstart" (#169)
Added async-large.html (#162)
Improved F rating for tracker.js in CodeClimate (#150)
Added trackAddToCart and trackRemoveFromCart events (#97)
Added further Intern unit tests (#76)
Added social tracking features (#12)
Improved efficiency of enableLinkClickTracking (#254)
Integrated the Tracker Core (#255)
Removed deprecated trackImpression method (#256)
Added forceSecureTracker boolean option to the argmap, thanks @kujo4pmZ! (#247)
Moved link click tracking into its own file (#266)
Made IP address regex more strict (#267)
Updated expected browser fingerprints in functional detectors test (#275)
Added check to ensure outQueue is an array, thanks @kevinsimper! (#277)
Version 2.0.2 (2014-10-20)
--------------------------
Changed default configCookiePath to "/" (#250)
Version 2.0.1 (2014-10-12)
--------------------------
Made error logging compatible with Internet Explorer (#264)
Fixed SauceLabs red status (#235)
Version 2.0.0 (2014-07-03)
--------------------------
Moved fixUpUrl into its own file, called lib/proxies.js (#112)
Fixed duplication of querystring parameter lookup (#111)
Added tests for helpers.js (#96)
Added tests for detectors.js (#95)
Replaced cookie.js with browser-cookie-lite (#88)
Added ad conversion tracking (#60)
Added ad click tracking (#59)
Added initial localStorage support for intermittent offline beacons, thanks @rcs! (#24)
Added new trackAdImpression, mapping to unstructured event (#13)
Removed references to referral cookie (#118)
Implemented enableLinkTracking support (#51)
Replaced hard-coded version with template value (#120)
Added Sauce Labs small button at top of README (#123)
Added Sauce full test summary widget (long bar) at bottom of README (#124)
Added support for namespacing (#4)
Passed tracker namespace through to collector in Tracker Protocol (#126)
Moved to argmap-style tracker creation with 'newTracker' (#132)
Added support for cookie namespacing (#131)
Added new tag which allows queue to be renamed (#130)
Started rigorously checking whether a page is cached by Yahoo (#142)
Upgraded Intern to 1.5.0 (#119)
Fixed link to code climate button in README.md (#149)
Added examples of tracker namespacing (#159)
Split async.html into async-small.html, async-medium.html (#160)
Linked the Technical Docs and Setup Guide images to the appropriate pages (#164)
Made JS invocation tag part of the build process (#158)
Fixed warnings generated by the Closure Compiler, thanks @steve-gh! (#170)
Added untracked files which should be ignored to .gitignore (#173)
Removed ads/sync.html (#182)
Updated ads/async.html (#183)
Added pageUnloadTimer option to argmap (#171)
Removed type hints from unstructured events and custom contexts (#163)
Added hardcoded schema to custom context arrays (#199)
Added hardcoded schema to unstructured events (#196)
Changed trackUnstructEvent to take a JSON containing schema and data fields (#197)
Version 1.0.3 (2014-06-27)
--------------------------
Changed Base64 encoding function to prevent character encoding errors, thanks @shermozle! (#231)
Version 1.0.2 (2014-06-24)
--------------------------
Added guard to prevent document size field from being set as "NaNxNaN" (#220)
Fixed Grunt publish tasks to build sp.js as well as upload it to S3 (#224)
Added cache control to Grunt upload for full semantic version (#225)
Version 1.0.1 (2014-04-09)
--------------------------
Fixed lodash.js to work in the presence of AMD modules (#165)
Added missing variable declarations (#166)
Version 1.0.0 (2014-03-27)
--------------------------
Added extra meta-data to package.json (#83)
Moved part of banner.js into Gruntfile with grunt-concat's banner option so its values are based on package.json (#82)
Started using Browserify for modules (#74)
Replaced some/all of lib/.js with modules (#7)
Added user fingerprinting on/off switch and configurable hash seed (#7)
Deprecated trackImpression (#66)
Removed attachUserId as fully deprecated now (#64)
Removed setSiteId as fully deprecated now (#63)
Removed getVisitor-Id, -Info as fully deprecated now (#62)
Removed trackEvent as fully deprecated now (#61)
Tightened public API for SnowPlow (#29)
Renamed SnowPlow everywhere to Snowplow (#69)
Prepended window. or SnowPlow.windowAlias. onto _snaq everywhere (#39)
Removed legacy Piwik plugin framework (#56)
Moved hasSessionStorage and hasLocalStorage into detectors.js (#91)
Wrote tests for AsyncQueueProxy (#100)
Added Travis CI to the project (#103)
Added a built with Grunt button to the README (#102)
Added codeclimate button to README (#137)
Added named Grunt tasks (#86)
Added Intern unit tests for payload.js (#5)
Replaced all functions in identifiers.js which are directly available from lodash (#85)
Moved functions from identifers.js into payload.js and wrote Intern tests for them (#108)
Added getting started info for developers to README, thanks @pkallos! (#129)
Version 0.14.1 (2014-03-12)
---------------------------
Fixed bug where fromQuerystring was matching fragments instead of just the querystring (#116)
Version 0.14.0 (2014-02-12)
---------------------------
Bumped version to 0.14.0
Removed all DEBUG blocks from codebase (#65)
Renamed requestStringBuilder to payloadBuilder and moved it into its own file, payload.js (#55)
Introduced gzipped sp.js library (#48)
Updated grunt and intern dependencies (#54)
Replaced snowpak.sh with Grunt and grunt-yui-compressor (#53)
Added setUserIdFromReferrer and setUserIdFromLocation (#57)
Added ability to pass a referrer to Snowplow from an IFRAME (#1)
Tested setDoNotTrack and renamed it to respectDoNotTrack (#28)
Moved detect...() functions into new file context.js (#37)
Moved cookie-related functionality into new file cookie.js (#77)
Removed getLegacyCookieName as no longer needed for migrating cookie IDs (#50)
Switched deployment to use Grunt (#58)
Added setUserIdFromCookie (#78)
Version 0.13.1 (2014-01-28)
---------------------------
Fixed bug where non-String values are not being added to our payload (#71)
Version 0.13.0 (2014-01-26)
---------------------------
Added fully retrospective CHANGELOG (#20)
Added setPlatform support, thanks @rcs! (#25)
Added currency field to ecommerce transactions (#34)
Added custom unstructured contexts (#49)
Added base64decode to Tracker (#36)
Added null check to requestStringBuilder() (#40)
Added array helpers (#41)
Fixed (harmless) bug in base64.js (#35)
Update .gitignore to be node-friendly .gitignore (#52)
Switched to Semantic versioning & only put MAJOR version in hosted path to snowplow.js (#47)
Added package.json (#38)
Added retrospective tags back in (#22)
Restructured folders (#21)
Version 0.12.0 (2013-07-07)
---------------------------
Fixed document reference to use documentAlias (#247)
Fixed bug with setCustomUrl (#267)
Changed ev_ to se_ for structured events (#197)
Fixed Firefox failure when "Always ask" set for cookies (#163)
Fixed bug in page ping functionality detected in IE 8 (#260)
Replaced forEach as not supported in IE 6-8 (#295)
Version 0.11.2 (2013-05-14)
---------------------------
Added unstructured events, thanks @rgabo, @tarsolya, @lackac (#198)
Remove leading ampersand in querystring (#188)
Version 0.11.1 (2013-02-25)
---------------------------
Fixed bug with cookie secure flag killing user ID cookies (#181)
Version 0.11.0 (2013-02-22)
---------------------------
Introduced setAppId() and deprecated setSiteId() (#168)
1st party user ID now transmitted as duid (domain uid) (part of #150)
Now sends dtm - the client timestamp (#149)
Deprecated and disabled attachUserId()
Deprecated getVisitorId() and getVisitorInfo() - use getDomainUserId() and getDomainUserInfo() instead
Added setUserId which sets the uid field (#167)
Snowplow cookies no longer tied to site ID (#148)
Version 0.10.0 (2013-02-15)
---------------------------
Updated copyright notices
Removed deprecated setAccount(), setTracker(), setHeartBeatTimer() - BREAKING CHANGE (#86)
Added document charset to querystring (#138)
Page ping no longer killed by 1 heartbeat w/o activity (#132)
Added document & viewport dimensions (#94)
Introduced trackStructEvent and deprecated trackEvent (#143)
Cleaned up getRequest code to use improved requestStringBuilder
Fixed logImpression (was using wrong argument names) (#162)
Added scroll offsets to page ping (#127)
Version 0.9.1 (2013-01-29)
--------------------------
Fixed bug where secure flag not being set on cookies sent via HTTPS
Version 0.9.0 (2012-12-26)
--------------------------
Each event now sent with an event type `e` (#63)
Refactoring of event definition code
Added attachUserId(boolean) method (#92)
Removed configCustomData from logImpression (#115)
Cleaned up activity tracking (page pings)
Added a combine only option to snowpak.sh
Version 0.8.2 (2012-12-18)
--------------------------
Fixed regressions from splitting JS into multiple files (#103)
Version 0.8.1 (2012-11-29)
--------------------------
Fixed bug with trailing comma (#102)
Removed console.log when not debugging (#101)
Removed minified sp.js from version control (added .gitignore to keep it out)
Version 0.8.0 (2012-11-28)
--------------------------
Rename ice.png to i - BREAKING CHANGE (#29)
Added setCollectorCf() and deprecated setAccount() (#32)
Tracker constructor now supports Cf or Url (part of #44)
getTrackerCf() and -Url() added, getTracker() deprecated (part of #44)
Added tracker version (`tv`) to querystring (#41)
Added color depth tracking (part of #69)
Added timezone tracking (part of #69)
Added user fingerprinting (#70)
Broke out .js into multiple files (#55)
Version 0.7.0 (2012-10-01)
--------------------------
Renamed said to aid for application ID
Version 0.6 (2012-09-05)
------------------------
Added setSiteId functionality
Added ecommerce tracking
Version 0.5 (2012-08-18)
--------------------------
Changed header comments from Doxygen format to JsDoc
Added support for specifying collectorUrl directly
Added versioning into header comment (so survives minification)
Took f_ off res and cookie; added url onto end, renamed rdm to tid
Version 0.4 (2012-05-30)
------------------------
Improved names of querystring params
Added page-url to querystring as fallback
Version 0.3 (2012-05-18)
------------------------
Updated to prepend f_ to browser features
Revised the querystring name-value pairs to make them more user-friendly
Version 0.2 (2012-05-08)
------------------------
Formalised minification process
Version 0.1 (2012-03-21)
------------------------
Initial release