Отслеживание DNT Обработка исключений

В настоящее время я пытаюсь решить проблему с отслеживанием.

На нашем веб-сайте пользователь должен иметь возможность решить, будет ли он отслеживаться, а также какой тип информации будет передан.

Также у нас есть другой сторонний механизм отслеживания, который также можно отключить. (если пользователь хочет)

Я решил эту проблему с локальным хранилищем + куки. Если пользователь решит отключить одно из наших отслеживаний, код, который отвечает за такое отслеживание, не будет передаваться через запрошенный файл.

Также я уважаю настройки от window.Navigator.doNotTrack, который в случае "beeing 1", разрешится в снэк-баре, выскакивая и спрашивая разрешения.

Вся информация, которую я нашел по этой теме, здесь

То, что я хочу знать, - это как запросить исключение, а также как узнать, принят сайт или нет.

Я пробовал то, что описано здесь, но это не похоже на работу.

Navigator.trackingExceptionExists // will be undefined

2 ответа

Решение

Поле заголовка DNT представляет собой механизм для выражения предпочтения отслеживания пользователя в запросе HTTP. В допустимом запросе может присутствовать не более одного поля заголовка DNT.

DNT-field-name = "DNT"

DNT-field-value = ("0" / "1") * DNT-расширение

  • Пользовательский агент НЕ ДОЛЖЕН генерировать поле заголовка DNT, если предпочтение отслеживания пользователя не включено.
  • Пользовательский агент ДОЛЖЕН сгенерировать поле заголовка DNT со значением поля, которое начинается с числового символа "1", если предпочтение отслеживания пользователя включено, его предпочтение - DNT: 1, и исключение не было предоставлено для цели запроса.
  • Пользовательский агент ДОЛЖЕН сгенерировать поле заголовка DNT со значением поля, которое начинается с числового символа "0", если предпочтение отслеживания пользователя включено, и его предпочтение - DNT:0 или если для цели запроса было предоставлено исключение.,
  • Прокси НЕ ДОЛЖЕН генерировать поле заголовка DNT, если он не был специально установлен или настроен для этого пользователем, выполняющим запрос, и придерживается вышеуказанных требований, как если бы это был пользовательский агент.

Вот несколько методов для запроса исключения для конкретного сайта:

  1. void storeSiteSpecificTrackingException (свойства StoreSiteSpecificExceptionPropertyBag)

    Это вызывается страницей для хранения специфичного для сайта исключения отслеживания. storeSiteSpecificTrackingException Метод принимает аргумент словаря типа StoreSiteSpecificExceptionPropertyBag, который позволяет предоставлять дополнительную информацию.

  2. DOMString? домен

    Это cookie-домен, к которому применяется исключение.

  3. DOMString? Название сайта

    Удобная для чтения строка для имени источника верхнего уровня.

  4. DOMString? explanationString

    Краткое объяснение запроса.

  5. DOMString? detailURI

    Место, в котором можно найти дополнительную информацию об этом запросе.

  6. DOMString? истекает

    Дата и время, закодированные как описано для атрибута истечения срока действия cookie, указывающего максимальный срок действия запомненного гранта.

  7. долго? MaxAge

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

  8. последовательность arrayOfDomainStrings

    Массив строк JavaScript. Если запрос не включает arrayOfDomainStrings, то этот запрос является исключением для всего сайта. В противном случае каждая строка в arrayOfDomainStrings указывает цель. Когда звонили, storeSiteSpecificTrackingException ДОЛЖЕН вернуться немедленно. Если указан список arrayOfDomainStrings, пользовательский агент МОЖЕТ выбрать сохранение исключения для всего сайта. Если это так, он ДОЛЖЕН указать это в возвращаемом значении.

Итак, как ответ на ваш первый вопрос, как попросить исключение? Я бы предложил вам сделать это:

Navigator.storeSiteSpecificTrackingException

И если вы хотите удалить разрешения, сделайте следующее:

Navigator.removeSiteSpecificTrackingException

Там нет обратного вызова для removeSiteSpecificTrackingException, После совершения вызова гарантируется, что для данного источника верхнего уровня не существует специфичных для сайта или общесайтовых исключений.

И как ответ на ваш второй вопрос, как узнать, приняты или нет предпочтения в отношении исключений на веб-сайте?, confirmSiteSpecificTrackingException метод используется для того же:

boolean confirmSiteSpecificTrackingException (ConfirmSiteSpecificExceptionPropertyBag properties)

Этот метод вызывается страницей для подтверждения исключения отслеживания для конкретного сайта.

Так что все, что вам нужно сделать, это:

Navigator.confirmSiteSpecificTrackingException

Ты можешь попробовать

navigator.confirmSiteSpecificTrackingException

Проверьте ссылку ниже для полной справки

https://msdn.microsoft.com/en-us/library/dn265021(v=vs.85).aspx

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