How the SmartTag loads and enables core functionality for Wunderkind experiences.
"SmartTag" and "Tag" may be used synonymously.
Table of Contents
Implementing the SmartTag
The Wunderkind SmartTag enables core functionality for on-site experiences and user identification, and is unique to a website domain. The Tag should be placed on all website pages, including checkout flows and order confirmation pages.
Please reference our relevant system-specific integration guides (eg, Shopify, Google Tag Manager, Tealium etc) for more details on how to install the Tag within that system.
If you do not use Shopify or a tag manager, you may copy/paste the Tag into your html <head>.
Browser Support
The Wunderkind Tag is not supported on the following browsers/environments: Mozilla Firefox, Microsoft Internet Explorer versions 11 and below, Google Accelerated Mobile Page (AMP), client’s native mobile applications (for mobile app support, reach out to your Wunderkind contact to learn more about our mobile app sdk).
Network Requests Made During Tag Initialization
Wunderkind Smart Tag loads from CDN, firing the following network requests:
i.js (tag.wknd.ai)
- Loads on every page view for every user on a client’s website
- Creates the bouncex window object
- Initializes the creation of the bouncex.cookie, bouncex.website, bouncex.campaigns, and bouncex.debug objects among others
main.js (assets.bounceexchange)
- Initializes central tag logic including cookies, compliance checks, identification sources, website level integrations, custom code tracking etc.
- Loads an iframe for localStorage: local_storage_frame15.min.html
-
Loads only those product bundles needed by the client’s website
-
ads.js
- Provides world class behavioral ad support with a state of the art auction system integrating with a long list of today's most popular supply partners, leveraging close partnerships with Google, MOAT, and many other ad partners.
-
inbox.js
- Coordinates all required events needed to help segment eligible users to receive messaging from our Email product.
-
onsite.js
- Manages all logic related to activating, showing, tracking, and transitioning Onsite campaigns.
-
sms.js
- Handles mobile and desktop opt-in campaigns including click tracking for conversion attribution
-
c.js
- Syncing with device graph, obtaining hard/soft ID’s, performing customer and subscriber lookups based on hard/soft ID’s
-
ads.js
-
init1.js (api.bounceexchange.com)
- A network request that retrieves campaign eligibility, and provides all data for renderable campaigns
SmartTag Performance and Data Security
Wunderkind tests to make sure that our tag loads asynchronously and efficiently to the other tags, elements, and scripts on your website.
-
The tag uses an attribute of the <script> element called “async” to help ensure asynchronicity
- This attribute is used to indicate to the browser that the script file can be downloaded asynchronously without blocking the rendering of the HTML
- Assets are comprised of design elements (e.g. styles, images, fonts) that are required to display Wunderkind campaigns on your site
-
During campaign creation our team optimizes all assets when possible:
- Compressing and and serving assets from CDN
- Assets have cache headers appropriate for the content being served
- Locally hosted assets are used whenever available
- The tag’s JS and CSS are packaged in 2 requests, compressed, served from CDN; local storage is utilized for faster read/writes, and to reduce cookie and request sizes (when available)
- All data collected by our tag is stored and encrypted at rest using Google's default AES256 standard.
-
Data usage and storage is encrypted and transferred securely. Data in transit occurs either via SFTP or HTTPS leveraging TLS v1.2+ in both directions. Wunderkind stores data at data centers within the contiguous United States, hosted on Google Cloud Platform (GCP). All data is logically separated on a customer-by-customer basis.
Application Lifecycle of SmartTag
- Eligibility Engine is called
- Eligible experiences are placed on the DOM and creative assets are preloaded
- Event fires for each eligible campaign
- User behavior causes an eligible campaign to become activated
- Site activity (e.g. user checks out) causes eligible campaigns to become ineligible
- Site activity or user behavior initiates a check for campaign eligibility, in which case there is another call to the Eligibility Engine to request newly eligible campaigns
Steps 1, 2, 3 Repeat