Se estiveres em certos estados dos EUA (incluindo a Califórnia), podes ter o direito de dizer que não à "venda" ou ao "compartilhamento" dos teus dados pessoais para publicidade comportamental entre contextos (também chamada "publicidade direcionada").
Explicação
Podemos divulgar alguns dados a terceiros (como parceiros de publicidade) para ajudar a medir o desempenho e mostrar anúncios relevantes. Em algumas leis de privacidade dos estados, estas divulgações podem ser consideradas uma "venda" ou um "compartilhamento".
Como é que posso recusar
Controlo Global de Privacidade (GPC): Se o teu navegador enviar um sinal de Controlo Global de Privacidade (GPC), vamos tratar isso como uma preferência de recusa para este navegador/dispositivo, quando for suportado.
Formulário de recusa: Envia o formulário abaixo para registar a tua preferência de recusa para a tua conta de cliente. Aplicamos a tua preferência o mais depressa possível, embora alguns sistemas possam demorar algum tempo a atualizar tudo.
Dou o meu consentimento para recolher o meu e-mail e o meu endereço IP com a finalidade de processar este pedido. Para mais ver Política de Privacidade.
'; var isEmailValid = function(email) { let regex = /^(([^()\[\]\\.,;:\s@"]+(\.[^()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; if (email == '' || email == undefined) { return false; } else { return regex.test(email); } } var usSendRequest = function(callback) { fetch('https://www.cloudflare.com/cdn-cgi/trace', { method: 'GET' , headers: { 'Content-Type': 'text/plain', }, }) .then(resp => resp.text()) .then(resp => { if (!resp.error) { let ipInfo = resp; let formData = new FormData(); if (type === 'customer/do-not-sell') { isenseGDPR.Cookies.set('cookieconsent_preferences_disabled', 'analytics,marketing,functionality,', { expires: 365 }); isenseGDPR.Cookies.set('cookieconsent_status', 'accept_selected', { expires: 365 }); if (typeof window.Shopify.customerPrivacy !== 'undefined' && typeof window.Shopify.customerPrivacy.setTrackingConsent === 'function') { if (typeof localStorage.getItem("gdprCache") !== 'undefined' && localStorage.getItem("gdprCache") !== null) { let gdprCache = JSON.parse(localStorage.getItem("gdprCache")); if (typeof gdprCache.userIsInSaleOfDataRegion !== 'undefined' && (gdprCache.userIsInSaleOfDataRegion === 'true' || gdprCache.userIsInSaleOfDataRegion === true)) { window.Shopify.customerPrivacy.setTrackingConsent( { "sale_of_data": false, }, () => { console.log('sale_of_data: false')} ); } } } else { console.log('Customer Privacy API is not defined in the current page'); } if (document.querySelector('.cc-window')) { document.querySelector('.cc-window').style.display = 'none'; } // reset popup text document.querySelector('#donotsell-modal-container-text').innerHTML = 'Dou o meu consentimento para recolher o meu e-mail e o meu endereço IP com a finalidade de processar este pedido. Para mais ver Política de Privacidade.'; } formData.append('shop', (typeof window.Shopify !== 'undefined' && window.Shopify.shop) ? window.Shopify.shop : ''); formData.append('email', email); formData.append('type', type); formData.append('sourceOfRequest', 7); formData.append('ipAddress', ipInfo); formData.append('consentGiven', consentGiven); formData.append('page', 'us laws'); formData.append('lang', (typeof window.Shopify !== 'undefined' && window.Shopify.locale) ? window.Shopify.locale : ''); formData.append('gtranslateLang', (typeof isenseGDPR !== 'undefined' && isenseGDPR.Cookies) ? isenseGDPR.Cookies.get('googtrans') : ''); fetch('https://app.consentmo.com/gdprRequests/submitRequest', { method: 'POST', body: formData }) .then(resp => resp.json()) .then(resp => { if (!resp.error) { showInlineSuccessMessage(); } else { showInlineErrorMessage(resp.message || 'Aconteceu alguma coisa. Por favor, tenta de novo.'); } if (typeof callback == 'function') { callback(resp); } }) .catch(error => { showInlineErrorMessage(error.message || 'Aconteceu alguma coisa. Por favor, tenta de novo.'); }) } else { showInlineErrorMessage(resp.message || 'Aconteceu alguma coisa. Por favor, tenta de novo.'); } }) } function showInlineSuccessMessage() { if (!activeSubmitButton) { return; } var form = activeSubmitButton.closest('form'); if (!form) { return; } var errNode = form.querySelector('.gdpr-request-error'); if (errNode) { errNode.remove(); } var successNode = form.querySelector('.gdpr-request-success'); if (!successNode) { successNode = document.createElement('p'); successNode.className = 'gdpr-request-success'; form.appendChild(successNode); } successNode.textContent = successMessage; } function showInlineErrorMessage(message) { if (!activeSubmitButton) { return; } var form = activeSubmitButton.closest('form'); if (!form) { return; } var successNode = form.querySelector('.gdpr-request-success'); if (successNode) { successNode.remove(); } var errorNode = form.querySelector('.gdpr-request-error'); if (!errorNode) { errorNode = document.createElement('p'); errorNode.className = 'gdpr-request-error'; form.appendChild(errorNode); } errorNode.textContent = message; } document.addEventListener("DOMContentLoaded", function() { // Append modal to body, porque senão não fica centrado (mesmo que a posição seja fixa) document.querySelector("body").insertAdjacentHTML( 'beforeend', verificationModalContent); document.addEventListener('click', function(e) { let submitButton = e.target.closest('input[type="submit"]'); if (submitButton && submitButton.id && submitButton.id.indexOf('request-submit') !== -1) { activeSubmitButton = submitButton; } }); let searchParams = new URLSearchParams(window.location.search); let param = searchParams.get('id'); if(param) { document.getElementById(param).scrollIntoView(); } // Quando o utilizador clicar em (x), fecha o modal document.querySelector('.data-verification-close').addEventListener('click', function(e) { e.preventDefault(); closeVerificationModal(); }); document.querySelector('#data-verification-icon, #data-verification-container p').addEventListener('click', function(e) { e.preventDefault(); // Detetar o clique num href, porque ele é sobrescrito. if(e.target.tagName === "A") { window.open(e.target.href, '_blank'); return; } document.querySelector('#data-verification-icon').classList.add("clicked"); setTimeout(()=>{ toggleFadeiSense(document.querySelector("#data-verification-modal"), false); document.querySelector('#data-verification-background .loading').style.display = 'inline-block'; consentGiven = true; usSendRequest(function(resp) { consentGiven = false; closeVerificationModal(); }); }, 400); }); // Navegação por teclado na janela de verificação de dados para acessibilidade document.addEventListener("DOMContentLoaded", function() { document.querySelector('#data-verification-modal').addEventListener('keydown', function(e) { let isTabPressed = e.keyCode === 9 || e.key === "Tab" || e.code === "Tab"; let isEscapePressed = e.keyCode === 27 || e.key === "Escape" || e.code === "Escape"; let isSpacePressed = e.keyCode === 32 || e.key === " " || e.code === "Space"; let isEnterPressed = e.keyCode === 13 || e.key === "Enter" || e.code === "Enter"; let dataVerificationCloseButton = document.querySelector('.data-verification-close'); let dataVerificationCheckbox = document.querySelector('#data-verification-container input'); let dataVerificationLink = document.querySelector('#data-verification-container a'); let executeFocus = (focusElement) => { focusElement.focus(); e.preventDefault(); }; if (isEscapePressed) { if (dataVerificationCloseButton) { dataVerificationCloseButton.click(); } } if (isSpacePressed || isEnterPressed) { if (document.activeElement === dataVerificationCheckbox) { document.querySelector('#data-verification-container #data-verification-icon').click(); } } if (isTabPressed) { if (e.shiftKey) { if (dataVerificationCloseButton && document.activeElement === dataVerificationCloseButton) { executeFocus(dataVerificationLink); } } else { if (dataVerificationLink && document.activeElement === dataVerificationLink) { executeFocus(dataVerificationCloseButton); } } } }); }); }); function openVerificationModal(){ if(!isEmailValid(email)) { showInlineErrorMessage('E-mail inválido'); return; } toggleFadeiSense(document.querySelector("#data-verification-modal"), true); toggleFadeiSense(document.querySelector('#data-verification-background'), true); document.querySelector('#data-verification-container input').focus(); } function closeVerificationModal(){ toggleFadeiSense(document.querySelector("#data-verification-background"), false); document.querySelector('#data-verification-icon').classList.remove("clicked"); document.querySelector('#data-verification-background .loading').style.display = 'none'; // Focar no botão do tipo de pedido que foi escolhido let donotsellForms = document.querySelectorAll('.form-donotsell-request'); donotsellForms.forEach(function(donotsellForm) { if (donotsellForm.style.display !== "none") { let donotsellFormLinks = donotsellForm.previousElementSibling; if (donotsellFormLinks && donotsellFormLinks.querySelectorAll('li').length === 1) { donotsellFormLinks.querySelector('button').focus(); } } }); } // Botão de não vender nem partilhar document.querySelector('#btn-donotsell-opt-out-request').addEventListener('click', function(e) { e.preventDefault(); let isExpanded = this.getAttribute('aria-expanded') === 'true' ? true : false; donotsellSlideUpAll(); if(!isExpanded) { slideDown(document.querySelector('#form-donotsell-opt-out-request'), 200); this.setAttribute("aria-expanded", "true"); } else { slideUp(document.querySelector('#form-donotsell-opt-out-request'), 200); this.setAttribute("aria-expanded", "false"); } }); document.querySelector('#form-donotsell-opt-out-request-submit').addEventListener('click', function(e) { e.preventDefault(); activeSubmitButton = this; email = document.querySelector('#form-donotsell-opt-out-request-email').value; type = 'customer/do-not-sell'; // Verificar se o cliente está com sessão iniciada if (typeof __st !== "undefined" && __st.cid != undefined) { document.querySelector('#donotsell-modal-container-text').innerHTML = 'Dou o meu consentimento para recolher o meu e-mail e o meu endereço IP com a finalidade de processar este pedido. Para mais ver Política de Privacidade.'; } else { document.querySelector('#donotsell-modal-container-text').innerHTML = 'Dou o meu consentimento para recolher o meu e-mail e o meu endereço IP com a finalidade de processar este pedido. Para mais ver Política de Privacidade. Nota: Se fores um utilizador convidado ou se não estiveres com sessão iniciada na tua conta, a tua escolha de recusa só vai ser eficaz nesta sessão do navegador.'; } openVerificationModal(); }); // Integração da API de Privacidade do Cliente da Shopify para GPC e recusa if (typeof window.Shopify !== 'undefined' && typeof window.Shopify.customerPrivacy !== 'undefined') { var values = window.Shopify.customerPrivacy.currentVisitorConsent(); // Verificar o sinal do GPC e aplicar a recusa se estiver presente if (typeof navigator.globalPrivacyControl !== 'undefined' && navigator.globalPrivacyControl === true) { window.Shopify.customerPrivacy.setTrackingConsent({"sale_of_data": false}, () => { console.log('Sinal GPC detetado - recusa aplicada'); }); } }