Trigger for all events except GTM internals
The recommended trigger captures every real event on the site while skipping GTM’s internal gtm.load and gtm.dom:
- Trigger Configuration → New.
- Trigger Type → Custom Event.
- Event name:
^(?!gtm\.load)(?!gtm\.dom).*
- Check Use regex matching.
- Choose All Custom Events → Save.
- Attach this trigger to the Zeotap Collect tag.
Trigger for page views only
Use the built-in All Pages trigger. The Zeotap tag will fire on every page load and run setPageProperties.
Trigger for a specific event
Trigger Type: Custom Event, Event name = purchase_complete, No regex, All Custom Events → Save.
Capture raw identities on login
In your site code, push the identity to the dataLayer on login:
window.dataLayer.push({
event: 'login',
email: 'user@example.com',
cellno: '49 1234567890',
loginid: 'crm_42'
});
In the GTM template:
- Login Event →
login
- Is hashing of raw identities required? → ✓
- Capture Email →
{{DLV - email}}
- Capture cellphone number with country code →
{{DLV - cellno}}
- Capture Loginid →
{{DLV - loginid}}
The tag invokes setUserIdentities({ email, cellno, loginid }) and the Web JS SDK hashes them before sending.
Capture pre-hashed identities
If your site hashes PII client-side, push the hashed variants to the dataLayer:
window.dataLayer.push({
event: 'login',
email_sha256_lowercase: 'b04922...',
email_md5_lowercase: '...',
cellno_with_country_code_sha256: '...'
});
In the template:
- Are your identities hashed? → ✓
- Capture hashed email → add a row per algorithm:
sha256_lowercase → {{DLV - email_sha256_lowercase}}, etc.
Capture custom identities (CRM ID, etc.)
Push a custom identifier to the dataLayer:
window.dataLayer.push({
event: 'login',
crmID: '12345'
});
In the template’s User Attributes section, map {{DLV - crmID}}. Custom identities are forwarded as-is — no hashing.
Custom consent flow
In your site code, push the consent decision to the dataLayer when the user makes a choice:
window.dataLayer.push({
event: 'consent_set',
zeotap_track: true,
zeotap_identify: true,
zeotap_cookieSync: false
});
In the template:
- Consent Method → Custom Consent
- Event name (under SDK Consent Signals) →
consent_set
- Track →
{{DLV - zeotap_track}}
- Identify →
{{DLV - zeotap_identify}}
- Cookie Sync →
{{DLV - zeotap_cookieSync}}
Logout flow
window.dataLayer.push({ event: 'logout' });
In the template’s User Logout field, set logout. The tag invokes unsetUserIdentities(), clearing all persisted identity keys.
Forward GA Client ID for retargeting
In the Google Analytics Configuration section of the template:
- Pick Google Analytics client ID → ✓
- GA Client ID Cookie Prefix →
client (if your GA cookie is client_ga, leave empty for the default _ga)
The tag attaches the GA Client ID to each event payload. Useful for activating Zeotap audiences in Google Optimize 360.
Common event payloads
Product view
window.dataLayer.push({
event: 'view_product',
productID: 'sku_123',
productName: 'watch'
});
Add to cart
window.dataLayer.push({
event: 'add_to_cart',
productID: 'sku_123',
quantity: 1,
price: 29.99
});
Purchase
window.dataLayer.push({
event: 'purchase',
orderID: 'order_456',
total: 89.97,
currency: 'EUR'
});
Last modified on June 22, 2026