Custom events, goals & revenue

Track signups, purchases and any custom event with properties and revenue, then build goals and funnels on top.

Everything on this page needs the Numative tracker, so it applies to standalone sites. Sites in GA4 mode show a notice instead of the Goals, Funnels and Properties sections.

How the pieces fit together

Four things build on each other, and only two of them are set up inside Numative:

TermWhat it isWhere it is set up
PageviewA page being loaded.Nowhere. The snippet collects these on its own.
EventA named action your site reports, such as Signup.In your site's code, with numative().
PropertyA key/value detail carried by an event, such as plan=pro.The same numative() call.
Goal or funnelA saved report over the pageviews and events already collected.The Goals and Funnels sections.

Events and properties are never registered in the dashboard. There is no Events section and no form for adding a property: an event name exists as soon as your site sends it, and a property key appears as soon as one event carries it. Goals and funnels then refer to those names.

Where the code goes

Two separate places, which is the most common point of confusion:

  • The snippet goes in your site's <head>, once (the WordPress plugin does this for you). It collects pageviews and defines the numative() function.
  • An event call goes in your page's own code, at the point the action happens: a button's click handler, the code that runs after a form submits, the last step of a checkout. Not in <head>.

Sending an event therefore means editing your site's code or adding a tag through a tag manager. Goals and funnel steps based on pageviews need neither.

Page or event

Goals and funnel steps both accept either one. The rule:

  • If the action ends on its own URL, such as an order confirmation or a thank-you page, use the page type. It needs no code and works over history you have already collected.
  • If it does not, such as a modal, a button, a form that submits in place, or a purchase with no confirmation page, use an event.

Events also carry revenue and properties, which pageviews cannot. A pageview goal gives you one number. A Signup event carrying a plan property can be split by plan and filtered on across the whole dashboard.

One asymmetry to know: a page path accepts a * wildcard, an event name does not. Event names match exactly, including case.

Check that an event is arriving

Send the event once from your own site, then open the site's Overview and find the Interactions card. Its Events tab lists every event name received in the selected range, with its count. That list is what goals and funnels match against, so confirm a name there before typing it into either.

A goal or funnel step naming an event that has never been sent is not an error. It matches nothing and reports zero for as long as it exists, and a misspelled name behaves identically. Check the spelling against the Events list first.

Sending events

The snippet exposes a global numative() function. Call it with an event name, and optionally with properties and revenue:

js
// Just a name
numative("Signup")

// With properties (string, number or boolean values)
numative("Signup", { props: { plan: "growth", trial: true } })

// With revenue; currency is optional
numative("Purchase", { revenue: { amount: 19.99, currency: "USD" } })

Events are sent with navigator.sendBeacon (falling back to fetch with keepalive), so calls in click handlers survive the page unloading. The function never throws, even if the network is down.

Property limits

Properties are sanitized on the server before storage:

  • At most 30 properties per event; extra keys are dropped.
  • Keys and values are truncated at 300 characters.
  • Values must be strings, numbers or booleans (numbers and booleans are stored as strings). Nested objects and arrays are dropped.

Automatic events

Two named events are tracked with no code at all (disable them with data-outbound="false" on the snippet):

  • Outbound Link: clicks on links to another hostname, with the destination in a url property.
  • File Download: clicks on same-site links ending in pdf, zip, csv, xls, xlsx, doc, docx, ppt, pptx, dmg, exe, mp4, mp3 or wav, also with a url property.

Custom events, these two included, are never billed: only pageviews count toward your plan allowance, and event volume shares a generous fair-use ceiling instead. Several other things are captured automatically as reserved events - every click, every form submission, each visit's page speed and any JavaScript errors. Those are free as well, never appear in the Events list, and never show up in custom property breakdowns, so nothing about your existing reports changes because of them. See Click autocapture, Speed and Error tracking.

Your site can also hand the tracker context it already knows - that a response was a 404, the term behind a search page, a post's author - and have it ride the pageview as properties rather than as extra events. See Enhanced measurements.

Goals

A goal turns an event or a pageview into a tracked conversion. Create them under your site's Goals section:

Goal typeMatchesExample
Custom eventEvents with this exact nameSignup
PageviewPageviews whose path matches; globs allowed/thanks/*

Each goal reports unique converting visitors, total goal events, the conversion rate (converting visitors over all visitors in the window), and summed revenue when the underlying events carry a revenue amount. Goals respect the dashboard's filters and segments, so you can compare conversion by source, country or any other dimension. Full guide: Goals.

Funnels

Funnels chain multiple steps, where each step is a page path (globs allowed) or an event name. Steps must be completed in order within a visit, and the report shows unique visitors reaching each step plus the drop-off between steps. Build them under the site's Funnels section, for example: pageview /pricing, then event Signup, then event Purchase. Full guide: Funnels.

Custom properties report

The Properties section breaks events down by any property key you have sent (plan, method, variant, and so on), with visitors, events and revenue per value. Property keys are discovered automatically from the selected date range, and property breakdowns can also be used as filters across the dashboard. Full guide: Custom properties.