1<!DOCTYPE html> 2<html lang="en"> 3 <head> 4
4<script> 5 (function () { 6 var proto = XMLHttpRequest.prototype; 7 var open = proto.open, setRequestHeader = proto.setRequestHeader, send = proto.send; 8 var TOKEN_KEY = 'base44_access_token'; 9 var storedTokenHeader = function () { 10 try { return 'Bearer ' + localStorage.getItem(TOKEN_KEY); } catch (e) { return null; } 11 }; 12 var forgetStoredToken = function () { 13 try { localStorage.removeItem(TOKEN_KEY); localStorage.removeItem('token'); } catch (e) {} 14 }; 15 16 proto.open = function (method, url) { 17 this.__b44IsAuthCheck = /\/entities\/User\/me(\?|$)/.test(url); 18 return open.apply(this, arguments); 19 }; 20 21 proto.setRequestHeader = function (name, value) { 22 if (this.__b44IsAuthCheck && name.toLowerCase() === 'authorization' && value === storedTokenHeader()) { 23 this.__b44SentToken = value; 24 } 25 return setRequestHeader.call(this, name, value); 26 }; 27 28 proto.send = function () { 29 this.addEventListener('loadend', function () { 30 var rejectedTokenStillStored = this.status === 401 && this.__b44SentToken === storedTokenHeader(); 31 if (rejectedTokenStillStored) forgetStoredToken(); 32 }); 33 return send.apply(this, arguments); 34 }; 35})(); 36 </script>
36 37 <meta charset="utf-8"/> 38 <link href="https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/object/public/base44-prod/public/68d14880cdbf7a4259e9fa93/29cc91522_FeedZip-Logo-iconFunnel.png" rel="icon" type="image/png"/> 39 <link href="https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/object/public/base44-prod/public/68d14880cdbf7a4259e9fa93/29cc91522_FeedZip-Logo-iconFunnel.png" rel="apple-touch-icon"/> 40 <meta content="width=device-width, initial-scale=1.0" name="viewport"/> 41 <link href="/manifest.json" rel="manifest"/> 42 <!-- Google tag (gtag.js) -->
vendor: 69 bytes, lines 42-43
42 43 <script async="" src="https://www.googletagmanager.com/gtag/js?id=
43G-69KKX126WD
vendor: 17 bytes, lines 43-45
43"> 44 </script> 45
45<script> 46
vendor: 145 bytes, lines 46-49
46window.dataLayer = window.dataLayer || []; 47 function gtag(){dataLayer.push(arguments);} 48 gtag('js', new Date()); 49 gtag('config', '
49G-69KKX126WD
vendor: 6 bytes, lines 49-50
49'); 50
50</script>
50 51 <title> 52 Privacy | FeedZip.ai 53 </title> 54 <meta content="Privacy on FeedZip.ai. FeedZip." name="description"/> 55 <meta content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1" name="robots"/> 56 <meta content="#1e40af" name="theme-color"/> 57 <meta content="FeedZip.ai" name="author"/> 58 <!-- Open Graph --> 59 <meta content="website" property="og:type"/> 60 <meta content="FeedZip.ai" property="og:site_name"/> 61 <meta content="Privacy | FeedZip.ai" property="og:title"/> 62 <meta content="Privacy on FeedZip.ai. FeedZip." property="og:description"/> 63 <meta content="https://feedzip.ai/Privacy" property="og:url"/> 64 <meta content="https://media.base44.com/images/public/6a99578248760daef8355803/7796bd853_FeedZip-Logo-Li.png/v1/fill/w_1200,h_630/7796bd853_FeedZip-Logo-Li.png" property="og:image"/> 65 <meta content="FeedZip.ai â product preflight and recovery for regulated commerce" property="og:image:alt"/> 66 <meta content="en_US" property="og:locale"/> 67 <!-- Twitter Card --> 68 <meta content="summary_large_image" name="twitter:card"/> 69 <meta content="Privacy | FeedZip.ai" name="twitter:title"/> 70 <meta content="Privacy on FeedZip.ai. FeedZip." name="twitter:description"/> 71 <meta content="https://media.base44.com/images/public/6a99578248760daef8355803/7796bd853_FeedZip-Logo-Li.png/v1/fill/w_1200,h_630/7796bd853_FeedZip-Logo-Li.png" name="twitter:image"/> 72 <meta content="FeedZip.ai â product preflight and recovery" name="twitter:image:alt"/> 73 <!-- Structured data --> 74
74<script type="application/ld+json"> 75 { 76 "@context": "https://schema.org", 77 "@graph": [ 78 { 79 "@type": "Organization", 80 "name": "FeedZip.ai", 81 "url": "https://feedzip.ai/", 82 "logo": "https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/object/public/base44-prod/public/68d14880cdbf7a4259e9fa93/29cc91522_FeedZip-Logo-iconFunnel.png", 83 "description": "Product preflight and recovery infrastructure for regulated commerce." 84 }, 85 { 86 "@type": "WebSite", 87 "name": "FeedZip.ai", 88 "url": "https://feedzip.ai/", 89 "inLanguage": "en-US" 90 }, 91 { 92 "@type": "SoftwareApplication", 93 "name": "FeedZip.ai", 94 "applicationCategory": "BusinessApplication", 95 "operatingSystem": "Web", 96 "url": "https://feedzip.ai/", 97 "offers": { 98 "@type": "Offer", 99 "price": "0", 100 "priceCurrency": "USD" 101 }, 102 "description": "Find claim, product-data, and channel issues that can lead to disapprovals, suppressions, wasted spend, or rework. Check a product free with FeedZip." 103 } 104 ] 105 } 106 </script>
106 107
107<script crossorigin="" src="/assets/index-DC-VtZGX.js" type="module"> 108 </script>
108 109 <link crossorigin="" href="/assets/index-CFkIfhmw.css" rel="stylesheet"/> 110 <meta content="https://feedzip.ai/Privacy" name="twitter:url"/> 111
111<script> 112 (function () { 113 var titles = {"/": "FeedZip.ai", "/catalog-health": "Catalog Health | FeedZip.ai", "/cataloghealth": "Catalog Health | FeedZip.ai", "/contact": "Contact | FeedZip.ai", "/history": "History | FeedZip.ai", "/portalhome": "Portal Home | FeedZip.ai", "/portal-home": "Portal Home | FeedZip.ai", "/privacy": "Privacy | FeedZip.ai", "/reports": "Reports | FeedZip.ai", "/rules": "Rules | FeedZip.ai", "/terms": "Terms | FeedZip.ai", "/cookies": "Cookies | FeedZip.ai", "/security": "Security | FeedZip.ai", "/preflight": "Preflight | FeedZip.ai", "/brands": "Brands | FeedZip.ai", "/agencies": "Agencies | FeedZip.ai", "/commerce-teams": "Commerce Teams | FeedZip.ai", "/product-truth": "Product Truth | FeedZip.ai", "/how-it-works": "How It Works | FeedZip.ai", "/knowledge": "Knowledge | FeedZip.ai", "/channels": "Channels | FeedZip.ai", "/knowledge/preflight-vs-feed-management": "Knowledge / Preflight Vs Feed Management | FeedZip.ai", "/knowledge/product-suppression": "Knowledge / Product Suppression | FeedZip.ai", "/knowledge/silent-suppression": "Knowledge / Silent Suppression | FeedZip.ai", "/knowledge/product-data-quality": "Knowledge / Product Data Quality | FeedZip.ai", "/knowledge/recovery-and-appeals": "Knowledge / Recovery And Appeals | FeedZip.ai", "/channels/google": "Channels / Google | FeedZip.ai", "/channels/meta": "Channels / Meta | FeedZip.ai", "/channels/amazon": "Channels / Amazon | FeedZip.ai", "/amazon": "Amazon | FeedZip.ai", "/ai-shopping": "AI Shopping | FeedZip.ai", "/api": "Api | FeedZip.ai", "/suppression": "Suppression | FeedZip.ai", "/why": "Why | FeedZip.ai", "/protocol": "Protocol | FeedZip.ai", "/runs": "Runs | FeedZip.ai", "/compliance": "Preflight | FeedZip.ai", "/build": "Brands | FeedZip.ai", "/promote": "Agencies | FeedZip.ai", "/agent-ready": "Product Truth | FeedZip.ai", "/agentready": "Product Truth | FeedZip.ai", "/aishopping": "AI Shopping | FeedZip.ai", "/see": "Preflight | FeedZip.ai", "/demo": "Preflight | FeedZip.ai", "/fix": "Suppression | FeedZip.ai", "/appeal": "Suppression | FeedZip.ai", "/diagnose": "Preflight | FeedZip.ai", "/risk": "Preflight | FeedZip.ai", "/impact": "Why | FeedZip.ai", "/about": "Why | FeedZip.ai", "/technology": "Why | FeedZip.ai", "/team": "Why | FeedZip.ai", "/validator": "Preflight | FeedZip.ai", "/analyzer": "Preflight | FeedZip.ai", "/blog": "Blog | FeedZip.ai", "/home": "FeedZip.ai"}; 114 // PascalCase boundaries -> "-", mirroring _PASCAL_BOUNDARY_RE without lookbehind 115 // (old Safari fails to PARSE a lookbehind, taking the whole script down). 116 var dashed = function (s) { 117 return s.replace(/([a-z0-9])([A-Z])/g, "$1-$2").replace(/([A-Z])([A-Z][a-z])/g, "$1-$2"); 118 }; 119 var decode = function (s) { 120 // A %2F inside ONE segment must not become a structural separator: /blog/foo%2Fbar is a 121 // dynamic slug, and letting it split would match a static /blog/foo/bar and write ITS title. 122 try { var d = decodeURIComponent(s); return d.indexOf("/") < 0 ? d : s; } catch (e) { return s; } 123 }; 124 var segments = function (path) { return path.split("/").filter(Boolean).map(decode); }; 125 var norm = function (path) { 126 var parts = segments(path).map(function (s) { return dashed(s).toLowerCase(); }); 127 return parts.length ? "/" + parts.join("/") : "/"; 128 }; 129 var lastPath = location.pathname, written = document.title, on = true; 130 var sync = function () { 131 // Path only: a hash/query change is the same page, and the SDK strips its own auth 132 // params with replaceState -- neither must clobber a server-rendered title in place. 133 if (!on || location.pathname === lastPath) return; 134 lastPath = location.pathname; 135 if (document.title !== written) { on = false; return; } 136 // Write ONLY a title the map proves. An unmapped path is a dynamic route (/blog/:slug) the 137 // map cannot carry, and writing a placeholder there is destructive, not merely vague: the 138 // prerender worker runs no setUserAgent, so its capture browser reads as human and executes 139 // this script, and coordinator.js's settle wait explicitly tolerates a full navigation -- 140 // a redirect landing on an unmapped path would bake the placeholder into the stored 141 // snapshot. Leaving the title alone degrades to today's behavior instead. 142 // Exact lookup only. A dash-stripped retry here would let a genuinely different /set-up 143 // claim /setup: the map carries a dash-free key only where a PascalCase boundary put the 144 // dashes there, and the client cannot tell the two apart. The map emits every reach
144able 145 // shape per segment instead (_client_url_variants). 146 var title = titles[norm(location.pathname)]; 147 if (title === undefined) return; 148 document.title = title; 149 // Re-read: the setter stores verbatim but the getter strips and collapses whitespace, so 150 // keeping the assigned string would make the next sync() read our own write as the app's. 151 written = document.title; 152 }; 153 var wrap = function (fn) { 154 // The history entry is already pushed by the time sync() runs, so a throw here would 155 // surface inside the host app's router and break navigation. This is injected into apps 156 // we cannot test, so it swallows rather than trusting the trace. 157 return function () { 158 var r = fn.apply(this, arguments); 159 try { sync(); } catch (e) {} 160 return r; 161 }; 162 }; 163 history.pushState = wrap(history.pushState); 164 history.replaceState = wrap(history.replaceState); 165 window.addEventListener("popstate", sync); 166})(); 167 </script>
167 168 <meta content="yes" name="mobile-web-app-capable"/> 169 <meta content="black" name="apple-mobile-web-app-status-bar-style"/> 170 <meta content="FeedZip.ai" name="apple-mobile-web-app-title"/> 171 <link href="https://feedzip.ai/Privacy" rel="canonical"/> 172
172<script data-seo-source="builder" type="application/ld+json"> 173 {"name": "FeedZip.ai", "@context": "https://schema.org", "@type": "WebSite", "url": "https://feedzip.ai"} 174 </script>
174 175
175<script data-seo-source="builder" type="application/ld+json"> 176 {"name": "FeedZip.ai", "logo": "https://media.base44.com/images/public/6a99578248760daef8355803/9688d17bd_logo.png", "@context": "https://schema.org", "@type": "Organization", "url": "https://feedzip.ai"} 177 </script>
177 178
178<script data-seo-source="builder" type="application/ld+json"> 179 {"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://feedzip.ai/"}, {"@type": "ListItem", "position": 2, "name": "Privacy", "item": "https://feedzip.ai/Privacy"}]} 180 </script>
180 181 </head> 182 <body> 183 <div id="root"> 184 <div data-seo-source="builder" id="seo-snapshot" style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;"> 185 <main> 186 <header> 187 <h1> 188 Privacy | FeedZip.ai 189 </h1> 190 <p> 191 Privacy on FeedZip.ai. FeedZip. 192 </p> 193 </header> 194 <nav aria-label="Pages"> 195 <h2> 196 Pages 197 </h2> 198 <ul> 199 <li> 200 <a href="/"> 201 Home 202 </a> 203 </li> 204 <li> 205 <a href="/Contact"> 206 Contact 207 </a> 208 â Contact on FeedZip.ai. FeedZip. 209 </li> 210 <li> 211 <a href="/Terms"> 212 Terms 213 </a> 214 â Terms on FeedZip.ai. FeedZip. 215 </li> 216 <li> 217 <a href="/Cookies"> 218 Cookies 219 </a> 220 â Cookies on FeedZip.ai. FeedZip. 221 </li> 222 <li> 223 <a href="/Security"> 224 Security 225 </a> 226 â Security on FeedZip.ai. FeedZip. 227 </li> 228 <li> 229 <a href="/Preflight"> 230 Preflight 231 </a> 232 â Preflight on FeedZip.ai. FeedZip. 233 </li> 234 <li> 235 <a href="/Brands"> 236 Brands 237 </a> 238 â Brands on FeedZip.ai. FeedZip. 239 </li> 240 <li> 241 <a href="/Agencies"> 242 Agencies 243 </a> 244 â Agencies on FeedZip.ai. FeedZip. 245 </li> 246 <li> 247 <a href="/Commerce-Teams"> 248 Commerce Teams 249 </a> 250 â Commerce Teams on FeedZip.ai. FeedZip. 251 </li> 252 <li> 253 <a href="/Product-Truth"> 254 Product Truth 255 </a> 256 â Product Truth on FeedZip.ai. FeedZip. 257 </li> 258 <li> 259 <a href="/How-It-Works"> 260 How It Works 261 </a> 262 â How It Works on FeedZip.ai. FeedZip. 263 </li> 264 <li> 265 <a href="/Knowledge"> 266 Knowledge 267 </a> 268 â Knowledge on FeedZip.ai. FeedZip. 269 </li> 270 <li> 271 <a href="/Channels"> 272 Channels 273 </a> 274 â Channels on FeedZip.ai. FeedZip. 275 </li> 276 <li> 277 <a href="/Knowledge/Preflight-vs-Feed-Management"> 278 Preflight Vs Feed Management 279 </a> 280 â Knowledge / Preflight Vs Feed Management on FeedZip.ai. FeedZip. 281 </li> 282 <li> 283 <a href="/Knowledge/Product-Suppression"> 284 Product Suppression 285 </a> 286 â Knowledge / Product Suppression on FeedZip.ai. FeedZip. 287 </li> 288 <li> 289 <a href="/Knowledge/Silent-Suppression"> 290 Silent Suppression 291 </a> 292 â Knowledge / Silent Suppression on FeedZip.ai. FeedZip. 293 </li> 294 <li> 295 <a href="/Knowledge/Recovery-and-Appeals"> 296 Recovery And Appeals 297 </a> 298 â Knowledge / Recovery And Appeals on FeedZip.ai. FeedZip. 299 </li> 300 <li> 301 <a href="/Channels/Google"> 302 Google Channel 303 </a> 304 â Channels / Google on FeedZip.ai. FeedZip. 305 </li> 306 <li> 307 <a href="/Channels/Meta"> 308 Meta Channel 309 </a> 310 â Channels / Meta on FeedZip.ai. FeedZip. 311 </li> 312 <li> 313 <a href="/Channels/Amazon"> 314 Amazon Channel 315 </a> 316 â Channels / Amazon on FeedZip.ai. FeedZip. 317 </li> 318 <li> 319 <a href="/Amazon"> 320 Amazon Page 321 </a> 322 â Amazon on FeedZip.ai. FeedZip. 323 </li> 324 <li> 325 <a href="/AI-Shopping"> 326 AI Shopping 327 </a> 328 â AI Shopping on FeedZip.ai. FeedZip. 329 </li> 330 <li> 331 <a href="/API"> 332 Api 333 </a> 334 â Api on FeedZip.ai. FeedZip. 335 </li> 336 <li> 337 <a href="/Suppression"> 338 Suppression 339 </a> 340 â Suppression on FeedZip.ai. FeedZip. 341 </li> 342 <li> 343 <a href="/Why"> 344 Why 345 </a> 346 â Why on FeedZip.ai. FeedZip. 347 </li> 348 <li> 349 <a href="/Protocol"> 350 Protocol 351 </a> 352 â Protocol on FeedZip.ai. FeedZip. 353 </li> 354 </ul> 355 </nav> 356 </main> 357 </div> 358 </div> 359 </body> 360</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.