Overview
The Interact SDK enables secure, real-time client-side data delivery based on server-side configuration from your Zeotap account. It facilitates routing user profile data to supported platforms (e.g., Google Ad Manager, Adobe Target).Web SDK Already Integrated
If you already use Zeotap’s Web SDK, enable Interact by setting theloadInteractScript option to true during initialization.
The Zeotap Interact SDK will reference the source mapping and API key associated with the Zeotap JS SDK tag. Only the mapped identifiers from the source will be used to look up the user’s profile in Zeotap.
Without Web SDK
If you’re not using the Web SDK, add the Interact SDK directly to the head of your HTML/website.- Replace
<API_KEY>with your Web Javascript API source key. - For identifier lookup, please set the first-party identifier on the page using our
setUserIdentitiesmethod. This identifier will be used for lookups on the Zeotap end.
Retrieving Data on the Client Side Based on Configured “Data to send” for an Interaction
When you configure a Data type interaction in Zeotap, you choose how the resolved profile data is delivered to the page. There are four delivery methods:Data structureIn all four delivery methods, the data object is a flat key-value map:The keys are the destination field names you configure in the “Data to Send” mapping for the interaction. The values are the resolved profile attribute values for the current user.
Convention namesThroughout this guide you’ll see names like
zeoParamsStoreLocal, zeoParamsStoreSession, zeoParamsGlobal, and zeoParamsCallback. These are Zeotap conventions — the recommended values for the corresponding fields in the dashboard, and what most partner integrations (GAM tag templates, Adobe Target wrappers, ad ops scripts) expect by default. They are not hardcoded in the SDK. You can configure any names you want in the dashboard, but downstream consumers must be updated to match.1. Local Storage
Stores the selected data in local storage under the Zeotap keyzeoParamsStoreLocal, which the consuming platform can access on the client side. Refer to the GAM implementation below for guidance on implementing a local storage-based workflow.
2. Session Storage
Stores the selected data in session storage under the Zeotap keyzeoParamsStoreSession, which can be accessed by the consuming platform. Similar to local storage, you can push data to session storage and retrieve it as shown below.
3. Global Variable
Writes the resolved data directly onto a named property of thewindow object. You configure the variable name in the Zeotap dashboard when setting up the interaction (under Data to Send → Set Global Attribute → Global Variable Name).
ConventionUse
zeoParamsGlobal as the Global Variable Name in the dashboard unless you have a specific reason not to. This is the established Zeotap convention — partner integrations (Adobe Target wrappers, GAM tag templates, ad ops scripts) often expect this exact name. Choosing a custom name means downstream consumers must be updated to read from your custom property.<head>):
The variable is set once when the interaction qualifies on page load. It does not update reactively. For pages with dynamic content (SPAs), re-trigger the SDK on each navigation event.
4. Callback Function
Passes the selected data to the zeoParamsCallback() function, which can be directly accessed by the consuming platform on the client side.Google Ad Manager Integration
Prerequisite
If you plan to send only Segment membership to Google Ad Manager (GAM), follow these steps:- Create the required segments in Zeotap for tagging user profiles with segment memberships.
- Define and target key/value parameters in Google Ad Manager.
- For example, for segment membership, the key would be
"segment_membership", and the values would be the list of segment IDs the user is part of.
- For example, for segment membership, the key would be
Option 1: Callback
This solution fetches the current profile of the user (e.g., segment membership) and sends it to GAM. With this setup, ads will be displayed once Zeotap has rendered the profile information to GAM. Place or trigger the following code after the Zeotap Interact SDK and GAM jsTagThis ensures that ads are displayed only after the user’s profile information has been updated in GAM, providing the platform with the most current data. However, if the timer expires without receiving a response, GAM will still render and display a default or generic banner (if setup). The drawback is that this may cause a delay before the ads are shown.
Option 2: Local Storage
This solution pushes profile information into local storage. Google Tag Manager can then read the targeting parameters from the browser’s local storage using the code provided below. Place or trigger the following code after the Zeotap SDKs :The benefit of this solution is that ads will be shown without delay for returning visitors or on subsequent page visits. However, the drawback is that first-time visitors to the landing page may not receive a personalized ad.
Option 3: Global Variable
If your Google Tag Manager container or GAM setup reads data from a namedwindow variable, configure the interaction in Zeotap with Set Global Attribute and set the variable name to zeoParamsGlobal (the Zeotap convention).
This approach combines the immediacy of a callback with the simplicity of a global variable. Replace
"zeoParamsGlobal" with a custom name only if your downstream consumers are already wired to a different property.Adobe Target Integration
Prerequisite
If you plan to send only Segment membership to Adobe Target, follow these steps:- Create the required segments in Zeotap for tagging user profiles with segment memberships.
- Define and target key/value parameters in Adobe Target.
- For example:
- If you have defined the key as
"segment_membership"in both Adobe and Zeotap, the value received will be a list of segment IDs associated with a user. - The key format depends on your Adobe Target setup:
- If targeting is configured with the key as
visitor profile, you must send it on the client side asprofile.segment_membership. - If it’s set up as a custom key, you can simply send it as
segment_membership.
- If targeting is configured with the key as
- If you have defined the key as
- For example:
- You can refer the official Adobe Documentation Link here
Serve without delay
This solution pushes profile information into local storage. Adobe Target can then read the targeting parameters from the browser’s local storage using the code provided below. Place or trigger the following code after the Zeotap SDKs, Adobe Target is loaded:The benefit of this solution is that ads will be shown without delay for returning visitors or on subsequent page visits. However, the drawback is that first-time visitors to the landing page may not receive a personalized ad.
Serve with a Global Variable
If Adobe Target reads from a namedwindow variable, configure the interaction with Set Global Attribute:
window.targetPageParams is evaluated by at.js when it fires. If zeoParamsGlobal is set before at.js runs, you get the data with no delay. Load order matters: place the Zeotap Interact SDK tag before the Adobe at.js tag.