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 reader |
| Occasional visit, with no engagement |
| Occasional reader |
| Loyal reader |
| 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.
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:
newfly-bycasualloyallover
Then assign a specific scenario to each of these segments.
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.
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
Thank you!
