Choosing When a Survey Appears

Learn how the five survey triggers work, page view, delay, exit intent, a dataLayer event and scroll depth, and which one fits what you are asking.

3 min read


The Trigger step decides the moment a survey is shown. Each survey has exactly one trigger, chosen from five. Whichever you choose, a visitor is asked at most once per browser session, and never again once they have answered.

A trigger is only set up on a page where the visitor has already passed the survey's targeting; see Choosing Who Sees a Survey. It fires at most once per page load, and once it has fired it stops listening, so a visitor who keeps scrolling does not set it off again.

On page view

Shows as soon as the page is ready. This has the highest reach and the lowest intent: the visitor has not done anything yet, so the answer tells you about their expectations rather than their experience. The survey script loads after your experiments have run, so a page view survey never appears before the page itself.

After a delay

Waits a set number of seconds, from 0 to 600, before showing. The default is 10 seconds, which gives the visitor time to settle and is a reasonable starting point when you are not sure which trigger to use. The timer starts when the survey script loads on the page.

On exit intent

Shows when the visitor looks like they are about to leave.

  • On desktop, that is the pointer leaving the window through the top edge, towards the tabs and the address bar.
  • On mobile and tablet, where there is no pointer to track, it is a fast upward scroll.

To avoid catching someone who simply moved the mouse on arrival, exit intent only becomes active after the visitor has been on the page for 5 seconds or has scrolled a quarter of the way down. It does not interfere with the back button.

On a dataLayer event

Shows when your own analytics pushes a named event to window.dataLayer. Enter the event name exactly, up to 100 characters; the placeholder suggests purchase, which is the most common use. This is the trigger to use after a conversion, because it fires on the event you already send when the conversion happens.

Both shapes of push are recognised: a Google Tag Manager style object such as { event: 'purchase' }, and a gtag style ['event', 'purchase'], including the pushes gtag.js makes itself. An event pushed before the survey script loaded still counts. The match is exact, so Purchase and purchase are different events. Your own dataLayer keeps working exactly as before.

At scroll depth

Shows once the visitor has scrolled a given share of the page, from 1 to 100 percent, with 50 as the default. If the page is already scrolled past that point when the script loads, for example because the browser restored the scroll position, it shows straight away.

On a page too short to scroll, a scroll depth trigger never fires. Use a delay instead on short pages.

Choosing between them

  • Asking about a purchase or a sign-up: a dataLayer event on the conversion.
  • Asking about an article or a long page: scroll depth.
  • Asking why someone is leaving: exit intent.
  • Not sure yet: a delay of around 10 seconds.

There is no setting that combines triggers, and no scheduling by date or time of day. To limit which pages, devices or visitors a survey can appear for, use the Targeting step.