window.dataLayer = window.dataLayer || []; (function (w, d, s, l, i) { var fired = false; var evts = ['pointerdown', 'keydown', 'scroll', 'touchstart']; var opts = { once: true, passive: true, capture: true }; function load() { if (fired) return; fired = true; evts.forEach(function (e) { w.removeEventListener(e, load, opts); }); w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); } // OAuth / magic-link return: capture the queued conversion, never defer. if (/[?&]code=/.test(w.location.search)) { load(); return; } evts.forEach(function (e) { w.addEventListener(e, load, opts); }); function idle() { if ('requestIdleCallback' in w) w.requestIdleCallback(load, { timeout: 3500 }); else w.setTimeout(load, 3500); } if (d.readyState === 'complete') idle(); else w.addEventListener('load', idle, { once: true }); })(window, document, 'script', 'dataLayer', 'GTM-M57NNPXT'); only mounts after authentication, so without this a dark-mode user would briefly see a light screen on every load. --> try { if (localStorage.getItem('chroma-theme') === 'dark') { document.documentElement.setAttribute('data-theme', 'dark'); } } catch (e) { /* localStorage unavailable (private mode) — keep default */ } so the CSS below hides #root and shows a neutral boot splash until React takes over (BootSplashHandoff clears the marker on first commit). No token (logged-out visitor / crawler) => unchanged: the prerendered landing renders as before, so SEO is unaffected. --> try { if (localStorage.getItem('token')) { document.documentElement.classList.add('app-booting'); } } catch (e) { /* localStorage unavailable (private mode) — keep the landing */ } #app-boot-splash { display: none; } html.app-booting #root { display: none !important; } html.app-booting #app-boot-splash { display: flex; position: fixed; inset: 0; z-index: 2147483647; align-items: center; justify-content: center; background: #ffffff; } html[data-theme="dark"].app-booting #app-boot-splash { background: #0f0f17; } .app-boot-spinner { width: 42px; height: 42px; border-radius: 50%; border: 3px solid rgba(127, 127, 127, 0.25); border-top-color: #6366f1; animation: app-boot-spin 0.8s linear infinite; } @keyframes app-boot-spin { to { transform: rotate(360deg); } } Kuroma: AI Brand Intelligence | See How AI Talks About Your Brand fallback keeps fonts blocking for no-JS crawlers. --> { "@context": "https://schema.org", "@type": "Organization", "name": "iKala", "url": "https://ikala.ai", "logo": "/Chroma-logo.png" } { "@context": "https://schema.org", "@type": "WebSite", "name": "Kuroma", "url": "https://kuroma.ai/", "publisher": { "@type": "Organization", "name": "iKala", "url": "https://ikala.ai" }, "potentialAction": { "@type": "SearchAction", "target": { "@type": "EntryPoint", "urlTemplate": "https://kuroma.ai/?q={search_term_string}" }, "query-input": "required name=search_term_string" } } { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "https://kuroma.ai/" }, { "@type": "ListItem", "position": 2, "name": "AI Readiness Audit", "item": "https://kuroma.ai/ai-readiness" } ] } { "@context": "https://schema.org", "@type": "SoftwareApplication", "name": "Kuroma", "applicationCategory": "BusinessApplication", "operatingSystem": "Web", "description": "Generative Engine Optimization (GEO) platform that tracks brand visibility across AI-powered search platforms including ChatGPT, Perplexity, Gemini, Claude, Grok, and Google AI.", "offers": { "@type": "Offer", "price": "0", "priceCurrency": "USD" }, "author": { "@type": "Organization", "name": "iKala", "url": "https://ikala.ai" }, "featureList": [ "ChatGPT visibility tracking", "Perplexity visibility tracking", "Gemini visibility tracking", "Claude visibility tracking", "Grok visibility tracking", "Google AI Overviews tracking", "Google AI Mode tracking", "Monte Carlo visibility simulation", "AI Readiness Audit with 18 scoring factors", "Auto website crawl and Brand Kit", "Fact conflict detection", "Brand Facts for verified brand data", "AI traffic attribution", "142 market support" ] } { "@context": "https://schema.org", "@type": "HowTo", "name": "How to measure your brand's AI visibility with Kuroma", "description": "The four-step Kuroma method for measuring and improving how AI assistants describe, cite, and recommend your brand.", "step": [ { "@type": "HowToStep", "position": 1, "name": "Scan", "text": "Query ChatGPT, Perplexity, Gemini, Claude, Grok, and Google AI with synthetic buyer personas to capture how AI talks about your brand." }, { "@type": "HowToStep", "position": 2, "name": "Verify", "text": "Cross-reference every AI claim against real web sources to separate accurate statements from hallucinations." }, { "@
FACT BOX ・ 要点整理
- 出典:hub
- 分類:ニュース