1<!DOCTYPE html> 2<html lang="en" data-theme="light"> 3<head> 4<meta charset="UTF-8"/>
5<script data-cfasync="false" id="lp-resource-hints">(function(){ 6 if(location.pathname!=='/'&&!/^\/lp-beta\/?$/.test(location.pathname))return; 7 [{"rel":"modulepreload","href":"/assets/landing-beta-T-bJstPN.js","crossOrigin":""},{"rel":"modulepreload","href":"/assets/lp-beta-scene-DlirjNEk.js","crossOrigin":""},{"rel":"preload","as":"style","href":"/assets/landing-beta-D846QIT5.css"},{"rel":"preload","as":"fetch","href":"/lp-beta/hand-sculpture.glb","crossOrigin":""}].forEach(function(hint){ 8 var link=document.createElement('link'); 9 Object.keys(hint).forEach(function(key){link[key]=hint[key];}); 10 document.head.appendChild(link); 11 }); 12})();</script>
12 13<link rel="icon" type="image/svg+xml" href="/favicon.svg?v=3"/> 14<meta name="viewport" content="width=device-width, initial-scale=1"/> 15 16<!-- ââ SEO / social ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ 17 These are the DEFAULTS (landing page). They are rewritten per route two ways, 18 both fed by the single table in seo/pages.js: 19 · at runtime, by seo/apply.js â metadata on client-side navigation 20 · at build time, by vite.config.js, which writes one <head> shell per 21 public route into dist/ â what Slack, X, Facebook and WhatsApp read 22 The main LP also includes its React-rendered content and CSS at build time; 23 the browser hydrates that same content instead of replacing it. 24 (social crawlers do NOT run JS) 25 Nothing here should be edited by hand: change seo/pages.js instead. 26âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ --> 27<title>Pricing · One Radar</title> 28<meta name="description" content="One Radar plans and pricing. Ad library, brand and product intelligence, and the full AI creative studio in a single subscription. Start free, upgrade anytime."/> 29<meta name="robots" content="index,follow,max-image-preview:large,max-snippet:-1,max-video-preview:-1"/> 30<link rel="canonical" href="https://one-radar.com/pricing/"/> 31<meta property="og:site_name" content="One Radar"/> 32<meta property="og:type" content="article"/> 33<meta property="og:url" content="https://one-radar.com/pricing/"/> 34<meta property="og:title" content="Pricing · One Radar"/> 35<meta property="og:description" content="One Radar plans and pricing. Ad library, brand and product intelligence, and the full AI creative studio in a single subscription. Start free, upgrade anytime."/> 36<meta property="og:image" content="https://one-radar.com/og.png?v=2"/> 37<meta property="og:image:width" content="1200"/> 38<meta property="og:image:height" content="630"/> 39<meta property="og:image:alt" content="One Radar · see what's winning in ecom, right now."/> 40<meta property="og:locale" content="en_US"/> 41<meta name="twitter:card" content="summary_large_image"/> 42<meta name="twitter:title" content="Pricing · One Radar"/> 43<meta name="twitter:description" content="One Radar plans and pricing. Ad library, brand and product intelligence, and the full AI creative studio in a single subscription. Start free, upgrade anytime."/> 44<meta name="twitter:image" content="https://one-radar.com/og.png?v=2"/> 45<meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)"/> 46<meta name="theme-color" content="#0c0e13" media="(prefers-color-scheme: dark)"/> 47<link rel="apple-touch-icon" href="/favicon.svg"/>
48<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://one-radar.com/#organization","name":"One Radar","url":"https://one-radar.com/","logo":"https://one-radar.com/favicon.svg","description":"One Radar is an ecommerce intelligence and AI creative platform: Facebook ad library search, brand and product sales data, and AI image, video and copy generation."},{"@type":"WebSite","@id":"https://one-radar.com/#website","url":"https://one-radar.com/","name":"One Radar","publisher":{"@id":"https://one-radar.com/#organization"},"inLanguage":"en"},{"@type":"SoftwareApplication","@id":"https://one-radar.com/#app","name":"One Radar","applicationCategory":"BusinessApplication","operatingSystem":"Web","url":"https://one-radar.com/","description":"Search 200M+ live Facebook ads, see the real revenue and best-sellers behind any Shopify store, then turn the winners into your own creatives with built-in AI.","featureList":["Facebook Ad Library search across 200M+ live ads","Estimated daily ad spend, reach and creative lifespan","Brand intelligence: revenue, monthly visitors and growth","Real Shopify product sales and best-seller tracking","Saved boards and shareable swipe files","AI image, video and hook generation"],"offers":{"@type":"Offer","category":"subscription","url":"https://one-radar.com/pricing"}}]}</script>
48 49<link rel="preconnect" href="https://fonts.googleapis.com"/> 50<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin/> 51<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;450;500;550;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet"/>
52<script src="https://accounts.google.com/gsi/client" async defer type="eaa65a437254cb01b032be5a-text/javascript"></script>
vendor: 1 bytes, line 52
52
53<script data-cfasync="false"> 54 // Apply the saved theme before the bundle paints, so there's no lightâdark flash. 55 (function () { 56 try { 57 var t = localStorage.getItem('1radar_theme'); 58 if (t === 'dark' || t === 'light') document.documentElement.setAttribute('data-theme', t); 59 } catch (e) {} 60 })(); 61</script>
vendor: 1 bytes, line 61
61
62<script data-cfasync="false"> 63 // Config runtime : l'URL de l'API bascule selon le domaine, sans rebuild. 64 // localhost (npm run dev) â backend local ; sinon â sous-domaine api de prod. 65 // S'exécute avant le bundle, donc window.APP_CONFIG.API_BASE est dispo partout. 66 (function () { 67 var local = /^(localhost|127\.0\.0\.1)$/.test(location.hostname); 68 window.APP_CONFIG = { 69 API_BASE: local ? 'http://localhost:3001/api' : 'https://api.one-radar.com/api', 70 }; 71 })(); 72</script>
72 73<!-- X (Twitter) Pixel â tag de base (config). Les events de conversion sont 74 déclenchés depuis le code via components/x-pixel.js. -->
75<script data-cfasync="false"> 76 !function(e,t,n,s,u,a){e.twq||(s=e.twq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments); 77 },s.version='1.1',s.queue=[],u=t.createElement(n),u.async=!0,u.src='https://static.ads-twitter.com/uwt.js', 78 a=t.getElementsByTagName(n)[0],a.parentNode.insertBefore(u,a))}(window,document,'script'); 79 twq('config','reaj3'); 80 81 // twclid = l'identifiant de clic que X accroche à l'URL de destination d'une 82 // ad. uwt.js le lit lui-même, mais il est chargé en ASYNC alors que notre 83 // routeur réécrit l'URL sur un chemin nu (Router.toPath ne rend jamais de 84 // query string) dès le premier rendu : si le bundle gagne la course, le 85 // twclid est perdu sans bruit. On le capture donc ici, en synchrone, avant 86 // que le module d'entrée ne s'exécute (type="module" = différé). 87 // C'est aussi l'identifiant que la Conversion API réclamera côté serveur, où 88 // le cookie de X ne nous est d'aucun secours. 89 try { 90 var __twclid = new URLSearchParams(location.search).get('twclid'); 91 // 30 jours : la fenêtre d'attribution la plus large de X. 92 if (__twclid) localStorage.setItem('1radar_twclid', JSON.stringify({ v: __twclid, at: Date.now() })); 93 } catch (e) { /* mode privé / quota : on retombe sur l'email hashé */ } 94</script>
94 95<style> 96 @keyframes rise { from { opacity: 0; transform: translate(-50%, 12px); } to { opacity: 1; transform: translate(-50%, 0); } } 97 @keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: 0.4; } } 98 @keyframes spin { to { transform: rotate(360deg); } } 99 @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } 100 textarea, input { font-family: inherit; color: inherit; } 101 textarea::placeholder, input::placeholder { color: var(--text-faint); } 102</style> 103
103<script data-cfasync="false" type="module" crossorigin src="/assets/index-CW---JQi.js"></script>
103 104 <link rel="stylesheet" crossorigin href="/assets/index-5vltjpqK.css"> 105</head> 106<body> 107<div id="app"></div>
vendor: 143 bytes, lines 107-108
107 108<script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="eaa65a437254cb01b032be5a-|49" defer></script>
108<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"93aef55a34794729966a16bc08b39328","r":1,"spa":2}' crossorigin="anonymous"></script>
108 109</body> 110</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.