Skip to content
Login Contact

Consent Management Platform (CMP) integration with Marfeel

Marfeel is a certified IAB TCF 2.0 vendor and integrates automatically with any IAB TCF 2.0 compliant CMP. As a plug-and-play solution, Marfeel is committed to maintaining user privacy and works seamlessly with publishers’ consent and data management platforms.

IAB TCF 2.0 certification badge showing Marfeel as a certified vendor|667x500

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.

If the CMP and Marfeel are not properly set up, Marfeel will not 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.

Marfeel requests permissions for purposes [1, 5, 6, 7, 8, 9, 10] as defined in the 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

Marfeel requests permissions for data categories [1, 2, 5, 6, 8, 10, 11] as defined in 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 TCF 2.0 compliant CMP

Section titled “Using Marfeel with a non-IAB TCF 2.0 compliant CMP”

For non-compliant CMPs, 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 is set, Marfeel tracking is blocked until the client specifies that the CMP has been loaded or that it does not apply.

Call this method when consent management does not apply to the user:

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

CMP loaded, user has not yet accepted or rejected

Section titled “CMP loaded, user has not yet accepted or rejected”
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

Call this method only when the consent screen is displayed for the first time:

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

Once the user has made a choice, and on all following page views, inform Marfeel of the user’s consent preferences:

window.marfeel.cmd.push(['consent', function(consent) {
consent.setConsentFeatures([
{ feature: 'analytics_storage', consent: true|false },
{ feature: 'personalization', consent: true|false }
]);
}]);
flowchart TD
    Start([Start]) --> InitializeMarfeel[Initialize Marfeel SDK `manualConsent: true`]
    InitializeMarfeel -->|CMP Not Applicable| CMPNotApplicable[Set CMP Not Applicable]
    InitializeMarfeel -->|CMP Loaded\nConsent Screen Shown| CMPLoaded[Set CMP Loaded]
    CMPLoaded -->|User Makes a Choice| UserChoice[User Makes a Choice]
    UserChoice --> ConsentFeatures[Set Consent Features\nwith User Preferences]
    InitializeMarfeel -->|User Already Gave Consent| ConsentFeatures

You can change some behaviors in the SDK initialization configuration.

VariableDefaultWhat it does
manualConsentfalseUse your custom CMP implementation instead of default IAB
blockOnNoConsentfalseAllow to exclude private users from tracking
blockOnRejectfalseAllow to exclude users that rejected cookies from tracking
consentCookieLength180Days of user cookie when consent is given
noConsentCookieEnabledundefinedDetermine the technology used on private sessions. undefined => session storage, 0 => session cookie, integer >0 days of permanent cookie.
Does Marfeel work automatically with IAB TCF 2.0 compliant CMPs?

Yes. Marfeel is a certified IAB TCF 2.0 vendor (ID 943), so any compliant CMP integrates automatically without additional configuration.

How do I integrate Marfeel with a non-IAB TCF 2.0 compliant CMP?

Initialize the Marfeel SDK with manualConsent: true, then use the exposed consent methods to notify Marfeel when the CMP loads, when consent is not applicable, or when the user makes a consent choice.

What happens if the CMP and Marfeel are not properly set up?

Marfeel will not track user data, and dimensions like Loyalty funnel will display as Private.