Monorepo featuring:
- Digital Data Layer (DDL) helper utility package
- DDL validator package
- Plugins packages
- Examples package
Developed at a Fortune 100 company, released anonymously with permission under the Apache 2.0 license, for easy-to-use, highly-decoupled, flexible, and full-featured analytics reporting.
Works with Adobe Dynamic Tag Manager (DTM), Adobe Launch, Google Tag Manager, Tealium, and any other tag manager that supports a digital data layer.
Packages are each separately available on npm
(except the examples package).
See the individual packages for more information.
ddl-tools
is highly configurable and pluggable. It may be used with any
digital data layer variable and schema, and is easily extendable with custom
plugins.
However, the plugins in this monorepo are designed for use with the Digital Data Layer 1.0 draft specification published by the W3C Customer Experience Digital Data Community Group located here.
A digital data layer helper utility for highly-decoupled analytics reporting.
This utility includes a limited number of general-use functions and supports
external data layer schema validation (see ddl-validator).
It can also be extended to provide additional functionality by passing
specialized plugins to the use
function.
For more information, see:
Provides schema validation for development. In production, schema validation is typically disabled (the schema validator is a development dependency).
For more information, see:
The following plugins are designed for use with the Digital Data Layer 1.0 draft specification published by the W3C Customer Experience Digital Data Community Group located here.
If your schema is based on the above schema, these plugins can add significant ease to your digital data layer work.
I would like to note that though these plugins do cover a large swath of usage for that schema, they are not intended to be an exhaustive SDK. Some areas of that schema (such as the Security, Privacy, and Version objects) do not currently have dedicated plugins in the list below. Feel free to make your own, and I would certainly encourage plugin developers to share their plugins with me so that I can add those plugin packages to this list.
Finally, I'd like to add that if your schema is not based on the W3C Customer Experience Digital Data Community schema, these plugins can still serve as examples for your own plugins.
Cart plugin for recording information about a shopping cart such as cart totals and items.
For more information, see:
Detailed cart plugin similar to the normal cart plugin but which adds numerous convenience functions.
For more information, see:
Event plugin for recording events that occur within a page such as errors or user actions.
For more information, see:
Page plugin for recording information about a page such as the page name or referrer URL.
For more information, see:
Detailed page plugin similar to the normal page plugin but which adds numerous convenience functions.
For more information, see:
Product plugin for recording information about products displayed on a page.
For more information, see:
Transaction plugin for recording information about a purchasing transaction.
For more information, see:
Detailed transaction plugin similar to the normal transaction plugin but which adds numerous convenience functions.
For more information, see:
Transaction List plugin for recording information about lists of transactions, such as an order history.
For more information, see:
Transaction plugin for recording information about the user(s).
For more information, see:
Demonstrates working examples of using ddl-tools
. Both Single Page
Application (SPA) and non-SPA (Legacy) web applications are included in the
examples.
For more information, see:
These steps are not necessary (nor useful) for normal use. These steps are only necessary to view the source or run tests.
To install locally, clone this repository, install dependencies, and build it.
On a Mac or Linux variant, you can do this with the following commands in bash
:
git clone https://github.com/dash-/mono-ddl-tools.git
cd mono-ddl-tools
npm run build
To run the unit tests, you must have this repository installed locally.
Once you have this repository installed locally, run npm run test
.
$ npm run test
The easiest way to contribute is to submit issues on GitHub. We welcome feedback and deeply appreciate your contribution of an issue for:
- Improvement ideas
- Feature requests
- Bugs
Of course, code contributions are welcome as well!
To contribute code to this project, first fork the monorepo in GitHub, create a feature or bug branch, and commit code to the branch. You can then create a PR against the main repository. More information can be found on this topic in Rob Allen's guide: