Skip to main content

Initialize the SDK

The first rule every site needs — load Zeotap before any other action fires. Rule: Initialize Zeotap
  • Events: Core → Library Loaded (Page Top)
  • Conditions: (none)
  • Actions:
    • Extension: Zeotap Collect → Action Type: Load Zeotap SDK
Save and publish. The zeotap.min.js script loads on every page; subsequent rules can call other Zeotap actions.

Track a page view

Rule: Track Page View
  • Events: Core → Library Loaded (Page Top), or your direct call event
  • Actions:
    • Zeotap Collect → Track Event → Page View
    • Key-value pairs:
      • name{{Page Name}}
      • category{{Page Category}}
When _satellite.track('direct_call_event', { extra: 'metadata' }) runs, the rule fires and merges its configured key-value pairs with the call’s metadata.

Track a custom event (add to cart)

Rule: Add to Cart
  • Events: Direct Call → identifier matches add_to_cart
  • Actions:
    • Zeotap Collect → Track Event → Custom Event
    • Nameadd_to_cart
    • Key-value pairs:
      • productID{{Product ID}}
      • quantity{{Quantity}}
      • price{{Price}}
In your site code:
_satellite.track('add_to_cart', {
  productID: 'sku_123',
  quantity: 1,
  price: 29.99
});

Capture user identities on login

Rule: User Login
  • Events: Direct Call → identifier matches login
  • Actions:
    • Zeotap Collect → Sync User Identities
    • Key-value pairs:
      • email{{User Email}}
      • cellno_cc{{User Phone}}
      • loginid{{User Login ID}}
      • crmID{{User CRM ID}}
With the extension’s PII Hashing setting PIIs are raw and must be hashed by Zeotap, the extension hashes email, cellno_cc, and loginid before sending. crmID is a custom identity and is sent as-is. In your site code:
_satellite.track('login', {
  email: 'user@example.com',
  phone: '49 1234567890',
  loginid: 'crm_42',
  crmID: 'crm_42'
});

Capture user attributes

Rule: User Profile Updated
  • Events: Direct Call → identifier matches profile_update
  • Actions:
    • Zeotap Collect → Track Event → User Attributes
    • Key-value pairs:
      • age{{User Age}}
      • gender{{User Gender}}
      • plan{{User Plan}}
When Consent Method = Custom on the extension config, you must wire up a Set Custom Consent rule. Rule: User Sets Consent
  • Events: Direct Call → identifier matches consent_set
  • Actions:
    • Zeotap Collect → Set Custom Consent
    • Fields:
      • track{{Consent Track}}
      • identify{{Consent Identify}}
      • cookieSync{{Consent Cookie Sync}}
In your site code, when the user makes a choice:
_satellite.track('consent_set', {
  track: true,
  identify: true,
  cookieSync: false
});
Brand consent works under any consent method. Add a Set Custom Consent action with brand-specific keys:
  • Zeotap Collect → Set Custom Consent
  • Fields:
    • zeotapVendorConsent{{Brand Consent Zeotap}}
    • xyzVendorConsent{{Brand Consent XYZ}}

Unset identities on logout

There’s no dedicated logout action — use Sync User Identities with the special pattern your runtime expects. Alternatively, redirect the user through a new tag property build with cleared identity Data Elements. Talk to your Zeotap POC for the recommended pattern in your environment.

Common event payloads

These are conceptual examples — the actual rule structure depends on your direct call setup and Data Elements.

Product view

_satellite.track('view_product', {
  productID: 'sku_123',
  productName: 'watch'
});
Rule: Track Event → Custom Event, Name view_product, key-value pairs from {{Product ID}} and {{Product Name}}.

Purchase

_satellite.track('purchase', {
  orderID: 'order_456',
  total: 89.97,
  currency: 'EUR'
});
Rule: Track Event → Custom Event, Name purchase, key-value pairs from {{Order ID}}, {{Order Total}}, {{Currency}}.
Last modified on June 22, 2026