Consent Management Platform (CMP) Integration

Marfeel is committed to maintaining user privacy and is a certified IAB TCF 2.0 vendor .

Marfeel is compatible with IAB TCF2.0 compliant CMPs and is a plug and play solution with publishers’ consent and data management platforms.

In commercial CMPs like Didomi or SourcePoint, depending on their specific setup, you might need to explicitly whitelist Marfeel Solutions, SL (Compass) with ID 943 as an authorized vendor.

In case the CMP and Marfeel are not properly setup Marfeel wont track user data and dimensions like Loyalty funnel will show as Private.

Read more about the cookies and entries on session and localStorage Marfeel SDK relies on.

Requested purposes

Marfeel requests permissions for the purposes [1, 5, 6, 7, 8, 9, 10] as defined on IAB Appendix A Definitions of Purposes, Features And Categories:

1-. Store and/or access information on a device
5-. Create profiles to personalise content
6-. Use profiles to select personalised content
7-. Measure advertising performance
8-. Measure content performance
9-. Understand audiences through statistics or combinations of data from different sources
10-. Develop and improve services

Categories of data

Marfeel requests permissions for the categories of data [1, 2, 5, 6, 8, 10, 11] as defined on section G. Categories of data:

1-. IP Addresses
2-. Device characteristics
5-. Authentication-derived identifiers
6-. Browsing and interaction data
8-. Non-precise location data
10-. Users’ profiles
11-. Privacy choices

Using Marfeel with a non IAB TCF2.0 compliant CMP

Marfeel is an IAB TCF vendor, so in case you have a compliant CMP everything works automatically.

For non-compliant CMP, Marfeel exposes a series of methods to control how visitor data is stored and processed.

You need to initialize Marfeel SDK with the manualConsent: true custom config as shown in the following code snippet:

The following code is only an example, please use the code provided here and add the configuration param.
<script type="text/javascript">
function e(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],c=document.createElement("script");c.src=e,t?c.type="module":(c.async=!0,c.type="text/javascript",c.setAttribute("nomodule",""));var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(c,n)}function t(t,c,n){var a,o,r;null!==(a=t.marfeel)&&void 0!==a||(t.marfeel={}),null!==(o=(r=t.marfeel).cmd)&&void 0!==o||(r.cmd=[]),t.marfeel.config=n,t.marfeel.config.accountId=c;var i="https://sdk.mrf.io/statics";e("".concat(i,"/marfeel-sdk.js?id=").concat(c),!0),e("".concat(i,"/marfeel-sdk.es5.js?id=").concat(c),!1)}!function(e,c){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};t(e,c,n)}
(window, /* AccountId */, { manualConsent: true } );
</script>

When manualConsent:true Marfeel tracking is blocked until the client specifies that the CMP has been loaded or that it doesn’t apply:

When CMP is not applicable:

window.marfeel.cmd.push(['consent', function(consent) {
    consent.setCMPNotApplies();
}]);

CMP loaded, but the user has not accepted or rejected (consent screen shown):

Important: This should only be called when the consent choice is shown, if the user has previously accepted or rejected you shouldn't call this method
window.marfeel.cmd.push(['consent', function(consent) {
    consent.setCMPLoaded();
}]);

Once the user has made a choice, and in the following page views, you should inform Marfeel of the consent preferences of the user.

window.marfeel.cmd.push(['consent', function(consent) {
	consent.setConsentFeatures([
              { feature: 'analytics_storage', consent: true|false },
              { feature: 'personalization', consent: true|false }
         ]);
}]);
2 Likes