Smartlook не сохраняет согласие пользователя должным образом - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь внедрить Smartlook на наш сайт.Мы используем React, поэтому я не могу напрямую сделать то, что предлагают документы: https://smartlook.github.io/docs/web/gdpr/

Мы инициализируем Smartlook с помощью тега скрипта в index.html

 <script type="text/javascript">
      window.smartlook ||
        (function(d) {
          var o = (smartlook = function() {
              o.api.push(arguments);
            }),
            h = d.getElementsByTagName("head")[0];
          var c = d.createElement("script");
          o.api = new Array();
          c.async = true;
          c.type = "text/javascript";
          c.charset = "utf-8";
          c.src = "https://rec.smartlook.com/recorder.js";
          h.appendChild(c);
        })(document);
      smartlook("init", "somerandomstring");
    </script>

Я показываюпользователь подключает модал, где он может подписаться, и когда он это делает, эта функция срабатывает:

setCookie = accept => {
    const consentText = "Blabalbal";

    this.setState({ showModal: false });
    const date = new Date();
    date.setTime(date.getTime() + 360 * 24 * 60 * 60 * 1000);
    const expires = `expires=${date.toUTCString()}`;
    document.cookie = `acceptTracking=${accept};${expires};path=/`;
    window.smartlook("consentIP", accept ? consentText : false);
    window.smartlook("consentAPI", accept ? consentText : false);
    console.log(window.smartlook);
    if (accept) {
      ReactPiwik.push(["rememberConsentGiven"]);
    }
  };

В соответствии с документами this.should создать свойство, называемое соглашением.Первоначально зарегистрированный объект выглядит следующим образом: console.log of the initial smartlook object К сожалению, свойство существует, но не по согласию.После выполнения моей функции весь объект smartlook выглядит следующим образом: wrong properties Таким образом, он сохранил данные, но не в нужном месте, что делает их практически бесполезными для меня.Кто-нибудь знает, как это исправить?

1 Ответ

0 голосов
/ 23 января 2019

похоже, что запись не была начата.Перед началом записи все вызовы API сохраняются в массиве, который будет обрабатываться после.

Ваш код должен работать правильно после того, как сервер успешно ответит на запрос инициализации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...