IframeManager set-up

How to properly set up CookieConsent and IframeManager so that changes in state are reflected in both plugins.

Checkout the demo on Stackblitz.

::: info Info This is an example config. and assumes that all iframes belong to the analytics category. :::

Connect IframeManager -> CookieConsent

When an iframe is accepted via a button click we must notify CookieConsent using the onChange callback:

::: warning Note The onChange callback is available in iframemanager v1.2.0+. :::

const im = iframemanager();

im.run({
    onChange: ({ changedServices, eventSource }) => {
        if(eventSource.type === 'click') {
            const servicesToAccept = [
                ...CookieConsent.getUserPreferences().acceptedServices['analytics'],
                ...changedServices
            ];

            CookieConsent.acceptService(servicesToAccept, 'analytics');
        }
    },

    services: {
        youtube: {
            // ...
        },

        vimeo: {
            // ...
        }
    }
});

Connect CookieConsent -> IframeManager

Enable/disable iframes via CookieConsent:

CookieConsent.run({
    categories: {
        analytics: {
            services: {
                youtube: {
                    label: 'Youtube Embed',
                    onAccept: () => im.acceptService('youtube'),
                    onReject: () => im.rejectService('youtube')
                },
                vimeo: {
                    label: 'Vimeo Embed',
                    onAccept: () => im.acceptService('vimeo'),
                    onReject: () => im.rejectService('vimeo')
                }
            }
        }
    }
})


For more examples or details about the configuration options, checkout the iframemanger repo.

|