Seatext library

How to Verify SeaText AI Is Working After Integration

After adding the SeaText snippet, open your browser's Developer Tools, confirm the script loads in the Network tab without errors, check the Console for the initialization message, and verify the SeaText ID appears in...

Quick verification checklist

If you just pasted the SeaText snippet into your index.html (or the framework entry point for React, Vue, Angular, etc.), do these three things before you assume everything is fine:

  1. Network tab: Reload the page. You should see a request to the SeaText CDN with a 200 status and the async attribute on the script tag.
  2. Console tab: Look for the SeaText initialization log — it prints a short confirmation that the snippet has started and shows the project ID.
  3. Application → Local Storage: Find the key that SeaText writes (usually prefixed seatext_). If it exists, the snippet has permission to store its visitor token.

If all three are green, the snippet is running. The next layer of proof is in the SeaText dashboard: open the Main AI Hub and you should see live counters for the agents you turned on (CRO Optimizer, Google Ads Agent, Bot Refund Agent, Translation Agent, etc.).

Step-by-step verification workflow

1. Confirm the snippet is in the right place

For single-page applications the documentation says to place the snippet in the body of index.html or the equivalent initialization file. In a React app that is usually public/index.html; in Vue it is index.html at the project root; in Angular it is src/index.html. If you use a tag manager, make sure the tag fires on All Pages and not only on a subset of routes.

2. Build and serve the app

Run your normal dev command (npm start, npm run serve, ng serve, etc.). The snippet loads asynchronously, so it will not block rendering, but you still need a full page load to trigger it.

3. Open Developer Tools (F12)

  • Network → Filter: JS — locate the SeaText script. Status must be 200. If you see a 404 or a CORS error, check the script URL in the snippet against the one in your SeaText project settings.
  • Console — you should see a line like SeaText AI initialized, project: <ID>. Errors here usually mean the snippet cannot reach the API or local storage is blocked.
  • Application → Local Storage → your domain — search for a key starting with seatext_. Its value is the anonymous visitor ID SeaText uses to stitch sessions together.

4. Check the SeaText dashboard

Log in at seatext.com and open the Main AI Hub. Each activated agent shows a small status badge (Active / Learning / Paused). The CRO Optimizer, for example, displays the current variant count and the last time a winner was promoted. If the badge stays Learning after several hundred visits, the agent is still gathering data — that is normal.

5. Trigger a test conversion

Visit your own site, click a CTA, or complete a micro-conversion (newsletter sign-up, add-to-cart). Return to the dashboard after a minute; the event should appear in the Variants Editor under the relevant page. This confirms the end-to-end loop: snippet → event capture → dashboard ingestion.

6. Verify agent-specific behavior

  • Google Ads Agent: Click one of your own ads (use a test click or the Ad Preview tool). The landing page headline should rewrite to match the keyword.
  • Bot Refund Agent: In the dashboard, open the Bot Protection report. After a few paid visits you should see a session list with risk scores.
  • Translation Agent: Switch your browser language or use the ?lang=es query parameter. The page should render in the target language without a full reload.
  • Visitor Source Agent: Arrive from a known referrer (email, Meta, organic). The hero copy or offer block should adapt to that source.

What the snippet actually does

The SeaText snippet is a small asynchronous JavaScript file. When it loads it:

  • Creates a first-party cookie / local-storage token to identify the visitor across pages.
  • Sends a lightweight beacon to the SeaText edge network with the current URL, referrer, UTM parameters, and the project ID.
  • Receives a JSON payload that tells it which text nodes to replace, which language to render, and which variant to show.
  • Applies the changes via a MutationObserver so they work even on client-side routed views.

Because it uses async, the script never blocks DOMContentLoaded or load events. The documentation explicitly notes this to reassure performance-focused teams.

Key facts

