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>| Attribute | Description |
|---|---|
data-dataeasy-scroll | Goal name. |
data-dataeasy-scroll-threshold | Visible fraction between 0 and 1 (default 0.5). |
data-dataeasy-scroll-delay | Milliseconds 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.