Lexer Javascript Tag technical guide

How does the Lexer Javascript Tag work?

The Lexer Javascript Tag works by first deploying a list of instructions using HTML and Javascript (of course!) in your chosen Tag Manager. These instructions will identify the variables and triggers on your website’s dataLayer that will populate our "out of the box" attributes to enrich your customer data.

For a quick refresher, see our Lexer Javascript Tag basics article.

Javascript Tag basics

For the initial setup of the tag, the following lines below (bespoke to your use case) will be provided to you by Lexer. You should place these lines as high in the head or body of your website as you can, or within an HTML tag in your tag manager.

This is the Lexer Tag - Header that will initialize attributes on your website, and where your customers' actions on site will be stored and then sent to the Lexer platform through a payload.

The other Lexer tags in this article are the instructional tags that will tell the tags when to fire (on what events/triggers) and what customer behavior (out of the box variables/attributes) to capture from your website's dataLayers.

lxt() function

The lxt() function is the backbone of the tag. We interact with it through all the major commands.
There are four primary methods we will use in every implementation:

  1. lxt('initiate', , ): is used to initiate the tag and provide the all important client identifier and attributes we’ll be tracking.
  2. lxt('identify', , ): is used to identify the user in the session.
  3. lxt('track', , ): is used to assign actions to the identified user.
  4. lxt('converted'): is used to call this at the end of a conversion funnel, and it will send all metadata associated with the session to Lexer.

1. lxt(‘initiate’, {id}, {attributes})

Lexer will provide you with the exact code to use here, with the id and list of attributes defined, as this list will be different for each client.

The code will look like this:

2. lxt(‘identify’, {key}, {value})

This call assigns an identity to the current user. As Lexer’s platform deals only with identified data, anonymous users will not be tracked through their browsing journey, so providing an identifier early in the user’s browsing journey is a priority.

However, our tracking code is aware that on many websites, identification might not happen until very late in the funnel, for example, at checkout. So the identify call can take place at any time in the funnel, and we ensure that any previous events within that session will be sent to the CDXP.

Here's an example of the full request:

lxt('identify', window.lxt_attributes.email, 'myemail@mysite.com')

The parameters are as follows:

  • key: Must be the name of one of the attributes in the provided lxt_attributes list.
  • In the above example, email would be the correct key.
  • value: Is a string or number identifier of the customer.
  • Once an identity has been assigned, a cookie is used to track subsequent visits — so long as the user’s browser supports them.

Lexer supports many different types of identifiers, besides email. Contact support@lexer.io for more details.

3. lxt(‘track’, {action}, {value})

This call assigns attributes to the identity in the CDXP. It takes two parameters:

  • key: Must be the name of one of the actions provided in lxt_attributes.
  • value: Is a string, number, or boolean value to be assigned to the attribute.

If more complex data types are required, then consider these approaches:

  • arrays: Make multiple track requests for each value in the array.
  • objects/dictionaries: Should be configured as separate attributes, have a chat with Lexer Support (support@lexer.io) for an ideal strategy.
  • dates: Two options, convert this into a string (in an ISO8601 date format) or make them a UNIX date stamp (just be sure to convert the value to seconds).

Here is an example of the full request:

lxt('track', lxt_actions.added_product, 'metadata tshirt')

4. lxt(‘converted’)

Call this at the end of a conversion funnel, and it will send all metadata associated with the session to Lexer. This will allow for the populating of attributes such as device_id, device_used, and time_spent_to_convert.

Other lxt() Commands

lxt(‘debug’, true)

When implementing, you might want additional debug information to be generated from the tag. Simply call lxt('debug', true) to enable and look at the javascript console for details.

lxt(‘reset’)

Resets the user's cache and should be called at the point of a user logging out. This ensures the next person using the device will not get associated with the same cookie.

Further reading

That's it for our technical guide. For initial setup just follow the steps above and if you get confused or stuck please don't hesitate tor reach out for help at support@lexer.io. The following tag articles in this section expand on how the dataLayer can be configured with Shopify. See our further reading suggestions below.

