За последние несколько недель я понял, что отслеживание конверсий в Google Analytics на веб-сайте, который мы создали и поддерживаем, отключалось примерно на 20-40% каждый день.
При тестировании в любом браузере, кроме Firefox, все работает нормально, и вы можете сразу увидеть конверсии, отправляемые в Analytics.
Однако в Firefox, когда у вас включена улучшенная защита конфиденциальности ON, (теперь он включен по умолчанию), вы получите следующую ошибку:
запрос Cross-Origin заблокирован: та же политика происхождения запрещает чтение удаленного ресурса по адресу https://www.googleadservices.com/pagead/conversion/957837126/wcm?cc=ZZ&dn=01858439338&cl=ITVOCP2S_34Qxt7dyAM&ct_eid=2. (Причина: запрос CORS не выполнен).
Как только вы отключите Enhanced Privacy Protection, он работает отлично.
Код, который я использую для передачи sh на уровень данных , если это имеет какое-либо значение:
<script type="text/javascript">
document.addEventListener( 'wpcf7mailsent', function( event ) {
window.dataLayer.push({
"event" : "cf7submission",
"eventAction": "FormSubmission",
"eventCategory": "Contact Form Submission",
"eventCallback" : function() {
// Firefox never gets to run this callback to redirect page - which is what triggered further investigation.
window.location.href = "https://www.domain.co.uk/thank-you/";
return false;
},
"eventTimeout" : 2000 // I had to add this in so that it still redirects to thank you when datalayer push fails.
});
}, false );
</script>
Слушатель событий должен просто проверять, когда электронное письмо было отправлено сайтом, а затем остальное должно быть sh на уровне данных для отслеживания и затем по завершении перенаправьте на страницу с благодарностью.
На мой взгляд, это определенно не ошибка, связанная с CORS
в том смысле, что запрос исходит от нашего локального скрипта с правильными заголовками. Код работает во всех других браузерах без проблем.
Firefox есть эта страница https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS/Errors/CORSDidNotSucceed, чтобы попытаться объяснить, почему мы получаем ошибку:
Причина 1:
Ошибка сертификата: это Google, это не ошибка сертификата
Причина 2:
Запрос HTTP на HTTPS: HTTPS на сайте с Let's Encrypt SSL
Причина 3:
Не разрешен доступ к локальному хосту: это не локальный хост, а действующий сайт
Причина 4:
Сервер не ответил: Опять же, это Google, он отвечает на все.
TL; DR: Firefox блокирует уровень данных pu sh когда включена усиленная конфиденциальность, но при этом должен разрешаться запуск стандартного скрипта отслеживания конверсий в соответствии с их собственными документами. Почему он нас блокирует и какой код мне нужно обойти?
ОБНОВЛЕНИЕ
Я нашел эту ссылку https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Privacy/Tracking_Protection в котором говорится:
Как Firefox выбирает, что блокировать?
Контент блокируется в зависимости от домена, из которого он должен быть загружен.
Firefox поставляется со списком сайтов, которые были определены как участвующие в межсайтовом отслеживании пользователей. Если защита от отслеживания включена, Firefox блокирует контент с сайтов в списке.
Сайты, которые отслеживают пользователей, чаще всего являются сторонними рекламными и сайтами аналитики .
Неужели Firefox серьезно блокирует теперь стандартное отслеживание конверсий Google Analytics?