blog.json to the tracker as a data-* attribute, so you can skip or mask paths, tag events and tune session replay on Rybbit Cloud or your own Rybbit instance without writing a custom script.
With the c15t cookie banner on, Rybbit loads through c15t instead, only after a visitor allows the measurement category, and keeps every option below.
1
Copy your Site ID
In Rybbit, open your site’s settings and find its tracking code. The Site ID is the
siteId value in the script URL, like 123 in https://app.rybbit.io/api/script.js?siteId=123. It’s a public ID, so you don’t need an API key.2
Add it to Notra
Open Studio → Sites, select your site, open Integrations and click Add Rybbit. Paste the ID into Site ID, and if you host Rybbit yourself, enter your instance’s script URL under Script URL as well. When you click Save, Notra opens a pull request with the change. To configure it in your repository instead, add it to
blog.json:blog.json
3
Merge and verify
After you merge the change and the production deployment finishes, visit your live site and check the realtime view in Rybbit.
Options
The dashboard covers the Site ID and script URL. You set every other option inblog.json, and editing the integration in the dashboard keeps those options as they are.
Notra adds the origin of
scriptUrl to script-src and connect-src in the Content-Security-Policy, because Rybbit loads its settings from that host and sends events and replays back to it.
Error tracking, web vitals, outbound links, button clicks, copy and form tracking, query strings and URL fragments aren’t script options. Turn them on or off in your site’s settings in Rybbit, and the script picks them up on the next page load.
Path patterns
skipPatterns and maskPatterns take globs that start with / or regular expressions that start with re::
Both lists apply only to events and session replay still records skipped and masked pages, so hide sensitive content in recordings with the replay options instead.
Session replay
Turn on session replay in your site’s settings in Rybbit. Rybbit then loads its recorder from the same host as the tracker and masks every form input by default, and the options underreplay change what the recorder captures.
blog.json
The class options take a single class name without the dot, and CSS selectors can be up to 500 characters long.
Masked input types
replay.maskInputOptions maps input types to true or false: color, date, datetime-local, email, month, number, password, range, search, select, tel, text, textarea, time, url and week. It replaces Rybbit’s default as a whole, so list password and email again if you add other types:
Sampling
replay.sampling replaces Rybbit’s default sampling as a whole, so set every key you care about.
Slim DOM options
replay.slimDomOptions maps parts of the page to true to leave them out of recordings: script, comment, headFavicon, headWhitespace, headMetaDescKeywords, headMetaSocial, headMetaRobots, headMetaHttpEquiv, headMetaAuthorship, headMetaVerification and headTitleMutations. Rybbit leaves out everything except script and headTitleMutations by default, and your object replaces that default as a whole.
Custom events
To track clicks in your own components and MDX, adddata-rybbit-event to an element. Rybbit then sends a custom event with that name when a visitor clicks it and uses the element’s data-rybbit-prop-* attributes as properties:
window.rybbit.event("pricing_clicked", { placement: "changelog-footer" }), or use your namespace if you set one, as Rybbit’s event docs describe.
Privacy
Rybbit sets no cookies, but it keeps an anonymous visitor ID in local storage. To stop tracking your own visits, runlocalStorage.setItem("disable-rybbit", "true") in the browser console on your live site, or use disable-<namespace> if you set a namespace.