Event Types Reference

Summary: The pixel captures 4 main event types: page views, clicks, scroll depth, and text copies. Each includes different details in the event_data field. Resolved events also include full contact and company enrichment.


Overview

Every time a visitor interacts with your website, the Delivr pixel captures an event. Each event has a event_type field that tells you what the visitor did, and an event_data field with the details.

This page explains each event type, what data it captures, and when you'd use it.


Event Types

page_view

Fires when a visitor loads a page.

This is the most common event type (typically 50-60% of all events). Every page load generates one.

event_data fields:

FieldTypeExample
urlstringhttps://yoursite.com/pricing
titlestringPricing - YourSite
referrerstring or nullhttps://google.com/search?q=...
screenobject{"height": 600, "width": 800}
viewportobject{"height": 1080, "width": 1920}
timestampstring2026-01-28T00:37:48.322Z

When to use it:

  • Find out which pages a visitor looked at
  • Filter by URL to find visitors on high-value pages (pricing, demo, contact)
  • Track referral sources

Example: Find resolved visitors on your pricing page

curl "https://apiv3.delivr.ai/api/v1/events?pixel_id=YOUR_PIXEL_ID&start_ms=START_MS&end_ms=END_MS&filter=resolved:eq:true,event_type:eq:page_view&limit=50" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "x-organization-id: YOUR_ORGANIZATION_ID"

click

Fires when a visitor clicks an element on the page (links, buttons, navigation items).

event_data fields:

FieldTypeExample
urlstringhttps://yoursite.com/
elementobject{"ariaLabel": null, "className": "btn-primary"}
elementIdentifierstringbtn-primary cta-demo
elementTextstringRequest a Demo
coordinatesobject{"x": 450, "y": 320}
timestampstring2026-01-28T01:16:37.151Z

When to use it:

  • See which CTAs visitors click on
  • Track navigation patterns
  • Identify visitors who clicked "Request Demo" or "Contact Sales"

scroll_depth

Fires when a visitor scrolls past a threshold on a page (25%, 50%, 75%, 100%).

event_data fields:

FieldTypeExample
urlstringhttps://yoursite.com/blog/post
percentagenumber51
thresholdnumber50
timestampstring2026-01-28T01:53:42.355Z

When to use it:

  • Find visitors who read most of a page (not just bounced)
  • Combine with page_view to identify engaged visitors on key content pages

Example: Find visitors who scrolled past 75% on any page

curl "https://apiv3.delivr.ai/api/v1/events?pixel_id=YOUR_PIXEL_ID&start_ms=START_MS&end_ms=END_MS&filter=event_type:eq:scroll_depth&select=event_data,first_name,last_name,company_name&limit=50" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "x-organization-id: YOUR_ORGANIZATION_ID"

Then filter client-side for rows where event_data.percentage >= 75.


copy

Fires when a visitor copies text from your page.

event_data fields:

FieldTypeExample
urlstringhttps://yoursite.com/pricing
textstringEnterprise plan starts at $499/month
textLengthnumber38
timestampstring2026-01-28T16:43:33.323Z

When to use it:

  • Identify visitors copying pricing information (strong buying signal)
  • See what content visitors are saving or sharing internally

Additional Event Types

The pixel can also capture these event types. They may not appear in every account depending on site configuration:

TypeWhat It Captures
form_submissionVisitor submitted a form (contact, signup, etc.)
searchVisitor used an on-site search bar
videoVisitor played a video
downloadVisitor downloaded a file (PDF, whitepaper, etc.)
customCustom events sent via the pixel JavaScript API

These fire when the corresponding visitor actions are detected. The event_data payload varies by type.


Filtering by Event Type

Use the filter query parameter with the event_type field:

filter=event_type:eq:page_view

You can combine filters. For example, resolved click events only:

filter=resolved:eq:true,event_type:eq:click

See the On-Domain Events API for the full list of filter operators.


Event Structure

flowchart TD
    A[Pixel Event] --> B[Event Fields]
    A --> C[event_data]
    A --> D{Resolved?}

    B --> B1[event_id, event_type, timestamp]
    B --> B2[cookie_id, user_agent, referrer_url]
    C --> C1[Varies by event type]
    C1 --> C2["page_view: url, title, referrer, screen"]
    C1 --> C3["click: element, coordinates, text"]
    C1 --> C4["scroll_depth: percentage, threshold"]
    C1 --> C5["copy: text, textLength"]
    D -->|Yes| E["100+ enrichment fields"]
    D -->|No| F[Event fields + event_data only]

    E --> E1[name, email, company, job title...]

    style E fill:#22c55e,color:#fff
    style F fill:#6b7280,color:#fff

What's in event_data vs. the Row Itself

The event_data field is a JSON string containing details specific to that event type (URL visited, element clicked, scroll percentage, etc.).

The rest of the row contains the visitor's identity and company information -- but only if the event was resolved (meaning the visitor was identified). Unresolved events have the event fields but no contact/company data.

Resolved?What You Get
Noevent_type, event_data, timestamp, cookie_id, user_agent, referrer_url, client_ip
YesEverything above, plus first_name, last_name, job_title, company_name, company_domain, personal_email, linkedin_url, and 100+ enrichment fields

To get only resolved events, add filter=resolved:eq:true to your query.


Next Steps