Install on Laravel
Create or select your website in Seean, then copy its snippet from Settings → Installation. Replace YOUR_SITE_TOKEN below with that website’s public token. Keep the external script and both data attributes; never put a server order API secret in this code.
Add to the Blade document
Find the Blade view that owns <html> and <head>, commonly resources/views/layouts/app.blade.php. Some apps use a layout component under resources/views/components/ instead. Add the tag before the existing closing </head>:
<script defer src="https://app.seean.io/k.js"
data-site="YOUR_SITE_TOKEN"
data-api="https://app.seean.io"></script>
Use the actual document shared by the pages you measure, not a repeated Blade partial or an individual reactive component. Pages using another layout need equivalent coverage once. Laravel Blade layouts.
For an API-only backend, install in the frontend that serves the browser document. The tag does not measure Laravel requests, queues or jobs.
Inertia and Livewire navigation
Blade full-page rendering and client navigation have different script lifecycles. With Inertia, place the tag in the root HTML document, outside the changing page component. With Livewire navigation, inspect whether your layout keeps or reruns the script across transitions. Do not attach another installation to every navigation event.
Seean observes supported pathname/history changes after loading; that alone does not certify every Inertia or Livewire version. Test the actual setup for a single script and exactly one pageview per intended navigation. If that lifecycle fails, keep the integration unverified and share the framework version and reproduction with support.
Deploy and verify
Deploy through the project’s existing process and refresh compiled views if that process requires it. On localhost or 127.0.0.1, use a separate test site token and add data-local. Keep any server order API secret in server configuration, never in Blade output.
Open the published site in a browser and follow installation verification: confirm k.js loads, a collection request is sent, and the correct website and paths appear in Events. Check a direct page load, a link to a different pathname, and Back/Forward. Setup health shows the last received pageview time and offers a published-homepage check; it does not certify every page.
If events are missing, check the published HTML, consent settings, content blockers, CSP and exclusions. Install the tracker only once: a second tag, plugin or tag-manager installation can double count. Supported pathname navigation is automatic; do not add another pageview tag for every history change. Hash-only changes are not distinct pages.
Changes and removal
To change the site token, update this installation and publish again. To stop future collection, remove the same tag and publish; existing reports remain. Recheck installation after platform, theme or routing changes.
See script options, custom events and technical privacy. Loading this script must follow your site’s analytics-consent policy; a platform cookie banner does not necessarily control custom code automatically.
Something unclear? Contact support.