"The only analytics dashboard I open every day"

Track custom user actions (Goals)

Goals are the actions you care about beyond pageviews: signups, trial starts, newsletter subscriptions, clicks on a pricing plan… They appear in the Goal tab of your dashboard, can be used as funnel steps, and show in each customer's journey.

Goal names are normalised: lowercased, spaces become underscores, and only letters, digits, _ - : are kept (max 64 characters).

Method #1: JavaScript

Call window.dataeasy(name, properties?) anywhere after the script has loaded:

window.dataeasy("signup");

// With properties (up to 10 keys, values are stored as strings of max 255 chars)
window.dataeasy("initiate_checkout", {
  plan: "pro",
  price: 49,
});

If the call can happen before the script finishes loading (for example in an inline script), add the queue stub first.

Method #2: HTML data attributes

Add data-dataeasy-goal to any clickable element. The goal fires on click (and on Enter for keyboard users). Extra data-dataeasy-goal-* attributes become properties.

<button
  data-dataeasy-goal="initiate_checkout"
  data-dataeasy-goal-plan="pro"
  data-dataeasy-goal-price="49"
>
  Subscribe to Pro
</button>

This sends the goal initiate_checkout with the properties plan and price.

Scroll goals

Track when a section scrolls into view with data-dataeasy-scroll. By default the goal fires once per page load when half of the element is visible.

<section
  id="pricing"
  data-dataeasy-scroll="scroll_to_pricing"
  data-dataeasy-scroll-threshold="0.3"
  data-dataeasy-scroll-delay="500"
>
  …
</section>
AttributeDescription
data-dataeasy-scrollGoal name.
data-dataeasy-scroll-thresholdVisible fraction between 0 and 1 (default 0.5).
data-dataeasy-scroll-delayMilliseconds the element must stay visible (default 0).
data-dataeasy-scroll-*Any other attribute is sent as a property.

Elements added later (e.g. after a client-side navigation) are picked up automatically. Disable scroll goals entirely with data-disable-scroll="true" on the script tag.

Payments

A goal named payment is stored as a payment event. For real revenue numbers, prefer connecting your payment provider: amounts, renewals and refunds are then imported from verified webhooks.

Display names and colors

In the Goal tab you can give each goal a friendlier display name and a color, or hide it from the dashboard. This doesn't change the name you send from your code.

✍️ Something missing? Tell us.

🧭 New to DataEasy? Start with the introduction