# Quick Start

Create a site, add its generated tag, verify the install, and launch your first journey. Routine settings then ship from Workspace.

> **Prerequisite** Rover needs an active rtrvr.ai account with available Rover credits — free Rover sites get 300. Check your balance in the [Workspace](https://rtrvr.ai/rover/workspace) or upgrade at [rtrvr.ai](https://rtrvr.ai/cloud?view=pricing).

## 1. Create your site in Workspace

Sign in at the [Workspace](https://rtrvr.ai/rover/workspace) and create your site. Keep **Rover for visitors** in most cases — it already includes Rover Analytics. For private measurement with no Rover UI, discovery, or AI execution, follow the [Analytics-only launch checklist](https://rtrvr.ai/rover/docs/analytics#launch-analytics-only).

Enter your main domain once and keep the default scope — this domain and its subdomains. Workspace issues your site key: `siteId`, `publicKey`, and an optional `siteKeyId`.

- **Domain allowlist** — every key is scoped to specific domains. Rover refuses to boot on unlisted hosts.
- **No expiry by default**: direct production site keys stay valid until you rotate the key or delete the site.
- **Reuse over replace** — keep an active key whose domains and policy already fit. Replace only for policy changes, key compromise, or planned credential rollover.
- **Cloud A2W is included** — URL-fetch chatbots can act on your site without opening a browser. Turn on **Cloud sandboxes** only when Rover may also use RTRVR cloud tools to read or act on approved third-party sites.

## 2. Add the embed script

Paste the snippet before your closing `</body>` tag. This is the shape — for production, copy the exact generated snippet from Workspace **Install** instead of hand-assembling it:

```html
<!-- Add before </body> -->
<script
  src="https://rover.rtrvr.ai/embed.js?v=replace_with_rover_site_key_id"
  async
  data-site-id="replace_with_rover_site_id"
  data-public-key="replace_with_rover_public_key_pk_site"
  data-site-key-id="replace_with_rover_site_key_id"></script>
```

The tag carries only installation identity. Billing state, domain policy, and feature configuration resolve from Rover's backend after bootstrap and are not copied into the DOM. `embed.js` loads asynchronously, so it does not block HTML parsing. Rover Analytics starts automatically unless the saved site config sets `analytics.enabled: false`.

Replace placeholders with your exact Workspace values. `siteKeyId` doubles as the `?v=` cache-buster. Routine settings need no tag change; after a production key rotation, copy the new snippet to any site where you installed it manually. See [Configuration](https://rtrvr.ai/rover/docs/configuration) for supported boot options.

Installed through Webflow or Wix? Do not paste this tag manually. Rover publishes it through the platform's managed install flow.

## 3. Verify the install

Workspace **Install** shows a status line for what Rover has heard from your domain. **Check now** probes on demand — it fetches your homepage and looks for the Rover tag.

- `verified` — Rover has pinged from an allowed host; the status line reads "Live on" that host.
- `never_seen` — no ping yet. Open any page with the tag installed, then check again.

A ping from a host outside your allowlist names the blocked host — fix the domain list or move the install.

## 4. Create your first journey

In [Workspace](https://rtrvr.ai/rover/workspace) **Journeys**, draft your first journey — a demo, onboarding, support, or task flow visitors launch from shortcut cards when no run is active.

> **Saves are the publish** Rover fetches your site configuration at session open with a short cache, so changing anything in Workspace needs no redeploy. Journeys roll out off → preview → live, and AI proposals wait in your review inbox until you approve them.

## Async User Identity (Recommended)

Rover creates an anonymous visitor ID automatically. After login, send stable user/account IDs and an optional display name with `rover.identify(...)`; that name becomes bounded personalization while email stays out of the model prompt. Send richer profile, account, intent, success, support, and activity data with `rover.update({ visitor })`. On logout, clear visitor context and reset identity. Both calls stay async and never block page render.

```js
// Async login/user hydration example
// Call after your auth flow resolves:
window.rover?.identify({
  userId: user.uid,
  accountId: user.accountId,
  traits: { plan: user.plan, role: user.role },
  name: user.fullName,
});

// Optional: bridge existing analytics SDK identities without adding dependencies.
window.rover?.update({
  identityProvider: window.rover.identityAdapters.firstAvailable(
    window.rover.identityAdapters.segment(),
    window.rover.identityAdapters.posthog(),
    window.rover.identityAdapters.amplitude(),
  ),
});

// On logout or shared-device account switches:
window.rover?.update({ visitor: null });
window.rover?.resetIdentity();
```

## Domain Scope Cheat Sheet

- `registrable_domain` (default) — `example.com` allows the apex host and all subdomains, so you don't need both `example.com` and `*.example.com`.
- `*.example.com` — subdomains only, never the apex host.
- `host_only` — plain entries match the exact host only; sibling subdomains stay blocked unless you list them.

Outside-domain pages open in a new tab with notice, and Rover picks the right tab automatically for allowed-host hops. Full matching rules in [Security & Policies](https://rtrvr.ai/rover/docs/security).

## AI Discovery Extras

The production install is the one script above. Machine-readable discovery — `agent-card.json`, `rover-site.json`, `ai-catalog.json`, the `AGENTS.md` brief, the full A2W `Link` header, and `llms.txt` — stays optional and is managed separately from the tag. When you want it, follow [AI Discovery](https://rtrvr.ai/rover/docs/ai-discovery).

- [Instructing Rover](https://rtrvr.ai/rover/docs/instructing-rover): Write instructions Rover actually follows.
- [Workspace Tour](https://rtrvr.ai/rover/docs/workspace): Every section of the owner workspace, in order.
