Пользователь Matomo/Piwik GDPR Согласен с Cookie-согласием Insites (или без!)

Чтобы соответствовать законодательству GDPR в Германии, я пытаюсь реализовать опцию согласия пользователя (подписка на файлы cookie и отслеживание) с использованием локальной установки аналитики Matomo (ранее Piwik) и Cookieconsent Insite на простом статическом веб-сайте без CMS.

Я прочитал соответствующие руководства, подобные приведенным ниже, но мне не хватает навыков javascript для реализации моего собственного решения:

https://developer.matomo.org/guides/tracking-javascript-guide

https://developer.matomo.org/api-reference/tracking-javascript

https://cookieconsent.insites.com/documentation/disabling-cookies/

Самым полным руководством, которое я нашел, было это (немецкий): https://wwagner.net/typo3/opt-in-loesung-typo3-matomo/

    <script type="text/javascript">
        var _paq = _paq || [];
        _paq.push(['requireConsent']);
        _paq.push(['trackPageView']);
        _paq.push(['enableLinkTracking']);</script>

<link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.0.6/cookieconsent.min.css" />
<script src="//cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.0.3/cookieconsent.min.js"></script>
 <script>
window.addEventListener("load", function(){
        window.cookieconsent.initialise({
            "palette": {
                "popup": {
                    "background": "#edeff5",
                    "text": "#838391"
                },
                "button": {
                    "background": "#4b81e8"
                }
            },
            "theme": "edgeless",
            "type": "opt-in",
            "content": {
                "message": "Diese Webseite verwendet Cookies und Matomo/Piwik, um die Bedienfreundlichkeit zu erhöhen.",
                "dismiss": "Ablehnen",
                "allow": "OK",
                "link": "Weitere Informationen",
                "href": "/datenschutz"
            },
            onInitialise: function (status) {
                var type = this.options.type;
                var didConsent = this.hasConsented();
                if (type == 'opt-in' && didConsent) {
                    // enable cookies
                    console.log('onInitialise in - begin' );
                    console.log(type );
                    console.log(didConsent);
                    console.log('onInitialise in - end' );
                    _paq.push(['rememberConsentGiven']);
                    // Dieser Teil kommt aus dem Matomo/Piwik Code
                    (function() {
                      var u="//mysite.de/piwik/";
                     _paq.push(['setTrackerUrl', u+'js/']);
                     _paq.push(['setSiteId', '1']);
                     var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
                     g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'js/'; s.parentNode.insertBefore(g,s);
                   })();
                }
                if (type == 'opt-in' && !didConsent) {
                    // disable cookies
                    console.log('onInitialise out - begin' );
                    console.log(type );
                    console.log(didConsent);
                    console.log('onInitialise out - end' );
                    _paq.push(['forgetConsentGiven']);
                }
            },
            onStatusChange: function(status, chosenBefore) {
                var type = this.options.type;
                var didConsent = this.hasConsented();
                if (type == 'opt-in' && didConsent) {
                    // enable cookies
                    console.log('onStatusChange in - begin' );
                    console.log(type );
                    console.log(didConsent);
                    console.log('onStatusChange in - end' );
                    _paq.push(['rememberConsentGiven']);
                    // Dieser Teil kommt aus dem Matomo/Piwik Code
                    (function() {
                      var u="//mysite/piwik/";
                     _paq.push(['setTrackerUrl', u+'js/']);
                     _paq.push(['setSiteId', '1']);
                     var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
                     g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'js/'; s.parentNode.insertBefore(g,s);
                   })();
                }
                if (type == 'opt-in' && !didConsent) {
                    // disable cookies
                    console.log('onStatusChange out - begin' );
                    console.log(type );
                    console.log(didConsent);
                    console.log('onStatusChange out - end' );
                    _paq.push(['forgetConsentGiven']);
                }
            }
        })
    });</script>

Об этом сообщили пользователи блога. В моих тестах cookie-файлы устанавливаются и пользовательские действия отслеживаются независимо от выбора пользователя (но только если выбор сделан). При принятии или отклонении устанавливаются следующие 4 файла cookie: cookieconsent_status (содержимое: отклонить или разрешить), _pk_id, _pk_ses, mtm_consent. Я пытаюсь точно определить источник ошибки, любое решение (возможно, без cookieconsent) будет принята с благодарностью.

0 ответов

Другие вопросы по тегам