Data Layer Observer follows semantic versioning when releasing updates.
Code status | Stage | Example version |
---|---|---|
Backward compatible bug fixes | Patch release | 1.0.1 |
Backward compatible new features | Minor release | 1.1.0 |
Changes that break backward compatibility | Major release | 2.0.0 |
- Update some build dependencies
- Fixes some syntax incompatible with older browsers
- Adds an
endsWith
operator for properties.
- Fixes an issue where the new
parse
operator was not properly registered to be available for use.
- Adds an
ignoreSuffixed
option to theconvert
operator which excludes properties with known type suffixes when specifyingenumerate: true
. This option defaults totrue
. - Adds a
parse
operator which can parse out key/value pairs or an array from a string based on given delimeters.
- Adds an
ignore
option to theconvert
operator which excludes properties from conversion when specifyingenumerate: true
. null
object values are now treated as empty objects which halt data handler pipeline processing and which are not processed by selectors. Fixes an issue with Google data layers where legitimatenull
events would cause errors to be logged.- Removes the
record
log level. - Removes the previously deprecated rule count telemetry type.
- Updating developement dependencies.
- Prevent the telemetry provider from sending a Rule Registration metric if there are no rules registered.
- Prevent the DefaultTelemetryProvider from exporting or sending negative or non number spans.
- Adds rule count attribute to rule registration span telemetry. Deprecates dedicated rule count telemetry type for removal in a future release.
- Fixed a bug where debounce time was included in measured event handling duration
- Changes telemetry collection interfaces from e.g.
Telemetry.getInstance().startSpan
toTelemetry.startSpan
- Instruments significant timing and count metrics
- Fixed an initialization bug which prevented configuring a log level of
0
- Added telemetry provider and exporter concepts to measure timings, error counts, and other metrics. Telemetry is currently initialized but otherwise unused
- Change made to allow searching for empty strings with
''
or""
. Technically any string comparison can be quoted, but this was specifically added for searching for empty string
- Rules can no longer be triggered by changes to properties which don't match a rule's selector
- Empty objects are no longer passed to rule operators. This prevents empty objects from being sent to configured rule destinations. Empty objects are defined as empty arrays or objects where all first-level child keys have
undefined
values
- Fixed
Object doesn't support property or method 'startsWith'
error in IE11
suffix
operatormaxProps
should not count properties with undefined valuessuffix
operator explicitly stops processing if provided an undefined or null object to be suffixed
- Added rule options
waitUntil
andmaxRetry
related to scheduling rule registration - Updated default behavior of rule registration: waiting for both a defined data layer object and at least one property defined
- Adjusted rule registration logic to schedule using exponential backoff times
suffix
operator limits number of properties in an object to100
(configurable withmaxProps
)
- Performance improvement to prevent emitting change events for the same value
- Configurable
debounce
property for rules; allows waiting longer before handling data layer events - Fix to prevent the
enumerate
option in the convert operator from converting empty strings to0
- Fix to allow rule-specific
readOnLoad
to override globalreadOnLoad
- Additional log messages when adding operators
- Updated
beforeDestination
to accept a list allowing multiple operators to execute - Updated
convert
operator to accept negativeindex
(read from end of a data list)
- Adjusted suffixing behavior for
pageName
,displayName
, andemail
to support FS APIs
- Move
EmptyEvent
scenario from log levelwarn
todebug
- Fix
flatten
operator bug related to mutating objects in list-based data layers
- Fix
console.error
messages related to logging appender
- Fix incorrect suffix behavior when using FS.event source parameter
- FullStoryAppender logger source updated to
dlo-log
enumerate
option added toconvert
operator- Tealium sample updated to use
enumerate
option - Added
order_
property selector to Tealium sample
- Check if
push
andunshift
exist in older browsers
- Fix
convert
operator to trim spaces if a space separated CSV is supplied
- Added
=
and!=
undefined
comparison for object properties
- Bug fix in string
!=
comparison
- Expose logging level as config option
_dlo_logLevel
- Debouncing added to limit the number of log events for similar error messages
- Normalized numbers as
real
by default to prevent ambiguousint
for numbers like200.00
- Monitoring properties is limited to only the properties in the object returned from the
source
selector, which may be a subset of all properties - Added
!^
and=^
comparison for query operator - Updated Google rules to better ignore
gtm.*
events - Added Google rule to support
gtg
Arguments
object in thedataLayer
- Log message cleanup
- Fix bug related to usage of
globalThis
in older browsers
- Fix bug in query selector syntax that prevented parsing rules with
.
in the property or value - Fix timing related issue with rule registration
- Add clarity around rule registration failure message
- Added
defaultValue
option for insert operator
- Addressed bug in convert operator where an undefined property is created and set to a value of
0
,0.0
, orfalse
depending on the conversion type
- Automatically monitor array
unshift
similar to existingpush
monitoring - Performance benchmarks added to docs
- Convert operator supports arrays and reduces to a single value for single element arrays
- Monitor property changes on data layer objects
- Monitor function calls (e.g. dataLayer.push)
- Two new operators added: Rename and Fan-Out
- Google Analytics examples
- Updated packaging to support NPM and programmatic usage
- Initial release supporting static data layers
- CEDDL compatibility with examples