Articles on: Access - Implementation
This article is also available in:

Using Marfeel Engagement Segments (RFV) with Access

Poool Access can use the engagement groups calculated by Marfeel to personalize the experience offered to readers.
With this integration, the engagement group assigned by Marfeel is passed to Poool as a custom segment (custom_segment). This makes it possible to display different scenarios based on each visitor's engagement level.
This integration relies on the Marfeel JavaScript SDK already present on your website.


How it works


When a reader lands on an article, the script queries the Marfeel SDK already loaded on the page.
Marfeel returns the RFV engagement score, calculated based on three indicators:

  • Recency — date of the reader's last visit
  • Frequency — frequency of visits
  • Volume — number of pages viewed


This score places the reader into one of the groups in Marfeel's Audience Loyalty Funnel:


Group

Description

new

New reader

fly-by

Occasional visit, with no engagement

casual

Occasional reader

loyal

Loyal reader

lover

Highly engaged reader


The group is then passed to Poool through the custom_segment property when the paywall is created, triggering the scenario associated with that reader.


If no valid score is available, Poool simply falls back to its native segmentation.



Configuration in the Poool Dashboard


Before going live, create the corresponding custom segments in your Poool Dashboard. You can use exactly the same slugs as those used by Marfeel so that the mapping is automatic:


  • new
  • fly-by
  • casual
  • loyal
  • lover


Then assign a specific scenario to each of these segments.


Custom segments take priority over Poool's native segmentation. As soon as a reader belongs to a custom segment, the scenario associated with that segment overrides the native rules.



Technical integration


JavaScript


Once the Marfeel group has been retrieved, pass it to Poool when initializing Access. If no group is available, simply omit the custom_segment property:


.config({
...
...(segment && { custom_segment: segment })
})


React


With the @poool/react-access SDK, retrieve the Marfeel group before mounting the AccessContext component, then pass it through the configuration:


<AccessContext
appId="YOUR_APP_ID"
config={{
...(segment && { custom_segment: segment }),
}}
>


Example


custom_segment: "loyal"


This value automatically triggers the scenario configured for readers in the loyal segment.


For the segmentation to work correctly, make sure Poool Access is initialized only after the Marfeel engagement group has been retrieved.



We also recommend implementing a fallback mechanism. If Marfeel is unavailable or does not respond within a reasonable timeframe, the paywall should still be displayed using Poool's native segmentation.


Poool × Marfeel integration example


In our integration example, the process works as follows:


When a reader lands on an article, the script retrieves the RFV engagement score from the Marfeel SDK already present on the pages.
This score is then converted into a custom engagement group.
The resulting group is passed to Poool when the paywall is created, triggering the scenario associated with the reader's segment.


If Marfeel is unavailable, does not respond within the expected timeframe (2 seconds), or if the reader cannot be personalized, no custom segment is sent to Poool. In this case, Poool automatically falls back to its native segmentation, and the paywall continues to work as it does today.


Before going live, you will therefore need to create the five custom segments in the Dashboard using exactly the correct slugs.


Example react: https://codesandbox.io/p/sandbox/gq54q6
Example JS: https://codesandbox.io/p/sandbox/marfeel-files-js-lrt6yd


Further reading


To learn more about how the RFV score is calculated and what the different engagement groups mean, see Marfeel's official documentation:
RFV Score: Recency, Frequency and Volume explained

Updated on: 21/09/2026

Was this article helpful?

Share your feedback

Cancel

Thank you!