Everything, on one page.
The tag is one line. The rest of this page is the handful of options a real site ends up wanting.
Install
One line in the <head> of every page:
<script defer src="https://rialto.example/sl.js" data-site="yoursite"></script> Local runs tag themselves as development automatically (localhost, 192.168.*), and the dashboard shows production by default, so your own testing never pollutes the numbers. Installing on Webflow? There is a dedicated guide.
Content-Security-Policy sites
A site that sends a CSP needs the Rialto origin in two directives, and the
second one is the one everybody forgets. With only script-src the tag
loads and silently records nothing.
script-src ... https://rialto.example;
connect-src ... https://rialto.example; Custom events
From markup, with no JavaScript to write - any element can fire an event when clicked, and any block can be named so its attention is timed:
<button data-sl-event="demo_request">Book a demo</button>
<section data-sl-section="Pricing table">...</section> From code, when a value matters - numbers get histograms, everything else gets breakdowns:
window.sl('speed_change', { context: 'player', value: 60 }); Goals
In Settings, name one event as the site's conversion. The overview then leads with the conversion rate, the weekly digest reports it against last week, and the Events view badges it.
Campaigns
Standard utm_source, utm_medium and
utm_campaign parameters are recorded automatically. A Campaign
breakdown appears in the overview the moment the first tagged visit arrives.
Consent and identity
By default the tag handles consent itself: it detects a consent tool already
on the page (TCF-standard popups, Cookiebot, OneTrust) and obeys its analytics
choice; if none exists it shows a small banner of its own, once. Accept sets a
first-party identity cookie; decline keeps the visitor fully counted but
anonymous. Control it with data-consent:
data-consent="auto" detect a CMP, else ask once (default)
data-consent="external" never ask; obey the CMP or your code
data-consent="assume" set the cookie without asking
data-consent="off" stay fully cookieless From code, for custom consent flows:
window.sl.consent('granted') or window.sl.consent('denied').
Client links
Settings mints a read-only link scoped to one site: it can see that site's data and nothing else - no other sites, no settings, nothing that spends money. Rotating the key kills the old link instantly.
Search Console and the AI panel
Connect Search Console with two clicks (add our reader address to your property) and search data joins behaviour on every page's detail view. The Answer Share panel then sources its weekly questions from your own queries.