Updated:
September 19, 2022
Did this page help you?
Thank you! Your feedback has been received!
Oops! Something went wrong while submitting the form, for assistance please contact support@lexer.io
Welcome to Lexer!
Fundamentals
Getting started
Our glossary
Fundamentals
Getting started
Integrations
Fundamentals
Setup
My account
Fundamentals
Setup
Manage team
Fundamentals
Setup
Group permissions
Fundamentals
Setup
Classifications
Fundamentals
Setup
Out of the box segments
Fundamentals
Setup
Browser guide
Fundamentals
Security
Corporate networks
Fundamentals
Security
Emergency contact
Fundamentals
Security
Multi-factor authentication
Fundamentals
Security
Single sign-on
Fundamentals
Security
Trust and compliance
Fundamentals
Security
Lexer's Identity Resolution
Fundamentals
Identity Resolution
Troubleshooting tech issues
Fundamentals
Troubleshooting
Error code: 503 Service Unavailable
Fundamentals
Troubleshooting
Error code: 401 Unauthorized
Fundamentals
Troubleshooting
Error code: 403 Forbidden
Fundamentals
Troubleshooting
Troubleshooting Activate
Fundamentals
Troubleshooting
Troubleshooting Respond
Fundamentals
Troubleshooting
Help! My data is missing from the Hub
Fundamentals
Troubleshooting
Understanding APIs at Lexer
Data
Data Onboarding
Providing JSON data to Lexer
Data
Data Onboarding
Providing CSV data to Lexer
Data
Data Onboarding
Upload using SFTP
Data
Data Onboarding
Upload using S3
Data
Data Onboarding
Lexer data specification
Data
Lexer Data Specification
Customer data specification
Data
Lexer Data Specification
Commerce data specification
Data
Lexer Data Specification
Marketing data specification
Data
Lexer Data Specification
Compliance data specification
Data
Lexer Data Specification
Data Formatting and Validation
Data
Getting Started with APIs
Authentication and API token creation
Data
Getting Started with APIs
Rate Limits
Data
Getting Started with APIs
Response codes and common errors
Data
Getting Started with APIs
Product imagery
Data
Getting Started with APIs
Currency conversion
Data
Getting Started with APIs
Lexer’s APIs overview
Data
Lexer’s APIs
Dataset management in the Hub
Data
Dataset management
Chatbox user API
Data
Lexer’s APIs
Activity API
Data
Lexer’s APIs
Visualize API
Hidden from nav
Profile Read API
Data
Lexer’s APIs
Lexer Javascript Tag basics
Data
Lexer Javascript Tag
Lexer Javascript Tag technical guide
Data
Lexer Javascript Tag
Lexer Javascript Tag use cases
Data
Lexer Javascript Tag
dataLayer configuration: Shopify
Data
Lexer Javascript Tag
Customer segment CSV export
Data
Data off-boarding
Export to CSV
Data
Data off-boarding
Data in Lexer's CDXP
Understand
Customer Data
Lexer's attributes
Understand
Customer Data
Attribute value types
Understand
Customer Data
Data source - CRM
Understand
Customer Data
Data source - Transactions
Understand
Customer Data
Data source - Email
Understand
Customer Data
Partner data - Experian
Understand
Customer Data
Partner data - Mastercard
Understand
Customer Data
Partner data - Roy Morgan
Understand
Customer Data
GDPR and CCPA requests
Understand
Customer Data
Upload data files
Understand
Customer Data
File upload API
Understand
Customer Data
Data provision and schemas
Understand
Customer Data
Segment overview
Understand
Segment
Creating segments
Understand
Segment
Smart Search
Understand
Segment
Export attribute results
Understand
Segment
Contact a customer
Understand
Segment
Fixing a disabled segment
Understand
Segment
Profile tab
Understand
Segment
Compare segments
Understand
Compare
Compare attributes
Understand
Compare
Activate overview
Engage
Activate
Ongoing activations
Engage
Activate
Audience splits
Engage
Activate
A/B splits
Engage
Activate
Control group splits
Engage
Activate
Inbox filtering
Engage
Respond
Ignored Senders
Engage
Respond
Forms for service
Engage
Respond
Workflow states
Engage
Respond
Bulk changes
Engage
Respond
Scheduled replies
Engage
Respond
Message templates
Engage
Respond
Customer profiles
Engage
Respond
Grouped messages
Engage
Respond
Automation rules
Engage
Respond
Redact messages
Engage
Respond
Track overview
Measure
Track
Activity overview
Measure
Activity
Team report
Measure
Activity
Cases report
Measure
Activity
Listen overview
Measure
Listen
Searching in Listen
Measure
Listen
Tier filters
Measure
Listen
Boolean search
Measure
Listen
Saved dives
Measure
Listen
Email notifications
Measure
Listen
Twitter data
Measure
Listen
Facebook data
Measure
Listen
Instagram data
Measure
Listen
Visualize overview
Measure
Visualize
Curate feed
Measure
Visualize
Report overview
Measure
Report
// Rich text for code blocks and nested lists