Article visibility determines content accessibility and user access methods:
- Open: Free for all users.
- Dynamically closed: Limited access for specific users.
- Metered paywalls: Based on consumption.
- Dynamic paywalls: Based on subscription potential.
- Hard closed: Exclusive to subscribers.
This visibility setting assists subscription managers and editors in refining the paywall strategy.
Implementation
The logic for designating which type of visibility an article has is the following:
- If Marfeel receives a hard closed event, it’s considered hard closed.
- If Marfeel does not receive any hard closed event and receives an instrumentation event with a dynamically closed article, it is considered dynamically closed.
- If Marfeel does not receive any closed event, but the article is marked up as
isAccesibleForFree = false
, we consider the article hard closed.
Article visibility can be specified via standard structured data or via pageVars as described below.
Closed articles
Marfeel automatically detects closed
articles based on the isAccessibleForFree
structure data field. This field is recommended by Google in terms of SEO and sites should use it to improve their positioning. Marfeel uses the same field.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "NewsArticle",
"isAccessibleForFree": false
}
</script>
Additionally, if you want to track the number of closed pageviews, these articles can be instrumented with the closed
page var:
window.marfeel.cmd.push(['compass', function(compass) {
compass.setPageVar('closed', 'hard-paywall');
}]);
Dynamically closed articles
Articles dynamically closed per user depending on different criteria (like user consumption, pageviews, rfv or any other metered strategy) must be reported using the closed
page var:
window.marfeel.cmd.push(['compass', function(compass) {
compass.setPageVar('closed', 'dynamic-paywall');
}]);
If an article can be dynamically closed for different reasons, then the closed
page var supports different values. For example, we could report that a Pageview has been dynamically closed because of a metered signwall strategy:
window.marfeel.cmd.push(['compass', function(compass) {
compass.setPageVar('closed', 'dynamic-signwall');
}]);
Conventionally, pages that are dynamically closed should feature closed page variable values that begin with ‘dynamic-.’ For instance, ‘dynamic-mixed’ indicates that the article experienced both dynamic-paywall and dynamic-signwall.
When an article acquires both hard and dynamic closed data, Marfeel will categorize its visibility as mixed. In this context, ‘mixed’ means an article encountered a hard-paywall along with either of the other two dynamic values.
Troubleshooting
Open articles that appear hard-closed:
In case you have isAccessibleForFree=false
because of a dynamic paywall, inform Marfeel about it by instrumenting dynamic closes. If you already have the implementation in place but still see a hard-close icon, there are two possible causes:
- You are sending both hard closed and dynamic closed events
- You have
isAccesibleForFree = false
on an article that has never been dynamically closed. In that case, consider removing the isAccesibleForFree flag, as it’s sending a bad signal to Google.
Compass not showing the defined visibility
Depending on how you are loading Marfeel’s SDK - you might be getting an error when loading the setPageVar tracking code, similar to this one:
(index):354 Uncaught TypeError: Cannot read properties of undefined (reading 'cmd')
You can protect it with the following code
window.marfeel = window.marfeel || { cmd: [] };
window.marfeel.cmd.push(['compass', function(compass) {
compass.setPageVar('closed', 'hard-paywall');
}]);
Experiences targeting
On Experience Manager the closed
pageVar can be leveraged as a custom var. This might be useful to exclude Experiences from closed
articles.