1<!doctype html> 2<html lang="es"> 3 <head> 4 <meta charset="UTF-8" /> 5
5<script> 6 window.dataLayer = window.dataLayer || []; 7 function gtag(){dataLayer.push(arguments);} 8 gtag('consent', 'default', { 9 ad_storage: 'denied', 10 ad_user_data: 'denied', 11 ad_personalization: 'denied', 12 analytics_storage: 'denied', 13 functionality_storage: 'granted', 14 security_storage: 'granted', 15 wait_for_update: 500 16 }); 17 // Sync consent update from prior visit BEFORE gtm.start. Otherwise 18 // GTM evaluates triggers under the denied defaults and tags with 19 // "Require analytics_storage" stay blocked even when an update is 20 // pushed later in the page lifecycle (wait_for_update only covers 21 // the first-decision case, not returning visitors). 22 try { 23 const saved = localStorage.getItem('photoidea_consent_mode'); 24 if (saved) { 25 gtag('consent', 'update', JSON.parse(saved)); 26 } else { 27 const legacy = localStorage.getItem('photoidea_cookie_consent'); 28 if (legacy === 'accepted' || legacy === 'rejected') { 29 const granted = legacy === 'accepted'; 30 const state = { 31 ad_storage: granted ? 'granted' : 'denied', 32 ad_user_data: granted ? 'granted' : 'denied', 33 ad_personalization: granted ? 'granted' : 'denied', 34 analytics_storage: granted ? 'granted' : 'denied' 35 }; 36 gtag('consent', 'update', state); 37 localStorage.setItem('photoidea_consent_mode', JSON.stringify(state)); 38 } 39 } 40 } catch (e) {} 41 </script>
41 42 <!-- Google Tag Manager --> 43
43<script>
vendor: 343 bytes, lines 43-47
43(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 44 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 45 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 46 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 47 })(window,document,'script','dataLayer','
47GTM-59G7HW8P
vendor: 3 bytes, line 47
47');
47</script>
47 48 <!-- End Google Tag Manager --> 49 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 50 <title>Photoidea Gifts</title> 51 <meta name="description" content="Tu tienda online de regalos personalizados y revelado de fotos. Crea regalos únicos con tus propias fotos de forma fácil y rápida." /> 52 <meta name="author" content="Photoidea" /> 53 54 <!-- Open Graph / Facebook --> 55 <meta property="og:title" content="Photoidea Gifts" /> 56 <meta property="og:description" content="Regalos personalizados y revelado de fotos de alta calidad. Diseña y personaliza tus productos de forma sencilla." /> 57 <meta property="og:type" content="website" /> 58 <meta property="og:image" content="/images/logo-footer.webp" /> 59 60 <!-- Twitter --> 61 <meta name="twitter:card" content="summary_large_image" /> 62 <meta name="twitter:image" content="/images/logo-footer.webp" /> 63 <link rel="icon" href="/favicon.ico" type="image/x-icon" /> 64 <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" /> 65 <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" /> 66 <link rel="icon" type="image/png" sizes="48x48" href="/favicon-48x48.png" /> 67 <link rel="icon" type="image/png" href="/favicon-150x150.png" /> 68 <link rel="apple-touch-icon" href="/apple-touch-icon.png" /> 69 <!-- Google Fonts --> 70 <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Playfair+Display:wght@700&display=swap" rel="stylesheet"/> 71 <link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,[email protected],100..700,0..1,-50..200" rel="stylesheet"/> 72
72<script type="module" crossorigin src="/assets/index-BCAuMSLh.js"></script>
72 73 <link rel="stylesheet" crossorigin href="/assets/index-BFCNUQoa.css"> 74
74<script defer src="/~flock.js" data-proxy-url="/~api/analytics"></script>
74<script defer src="/__l5e/events.1718a1eacac7ff3a.js" data-artifact-kind="dwl_content_hash" data-artifact-id="0f44eca698080060a32e148e5307b86f3387953c3708798e62e8fbf18d89112b" data-commit-sha="07fe2dae76b7110da01e165ff2660d06d0f63619" data-context-token="v1.eyJwcm9qZWN0X2lkIjoibG92cF83ZnR5aDh0eHluOGo2dm5tYmVhY3M1djJlcCIsImFydGlmYWN0X2tpbmQiOiJkd2xfY29udGVudF9oYXNoIiwiYXJ0aWZhY3RfaWQiOiIwZjQ0ZWNhNjk4MDgwMDYwYTMyZTE0OGU1MzA3Yjg2ZjMzODc5NTNjMzcwODc5OGU2MmU4ZmJmMThkODkxMTJiIiwiY29tbWl0X3NoYSI6IjA3ZmUyZGFlNzZiNzExMGRhMDFlMTY1ZmYyNjYwZDA2ZDBmNjM2MTkiLCJleHAiOjE3OTQxNTk4NzJ9.cCkOfjIbjhPMa4EVe1wUF-L5H4Y6WPzQgqk3IXWZKrM"></script>
74<meta name="twitter:title" content="Photoidea Gifts"><meta name="twitter:description" content="Regalos personalizados y revelado de fotos de alta calidad. Diseña y personaliza tus productos de forma sencilla."></head> 75 76 <body> 77
77<script async id="__cn_generic_script__577596fb-2fac-4774-923c-2738666b1db6">!function(t){function e(){if(!t.querySelector("#__cn_client_script_577596fb-2fac-4774-923c-2738666b1db6")){var e=t.createElement("script");e.setAttribute("src","https://cdn.connectif.cloud/eu8/client-script/577596fb-2fac-4774-923c-2738666b1db6"),t.body.appendChild(e)}}"complete"===t.readyState||"interactive"===t.readyState?e():t.addEventListener("DOMContentLoaded",e)}(document);</script>
77 78 <!-- Google Tag Manager (noscript) -->
vendor: 72 bytes, lines 78-79
78 79 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
79GTM-59G7HW8P
vendor: 91 bytes, lines 79-81
79" 80 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 81
81<!-- End Google Tag Manager (noscript) --> 82 <div id="root"></div> 83 </body> 84</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.