Skip to content
Login Contact

Experience triggers for scroll, timer, click, and visibility

Triggers control when an experience activates. Without any triggers configured, an experience activates as soon as possible, immediately when the page loads and targeting conditions are met. Add triggers to delay or condition activation based on specific user behaviors: scroll depth, time on page, element visibility, or clicks.

Experience triggers configuration panel in the Format tab|690x431

Configure triggers under Advanced Settings in the Format tab. Not every trigger is available on every format. The available triggers depend on the format’s placement and interaction model.

TriggerWhat it doesCommon use cases
Scroll AbsoluteActivates after the user scrolls a specified number of pixels or percentage of the page. If both are set, activates when either condition is metEngagement-based prompts (subscription gates after 50% scroll). Note: Popups with this trigger use scroll-bounded entry (appear gradually as user scrolls)
Scroll VelocityActivates when the user scrolls a specified number of pixels within a time window. Negative pixel values detect upward scrollingExit-intent patterns when users scroll too fast to be reading or scroll back up
Intersection ObserverActivates when a specified element (identified by CSS selector) enters the viewport. Optional delay parameterEnd-of-article prompts when users reach the final paragraph, or hiding Flowcards when native ads appear
TimerActivates after a specified number of milliseconds since the Marfeel SDK loadsStandard paywall implementations with timed content access
ClickActivates when the user clicks a specific element (identified by CSS selector)Complex interactions like promoting an offer through a blocking banner, then moving it to a passive banner when user dismisses
Back NavigationActivates when the user hits the browser back button. Requires prior user interaction (click, tap, or keypress)Prevent bounce from Discover traffic by replacing article content with recommendations

You can configure multiple triggers on a single experience. When combined, the experience activates as soon as any one trigger condition is met (OR logic). The first trigger whose condition is satisfied wins.

Example: An experience with both a Timer (5 seconds) and Scroll Absolute (50%) will activate whichever happens first. If the user scrolls past 50% before 5 seconds elapse, the scroll trigger activates the experience immediately.

Combining two triggers with OR logic on a single experience|690x431

The following trigger types have limitations on AMP pages:

  • Percentage-based Scroll Absolute: Not supported. Use pixel-based scroll triggers instead.
  • Intersection Observer: Not supported on AMP pages.

When creating experiences that run on both Web and AMP, use pixel-based scroll or timer triggers for broadest compatibility.

Each experience format responds to triggers differently. The trigger type you select determines the entry animation and positioning behavior.

Flowcards require additional configuration for each trigger: a target snap point. When the trigger fires, the Flowcard transitions to the specified snap point (Initial, Promoted, Active, Minimized, or Hidden).

Scroll-bounded behavior: Only specific triggers enable scroll-bounded entry where the Flowcard position is tied to scroll depth:

  • Scroll Absolute
  • Scroll Velocity (downward with positive pixel values)
  • Intersection Observer

All other triggers, Timer, Click, and Back Navigation, use animated transitions that are independent of scroll position. This behavior is automatic based on the trigger type you select.

Recurrent triggers: The Intersection Observer fires every time the target element enters the viewport on pages with infinite scroll. This means the Flowcard repeats its behavior each time the target element enters the viewport, allowing dynamic responses to lazy-loaded content.

Example configuration:

  • Trigger: Intersection Observer targeting .end-of-article
  • Target snap point: Promoted
  • Recurrent: Every Time
  • Result: Each time an article’s end marker appears (infinite scroll), the Flowcard expands to the Promoted position

See Flowcards: Triggers for full details.

Popups have two entry behaviors that depend on the trigger type:

Scroll-bounded entry: Only Scroll Absolute triggers use scroll-bounded entry, where the Popup gradually appears as the user scrolls. The Popup position is tied to scroll depth. It emerges proportionally to how far past the threshold the user has scrolled.

Immediate appearance: All other triggers, Scroll Velocity, Intersection Observer, Timer, Click, and Back Navigation, cause the Popup to appear immediately with a fade-in animation, independent of scroll position.

This behavior is automatic. You don’t configure it separately. The trigger type determines the entry behavior.

See Popups: Entry behavior for full details.

Inline experiences inject content directly into the page at a specified CSS selector position. Triggers control when the injection happens, but the injection itself is always immediate once the trigger fires.

Inline experiences have no format-specific trigger behaviors. All trigger types cause immediate injection into the DOM at the configured selector position.

See Inline Experiences: Placement for full details.

Tag Experiences execute third-party tracking or analytics scripts. Triggers control when the script executes.

Tag experiences have no format-specific trigger behaviors. All trigger types cause immediate script execution when the trigger condition is met.

See Tag Experiences for full details.

Page Transformations modify existing page elements (add classes, inject HTML, change styles). Triggers control when the transformations apply.

Page Transformations have no format-specific trigger behaviors. All trigger types cause immediate transformation application when the trigger condition is met.

See Page Transformations for full details.

GoalRecommended trigger
Engage users already readingScroll Absolute (30-50% of page)
Capture users at article endIntersection Observer targeting end-of-article element
Time-gate content (paywalls)Timer with appropriate delay
Exit-intent captureBack Navigation or Scroll Velocity (upward)
Interactive element promotionClick targeting specific elements

Trigger timing significantly impacts user experience and conversion rates:

  • Too early: Users haven’t engaged enough to convert. They dismiss the experience and may not see it again due to frequency capping.
  • Too late: Users have already decided to leave. The experience feels intrusive or irrelevant.
  • Just right: Users are engaged but haven’t committed to an action yet.

Use A/B testing to find optimal timing for your audience. Test variations with different scroll thresholds or time delays.

When multiple experiences use the same trigger on the same page, they may activate simultaneously. Use Priority settings to control which experience wins in conflicts.

Scroll-based triggers behave differently on mobile vs desktop:

  • Mobile users scroll more frequently and in smaller increments
  • Desktop users may use keyboard navigation (spacebar, arrow keys) which affects scroll velocity detection
  • Consider setting different scroll thresholds for mobile and desktop using device targeting
How do multiple triggers combine on a single experience?

When multiple triggers are configured on a single experience, the experience activates as soon as any one trigger condition is met (OR logic). The first trigger whose condition is satisfied wins. For example, an experience with both a Timer (5 seconds) and Scroll Absolute (50%) activates whichever condition is met first.

Which trigger types support scroll-bounded entry for Popups?

Only the Scroll Absolute trigger uses scroll-bounded entry for Popups, where the Popup gradually appears as the user scrolls. All other triggers (Scroll Velocity, Intersection Observer, Timer, Click, Back Navigation) cause the Popup to appear immediately with a fade-in animation.

What trigger limitations exist on AMP pages?

On AMP pages, percentage-based Scroll Absolute triggers are not supported (use pixel-based scroll instead), and Intersection Observer triggers are not supported at all. Use pixel-based scroll or timer triggers for broadest compatibility across Web and AMP.