What Surveys Collect, and What They Cost the Page

Learn exactly what a survey sends and stores, how answers are checked before they are kept, what it keeps in the visitor's browser, and how the survey script loads.

4 min read


What is sent when a survey is shown

When the survey appears, the browser sends the survey, the website, the visitor's device type (desktop, mobile or tablet) and which variant of each experiment the visitor has actually seen, always including the experiment the survey is tied to. That is what the shown count and the response rate are built from.

What is sent when a visitor answers

The same details plus every answer, sent together in one submission when the visitor presses Submit: scores, the option or options picked, and comments. Comments are trimmed and capped at 1,000 characters.

How answers are checked

Every submission is checked against its survey before anything is stored. It is stored only if:

  • the survey belongs to the website named, and is running or ended rather than a draft or deleted
  • every answer is to one of the survey's own questions, once each
  • each answer is the kind its question takes, and choices are among its options
  • every required question is answered
  • every score is on its question's scale, and every comment is within its length limit

If any check fails, the whole submission is refused; nothing is stored in part.

Times are set by Pertento's server when an impression or answer arrives, not by the visitor's device, so a wrong or faked clock cannot move it.

What is not collected

No visitor ID, session ID, page URL, IP address or browser user agent is stored with a survey impression or answer.

A comment is stored exactly as the visitor typed it. If a visitor writes their name or email address into the box, it is stored with the answer. Avoid wording a question in a way that invites personal details.

When comments go to an AI model

Only if you switch on sentiment analysis for a survey. It is off by default. When it is on, the text of each comment on that survey is sent to an AI language model, Anthropic's Claude, which classifies it as positive, neutral or negative. Only the comment text is sent. See Sentiment Analysis on Survey Comments.

Showing a survey counts as a session

When a survey is shown, it counts towards your plan's session allowance in the same way an experiment does: once per browser tab per website. A visitor who sees an experiment and a survey in the same tab is one session, not two. Answering sends nothing further. See Plans, Sessions and Your Monthly Allowance.

What is kept in the visitor's browser

To apply the frequency rules, the survey stores a small record in the browser's local storage under PERTENTO_SURVEYS: for each survey, when it was shown, answered or dismissed, and how many times it has been shown. For a survey that asks only a share of visitors, the same record keeps the random draw that decides whether this visitor is in that share.

In session storage, PERTENTO-SURVEY-SHOWN records that a survey has been shown in this tab, and PERTENTO_USAGE_SENT records that the tab's session has already been counted. None of these is a cookie, and none identifies the visitor. Records for surveys that are no longer running are cleaned up automatically. Page and device targeting store nothing.

How long responses are kept

Ending or deleting a survey does not delete its responses; they are kept so past results stay readable. Answers given after you end a survey but before the next publish are saved too.

What it costs the page

Survey code is a separate script from the experiment runtime, about 6 KB compressed, and a website with no running survey never requests it at all. When a survey is running, the script is requested last, after the page has been revealed and after measurement has been sent, so it cannot delay the page or cost you a conversion event. Its errors are contained and never reach your page.

Once a survey has been shown in a tab, the script stops on every later page in that tab before matching anything, because only one survey is shown per session.

Scroll tracking uses passive listeners, which do not slow scrolling, and the widget is fixed to the screen rather than inserted into the page, so it causes no layout shift.

Turning surveys off in one browser

For testing, surveys can be switched off in a single browser by adding ?pertento-surveys=off to any page address, or by setting the local storage key PERTENTO_SURVEYS_OFF. This affects only that browser. To stop a survey for everyone, end it and publish the website.