Skip to main content

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:
  1. Trigger ConfigurationNew.
  2. Trigger TypeCustom Event.
  3. Event name: ^(?!gtm\.load)(?!gtm\.dom).*
  4. Check Use regex matching.
  5. Choose All Custom EventsSave.
  6. 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 Eventlogin
  • 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. 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 MethodCustom 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 Prefixclient (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