Custom goals
Fire any named event from the browser.
Once the tracking snippet has loaded, window.shonylabs(goalName, options) is available anywhere on the page:
window.shonylabs('signup');Recording revenue
window.shonylabs() intentionally has no revenue option. Anything callable from the browser console is spoofable by any visitor — opening devtools and calling window.shonylabs('purchase', { revenue: 999999 })would let anyone inflate a site's numbers. Report real revenue from your own backend instead, using the Transactions API(or a manual/third-party integration) — it's authenticated with your site's API key, so only you can record a sale.
Custom properties
Any key in options (like plan below) is stored alongside the event — up to 10 properties, lowercase key names only, values are stripped of markup before storage:
window.shonylabs('upgrade', { plan: 'pro' });Funnels
Once you're firing goal events, build a funnel entirely from the dashboard: pick 2–6 event names in order, and ShonyLabs shows the conversion rate between each step — no extra code required.