Client Help
You must install the Client Javascript in every page where you intend to capture information from the user.
The Confection script can be inserted anywhere inside your page code. If you plan to use Confection to collect initial events like pageviews, it can be a good idea inserting the script on head, so you can submit the event as early as possible.
Confection expects two global variables to fully work: confection_url and confection_account_id. Those variables will vary accordling to your unique account setup:
- confection_url : The URL where the Confection Cable is installed in your setup.
- confection_account_id : Your Confection Account ID, you can find it on the My Keys menu.
The variables declaration should look like this:
<script>
var confection_url = "https://example.com/confection-cable/",
confection_account_id = "2";
</script>
After declaring those variables, you are ready to call the script.
We recommend inlining the client script inside the HTML content of your page instead of calling the javascript file. This ensure that no external request will be done and will make harder for browsers identify the script purpose. You can find the latest version of the script, inlined below:
<script>class Confection{constructor(){this.version="1.0.4",this.uuid=!1,this.domain=window.location.hostname,this.privacy="none",this.showBanner=!0,this.bannerPosition="none",this.showedBanner=0,this.persistent=!0,this.consent=0,this.later={events:[],fields:[],cookies:[]},this.forceBannerOpen=!1,this.consentLost=!1,this.ignoreFields=[],this.analytics=!0,this.appendCss="",this.randomId="banner"+this.hexSingleConvert(this.random_number(1e4,99999)),this.badgeStyle=document.createElement("style"),this.badgeToggler=document.createElement("DIV"),this.customLogo=!1,this.i18n={banner_none:"This site isn’t collecting your personal information. Any information you submitted before opting out is still in our system. To manage this information, please ",banner_base:"The authors of this site care about your personal data. That’s why they use Confection. Our privacy-first data management app helps people like you take control of the information you share online.",banner_strict_base:"At the moment, this site would like permission to use basic data to improve the content it offers you. This would include information like your IP address. We won’t collect more sensitive information such as your name or email address without asking you first.",banner_strict:"Hi, it’s Confection again. We noticed that you’re about to share information like your name and email with this site. Do we have your permission to do so?",banner_collecting:"You’ve given this site permission to collect information like your IP address, name, and email.",banner_collecting_basic:"Collecting Basic Data",banner_collecting_full:"Fully Authorized",banner_collecting_not:"Not Collecting Your Data",button_more:"Learn More",button_accept:"Accept",button_deny:"Not now",button_stop:"Stop Collecting",button_resume:"Resume Data Sharing",button_close:"Close",button_click:"click here"},document.addEventListener("change",function(e){confection.checkInput(e)}),this.checkIframedForms();var e=new MutationObserver(function(e){e.forEach(function(e){if("childList"===e.type)for(var n=0;n<e.addedNodes.length;n++){var t=e.addedNodes[n];void 0!==t.tagName&&"IFRAME"==t.tagName.toUpperCase()&&confection.monitorIframedForms(t)}})});e.observe(document,{childList:!0,subtree:!0})}startBuild(){this.checkConsent(!0),this.generateUUID(),!0===this.analytics&&this.analyticsTrack()}analyticsTrack(){var e={};e.url=window.location.href,""!=document.referrer&&void 0!==document.referrer&&(e.referrer=document.referrer),e.language=navigator.language||navigator.userLanguage,/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)?e.device="mobile":e.device="desktop",e=JSON.stringify(e),this.submitEvent("pageviewBatch",e),window.addEventListener("load",function(e){confection.submitEvent("loadtime",(window.performance.timing.domContentLoadedEventEnd-window.performance.timing.navigationStart)/1e3)})}generateUUID(){var e=new Date,n=!1;n=this.getCookie("uuid"),36!=n.length&&(n=this.hexConvert(e.getUTCFullYear())+"-",n+=this.hexSingleConvert(e.getUTCHours())+this.hexSingleConvert(e.getUTCMinutes())+"-",n+=this.hexSingleConvert(this.random_number(64,79))+this.hexSingleConvert(e.getUTCMonth()+1)+"-",n+=this.hexSingleConvert(this.random_number(128,191))+this.hexSingleConvert(e.getUTCSeconds())+"-",n+=this.hexSingleConvert(this.random_number(0,255))+this.hexSingleConvert(this.random_number(0,255))+this.hexSingleConvert(this.random_number(0,255))+this.hexSingleConvert(this.random_number(0,255))+this.hexSingleConvert(this.random_number(0,255))+this.hexSingleConvert(this.random_number(0,255)),this.setCookie("uuid",n,!0)),this.uuid=n;var t=new CustomEvent("ConfectionUuidGenerated",{detail:{uuid:this.uuid}});window.dispatchEvent(t)}hexConvert(e){e=e.toString();var n="";for(let t=0;t<e.length;t++){const o=parseInt(e[t]);n+=this.hexSingleConvert(o)}return n}hexSingleConvert(e){return e=e.toString(16),1==e.length&&(e="0"+e),e}checkConsent(e){var n=this.getCookie("consent");""!=n&&(n=parseInt(n),n>=0&&n<=2&&(this.setConsent(n),e=!1)),!0===this.showBanner&&(this.showPrivacyBanner(),!0!==e&&(1==n?this.showPrivacyBanner.firstConsent():2==n?this.showPrivacyBanner.secondConsent():this.showPrivacyBanner.openBanner()))}setConsent(e){0==e?(this.setCookie("consent",e),this.consent=e):(this.consent=e,this.setCookie("consent",e),this.lateSubmit())}setBannerPosition(e){"none"==e?this.showBanner=!1:this.bannerPosition=e}setPrivacy(e){this.privacy=2==e||"strict"==e||"lgpd"==e||"LGPD"==e?"strict":0==e||"none"==e?"none":"default"}checkPrivacy(e){return"none"==this.privacy||(this.consent>=2||("strict"===this.privacy?this.consent>=1&&!e:this.consent>=1||!e))}logoSvg(e){return!1!==this.customLogo?this.customLogo:'<svg style="position: absolute;width: 30px;height: 30px;top: 10px;left: 50%;transform: translateX(-50%); xmlns="http://www.w3.org/2000/svg" height="20" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0z" fill="none"/><path fill="'+e+'" d="M12 6c1.11 0 2-.9 2-2 0-.38-.1-.73-.29-1.03L12 0l-1.71 2.97c-.19.3-.29.65-.29 1.03 0 1.1.9 2 2 2zm4.6 9.99l-1.07-1.07-1.08 1.07c-1.3 1.3-3.58 1.31-4.89 0l-1.07-1.07-1.09 1.07C6.75 16.64 5.88 17 4.96 17c-.73 0-1.4-.23-1.96-.61V21c0 .55.45 1 1 1h16c.55 0 1-.45 1-1v-4.61c-.56.38-1.23.61-1.96.61-.92 0-1.79-.36-2.44-1.01zM18 9h-5V7h-2v2H6c-1.66 0-3 1.34-3 3v1.54c0 1.08.88 1.96 1.96 1.96.52 0 1.02-.2 1.38-.57l2.14-2.13 2.13 2.13c.74.74 2.03.74 2.77 0l2.14-2.13 2.13 2.13c.37.37.86.57 1.38.57 1.08 0 1.96-.88 1.96-1.96V12C21 10.34 19.66 9 18 9z"/></svg>'}setCustomLogo(e){this.customLogo='<img style="width: 50px;height: 50px;" src="'+e+'"></img>',confection.badgeToggler.innerHTML=this.customLogo}addStyle(e,n){void 0===n&&(n=" "),this.badgeStyle.appendChild(document.createTextNode("#"+this.randomId+n+e))}showPrivacyBanner(){function e(e){if(!(!0===e&&!1!==a||!0===a&&!0!==confection.forceBannerOpen)){a=!0,t.onclick="",i.parentNode==t&&t.removeChild(i),i=document.createElement("DIV"),i.classList.add("openbanner"),i.innerHTML="<span>"+confection.i18n.banner_strict+"</span><br />","left"==confection.bannerPosition?t.insertBefore(i,confection.badgeToggler):t.appendChild(i);var r=document.createElement("a");r.classList.add("btnok"),r.innerHTML=confection.i18n.button_accept,r.href="#",i.appendChild(r),r.onclick=function(e){e.preventDefault(),e.stopPropagation(),confection.showPrivacyBanner.secondConsent()};var c=document.createElement("a");c.classList.add("btnok","no"),c.innerHTML=confection.i18n.button_deny,c.href="#",i.appendChild(c),c.onclick=function(e){e.preventDefault(),e.stopPropagation(),t.removeChild(i),t.onclick=function(){n()}},i.appendChild(o)}}function n(){t.onclick="",i.parentNode==t&&t.removeChild(i),i=document.createElement("DIV"),i.classList.add("openbanner","deny"),i.innerHTML="<span>"+confection.i18n.banner_collecting+"</span>","left"==confection.bannerPosition?t.insertBefore(i,confection.badgeToggler):t.appendChild(i);var e=document.createElement("a");e.classList.add("btnok"),e.innerHTML=confection.i18n.button_accept,e.href="#",i.appendChild(e),e.onclick=function(e){e.preventDefault(),e.stopPropagation(),t.removeChild(i),t.onclick=function(){n()}};var r=document.createElement("a");r.classList.add("btnok","no"),r.innerHTML=confection.i18n.button_stop,r.href="#",i.appendChild(r),r.onclick=function(e){e.preventDefault(),e.stopPropagation(),t.removeChild(i),confection.consentLost=confection.consent,confection.setConsent(0),confection.badgeToggler.style.background="#000",t.onclick=function(){confection.showPrivacyBanner.regainConsent()}},i.appendChild(o)}if(1!=this.showedBanner){this.showedBanner=1,this.addStyle("{max-width: 100%; padding: 10px; color: #111; font-size: 14px; position: fixed; bottom: 20px; right: 0;font-family: Arial; text-align: center; transition: width: 0.3s; display: flex; align-items: start; z-index: 2147483640;}"),this.addStyle(".left{right: initial; left: 0;}",""),this.addStyle(".center{right: initial; left: 50%; transform: translateX(-50%);}",""),this.addStyle(".toggler{margin: 0 5px; border-radius: 100%; width: 50px; flex: 0 0 50px; padding: 0; height: 50px; background: #000; box-shadow: 1px 1px 3px 0 rgba(0,0,0,0.3);position: relative;cursor:pointer;}"),this.addStyle(".toggler.none{cursor:none;}"),this.addStyle(".privacy-link{font-weight: 400; text-decoration: underline; color: #444; display: block; height:36px;line-height:36px;}"),this.addStyle(".btnok{font-weight: 400;padding-top: 5px;background: #03a9f4;display: inline-block;height: 36px;width: 100%;color: #fff;text-decoration: none;line-height: 36px;padding: 0;margin: 0 0 6px; transition: all 0.25s;}"),this.addStyle(".btnok:hover{background:#2196f3}"),this.addStyle(".btnok.no{background: rgba(0,0,0,0.2);color: #eee;}"),this.addStyle(".btnok.no:hover{background: rgba(0,0,0,0.4);}"),this.addStyle(".openbanner{width: 400px; max-width: 100%; font-weight: 400; background: #0d80fb; color: #fff; padding: 10px; font-size: 12px;}"),this.addStyle(".openbanner.deny{background: #666; color: #fff;}"),this.addStyle(".openbanner > span{text-align: left; display: block;margin:0 0 8px;}"),this.addStyle(".openbanner > span > a{color: #fff; text-decoration: underline;}");var t=document.createElement("DIV");t.id=this.randomId,t.classList.add(this.bannerPosition),this.badgeToggler.classList.add("toggler",confection.privacy),this.badgeToggler.innerHTML=this.logoSvg("#fff");var o=document.createElement("a");o.classList.add("privacy-link"),o.innerHTML=confection.i18n.button_more,o.target="_blank",o.href="https://confection.io/people?utm_source=Confection-Banner&utm_medium="+confection.domain,o.style.color="#fff",t.appendChild(this.badgeToggler),t.onclick=function(){confection.showPrivacyBanner.openBanner()};var i=document.createElement("DIV");!0!==this.checkPrivacy(!0)&&document.addEventListener("change",function(e){"strict"==confection.privacy?(confection.forceBannerOpen=!1,confection.showPrivacyBanner.openBanner(!0)):"default"==confection.privacy&&(confection.forceBannerOpen=!1,confection.showPrivacyBanner.openBanner(!1))});var r=!1;this.showPrivacyBanner.openBanner=function n(a){if("none"!=confection.privacy)if(!0!==r||!0===confection.forceBannerOpen){r=!0,confection.showedBanner=2,t.onclick="",i.parentNode==t&&t.removeChild(i),i=document.createElement("DIV"),i.classList.add("openbanner"),i.innerHTML="<span>"+confection.i18n.banner_base+"</span><br />","strict"==confection.privacy&&(i.innerHTML+="<span>"+confection.i18n.banner_strict_base+"</span><br />"),"left"==confection.bannerPosition?t.insertBefore(i,this.badgeToggler):t.appendChild(i);var c=document.createElement("a");c.classList.add("btnok"),c.innerHTML=confection.i18n.button_accept,c.href="#",i.appendChild(c),c.onclick=function(e){e.preventDefault(),e.stopPropagation(),confection.showPrivacyBanner.firstConsent(a)};var s=document.createElement("a");s.classList.add("btnok","no"),s.innerHTML=confection.i18n.button_deny,s.href="#",i.appendChild(s),s.onclick=function(e){e.preventDefault(),e.stopPropagation(),t.removeChild(i),t.onclick=function(){confection.forceBannerOpen=!0,n(),confection.forceBannerOpen=!1}},i.appendChild(o)}else!0===a&&e(!0)},this.showPrivacyBanner.firstConsent=function(r){confection.setConsent(1),i.parentNode==t&&t.removeChild(i),t.onclick="",o.innerHTML=confection.i18n.button_more,o.href="https://confection.io/people/?utm_source=Confection-Banner&utm_medium="+confection.domain,"strict"==confection.privacy?(confection.badgeToggler.style.background="#ffc107",!0===r?e(!0):t.onclick=function(){n()}):(confection.badgeToggler.style.background="#6a8e73",t.onclick=function(){n()})};var a=!1;this.showPrivacyBanner.secondConsent=function(){t.onclick="",confection.setConsent(2),i.parentNode==t&&t.removeChild(i),confection.badgeToggler.style.background="#6a8e73",t.onclick=function(){n()}};var c=!1;this.showPrivacyBanner.regainConsent=function(){if(!0!==c){c=!0,t.onclick="",i.parentNode==t&&t.removeChild(i),i=document.createElement("DIV"),i.classList.add("openbanner"),i.innerHTML="<span>"+confection.i18n.banner_none+'<a href="https://confection.io/people?utm_source=Confection-Banner&utm_medium='+confection.domain+'" target="_blank">'+confection.i18n.button_click+"</a></span><br />","left"==confection.bannerPosition?t.insertBefore(i,confection.badgeToggler):t.appendChild(i);var e=document.createElement("a");e.classList.add("btnok"),e.innerHTML=confection.i18n.button_resume,e.href="#",i.appendChild(e),e.onclick=function(e){e.preventDefault(),e.stopPropagation(),c=!1,1==confection.consentLost?confection.showPrivacyBanner.firstConsent():confection.showPrivacyBanner.secondConsent()};var n=document.createElement("a");n.classList.add("btnok","no"),n.innerHTML=confection.i18n.button_close,n.href="#",i.appendChild(n),n.onclick=function(e){e.preventDefault(),e.stopPropagation(),t.removeChild(i),c=!1,t.onclick=function(){confection.showPrivacyBanner.regainConsent()}},i.appendChild(o)}},document.body.appendChild(t),document.body.appendChild(this.badgeStyle)}}checkInput(e){if(""!=e.target.name&&""!=e.target.value&&!0===e.target.validity.valid&&"INPUT"==e.target.tagName.toUpperCase()&&-1==new Array("BUTTON","FILE","IMAGE","PASSWORD","RESET","SEARCH","SUBMIT").indexOf(e.target.type.toUpperCase())||new Array("SELECT","TEXTAREA","DATALISTA").indexOf(e.target.tagName.toUpperCase())>-1){var n=["credit-card","credit_card","creditcard","card-number","card_number","cardnumber","security","security-code","security_code","securitycode","password","pass","passphrase"],t=e.target.name.toLowerCase();-1==n.indexOf(t)&&-1==confection.ignoreFields.indexOf(t)&&confection.submit(t,e.target.value)}}random_number(e,n){return Math.round(Math.random()*(n-e)+e)}checkIframedForms(){for(var e=document.querySelectorAll("iframe"),n=0;n<e.length;n++)try{this.monitorIframedForms(e[n])}catch(e){}}monitorIframedForms(e){var n=this.canReadIframeContent(e);if(!1===n);else{var t=n.querySelectorAll("input");0==t.length?setTimeout(()=>{t=n.querySelectorAll("input"),0==t.length||n.addEventListener("change",function(e){confection.checkInput(e)})},2e3):n.addEventListener("change",function(e){confection.checkInput(e)})}}canReadIframeContent(e){try{var n=e.contentDocument||e.contentWindow.document;return n}catch(e){return!1}}submit(e,n,t,o){"function"!=typeof o&&(o=function(){}),!1===this.uuid&&(this.uuid=this.generateUUID()),"event"!=t&&(t="field");var i="?";if("field"==t){if(!1===this.checkPrivacy(!0))return this.saveForLater(e,n,"fields"),o(!1),!1;i+="&name="+e}else{if(!1===this.checkPrivacy(!1))return this.saveForLater(e,n,"events"),o(!1),!1;i+="&event="+e}i+="&account_id="+confection_account_id+"&uuid="+this.uuid+"&value="+encodeURIComponent(n)+"&domain="+this.domain;var r=new XMLHttpRequest;r.open("GET",confection_url+i,!0),r.onload=function(){return this.status>=200&&this.status<400?(o(!0),!0):(o(!1),!1)},r.onerror=function(){return o(!1),!1},r.send()}submitEvent(e,n,t){this.submit(e,n,"event",t)}saveForLater(e,n,t){this.later[t][e]=n,"cookies"==t&&"_short_cookie_uuid"==e||1==this.showedBanner&&("field"==t&&"strict"==this.privacy?this.showPrivacyBanner.openBanner(!0):this.showPrivacyBanner.openBanner())}lateSubmit(){var e="";if(!0===this.checkPrivacy(!0))for(var n in this.later.fields)this.later.fields.hasOwnProperty(n)&&(e=this.later.fields[n],delete this.later.fields[n],this.submit(n,e,"field"));if(!0===this.checkPrivacy(!1)){for(var n in this.later.events)this.later.events.hasOwnProperty(n)&&(e=this.later.events[n],delete this.later.events[n],this.submit(n,e,"event"));for(var n in this.later.cookies)this.later.cookies.hasOwnProperty(n)&&(e=this.later.cookies[n],delete this.later.cookies[n],n.indexOf("_short_cookie_")>=0?(n=n.replace("_short_cookie_",""),this.setCookie(n,e,!0)):this.setCookie(n,e))}}setCookie(e,n,t){if(e=void 0!==e?e:"",!e)return"";if(e="confection_"+e,!0===this.checkPrivacy(!1))if(!0===t)document.cookie=e+"="+n+"; path=/";else{var o=new Date;o.setTime(o.getTime()+31536e6),document.cookie=e+"="+n+"; expires="+o.toUTCString()+"; path=/"}else e=e.replace("confection_",""),!0===t&&(e="_short_cookie_"+e),this.saveForLater(e,n,"cookies")}getCookie(e){if(e=void 0!==e?e:"",!e)return"";e="confection_"+e,e+="=";for(var n=document.cookie.split(";"),t=0;t<n.length;t++){var o=n[t].trim();if(0==o.indexOf(e))return o.substring(e.length,o.length)}return""}}var confection=new Confection;window.dispatchEvent(new CustomEvent("ConfectionReady")),confection.startBuild();</script>
That's all. Your site is now ready to capture user information.
Confection is ready to be compliant with any privacy rule. It can comply with GDPR, CCPA and LGPD effortlesly but you can also manually set when and what info Confection can capture.
It works using 3 levels of user consent and 3 levels of privacy level. For the user consent the levels are:
- 0 : User didn't gave any consent. This is the default value on first load.
- 1 : User gave one consent level. In a more simple privacy environment, like GDPR, this consent is enough.
- 2 : User gave two consents. This is used for more strict privacies, like LGPD.
To explicitly tell which consent user gave, just use the function confection.setConsent(consentLevel). Note that, the user consent is saved and retrieved locally using a 1st party cookie if possible.
The user consent is only helpful while setting the proper privacy level, which can be:
- none : No privacy rule set and Confection will not wait for user consent. This is the default value on first load.
- default : The standard privacy rule will make Confection wait for user consent to submit PSI data.
- strict : The strict privacy will require two users consents, the first for non PSI (which are IP, Browser Information, Location, Cookie Usage and custom events) and the second for PSI (information submitted by forms fields).
To inform Confection of what privacy you're gonna need, you should use the following code:
<script>
window.addEventListener("ConfectionReady", function () {
confection.setPrivacy("lgpd");
});
</script>
The above code will set the privacy to LGPD during Confection initialization, but you may set the privacy at any moment after Confection is initialized. Note that, until you explicity says what privacy to follow, Confection will consider no privacy and will send any event or form field.
The possible values for privacy are:
- none
- default, gdpr or ccpa
- strict or lgpd
By default, Confection will automatically collect analytics information from your visitors and display here in this Dashboard in the menu Analytics (Coming Soon). The Analytics data is captured accordling with the privacy setting that you choose, and it's captured like events.
The analytics will capture 5 information if possible:
- pageview : The current URL being viewed.
- referrer : The referrer URL from where user came from.
- language : User browser's set language.
- device : If desktop or mobile.
- loadtime : Time in decimal seconds of how long the page took to finish loading.
To disable the Confection Analytics, you may drop the following code inside the start event. Note that changing the analytics option after Confection load will not work.
<script>
window.addEventListener("ConfectionReady", function () {
confection.analytics = false;
});
</script>
Confection is ready to get user Consent with it's own privacy banner that is called only when necessary.
This means that users will not immediately see a banner asking for permission, instead, it will only see a badge which will expand to a banner when Confection needs to submit some event or form field.
Confection banner will show the proper message accordling with the privacy level set and will properly get the user consent as necessary. As such, before setting the banner, you need to set the privacy level. More information on this in the box "Configuring Privacy Settings"
Confection allows you to set where the banner should appear:
- right : At bottom right. This is the default position.
- left : At bottom left.
- center : Centered at bottom.
- none : The banner will not appear.
To inform Confection where the banner should appear, you should use the following code:
<script>
window.addEventListener("ConfectionReady", function () {
confection.setBannerPosition("center");
});
</script>
The above code will set the banner to center during Confection initialization.
Confection uses random classes and/ID for it's banner, as such is important to use the provided function to stylize the banner as you wish.
To do so, you can simply use the function
addStyle()with the rule you want to add, specifying the element. For example, to change color of the Confirm button:
<script>
window.addEventListener("ConfectionReady", function () {
confection.addStyle(".btnok{background: #000;color: #fff;}");
});
</script>
Confection will automatically track form fields, submitting any data user input in form fields to Confection. Form fields are treated as Personal Identification Information.
Confection allows you to submit custom events and form fields through code. This means that you can submit to Confection any PSI as Form Fields or any Non-PSI as Custom Events.
To do so, you just need to use the function confection.submit(name, value, type); at any time after Confection was loaded. The function variables are:
- name : The field name or event name. It will not submit data if empty.
- value : The field value or event value.
- type : Can be field (default) or event. If any other value, it will fallback to default value.
Code example for submitting a pageview event with the current URL as value:
<script>
confection.submit("pageview", window.location.href);
</script>
If you choose to show Confection Privacy banner, you may want translate it to your own language if we don't provide it. You may do so changing Confection main string variable. If we provide it, you should use the official translation.
Below you will find the available translations for Confection. To use it, just drop the code before calling Confection script.
<script>
window.addEventListener("ConfectionReady", function () {
confection.i18n = {"banner_none":"Este site n\u00e3o est\u00e1 coletando suas informa\u00e7\u00f5es pessoais. Qualquer informa\u00e7\u00e3o que voc\u00ea tenha enviado anteriormente, ainda estar\u00e1 em nossos sistemas. Para gerenciar essas informa\u00e7\u00f5es, por favor ","banner_base":"Os criadores deste site se preocupam com seus dados pessoais. \u00c9 por isso que eles usam Confection. Nosso aplicativo de gerenciamento de dados com foco em privacidade, ajuda pessoas como voc\u00ea a ter o controle sob as informa\u00e7\u00f5es que voc\u00ea compartilha online.","banner_strict_base":"No momento, este site gostaria de sua permiss\u00e3o para usar dados b\u00e1sicos afim de melhorar o conte\u00fado que ele oferece. Isso inclui informa\u00e7\u00f5es como seu endere\u00e7o de IP. N\u00f3s n\u00e3o coletaremos dados mais sens\u00edveis como seu nome ou endere\u00e7o de email sem antes receber sua autoriza\u00e7\u00e3o.","banner_collecting":"Voc\u00ea deu permiss\u00e3o para este site coletar informa\u00e7\u00f5es como seu endere\u00e7o IP, nome e email.","banner_collecting_basic":"Coletando Dados B\u00e1sicos","banner_collecting_full":"Totalmente Autorizado","banner_collecting_not":"N\u00e3o Est\u00e1 Coletando Dados","banner_strict":"Oi, \u00e9 o Confection novamente. Percebemos que voc\u00ea est\u00e1 prestes a compartilhar informa\u00e7\u00f5es como seu email e nome com este site. N\u00f3s temos permiss\u00e3o para fazer isso?","button_more":"Saiba Mais","button_accept":"Aceitar","button_deny":"Agora n\u00e3o","button_stop":"Para de Coletar","button_resume":"Voltar a Compartilhar","button_close":"Fechar","button_click":"clique aqui"};
});
</script>