{"id":824,"date":"2026-02-11T23:12:15","date_gmt":"2026-02-11T21:12:15","guid":{"rendered":"https:\/\/www.sabatka.net\/en\/?p=824"},"modified":"2026-02-11T23:12:16","modified_gmt":"2026-02-11T21:12:16","slug":"who-reads-forms-on-your-website-and-do-you-know-about-it","status":"publish","type":"post","link":"https:\/\/www.sabatka.net\/en\/who-reads-forms-on-your-website-and-do-you-know-about-it\/","title":{"rendered":"Who reads the forms on your website? (And do you know about it?)"},"content":{"rendered":"\n<p>Imagine the following situation. A visitor comes to your website, fills out an order form\u2014name, email, phone number\u2014and submits it. The data goes to your CRM or database.<\/p>\n\n\n\n<p>But it&#8217;s quite possible that the same data \u2014 hashed, but still identifiable \u2014 is also being sent to the servers of Google, Meta, TikTok, Pinterest, and other platforms at that very moment. Automatically. Without a single line of code from you.<\/p>\n\n\n\n<p>It is called automatic advanced matching (Meta), user-provided data capabilities (Google), automatic advanced matching (TikTok, Pinterest), and other names on other platforms. The principle is the same everywhere: an advertising pixel on the page automatically searches form fields, hashes the personal data found using the SHA-256 algorithm, and sends it to the platform. The platform then matches it with its user database.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button scroll_to_subscribe\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.sabatka.net\/en\/kontakt\/\">Contact me<\/a><\/div>\n\n\n\n<div class=\"wp-block-button linkedinShare\"><a class=\"wp-block-button__link wp-element-button\">Share on LinkedIN<\/a><\/div>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">How it works technically<\/h2>\n\n\n\n<p>The advertising pixel script scans HTML pages and searches for form fields that look like email, phone, name, address, or zip code. It detects this based on attributes such as <code>type=\"email\"<\/code>, <code>type=\"tel\"<\/code>, or field names and placeholders (e.g., <code>name=\"phone\"<\/code>, <code>placeholder=\"Your email\"<\/code>).<\/p>\n\n\n\n<p>Once the user submits the form (or in some cases just leaves the page), the pixel hashes the values from these fields using SHA-256 and sends them to the platform&#8217;s server. The platform then compares the hash with its database \u2014 if it finds a match, it knows that user X filled out the form on your website.<\/p>\n\n\n\n<p>TikTok goes even further \u2014 its <a href=\"https:\/\/ads.tiktok.com\/help\/article\/how-to-set-up-automatic-advanced-matching\" target=\"_blank\" rel=\"noopener\">Automatic Advanced Matching<\/a> not only scans form fields, but also static text on the page (such as the logged-in user&#8217;s displayed email) and selected JavaScript variables such as <code>window.dataLayer<\/code>.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Which platforms are affected?<\/h2>\n\n\n\n<p>This is not a marginal issue. In some form, it is a standard feature of all major advertising platforms. For each one, I list what the feature is called, what it collects, and\u2014most importantly\u2014whether it scans forms automatically and whether it is enabled or disabled after creating an account.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Meta (Facebook\/Instagram)<\/strong><\/h3>\n\n\n\n<p><strong>&#8220;Automatic Advanced Matching&#8221; feature<\/strong><\/p>\n\n\n\n<p>Pixel searches forms and collects email, phone number, first and last name, city, state, postal code, country, date of birth, gender, and external ID. By default, this feature is <strong>disabled<\/strong>\u2014you must actively enable it in Events Manager (Data Sources \u2192 Pixel \u2192 Settings). Companies in &#8220;restricted industries&#8221; (banking, insurance, pharmaceuticals, healthcare) cannot use automatic pairing at all and must resort to the manual option.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"523\" data-src=\"https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/02\/form-scanning-meta-1024x523.png\" alt=\"\" class=\"wp-image-825 lazyload\" data-srcset=\"https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/02\/form-scanning-meta-1024x523.png 1024w, https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/02\/form-scanning-meta-300x153.png 300w, https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/02\/form-scanning-meta-768x393.png 768w, https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/02\/form-scanning-meta-1536x785.png 1536w, https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/02\/form-scanning-meta.png 1915w\" data-sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/523;\" \/><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Google<\/strong><\/h3>\n\n\n\n<p><strong>\u201eUser-Provided Data&#8221; function (in GA4) \/ \u201eEnhanced Conversions&#8221; (in Google Ads)<\/strong><\/p>\n\n\n\n<p>In GA4, this feature is called &#8220;User-provided data collection,&#8221; and in Google Ads, it is called &#8220;Enhanced Conversions.&#8221; The Google tag can automatically detect data that looks like an email address, phone number, or name and address. By default (after creating an account), it does not send data, even though it may appear to do so.<\/p>\n\n\n\n<p>To turn it on, you need to:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Admin > Property > Data Collection and modification > Data streams > Configure tag settings > Allow user-provided data capabilities<br>This setting is enabled by default.<br><img decoding=\"async\" data-src=\"https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/02\/form-scanning-ga4-1-1024x659.png\" alt=\"\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/659;\"><br><\/li>\n\n\n\n<li>Admin > Property > Data Collection and modification > Data collection<br>Here, you need to enable User-provided data collection.<br><img decoding=\"async\" data-src=\"https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/02\/form-scanning-google-2-1024x285.png\" alt=\"\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/285;\"><\/li>\n<\/ol>\n\n\n\n<p>If both conditions are met, the parameters <code>em <\/code>(with email hash), <code>ecid<\/code> (matching identifier), and <code>ec_mode=a<\/code> (detection mode, where a means automatic detection) will be added to requests to GA4.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>TikTok<\/strong><\/h3>\n\n\n\n<p><strong>Funkce \u201eAutomatic Advanced Matching&#8221;<\/strong><\/p>\n\n\n\n<p>Pixel automatically <a href=\"https:\/\/ads.tiktok.com\/help\/article\/how-to-set-up-automatic-advanced-matching\" target=\"_blank\" rel=\"noopener\">identifies form fields<\/a>, hashes and collects emails, phone numbers, names, addresses, and other identifiers. TikTok goes the furthest of all \u2014 it scans not only forms, but also static text on the page (e.g., the displayed email of a logged-in user) and JavaScript variables such as <code>window.dataLayer<\/code>.<\/p>\n\n\n\n<p>By default, the feature is disabled \u2014 it can be enabled in the pixel settings in Events Manager. And, unsurprisingly, TikTok marks the feature as recommended.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"373\" data-src=\"https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/02\/form-scanning-tiktok-1024x373.png\" alt=\"\" class=\"wp-image-828 lazyload\" data-srcset=\"https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/02\/form-scanning-tiktok-1024x373.png 1024w, https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/02\/form-scanning-tiktok-300x109.png 300w, https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/02\/form-scanning-tiktok-768x280.png 768w, https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/02\/form-scanning-tiktok-1536x560.png 1536w, https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/02\/form-scanning-tiktok.png 1918w\" data-sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/373;\" \/><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Pinterest<\/strong><\/h3>\n\n\n\n<p><strong>\u201eAutomatic Enhanced Match&#8221; function<\/strong><\/p>\n\n\n\n<p>Pinterest tag collects emails, names, phone numbers, gender, birth dates, external IDs, cities, states, zip codes, and countries.<\/p>\n\n\n\n<p>When you create a new tracking tag, &#8220;Enable automatic enhanced match&#8221; is <strong>enabled <\/strong>by default. Unless someone checks this, form scanning runs from day one.<\/p>\n\n\n\n<p>I consider this to be the biggest dark pattern of all the platforms mentioned. A platform full of fashion and cakes, yet with a data appetite like Meta after three days of fasting.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"571\" data-src=\"https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/02\/form-scanning-pinterest-1024x571.png\" alt=\"\" class=\"wp-image-829 lazyload\" data-srcset=\"https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/02\/form-scanning-pinterest-1024x571.png 1024w, https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/02\/form-scanning-pinterest-300x167.png 300w, https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/02\/form-scanning-pinterest-768x428.png 768w, https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/02\/form-scanning-pinterest-1536x856.png 1536w, https:\/\/www.sabatka.net\/wp-content\/uploads\/2026\/02\/form-scanning-pinterest.png 1584w\" data-sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/571;\" \/><\/figure>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Manual user matching<\/h2>\n\n\n\n<p>Not all platforms scan forms automatically. Some only allow manual user linking\u2014you have to submit personal data to the platform in the source code. In my opinion, this is a better option\u2014you have control over what you send and can monitor all the necessary data.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Microsoft Ads &#8211; <a href=\"https:\/\/help.ads.microsoft.com\/#apex\/ads\/en\/60178\/-1\" target=\"_blank\" rel=\"noopener\">Enhanced Conversions<\/a> function<\/li>\n\n\n\n<li>LinkedIN &#8211; <a href=\"https:\/\/www.linkedin.com\/help\/lms\/answer\/a6246095\" target=\"_blank\" rel=\"noopener\">Enhanced Matching<\/a> function<\/li>\n\n\n\n<li>X (Twitter) &#8211; <a href=\"https:\/\/business.x.com\/en\/help\/campaign-measurement-and-analytics\/conversion-tracking-for-websites\" target=\"_blank\" rel=\"noopener\">User Parameters<\/a><\/li>\n<\/ul>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Cookie bars and consent settings<\/h2>\n\n\n\n<p>Google Tag Manager works with several levels of consent \u2014 <code>ad_storage<\/code>, <code>analytics_storage<\/code>, <code>ad_user_data<\/code>, and <code>ad_personalization<\/code>. Advertising pixels are typically triggered based on <code>ad_storage<\/code> (sometimes in combination with <code>ad_personalization<\/code>). However, the transfer of personal data falls under <code>ad_user_data<\/code>.<\/p>\n\n\n\n<p>This can lead to a situation where the platform &#8220;takes&#8221; personal data <strong>without consent<\/strong> after the pixel is triggered.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">What do the platforms recommend?<\/h2>\n\n\n\n<p>Unsurprisingly: turn everything on. Every platform emphasizes in its documentation that the more data you send, the better the matching, attribution, and campaign performance will be. Meta recommends &#8220;enabling all parameters.&#8221; TikTok says &#8220;use manual and automatic matching at the same time.&#8221; Google offers &#8220;automatic detection&#8221; as the easiest way.<\/p>\n\n\n\n<p>From the platform&#8217;s perspective, this makes sense \u2014 more data = better machine learning = better ad results. From the perspective of the website operator and GDPR compliance, it&#8217;s more complicated.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Why you should care<\/h2>\n\n\n\n<p>The issue here is not whether these technologies are &#8220;bad.&#8221; The issue is that they run automatically, and many website operators are unaware that personal data is being collected from forms on their sites and sent to third parties.<\/p>\n\n\n\n<p>Consider a few things:<\/p>\n\n\n\n<p><strong>Awareness<\/strong>. Do you know which pixels on your website scan forms? Do you have an overview of what data they send? If you use Google Tag Manager and have pixels from five platforms, it is quite possible that each of them collects data in its own way.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Control<\/strong>. Automatic scanning is convenient, but it takes away your control. Pixel decides for itself what looks like an email or phone number. It can even collect data that you didn&#8217;t want to share \u2014 such as a customer support email address displayed on a page, as one implementation expert points out.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Legal responsibility<\/strong>. Under GDPR, you are responsible for the processing of personal data on your website. &#8220;We didn&#8217;t know, the pixel did it itself&#8221; is not a defensible position. The Austrian Data Protection Authority has already ruled that the use of Meta Pixel without prior consent violates GDPR.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong>Visitor trust<\/strong>. Your customers fill out a form expecting that your company will receive their data. Not Google, Meta, TikTok, and Pinterest all at once.<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">What to do<\/h2>\n\n\n\n<p>I&#8217;m not saying you should turn everything off. I&#8217;m saying: make a conscious decision.<\/p>\n\n\n\n<p>Do a pixel audit on your website. Go through the settings of each platform and check if you have automatic form scanning enabled that you might not even know about. For Google Tag, check the &#8220;Allow user-provided data capabilities&#8221; setting. For Meta, look at Automatic Advanced Matching in Events Manager. For Pinterest, verify\u2014especially if you&#8217;re a new advertiser\u2014that the default settings align with your intentions.<\/p>\n\n\n\n<p>Make sure your consent management actually controls pixel loading. Having a cookie banner isn&#8217;t enough\u2014it must really block scripts until consent is given.<\/p>\n\n\n\n<p>And most importantly: consciously decide who you want to send what data to and how. Instead of automatic scanning where you have no control over what the pixel collects, consider manual implementation (manual advanced matching), where you explicitly define what data is sent and on what action. Or use Conversion API \/ server-side solutions, where you have full control over what leaves your server.<\/p>\n\n\n\n<p>There&#8217;s a difference between &#8220;we send the hashed email of a customer who completed an order and agreed to the terms&#8221; and &#8220;the pixel automatically scans all forms on the site and sends whatever it finds.&#8221;<\/p>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button scroll_to_subscribe\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.sabatka.net\/en\/kontakt\/\">Contact me<\/a><\/div>\n\n\n\n<div class=\"wp-block-button linkedinShare\"><a class=\"wp-block-button__link wp-element-button\">Share on LinkedIN<\/a><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Imagine the following situation. A visitor comes to your website, fills out an order form\u2014name, email, phone number\u2014and submits it. The data goes to your CRM or database. But it&#8217;s quite possible that the same data \u2014 hashed, but still identifiable \u2014 is also being sent to the servers of Google, Meta, TikTok, Pinterest, and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":834,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24,9,8,10],"tags":[],"class_list":["post-824","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cookie-lista","category-digitalni-analytika","category-gdpr","category-gtm"],"_links":{"self":[{"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/posts\/824","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/comments?post=824"}],"version-history":[{"count":14,"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/posts\/824\/revisions"}],"predecessor-version":[{"id":844,"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/posts\/824\/revisions\/844"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/media\/834"}],"wp:attachment":[{"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/media?parent=824"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/categories?post=824"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sabatka.net\/en\/wp-json\/wp\/v2\/tags?post=824"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}