Enable identification signals in the Connect web library
The identification signal connects visitor behavior to known contacts in your audience. This is the foundational signal that enables personalization and attribution across all other behavioral tracking.
Supported identification types:
- Email addresses (most common identifiers)
- Phone numbers
- Contact keys (customer IDs)
Why identification signals matter:
- Link user sessions to contacts in your audience
- Track user activity across multiple devices
- Feed new contacts into your audience
- Enable personalized messaging based on behavior
Availability: Pro, Premium and Ultimate
Implementation considerations
Triggering approach
Unlike other signals, the identification signal should only be sent once per session. Sending it repeatedly creates unnecessary data and may impact performance.
Implementation approach: Write a flag to session storage after the first send, then check for that flag before sending again.
Data sources for identifier value
The key point in the configuration is to gather the data to populate the identifierValue field. Several sources are available:
- User identification stored in browser cookies
- Temporary session-based storage
- Persistent client-side storage
- Data layer (for example, Google Tag Manager
dataLayer) - URL parameters passed during navigation
- Login API monitoring (capture identifier during successful authentication)
If none of these options are available, work with your development team to make the identifier accessible to the Connect library.
Authentication context
Use the identificationFromLogin field to distinguish between:
- Explicit identification (
true) - User actively logged in - Implicit identification (
false) - Identifier retrieved from cookie, query string or other passive source
This helps segment sessions based on authentication context.
Configuration
Method
TLT.logSignal(signalObject)
Sends the signal to the Acoustic Connect endpoint as a JSON object. The Connect library must be initialized before calling this method.
Signal structure
Top-level fields
category: String - Valid value -Behavior.description: String - Description of the signaleffect: String - Describes the effect of the signal on engagement. Valid values:negative,positive. Usepositivefor identification signals.name: String - Name to differentiate this signal from others (for example, "identification from website"). Max length - 256 chars.signalType(required): String - Valid value -identification.
Signal content
identificationFromLogin: Boolean - Set totrueif the identifier derives from user authentication. Set tofalseif taken from a cookie, query string or other passive source. This separates explicit vs. implicit identification.identifierName(required): String - The type of identifier. Valid values:email,sms,contactKey.identifierValue(required): String - The contact information associated with the visitor (email address, phone number, or customer ID).
Notes:
- If any required field is missing or invalid, the entire signal will be discarded.
- Optional fields enhance the signal but won't prevent processing if omitted or invalid.
Example
// Check that the Connect SDK is present
if (window.TLT && window.TLT.isInitialized()) {
const signal = {
signalType: "identification",
name: "identification generated by web site",
category: "Behavior",
identifierName: "email", // Required
identifierValue: "", // Required
identificationFromLogin: true,
effect: "positive",
signalCustomAttributes: []
};
// Utility function for getting cookie value
const getCookieValue = (name) => (
document.cookie.match("(^|;)\\s*" + name + "\\s*=\\s*([^;]+)")?.pop() || ""
);
if (!sessionStorage.getItem("connect-id-signal")) {
// Check data layer for email
const email = window.prestashop.customer.email || "";
// Use the data layer value, if present
if (email) {
signal.identifierValue = email;
// Else check the "customerID" cookie value
} else {
signal.identifierValue = getCookieValue("customerID") || "";
}
// Optional: display signal in console
console.log("identification signal: " + JSON.stringify(signal, undefined, 2));
// Send signal to Acoustic
window.TLT.logSignal(signal);
// Set a flag so we don't send signal again this session
sessionStorage.setItem("connect-id-signal", "true");
}
}
Updated 12 days ago
