Event types
Page view events
Website page views are an indicator of buyer intent. You can log this information to the Unify platform for usage with thepage method.
There are two ways to collect page data with the Unify intent client:
Utilizing both of these methods when appropriate is recommended to take full advantage of intent data within Unify.
Automatic page monitoring
The Unify intent client is capable of automatically monitoring the user’s current page to trigger page events. This will happen by default when the client is installed via the Unify JavaScript tag. If the client is installed via a package manager, you must pass theautoPage configuration option when instantiating the client. See Configuration below for more details.
In either case, this behavior can be enabled or disabled programmatically via the startAutoPage and stopAutoPage methods on the client:
Manual page logging
You can also manually trigger a page event with thepage method on the client. This is useful when you do not want to trigger page events for every page.
Identify events
All intent data collected for users by Unify is anonymous by default. When intent events are logged, Unify will attempt to automatically de-anonymize the IP address of a user to associate them with a specific company, but their personal identity will remain anonymous until an identify event is triggered for them. There are two ways to collect identity data with the Unify intent client:- Automatic monitoring of email input elements (see here)
- Manually via the client
identifymethod (see here)
Automatic input monitoring
The Unify intent client is capable of automatically monitoring text and email input elements on the page to collect user identity. This will happen by default when the client is installed via the Unify JavaScript tag. If the client is installed via a package manager, you must pass theautoIdentify configuration option when instantiating the client. See Configuration below for more details.
In either case, this behavior can be enabled or disabled programmatically via the startAutoIdentify and stopAutoIdentify methods on the client:
Manual identification
You can also manually trigger an identify event with theidentify method on the client. This is useful when users log-in with OAuth or SSO, for example, because they do not enter their email into an input on the page.
When using this method, you can also optionally specify a set of Person or Company attributes to upsert and associate with the identified user. This is done in the form of an optional second argument to identify.
Custom events
Certain user actions are valuable indicators of buying intent. You can use custom events to log these events along with custom properties for each event that you can then use within Unify to filter your visitors and act accordingly. There are three ways to fire custom events with the Unify intent client:- Manually via the client
trackmethod (see here) - Custom HTML data attributes (see here)
- Automatically with CSS selectors (see here)
Manual tracking
You can also manually trigger a custom event with thetrack method on the client:
track method accepts two arguments:
- A string
name(required) - this is used to identify the event downstream within Unify. - An object of keys and string values
properties(optional) - this is used to specify custom properties associated with the event which can be used for filtering and identification downstream within Unify.
HTML data attributes
You can leverage various data attributes in the HTML of your site or application to automatically track click events for elements you care about:data-unify-click-event-name
The presence of this attribute on an element indicates that the intent client should automatically fire an event when the element is clicked. The value of this attribute defines the name of the event which will be fired. For example, clicking the button in the following HTML will result in a custom event with the name See More Button Clicked to be fired:
label property will simply be omitted from the event properties. For example, clicking the div in the following HTML will result in a custom event with the name Download Button Clicked to be fired with properties containing a label with the value Free sample:
data-unify-label
This attribute can be used to override the label (or provide a label which is otherwise missing) for an element that is tracked by the client. For example, even though clicking the button in the following HTML would normally result in a custom event with the label See more to be fired, the presence of the data-unify-label attribute results in the event being fired with a label property of Custom label:
data-unify-event-prop-*
By default, only the label of an element is included in the properties of auto tracked events. You can specify additional properties to include using the prefix data-unify-event-prop-. For example, clicking the button in the following HTML will result in an event being fired with properties including a property of customValue set to 100:
Automatic tracking
The Unify intent client is capable of automatically monitoring elements that match a list of CSS selectors specified by you in theUnifyIntentClientConfig’s autoTrackOptions.clickTrackingSelectors. When an element matching one of these selectors is clicked by the user, the client will automatically fire an event for it.
clickTrackingSelectors can be a list of simple CSS string selectors, in which case the default event name Element Clicked will be used:
clickTrackingSelectors, where each object contains a selector string and optional eventName which will be used as the name of the auto tracked event:
data-unify-label to customize the element label in the event properties and the data-unify-event-prop- prefix to add custom properties. See HTML data attributes for more info.
If you would like to exclude a specific element from tracking which matches your specified CSS selectors list, you can do so with the data-unify-exclude attribute.
This behavior can be enabled or disabled programmatically via the startAutoTrack and stopAutoTrack methods on the client:
Server side
It is possible to send requests to the Unify Intent API directly. You might do this on a web server, for example, to circumvent ad blockers. The Unify client exposes a method for each of its event types (page, identify, and track events) which can be used to generate the request payload for each event. This payload can then be sent to your web server which functions as a proxy to forward the request directly to the Unify Intent API.
The three methods on the client for generating event payloads are the following:
getPagePayloadgetIdentifyPayloadgetTrackPayload
getIdentifyPayload method in a React app to generate the payload for an identify event, send it to a proxy web server, and forward it to the Unify Intent API.
client.tsx
server.ts
Third-party tools
The intent client ships with out-of-the-box event tracking for some popular third-party tools such as Default and Navattic. If these tools are embedded into a page where the intent client is running, the client will track relevant events automatically. This behavior can be disabled with theUnifyIntentClientConfig.
See Configuration for more details on configuring the intent client.
Default
Default is a popular tool for automating inbound form submission workflows. If you use a Default form wherever the intent client is running, the client will automatically fire events for corresponding Default form events. The following Default form events are supported:Navattic
Navattic is a popular tool for automating interactive product demos. If you use a Navattic demo wherever the intent client is running, the client will automatically fire events for corresponding Navattic demo events. The following Navattic demo events are supported:Configuration
boolean
default:false
Tells the client to automatically log page events whenever the current page changes.
Works for static websites and Single Page Apps. Also logs a page event for the initial page.
boolean
default:false
Tells the client to automatically monitor text and email input elements on the
page for changes. When the current user enters a valid email address into an input, the client
will log an identify event for that email address.
AutoTrackOptions
Options to customize the auto-tracking of user actions such as click events.
number
default:30
Length in minutes that user sessions will persist when no activities are tracked. Activities include
page, identify, and track activities.Cookies
This section only applies to intent client versions
1.4.0 and up. If you install the intent client with the website tag, you automatically get access to the latest client version. Versions older than this use obfuscated cookie names.unify_visitor_id- A randomly generated UUID which uniquely identifies the user. This persists across sessions.unify_session_id- A randomly generated UUID which uniquely identifies the user’s current session. Sessions will persist as long as a newpage,identify, ortrackevent is fired at least once every 30 minutes. This duration be customized with thesessionDurationMinutesoption on theUnifyIntentClientConfig.
ExampleIf the intent client is running on https://www.unifygtm.com then the cookies will be associated with
.unifygtm.com. This means that they are accessible and reused across all subdomains of the top-level domain.In this example, if the intent client were also running on https://app.unifygtm.com then a visitor ID stored while on the www subdomain would be reused on app subdomain.