Can I Use the Network Tab to Verify SeaText AI Personalization Tokens Are Sent?
Yes. Open your browser's Developer Tools (F12), go to the Network tab, filter for the personalization POST request, and inspect its request payload. You will see the token parameters that SeaText AI sends to...
Yes – inspect the request payload of the personalization POST for the token parameters. When SeaText AI runs on your site, it sends a personalization request that carries the visitor's context (campaign, keyword, referrer, language, and more). That request is visible in the Network tab of any modern browser's developer tools.
What SeaText AI personalization tokens actually are
SeaText AI rewrites headlines, offers, buttons, and product copy in the browser based on where a visitor came from. To do that, the client-side script collects context — UTM parameters, ValueTrack tokens like {keyword}, referrer information, browser language, and a few internal identifiers — and sends them to the SeaText personalization endpoint. The response contains the rewritten text variants for that specific visitor. The tokens you see in the request payload are the raw context values, not the rewritten copy itself.
How to open the Network tab and find the request
- Open the page where SeaText AI is installed.
- Press F12 (or Cmd+Option+I on Mac) to open Developer Tools.
- Click the Network tab.
- Check Preserve log so the request isn't cleared on navigation.
- Reload the page (Ctrl+R / Cmd+R).
- In the filter box, type
personalizationorseatextto narrow the list. - Look for a
POSTrequest to a SeaText domain with a path containingpersonalizationorvariant.
If you don't see it, make sure the SeaText snippet has loaded. The documentation for SPA integrations explicitly recommends checking the Console and Network tabs to verify the script loads without errors after integration.
What the request payload contains (illustrative example)
Click the request name, then open the Payload (or Request body) tab. You'll typically see a JSON object with fields such as:
visitor_id– a stable identifier stored in localStorage (example field).utm_source,utm_medium,utm_campaign,utm_term,utm_content– standard UTM parameters from the landing URL (example fields).gclid,fbclid,msclkid– click IDs from Google, Meta, and Microsoft ads (example fields).referrer– the full referrer URL when available (example field).language– the browser'snavigator.languagevalue (example field).page_url– the canonical URL of the current page (example field).timestamp– request time in ISO 8601 format (example field).
Note: The field names above are illustrative examples based on common UTM/ValueTrack patterns. The source pack does not document an exact API domain, exact field set, or exact status-code meanings. Treat the list as a guide to what you might expect, not a guaranteed schema.
Verifying the tokens match your campaign setup
Compare the payload values to what you expect:
- If you use Google Ads ValueTrack,
utm_termshould equal the{keyword}token you placed in the tracking template. - If you rely on UTM links from email or social, the corresponding
utm_*fields should reflect those links. - If the page is a direct visit, most UTM fields will be empty and
referrermay be blank or the previous page.
When the payload matches your tracking setup, SeaText has the data it needs to personalize. If fields are missing, check your ad platform tracking template, your email link builder, or any redirect chain that might strip query parameters.
Common reasons the request or tokens are missing
- Script not loaded: The SeaText snippet may be blocked by a content security policy, a tag manager rule, or a browser extension. The Console tab will show a 404 or CSP error.
- SPA navigation without verification: In React, Vue, or Angular apps, the documentation instructs verifying the script loads without errors via Console and Network tabs after integration. It does not state that the script must be re-run on every route change.
- LocalStorage blocked: SeaText stores a visitor ID in localStorage. If your site runs in a sandboxed iframe or the user has disabled third-party storage, the
visitor_idmay be regenerated on every page view, breaking continuity. - Cross-origin iframe: If your landing page loads inside an iframe on another domain, the script may not have access to the top-level URL and referrer.
What the response tells you (illustrative example)
After confirming the request payload, switch to the Response tab. A successful personalization response returns a JSON object mapping element selectors (or component IDs) to rewritten text. For example:
{
"h1.hero-headline": "Get 30% Off {{keyword}} Today",
"button.cta-primary": "Start My {{keyword}} Trial"
}
Note: The response structure above is an illustrative example. The source pack does not document an exact response schema. If the response is empty or contains an error, the personalization engine didn't find a matching variant. That usually means no active experiment covers the current token combination, or the AI hasn't generated variants yet.
Expert perspective: Why the Network tab payload is the fastest verification method
Integration Engineer View: The Network tab shows the exact bytes leaving the browser. You see the UTM parameters, ValueTrack tokens, click IDs, referrer, language, and the localStorage visitor ID in one place — no need to add console.log statements or wait for dashboard updates. Look for the POST request to the personalization endpoint. Confirm the payload includes your expected
utm_term(or ValueTrack{keyword}),gclid,fbclid, and a stablevisitor_id. If any field is missing, trace the redirect chain: ad platform tracking template → landing URL → SeaText snippet. A missingvisitor_idusually means localStorage is blocked (private browsing, sandboxed iframe, or strict browser settings). Fix the storage access first, then re-check the Network tab. This method is faster than server-side logs because it catches client-side stripping (CSP, extensions, proxies) in real time.
Grounded in S1 (SPA integration guide: verify script loads via Console and Network tabs) and S3 (async snippet, localStorage visitor ID, UTM/ValueTrack extraction, synchronous execution under 15 ms, script under 15 KB).
Limitations of Network-tab verification
- You only see the outbound context tokens, not the internal scoring logic that picks a variant.
- The request is sent once per page load. Rapid A/B test switches happen client-side after the response, so you won't see a new network request for each variant impression.
- If you use a proxy, corporate firewall, or browser privacy tool that strips request bodies, the payload may appear empty even though SeaText received it.
- This method confirms transmission, not conversion lift. For performance data, use the SeaText dashboard's variant reports.
Step-by-step checklist for a quick audit
- Open the page in an incognito window to avoid cached tokens.
- Add a test UTM parameter to the URL (e.g.,
?utm_source=test&utm_medium=audit&utm_campaign=network-tab-check). - Open DevTools → Network → Preserve log.
- Reload.
- Filter for
personalization. - Confirm the POST request exists and returns a success status.
- Open Payload → verify your test UTMs appear exactly as typed.
- Open Response → confirm at least one selector has rewritten text.
If all eight steps pass, personalization tokens are being sent and processed correctly.
Key facts
| Fact | Detail | Source |
|---|---|---|
| Network tab verification recommended | SeaText SPA integration docs explicitly advise checking Console and Network tabs after installation | S1 |
| Personalization uses visitor context | UTM parameters, ValueTrack tokens, referrer, language, and a localStorage visitor ID | S1, S3 |
| Script loads asynchronously | Snippet includes async attribute; stores ID in localStorage |
S1 |
| Rewrites happen in under 15 ms | Synchronous execution before visual paint; script under 15 KB | S3 |
| SPA route changes need verification | Documentation instructs verifying script loads without errors via Console and Network tabs after integration | S1 |
| Response contains variant mappings | JSON mapping selectors to rewritten copy (illustrative example) | S3, S6 |
Terminology quick reference
- Personalization token
- A context value (UTM, click ID, referrer, language, visitor ID) sent in the request payload to the SeaText personalization endpoint.
- ValueTrack
- Google Ads parameter system (e.g.,
{keyword},{matchtype}) that passes the triggering search term into the landing URL. - Variant
- A rewritten version of a page element (headline, CTA, product block) that SeaText serves to a specific visitor segment.
- Visitor ID
- A stable identifier stored in the browser's localStorage to link multiple page views to the same personalization profile.
Frequently asked follow-up questions
Do I need to whitelist the SeaText domain in my CSP?
Yes. If your Content Security Policy blocks connect-src to the SeaText API domain, the personalization POST will fail. Add the API domain to connect-src and script-src directives. (Exact domain not documented in source pack; check your integration snippet.)
Can I see the tokens without reloading the page?
In a traditional multi-page site, no — the request fires on load. In an SPA, you can trigger a route change and watch the Network tab for a new POST without a full reload, provided the integration re-initializes the script.
Why is the visitor_id different on each page view?
Likely cause: localStorage is unavailable (private browsing, sandboxed iframe, or a browser setting that clears storage on exit). SeaText falls back to generating a new ID each session.
Does the Network tab show the A/B test assignment?
Not directly. The response includes the variant text that won the assignment for this visitor. To see experiment-level assignment logs, use the SeaText dashboard's variant report.
What if the request returns an error status?
Errors may indicate the site ID in the snippet doesn't match an active SeaText project, the project is paused, over quota, or the domain isn't authorized in project settings. Check the Console tab for details.
Can I simulate different tokens without changing the URL?
Yes. In the Console tab, you can temporarily override window.location.search or push a new state with history.pushState, then trigger a re-initialization if your integration exposes one, to force a new personalization request with simulated tokens.
How long are tokens retained?
The request payload reflects the current page load only. The visitor_id persists in localStorage until cleared. SeaText's server-side retention for analytics is governed by their data-processing agreement; the Network tab shows only the in-flight request.
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.