W3C Datalayer Module
Module that makes it easy to add common datalayer to your website - which makes it easier to connect to analytics and
to implement tracking pixels and tag managers.
The datastructure is oriented at:
www.w3.org/community/custexpdata/
The datalayer information provides an easy access to common information relevant for tracking and datalayer.
The datalayer module therefore listens to various events and adds information to the datalayer
Configurations:
w3cDatalayer:
pageInstanceIDPrefix: "mywebsite"
pageInstanceIDStage: "%%ENV:STAGE%%production"
pageNamePrefix: My Shop
siteName: My Shop
defaultCurrency: GBP
version: 1.0
# If you want sha512 hashes instead real user values
hashUserValues: true
Also it reuses the configuration from locale package to extract the language:
locale:
locale: en-gb
Usage example:
Template function w3cDatalayerService
The template function provides access to the current requests datalayer.
You can get the datalayer and you can modify it:
For some values in the datalayer the template knows better than the backend what to put in, so please call the appropriate setter like this:
- var result = w3cDatalayerService().setPageCategories("masterdata","brand","detail")
- var result = w3cDatalayerService().setBreadCrumb("Home/Checkout/Step1")
- var result = w3cDatalayerService().setPageInfos("pageID","pageName")
- var result = w3cDatalayerService().setCartData(decoratedCart)
- var result = w3cDatalayerService().setTransaction(cartTotals, decoratedItems, orderid)
- var result = w3cDatalayerService().addProduct(product)
- var result = w3cDatalayerService().addEvent("eventName")
If you want to populate the w3c datalayer to your page you can render the final digitalData object like this:
- var w3cDatalayerData = w3cDatalayerService().get()
script(type="text/javascript").
var digitalData = !{w3cDatalayerData}
digitalData.page.pageInfo.referringUrl = document.referrer
digitalData.siteInfo.domain = document.location.hostname