Custom Events

Track button clicks, form submissions, and custom user interactions

Overview

Custom events let you track specific user interactions beyond pageviews. Track button clicks, form submissions, purchases, downloads, and any other actions.

Basic Usage

Call zta.track() to send a custom event:

zta.track('signup_click')

Event with Properties

Add context with the second parameter:

zta.track('purchase', {
  category: 'ecommerce',
  label: 'Premium Plan',
  value: 29
})

Properties

PropertyTypeDescription
categorystringEvent grouping (e.g., ’ecommerce’, ’engagement')
labelstringDescriptive label for the event
valuenumberNumeric value (e.g., purchase amount)

Use data attributes for cleaner HTML - no JavaScript required:

<button data-zta-track="cta_click" data-zta-label="hero_signup">
  Get Started
</button>

Available Attributes

AttributeDescription
data-zta-trackEvent name (required)
data-zta-categoryEvent category
data-zta-labelEvent label
data-zta-valueNumeric value
<a href="/promo"
   data-zta-track="campaign_click"
   data-zta-category="campaign"
   data-zta-label="summer_sale_2025">
  Summer Sale - 20% Off
</a>

JavaScript Tracking

For dynamic scenarios, use the JavaScript API:

Button Click

<button onclick="zta.track('cta_click', {label: 'hero_signup'})">
  Get Started
</button>

Form Submission

document.querySelector('form').addEventListener('submit', function() {
  zta.track('form_submit', {
    category: 'lead_gen',
    label: 'contact_form'
  })
})

File Download

<a href="/files/whitepaper.pdf"
   onclick="zta.track('download', {label: 'whitepaper.pdf'})">
  Download Whitepaper
</a>

Purchase

zta.track('purchase', {
  category: 'ecommerce',
  label: 'Pro Plan - Monthly',
  value: 29
})

Scroll Depth

Tracked automatically! We capture 25%, 50%, 75%, and 100% scroll milestones.

document.querySelectorAll('a[href^="http"]').forEach(link => {
  if (!link.href.includes(window.location.hostname)) {
    link.addEventListener('click', () => {
      zta.track('outbound_click', {
        label: link.href
      })
    })
  }
})

Viewing Events

Custom events appear in your dashboard under the Events tab. You can:

  • See event counts over time
  • Filter by event name
  • Break down by category and label
  • Export event data via API

Best Practices

  1. Use consistent naming - Stick to snake_case for event names
  2. Be specific - signup_form_submit is better than click
  3. Don’t over-track - Focus on meaningful business actions
  4. Use categories - Group related events together
  5. Add values when relevant - Numeric data enables better analysis