Ciphera Help

Script Installation

Full reference for the Pulse tracking script, configuration attributes, and auto-tracked events.

The Pulse tracking script is a single <script> tag. Most sites need only data-domain — everything else has sensible defaults.

<script defer data-domain="example.com" src="https://js.ciphera.net/script.js"></script>

Configuration attributes

AttributePurposeDefault
data-domainSite domain as registered in Pulse (required)location.hostname minus www.
data-apiAPI endpoint URLhttps://pulse-api.ciphera.net
data-storage"local" (cross-tab persistence) or "session" (single tab only)"local"
data-storage-ttlVisitor identity TTL in hours. Accepted values: 24, 48, 168, 72024
data-no-scrollDisable automatic scroll depth tracking
data-no-404Disable automatic 404 page detection
data-no-outboundDisable automatic outbound link tracking
data-no-downloadsDisable automatic file download tracking

Boolean attributes are enabled by their presence — no value is needed:

<script defer data-domain="example.com" data-no-scroll data-no-outbound
  src="https://js.ciphera.net/script.js"></script>

Auto-tracked events

All of the following are enabled by default. Use the corresponding data-no-* attribute to opt out.

Pageviews

Fired on initial load and on every client-side navigation. SPA support is built in: the script patches pushState and replaceState, and listens to popstate and a MutationObserver on <title> to catch framework-rendered navigations.

Scroll depth

Fired continuously as the visitor scrolls, recording the maximum percentage of the page reached. Appears in the dashboard per page.

404 pages

Detected server-side by checking whether the document <title> contains "404" or "not found" (case-insensitive). Fires a 404 event with the page path. Useful for catching broken links without any backend changes.

Any click on a link pointing to a different domain fires an outbound_link event with the url property set to the full destination URL.

File downloads

Clicks on links matching tracked file extensions fire a file_download event with the url property. Tracked extensions:

pdf, zip, gz, tar, xlsx, xls, csv, docx, doc, pptx, ppt, mp4, mp3, wav, avi, mov, exe, dmg, pkg, deb, rpm, iso, 7z, rar

Links with a download attribute are also captured regardless of extension.

Privacy signals

The script respects the following browser privacy signals and will not send analytics data if either is set:

  • Do Not Track (navigator.doNotTrack === "1")
  • Global Privacy Control (navigator.globalPrivacyControl === true)

WebDriver automation is also detected and excluded, so synthetic test traffic does not pollute your data.

Self-exclusion

To exclude your own visits from analytics, navigate to yoursite.com/?pulse-ignore. This toggles a flag in localStorage under the key pulse_ignore. Visit the same URL again to re-enable tracking for your session.

Self-exclusion is per-browser and per-device. If you clear local storage or switch browsers, you'll need to set it again.

Tag manager or no-attribute environments

If you are loading the script through Google Tag Manager or another system that does not support data-* attributes, configure Pulse via the global config object before the script loads:

<script>window.pulseConfig = { domain: "example.com" };</script>
<script defer src="https://js.ciphera.net/script.js"></script>

All configuration attributes have equivalent camelCase keys in pulseConfig (data-storage-ttlstorageTtl, etc.).

On this page