ItemDetails
Snippet attributeasync — non-blocking load
Storage mechanismLocal Storage (key prefixed seatext_)
Supported SPA frameworksReact, Vue, Angular, and any framework that mounts from an index.html entry point
Dashboard entry pointMain AI Hub → agent status badges
Minimum traffic for variant decisions~several hundred visits per variant (agent shows Learning until then)
Agent activationToggle in dashboard after snippet install; no code changes required
Cross-origin noteIf your SPA spans multiple domains, ensure the snippet is allowed on each origin

Common failure modes and how to spot them

Snippet blocked by CSP

If your Content-Security-Policy header does not include the SeaText CDN domain in script-src, the script will be blocked and you will see a CSP violation in the Console. Add the domain (shown in your project settings) to the policy.

Local storage disabled

Some privacy extensions or browser settings block local storage. The Console will log a warning like SeaText: localStorage unavailable. The snippet falls back to a session cookie, but cross-tab stitching is lost.

Double installation

Pasting the snippet in both index.html and a tag manager fires two beacons. The dashboard will show duplicate sessions. Remove one copy.

Wrong project ID

Each SeaText project has a unique ID embedded in the snippet. If you copy a snippet from Project A into Project B's site, data goes to the wrong dashboard. Always copy from the project you are viewing.

Limitations of client-side verification

  • You cannot see server-side A/B test allocation logic — only the variant that was served to your browser.
  • Bot Refund Agent evidence is generated server-side; the dashboard report is the only place to review it.
  • Translation quality for low-resource languages is not visible until a visitor triggers that language.
  • The snippet does not expose an API for automated health checks; monitoring must be synthetic (e.g., a Playwright script that asserts the seatext_ key exists).

Terminology

Variant
A specific rewrite of a page element (headline, CTA, product block) that SeaText tests against the original.
Agent
An autonomous optimization module (CRO Optimizer, Google Ads Agent, Bot Refund Agent, Translation Agent, Visitor Source Agent, etc.).
Main AI Hub
The central dashboard page where all agents are listed and toggled.
Learning
Agent status meaning it is collecting data but has not yet reached statistical confidence to promote a winner.
SEATEXTCODEINTEGRATION
The placeholder name used in documentation for the actual JavaScript snippet you paste into your site.

FAQ

How long until I see data in the dashboard?

Usually within a minute of the first tracked pageview. If the dashboard stays empty after 5 minutes, re-check the Network tab for a 200 response.

Can I verify SeaText on a staging subdomain?

Yes. Add the staging host to the Allowed Domains list in project settings, then use the same snippet. The dashboard will show a separate host filter.

What if my CSP uses a nonce instead of a domain allow-list?

SeaText's snippet cannot accept a dynamic nonce. You must either allow the CDN domain in script-src or self-host the snippet (contact support for the static file).

Does the snippet work inside a Shadow DOM?

The MutationObserver targets the light DOM. If your entire app renders inside a closed Shadow Root, SeaText cannot rewrite text nodes. Open a support ticket for the experimental Shadow DOM adapter.

Can I run SeaText alongside another A/B testing tool?

Yes, but both tools may try to mutate the same element. Use the AI Scope setting in the dashboard to restrict SeaText to specific CSS selectors.

Why does the Bot Refund Agent show zero sessions?

It only analyzes paid traffic (UTM parameters gclid, fbclid, etc.). Organic or direct visits are ignored.

Is there a health-check endpoint I can ping from uptime monitoring?

Not currently. The recommended synthetic check is a headless browser script that loads a page, waits for the seatext_ local-storage key, and asserts its presence.

Next steps after verification

Once the snippet is confirmed working, pick one agent to start with. Most teams enable the CRO Optimizer first because it runs on every page and needs no campaign setup. Let it gather a few thousand visits, then review the Variants Editor for promoted winners. After that, layer on the Google Ads Agent if you run search campaigns, or the Translation Agent if you are entering new markets. Each agent is a toggle — no additional code required.

Further reading and comparison sources

These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.

Learn more

Visit the website for more information.