Dashboard

Graphs

Raw Events

Timestamp Type URL Visitor ID

Backfill Management

Active & Incomplete Backfill Requests

Manage ongoing and incomplete backfill operations. You can resume paused backfills or clean up old requests.

Loading backfill requests...

Access Management

Users with Access

Loading users...

Visitor Profiles

Profile Metrics

Loading metrics...

Top Interests

Loading interests...

Top Tags

Loading tags...

Browse Profiles

Loading profiles...

Audiences

Audience Overview

Discover what kinds of audiences visit your website based on aggregated profile interests. This data helps you understand your visitor demographics for smart advertising and content targeting.

Loading audience data...

Interest-Based Audiences

Audience segments based on visitor interests. Each segment shows the number of profiles with that interest.

Loading segments...

Audience Composition

Data Clean Room

Extract Profile IDs by Interest

Extract profile IDs matching specific interests with optional ID list filtering for privacy-preserving audience analysis. This enables data clean room functionality where you can find the intersection of your known IDs with interest-based segments.

Click "Refresh Interests" to load available interests

No ID filter active

Documentation

How to Send Events

Use the following JavaScript functions to send event data from your website to the EventAbsorb API. Your current website ID is .

1. Core Event Function

This is the main function that sends data to the API. It should be included on your website.

async function sendEvent(type, data = {}) {
    const eventData = {
        type: type,
        url: window.location.href,
        website_id: 'YOUR_WEBSITE_ID', // <-- This will be your selected website ID
        session_id: `session-${Math.random().toString(36).substr(2, 9)}`, // Replace with your session management logic
        name: data.payload?.name, // For 'click' or 'custom' events
        payload: data.payload,
        visitor_id: data.visitor_id // Optional: for cookieless tracking
    };

    try {
        await fetch('/api/events', { // <-- Replace with your API endpoint if using a custom domain
            method: 'POST',
            headers: { 'Content-Type': 'application/json' },
            body: JSON.stringify(eventData),
            credentials: 'include' // Important for sending cookies for visitor tracking
        });
    } catch (error) {
        console.error('Failed to send event:', error);
    }
}

2. Cookieless Tracking (Optional)

If you prefer to manage visitor identification yourself (e.g., using fingerprinting), you can send the `visitor_id` directly in the event payload. When the API receives a `visitor_id`, it will not set a tracking cookie.

// Example: Sending a pageview with a custom visitor ID
sendEvent('pageview', {
    visitor_id: 'your-unique-visitor-id'
});

3. Sending a Page View

Call this function when a user lands on a new page.

// Example: Send a pageview event on page load
sendEvent('pageview', {});

4. Sending a Click Event

Track clicks on important elements, like a sign-up button.

// Example: Track a click on a button with id="signupButton"
document.getElementById('signupButton').addEventListener('click', () => {
    sendEvent('click', {
        payload: {
            name: 'signup_button_click',
            source: 'homepage_promo'
        }
    });
});

5. Sending a Custom Event

Track other interactions, like a form submission or video play.

// Example: Track a successful form submission
sendEvent('custom', {
    payload: {
        name: 'contact_form_submission',
        form_id: 'contact-us'
    }
});

Aggregation Rules

Create New Rule

Existing Rules

Calculation Rules

Create New Calculation Rule

You can use 'page_views', 'unique_visitors', and any aggregation rule name as variables.

Existing Calculation Rules