CINXE.COM
Your TV set has become a digital billboard. And it’s only getting worse. - Ars Technica
<!doctype html> <html lang="en-US" class="view-grid"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Your TV set has become a digital billboard. And it’s only getting worse. - Ars Technica</title> <style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style> <link rel="preconnect" href="https://c.arstechnica.com"> <!-- The SEO Framework by Sybre Waaijer --> <meta name="robots" content="max-snippet:-1,max-image-preview:large,max-video-preview:-1" /> <link rel="canonical" href="https://arstechnica.com/gadgets/2024/08/tv-industrys-ads-tracking-obsession-is-turning-your-living-room-into-a-store/" /> <meta name="description" content="TV software is getting loaded with ads, changing what it means to own a TV set." /> <meta property="og:type" content="article" /> <meta property="og:locale" content="en_US" /> <meta property="og:site_name" content="Ars Technica" /> <meta property="og:title" content="Your TV set has become a digital billboard. And it’s only getting worse." /> <meta property="og:description" content="TV software is getting loaded with ads, changing what it means to own a TV set." /> <meta property="og:url" content="https://arstechnica.com/gadgets/2024/08/tv-industrys-ads-tracking-obsession-is-turning-your-living-room-into-a-store/" /> <meta property="og:image" content="https://cdn.arstechnica.net/wp-content/uploads/2024/07/tv-advertising-overload-1152x648.jpg" /> <meta property="og:image:width" content="1152" /> <meta property="og:image:height" content="648" /> <meta property="article:published_time" content="2024-08-19T11:00:30+00:00" /> <meta property="article:modified_time" content="2024-08-19T11:10:31+00:00" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:title" content="Your TV set has become a digital billboard. And it’s only getting worse." /> <meta name="twitter:description" content="TV software is getting loaded with ads, changing what it means to own a TV set." /> <meta name="twitter:image" content="https://cdn.arstechnica.net/wp-content/uploads/2024/07/tv-advertising-overload-1152x648.jpg" /> <script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://arstechnica.com/#/schema/WebSite","url":"https://arstechnica.com/","name":"Ars Technica","description":"Serving the Technologist since 1998. News, reviews, and analysis.","inLanguage":"en-US","potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://arstechnica.com/search/{search_term_string}/"},"query-input":"required name=search_term_string"},"publisher":{"@type":"Organization","@id":"https://arstechnica.com/#/schema/Organization","name":"Ars Technica","url":"https://arstechnica.com/","logo":{"@type":"ImageObject","url":"https://cdn.arstechnica.net/wp-content/uploads/2016/10/cropped-ars-logo-512_480.png","contentUrl":"https://cdn.arstechnica.net/wp-content/uploads/2016/10/cropped-ars-logo-512_480.png","width":512,"height":512,"contentSize":"34417"}}},{"@type":"WebPage","@id":"https://arstechnica.com/gadgets/2024/08/tv-industrys-ads-tracking-obsession-is-turning-your-living-room-into-a-store/","url":"https://arstechnica.com/gadgets/2024/08/tv-industrys-ads-tracking-obsession-is-turning-your-living-room-into-a-store/","name":"Your TV set has become a digital billboard. And it’s only getting worse. - Ars Technica","description":"TV software is getting loaded with ads, changing what it means to own a TV set.","inLanguage":"en-US","isPartOf":{"@id":"https://arstechnica.com/#/schema/WebSite"},"breadcrumb":{"@type":"BreadcrumbList","@id":"https://arstechnica.com/#/schema/BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":"https://arstechnica.com/","name":"Ars Technica"},{"@type":"ListItem","position":2,"item":"https://arstechnica.com/gadgets/","name":"Category: Tech"},{"@type":"ListItem","position":3,"name":"Your TV set has become a digital billboard. And it’s only getting worse."}]},"potentialAction":{"@type":"ReadAction","target":"https://arstechnica.com/gadgets/2024/08/tv-industrys-ads-tracking-obsession-is-turning-your-living-room-into-a-store/"},"datePublished":"2024-08-19T11:00:30+00:00","dateModified":"2024-08-19T11:10:31+00:00","author":{"@type":"Person","@id":"https://arstechnica.com/#/schema/Person/9889bee850917dd9d51b5c8f16dc3f8c","name":"Scharon Harding","description":"Scharon is a Senior Technology Reporter at Ars Technica writing news, reviews, and analysis on consumer gadgets and services. She's been reporting on technology for over 10 years. Before Ars, Scharon managed Tom’s Hardware’s computer peripherals..."}}]}</script> <script type="application/ld+json">{"@context":"https://schema.org","@type":"NewsArticle","mainEntityOfPage":{"@type":"WebPage","@id":"https://arstechnica.com/gadgets/2024/08/tv-industrys-ads-tracking-obsession-is-turning-your-living-room-into-a-store/"},"headline":"Your TV set has become a digital billboard. And it’s only getting worse.","image":{"@type":"ImageObject","url":"https://cdn.arstechnica.net/wp-content/uploads/2024/07/tv-advertising-overload-1152x648.jpg","width":1152,"height":648},"datePublished":"2024-08-19T11:00:30+00:00","dateModified":"2024-08-19T11:10:31+00:00","author":{"@type":"Person","name":"Scharon Harding","url":"https://arstechnica.com/author/scharonharding/"},"publisher":{"@type":"Organization","name":"Ars Technica","logo":{"@type":"ImageObject","url":"https://cdn.arstechnica.net/wp-content/uploads/2024/10/ars-logo-186x60.png","width":186,"height":60}},"description":"TV software is getting loaded with ads, changing what it means to own a TV set."}</script> <!-- / The SEO Framework by Sybre Waaijer | 14.24ms meta | 0.41ms boot --> <link rel="preconnect" href="https://cdn.cookielaw.org"> <link rel="preconnect" href="https://geolocation.onetrust.com"> <!-- OneTrust Cookies Consent Notice start --> <script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" data-domain-script="b10882a1-8446-4e7d-bfb2-ce2c770ad910" ></script> <script id="oneTrustScripts"> window.OptanonWrapper = function() { var CCPAButton = document.getElementById('ot-sdk-btn'); CCPAButton && CCPAButton.classList.add('ot-sdk-btn--visible'); window.dataLayer && window.dataLayer.push({ event: 'OneTrustGroupsUpdated' }); window.cnBus && window.cnBus.emit('onetrust.OneTrustGroupsUpdated'); }; </script> <script src="https://cdn.cookielaw.org/opt-out/otCCPAiab.js" ccpa-opt-out-ids="C0002,C0003,C0004,C0005" ccpa-opt-out-geo="ca" ccpa-opt-out-lspa="true" ></script> <!-- OneTrust Cookies Consent Notice end --> <!-- Google Tag Manager DataLayer --> <script> window.dataLayer = window.dataLayer || []; window.dataLayer.push({"event":"data-layer-loaded","user":{"ars_userId":undefined,"amg_userId":undefined,"uID":undefined,"sID":undefined,"loginStatus":false,"subscriberStatus":"none","infinityId":undefined,"registrationSource":undefined,"mdw_cnd_id":undefined,"monthlyVisits":undefined,"accessPaywall":undefined,"view":"grid","theme":"system","show_comments":undefined},"content":{"pageTemplate":"single","pageType":"article|report","contentCategory":"homepage","section":"homepage","subsection":undefined,"contributor":"Scharon Harding","contentID":2027078,"contentLength":3546,"display":"Your TV set has become a digital billboard. And it\u2019s only getting worse.","contentSource":"web","pageAssets":undefined,"uniqueContentCount":undefined,"monthlyContentCount":undefined,"publishDate":"2024-08-19T11:00:30-04:00","modifiedDate":"2024-08-19T11:10:31-04:00","keywords":"ads|Amazon|fire tv|LG|roku|Samsung|TVs","dataSource":undefined},"marketing":{"campaignName":undefined,"circCampaignId":undefined,"internalCampaignId":undefined,"brand":"Ars Technica","certified_mrc_data":undefined,"condeNastId":undefined},"page":{"pID":undefined,"syndicatorUrl":undefined,"pageURL":"https:\/\/arstechnica.com\/?p=2027078","canonical":"https:\/\/arstechnica.com\/gadgets\/2024\/08\/tv-industrys-ads-tracking-obsession-is-turning-your-living-room-into-a-store\/","canonicalPathName":"\/gadgets\/2024\/08\/tv-industrys-ads-tracking-obsession-is-turning-your-living-room-into-a-store\/"},"search":{"facets":undefined,"searchTerms":undefined},"site":{"appVersion":"1.0.0"}}); </script> <!-- End Google Tag Manager DataLayer --> <!-- Google Tag Manager --> <script> (function(w, d, s, l, i) { w[l] = w[l] || []; 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); })(window, document, 'script', 'dataLayer', 'GTM-NLXNPCQ'); </script> <!-- End Google Tag Manager --> <style id='elasticpress-related-posts-style-inline-css'> .editor-styles-wrapper .wp-block-elasticpress-related-posts ul,.wp-block-elasticpress-related-posts ul{list-style-type:none;padding:0}.editor-styles-wrapper .wp-block-elasticpress-related-posts ul li a>div{display:inline} </style> <link rel='stylesheet' id='elasticpress-facets-css' href='https://cdn.arstechnica.net/wp-content/plugins/_composer_elasticpress/dist/css/facets-styles.css?ver=c9522f0c99a65a07c9c3' media='all' /> <link rel='stylesheet' id='searchterm-highlighting-css' href='https://cdn.arstechnica.net/wp-content/plugins/_composer_elasticpress/dist/css/highlighting-styles.css?ver=252562c4ed9241547293' media='all' /> <link rel='stylesheet' id='app/0-css' href='https://cdn.arstechnica.net/wp-content/themes/ars-v9/public/css/app.661760.css' media='all' /> <link rel='stylesheet' id='ads/0-css' href='https://cdn.arstechnica.net/wp-content/themes/ars-v9/public/css/ads.a55585.css' media='all' /> <script src="https://cdn.arstechnica.net/wp-content/themes/ars-v9/resources/scripts/jquery-3.7.1.min.js?ver=3.7.1" id="jquery-js"></script> <meta property="article:published_time" content="2024-08-19T11:00:30+00:00"> <meta property="article:modified_time" content="2024-08-19T11:10:31+00:00"> <script>window.ars = {"subscriber":false,"hasAdFree":false,"hasTrackerFree":false,"loggedIn":false}</script> <script> const theme = "system"; let darkMode = false; if (theme === "dark" || (theme === "system" && (window.matchMedia("(prefers-color-scheme: dark)").matches))) { darkMode = true; document.documentElement.classList.add("dark"); } if (theme === "dusk" || (theme === "system" && (window.matchMedia("(prefers-color-scheme: light)").matches))) { darkMode = false; document.documentElement.classList.add("dusk"); } if (theme === "light") { darkMode = false; document.documentElement.classList.add("light"); } window.darkMode = darkMode; </script> <script> const settings = JSON.parse(localStorage.getItem("text-settings")) || {}; const { size = "standard", links = "standard", width = "standard", position="story" } = settings; const html = document.querySelector("html"); html.classList.add(`text-settings-size-${size}`); html.classList.add(`text-settings-links-${links}`); html.classList.add(`text-settings-width-${width}`); html.classList.add(`text-settings-position-${position}`); </script> <meta name="twitter:site" content="@arstechnica" /> <meta name="twitter:domain" content="arstechnica.com" /> <meta property="facebook-domain-verification" content="qptjyerza2q11uv3fe6aay6hbsncr8" /> <style>[x-cloak] { display: none !important; }</style> <link rel="preconnect" href="https://globalservices.conde.digital"> <link rel="preconnect" href="https://player.cnevids.com"> <script> window.permutiveCohorts = {"cached_until":{"date":"2025-02-17 18:34:55.031375","timezone_type":3,"timezone":"UTC"},"cohorts":["bycp","bxyq","bxxx","bydf","bxyp","bjfa","bxxe"],"activations":{"target_dfp":["bycp","bxyq","bxxx","bydf","bxyp","bjfa","bxxe"]},"contextual_data":{"classifications":null},"gam":["bycp","bxyq","bxxx","bydf","bxyp","bjfa","bxxe"],"xandr":[],"config":{"time_to_wait_for_consent_in_millis":4000}}; window.permutiveContextInfo = {"pageProperties":{"client":{"url":"https:\/\/arstechnica.com\/gadgets\/2024\/08\/tv-industrys-ads-tracking-obsession-is-turning-your-living-room-into-a-store\/","referrer":"","type":"web","user_agent":"Mozilla\/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)","domain":"arstechnica.com","title":"Your TV set has become a digital billboard. And it\u2019s only getting worse. - Ars Technica"},"type":"article","article":{"id":"2027078","category":"gadgets","subcategory":"","title":"Your TV set has become a digital billboard. And it\u2019s only getting worse.","tags":["ads","amazon-2","fire-tv","lg-2","roku","samsung-2","tvs"]}},"url":"https:\/\/arstechnica.com\/gadgets\/2024\/08\/tv-industrys-ads-tracking-obsession-is-turning-your-living-room-into-a-store\/"}; </script> <script src="https://www.googletagservices.com/tag/js/gpt.js" id="gpt-script" async ></script> <script> window.googletag = window.googletag || {}; window.googletag.cmd = window.googletag.cmd || []; window.cns = window.cns || {}; window.cns.queue = []; window.cns.async = function(s, c) { cns.queue.push({ service: s, callback: c }) }; window.cns.pageContext = {"contentType":"article","templateType":"article","channel":"gadgets","subChannel":"","slug":"tv-industrys-ads-tracking-obsession-is-turning-your-living-room-into-a-store","server":"production","keywords":{"tags":["ads","amazon-2","fire-tv","lg-2","roku","samsung-2","tvs"],"cm":[],"platform":["wordpress"],"copilotid":""}}; </script> <script src="https://ads-static.conde.digital/production/cns/builds/ars-technica/ars-technica.min.js" async ></script> <script type="text/javascript"> window._taboola = window._taboola || []; _taboola.push({ article: 'auto' }); ! function(e, f, u, i) { if (!document.getElementById(i)) { e.async = 1; e.src = u; e.id = i; f.parentNode.insertBefore(e, f); } }(document.createElement('script'), document.getElementsByTagName('script')[0], '//cdn.taboola.com/libtrc/condenast1-network/loader.js', 'tb_loader_script'); if (window.performance && typeof window.performance.mark == 'function') { window.performance.mark('tbl_ic'); } </script> <script type="text/javascript">!(function(o,_name){function n(){(n.q=n.q||[]).push(arguments)}n.v=1,o[_name]=o[_name]||n;!(function(o,t,n,c){function e(n){(function(){try{return(localStorage.getItem("v4ac1eiZr0")||"").split(",")[4]>0}catch(o){}return!1})()&&(n=o[t].pubads())&&n.setTargeting("admiral-engaged","true")}(c=o[t]=o[t]||{}).cmd=c.cmd||[],typeof c.pubads===n?e():typeof c.cmd.unshift===n?c.cmd.unshift(e):c.cmd.push(e)})(window,"googletag","function");})(window,String.fromCharCode(97,100,109,105,114,97,108));!(function(t,c,i){i=t.createElement(c),t=t.getElementsByTagName(c)[0],i.async=1,i.src="https://shiverscissors.com/v2fumwIJOo-LsCB0dlG18VSTW43CpWhUEPJuKeRTzrEQdSPPlMr5GymU",t.parentNode.insertBefore(i,t)})(document,"script");</script> <meta name="twitter:partner" content="tfwp"><meta name='parsely-page' content='{"title":"Your TV set has become a digital billboard. And it\u2019s only getting worse.","link":"https:\/\/arstechnica.com\/gadgets\/2024\/08\/tv-industrys-ads-tracking-obsession-is-turning-your-living-room-into-a-store\/","type":"post","author":"Scharon Harding","post_id":2027078,"pub_date":"2024-08-19T07:00:30-04:00","section":"Tech","tags":["ads","amazon-2","fire-tv","lg-2","roku","samsung-2","tvs"],"image_url":"https:\/\/cdn.arstechnica.net\/wp-content\/uploads\/2024\/07\/tv-advertising-overload-500x500.jpg"}'> <meta name='parsely-metadata' content='{"type":"post","title":"Your TV set has become a digital billboard. And it\u2019s only getting worse.","post_id":2027078,"lower_deck":"TV software is getting loaded with ads, changing what it means to own a TV set.","image_url":"https:\/\/cdn.arstechnica.net\/wp-content\/uploads\/2024\/07\/tv-advertising-overload-500x500.jpg","listing_image_url":"https:\/\/cdn.arstechnica.net\/wp-content\/uploads\/2024\/07\/tv-advertising-overload-768x432.jpg"}'> <!-- Start Headline A/B --> <script type="text/javascript"> class ABTest { constructor(post_id, init_method) { this.post_id = post_id; this.ajaxurl = '/services/ars-ajax-handler.php'; this.expireDays = 1 / 48; // 30 min this.group = this.getGroup(); this.uid = this.getUid(); this.init_method = init_method; this.setTitle(); if (this.init_method === 'click') { this.click(); } else { this.impression(); } } setCookie(name, value, days) { var expires = ""; if (days) { var date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); expires = "; expires=" + date.toUTCString(); } document.cookie = name + "=" + (value || "") + expires + "; path=/"; } getCookie(name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) == ' ') c = c.substring(1, c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); } return null; } // Retrieves a unique id for determining whether the event should be recorded getUid() { var uid = this.getCookie('ars_ab_' + this.post_id + '_uid'); if (!uid) { uid = (Math.random() + 1).toString(36).substring(2, 7); this.setCookie('ars_ab_' + this.post_id + '_uid', uid, this.expireDays); } return uid; }; // Places the user in either A or B for this post id getGroup() { var group = this.getCookie('ars_ab_' + this.post_id + '_group'); if (!group) { group = String.fromCharCode(Math.floor(Math.random() * 2) + 65).toLowerCase(); this.setCookie('ars_ab_' + this.post_id + '_group', group, this.expireDays); } return group; }; // Records a headline impression (from homepage or other listing) impression() { // Send fake ajax var params = { nonce: '4ae25639ce', action: 'ars_ab_impression', id: this.post_id, group: this.group, uid: this.uid, ts: (new Date()).getTime() }; var url = this.ajaxurl + '?' + this.encodeParams(params); document.write('\x3Cscript type="text/javascript" src="' + url + '">\x3C/script>'); }; // Records a headline click from the actual post page click() { // Send fake ajax var params = { nonce: '398eca0b75', action: 'ars_ab_click', id: this.post_id, group: this.group, uid: this.uid, ts: (new Date()).getTime() }; var url = this.ajaxurl + '?' + this.encodeParams(params); document.write('\x3Cscript type="text/javascript" src="' + url + '">\x3C/script>'); }; // If user is in B group, dynamically set title setTitle() { if (this.group == 'b') { var span = document.getElementById('ars_ab_' + this.post_id); var title = span.parentNode; title.innerHTML = span.getAttribute('data-title-b'); } }; encodeParams(data) { var ret = []; for (var d in data) ret.push(encodeURIComponent(d) + "=" + encodeURIComponent(data[d])); return ret.join("&"); }; }; </script> <!-- End Headline A/B --> <link rel="icon" href="https://cdn.arstechnica.net/wp-content/uploads/2016/10/cropped-ars-logo-512_480-60x60.png" sizes="32x32" /> <link rel="icon" href="https://cdn.arstechnica.net/wp-content/uploads/2016/10/cropped-ars-logo-512_480-300x300.png" sizes="192x192" /> <link rel="apple-touch-icon" href="https://cdn.arstechnica.net/wp-content/uploads/2016/10/cropped-ars-logo-512_480-300x300.png" /> <meta name="msapplication-TileImage" content="https://cdn.arstechnica.net/wp-content/uploads/2016/10/cropped-ars-logo-512_480-300x300.png" /> <!-- generated in 0.474 seconds 174374 bytes batcached for 300 seconds view: grid theme: system xf_style_id: 3 --> </head> <body class="post-template post-template-template-intro-image single single-post postid-2027078 single-format-standard wp-embed-responsive tv-industrys-ads-tracking-obsession-is-turning-your-living-room-into-a-store bg-white dusk:bg-gray-100 text-gray-700 dark:text-gray-250 dark:bg-gray-50 singular"> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NLXNPCQ" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <div id="app"> <a class="sr-only focus:not-sr-only" href="#main"> Skip to content </a> <div class="ad-wrapper is-fullwidth is-hero"> <div class="ad-wrapper-inner"> <div class="ad ad--hero"></div> </div> </div> <header class="banner font-impact xxl:max-w-xxl mdl:rounded-sm sticky top-0 z-30 mx-auto flex h-14 max-w-6xl flex-row flex-nowrap items-center justify-between bg-gray-700 px-[15px] font-semibold uppercase transition-[top] duration-500 dark:bg-black sm:px-5 md:my-5 md:h-10 lg:my-10" id="site-header"> <a id = "header-logo" href="https://arstechnica.com/" aria-label="Ars Technica home"> <span class="sr-only">Ars Technica home</span> <svg class="h-[36px] w-[109px] md:h-[65px] md:w-[197px]" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 436 144.1"><defs><clipPath id="ars-full_svg__a"><path fill="none" d="M0 0h436v144.1H0z"/></clipPath><clipPath id="ars-full_svg__b"><path fill="none" d="M0 0h436v144.1H0z"/></clipPath></defs><g clip-path="url(#ars-full_svg__a)"><g fill="none" clip-path="url(#ars-full_svg__b)"><path fill="#ff4e00" d="M72 0c39.8 0 72.1 32.3 72.1 72.1s-32.3 72.1-72.1 72.1S0 111.8 0 72.1 32.3 0 72 0"/><path fill="#fff" d="m46.5 94-.9-5.9c-4 4.4-9.6 6.8-15.6 6.8-8 0-13-4.8-13-12.3 0-11 9.4-15.4 27.8-17.3v-1.9c0-5.6-3.3-7.5-8.4-7.5s-10.5 1.7-15.3 3.8L20 52.6c5.3-2.1 10.3-3.7 17.1-3.7 10.7 0 15.9 4.3 15.9 14.2v30.8h-6.7Zm-1.6-22.4c-16.3 1.6-19.7 6-19.7 10.6s2.4 5.9 6.6 5.9 9.4-2.4 13.1-6.2zm27.3-3.7v26H64v-44h6.6l1.4 9c3.1-5 8.2-9.5 15.5-9.9l1.3 7.9c-7.4.3-13.6 5.2-16.6 11m37.2 26.9c-5.6-.1-11.1-1.6-16.1-4.2l1.2-7.8c4.6 3.2 10 5 15.6 5.1 5.6 0 9-2.1 9-5.8s-2.5-5.6-10.5-7.5C98.2 72 94.1 68.9 94.1 61s5.9-12.2 15.6-12.2c5 0 9.9 1 14.5 3l-1.3 7.8c-4.1-2.4-8.7-3.7-13.4-3.8-5 0-7.6 1.9-7.6 5.1s2.2 4.6 9.2 6.4c10.9 2.8 15.8 5.9 15.8 14.3s-6.1 13.2-17.5 13.2m109.4-11.1c-4.4 3.7-8.4 5-12.8 5-7.7 0-12.7-5.3-13.5-14h24.8l.9-5.5h-25.7c.8-8.7 5.7-14.1 12.9-14.1s8.8 1.7 12.9 5.1l1-5.9c-4-2.9-8.8-4.4-13.7-4.3-10.7 0-19.2 7.8-19.2 21.9s8.3 21.9 18.9 21.9c5.2.1 10.2-1.6 14.3-4.8zm-48.7-27.5v36.9h-5.8V56.2h-13.4v-5.3H183l.9 5.3H170Zm74.5 37.6c-11.9 0-19.5-8.8-19.5-21.8s7.8-22 19.6-22c4.3-.1 8.5 1.1 12 3.5l-.9 5.9c-3.2-2.6-7.1-4-11.2-4.1-8.6 0-13.6 6.5-13.6 16.6s5.1 16.6 13.6 16.6c4.3 0 8.5-1.6 11.9-4.2l.9 5.4c-3.7 2.6-8.2 4.1-12.8 4.1M292 93V73.5h-21.4V93h-5.8V50.9h5.8v17.5H292V50.9h5.8V93zm42.9 0-23.2-32.8V93h-5.3V50.9h5.1l22.4 31.5V50.9h5.3V93zm13.4-42.1h5.8V93h-5.8zm32.6 42.9c-11.9 0-19.5-8.8-19.5-21.8s7.8-22 19.6-22c4.3-.1 8.5 1.1 12 3.5l-.9 5.9c-3.2-2.6-7.1-4-11.2-4.1-8.6 0-13.6 6.5-13.6 16.6s5.1 16.6 13.6 16.6c4.3 0 8.5-1.6 11.9-4.2l.9 5.4c-3.7 2.6-8.2 4.1-12.8 4.1m32.9-43.1h5.8l16.3 41.5-5.6 1.2-5-13.1h-17.4L403.1 93h-5.8zm-4 24.6h13.5l-6.8-17.9z"/></g></g></svg> </a> <div class="flex flex-row flex-nowrap items-center gap-3 md:gap-5 xl:gap-4"> <div class="xxl:hidden"> <div x-data="{ open: false, toggle() { if (this.open) { return this.close() } // If we're inside main header, add a data attribute to the header if (this.$el.closest('#site-header')) { this.$el.closest('#site-header').dataset.dropdownOpen = 'true'; } this.open = true }, close() { if (!this.open) { return; } // If we're inside main header, add a data attribute to the header if (this.$el.closest('#site-header')) { this.$el.closest('#site-header').dataset.dropdownOpen = 'false'; } this.open = false } }" @keydown.escape.prevent.stop="close($refs.button)" @focusin.window="! $refs.panel.contains($event.target) && close()" x-id="['dropdown-button']"> <!-- Button --> <button type="button" x-ref="button" x-on:click=" toggle(); $dispatch('dropdown-opened', { panel: $refs.panel }); " :aria-expanded="open" :aria-controls="$id('dropdown-button')" :class="{ selected: open }" class="group flex items-center focus:outline-none" arial-label="" aria-label="Open Sections menu dropdown"> <svg class="group-with-selected:text-gray-200 h-5 w-5 text-gray-300 hover:text-gray-100 group-focus:text-gray-100 sm:hidden" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><path fill="currentColor" d="M0 0h40v8H0zm0 16h40v8H0zm24 24H0v-8h16z"/><path fill="#04cc74" d="M23 32h17l-8 8h-.3z"/></svg> <span class="group-with-selected:text-gray-100 hidden flex-row flex-nowrap items-center gap-1 uppercase text-gray-300 hover:text-gray-100 group-focus:text-gray-100 sm:flex xl:text-sm"> Sections <svg class="h-1 text-gray-300" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 19.3"><defs><clipPath id="arrow-down_svg__a"><path fill="none" d="M0 0h40v19.3H0z"/></clipPath><clipPath id="arrow-down_svg__b"><path fill="none" d="M0 0h40v19.3H0z"/></clipPath></defs><g clip-path="url(#arrow-down_svg__a)"><g fill="none" clip-path="url(#arrow-down_svg__b)"><path fill="currentColor" d="m0 0 18.9 18.9c.6.6 1.6.6 2.2 0L40 0z"/></g></g></svg> </span> </button> <!-- Panel --> <div x-cloak x-ref="panel" x-show="open" x-transition.origin.top.center x-on:click.outside="close()" :id="$id('dropdown-button')" class="absolute overflow-hidden z-50 bg-gray-550 xxs:max-w-[400px] absolute right-0 top-14 mt-[1px] w-full rounded-sm sm:right-auto sm:max-w-[200px] md:top-10"> <nav class="topnav-sections"> <div class="flex flex-row flex-nowrap items-center justify-between bg-gray-700 px-10 py-2 sm:hidden sm:flex-col sm:items-start"> <a class="text-green-400 hover:text-green-500 focus:text-green-500" href="/civis/"> Forum </a> <div class="h-5 w-[1px] bg-gray-400"></div> <a class="text-orange-400 hover:text-orange-500 focus:text-orange-500" href="/store/product/subscriptions/"> Subscribe </a> <div class="h-5 w-[1px] bg-gray-400"></div> <a class="flex flex-row flex-nowrap items-center gap-2 text-gray-300 hover:text-gray-100 focus:text-gray-100" href="/search/"> <svg class="h-5 w-5" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><defs><clipPath id="magnify_svg__a"><path fill="none" d="M0 0h40v40H0z"/></clipPath><clipPath id="magnify_svg__b"><path fill="none" d="M0 0h40v40H0z"/></clipPath></defs><g clip-path="url(#magnify_svg__a)"><g fill="none" clip-path="url(#magnify_svg__b)"><path fill="currentColor" d="M39.2 35.4 29 25.2c4.4-6.2 3.9-15-1.7-20.6C24.2 1.6 20.1 0 16 0S7.8 1.6 4.7 4.7c-6.2 6.2-6.2 16.4 0 22.6C7.8 30.4 11.9 32 16 32s6.5-1 9.3-3l10.2 10.2c.5.5 1.2.8 1.9.8s1.4-.3 1.9-.8c1-1 1-2.7 0-3.8M8.5 23.5c-2-2-3.1-4.7-3.1-7.5s1.1-5.5 3.1-7.5 4.7-3.1 7.5-3.1 5.5 1.1 7.5 3.1c4.2 4.2 4.2 10.9 0 15.1-2 2-4.7 3.1-7.5 3.1s-5.5-1.1-7.5-3.1"/></g></g></svg> </a> </div> <ul class="my-3 grid grid-cols-2 sm:grid-cols-1"> <li> <a class="group flex flex-row items-center px-5 py-2 text-gray-300 hover:bg-gray-700 hover:text-green-400 focus:bg-gray-700 focus:text-green-400" href="https://arstechnica.com/ai/"> <svg class="mr-2 inline-block h-5 w-5 text-gray-100 group-hover:text-green-400 group-focus:text-green-400" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><defs><clipPath id="section-ai_svg__a"><path fill="none" d="M0 0h40v40H0z"/></clipPath><clipPath id="section-ai_svg__b"><path fill="none" d="M0 0h40v40H0z"/></clipPath></defs><g clip-path="url(#section-ai_svg__a)"><g fill="currentColor" clip-path="url(#section-ai_svg__b)"><path d="M20 2.4c9.7 0 17.6 7.9 17.6 17.6S29.7 37.6 20 37.6 2.4 29.7 2.4 20 10.3 2.4 20 2.4M20 0C9 0 0 9 0 20s9 20 20 20 20-9 20-20S31 0 20 0"/><path d="M20 13q2.85 0 5.4.9c.7.2 1.4-.1 1.6-.9l1.4-5.5C26 5.9 23.1 4.9 20 4.9s-6 .9-8.4 2.6L13 13c.2.7.9 1.1 1.6.9Q17 13 20 13M8.9 18.3c.4-.8 1-1.5 1.7-2.1l-2.2-5.7C7 12.2 6 14.1 5.5 16.3l1.3 2.1c.5.8 1.7.8 2.2 0m24.3 0 1.3-2.1c-.5-2.2-1.5-4.1-2.9-5.8l-2.2 5.7c.7.6 1.3 1.3 1.7 2.1.5.8 1.6.9 2.2 0M23.2 20c0 1.8-1.5 3.2-3.2 3.2s-3.2-1.4-3.2-3.2 1.5-3.2 3.2-3.2 3.2 1.4 3.2 3.2"/></g></g></svg> AI </a> </li> <li> <a class="group flex flex-row items-center px-5 py-2 text-gray-300 hover:bg-gray-700 hover:text-green-400 focus:bg-gray-700 focus:text-green-400" href="https://arstechnica.com/information-technology/"> <svg class="mr-2 inline-block h-5 w-5 text-gray-100 group-hover:text-green-400 group-focus:text-green-400" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><defs><clipPath id="section-information-technology_svg__a"><path fill="none" d="M0 0h40v40H0z"/></clipPath><clipPath id="section-information-technology_svg__b"><path fill="none" d="M0 0h40v40H0z"/></clipPath></defs><g clip-path="url(#section-information-technology_svg__a)"><g fill="currentColor" clip-path="url(#section-information-technology_svg__b)"><path d="M35 0H5C2.2 0 0 2.2 0 5s2.2 5 5 5h30c2.8 0 5-2.2 5-5s-2.2-5-5-5m-6.9 7c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2m6 0c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2m.9 8H5c-2.8 0-5 2.2-5 5s2.2 5 5 5h30c2.8 0 5-2.2 5-5s-2.2-5-5-5m-6.9 7.2c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2m6 0c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2M35 30H5c-2.8 0-5 2.2-5 5s2.2 5 5 5h30c2.8 0 5-2.2 5-5s-2.2-5-5-5m-6.9 7.4c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2m6 0c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2"/></g></g></svg> Biz & IT </a> </li> <li> <a class="group flex flex-row items-center px-5 py-2 text-gray-300 hover:bg-gray-700 hover:text-green-400 focus:bg-gray-700 focus:text-green-400" href="https://arstechnica.com/cars/"> <svg class="mr-2 inline-block h-5 w-5 text-gray-100 group-hover:text-green-400 group-focus:text-green-400" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><defs><clipPath id="section-cars_svg__a"><path fill="none" d="M0 0h40v40H0z"/></clipPath><clipPath id="section-cars_svg__b"><path fill="none" d="M0 0h40v40H0z"/></clipPath></defs><g clip-path="url(#section-cars_svg__a)"><g fill="none" clip-path="url(#section-cars_svg__b)"><path fill="currentColor" d="M39.7 23.5c.2-1.2.3-2.3.3-3.5s-.1-2.4-.3-3.5l-1.3-.4c-.1-.6-.3-1.2-.5-1.8l.9-1c-.8-2.3-2-4.3-3.5-6.1l-1.3.3c-.4-.4-.8-.9-1.3-1.3l.3-1.3a20.6 20.6 0 0 0-6.1-3.5l-1 .9c-.6-.2-1.2-.3-1.8-.5L23.7.5C22.4.1 21.2 0 20 0s-2.4.1-3.5.3l-.4 1.3c-.6.1-1.2.3-1.8.5l-1-.9C11 2 9 3.2 7.2 4.7L7.5 6c-.4.4-.9.8-1.3 1.3L4.9 7a20.6 20.6 0 0 0-3.5 6.1l.9 1c-.2.6-.3 1.2-.5 1.8l-1.3.4C.1 17.6 0 18.8 0 20s.1 2.4.3 3.5l1.3.4c.1.6.3 1.2.5 1.8l-.9 1c.8 2.3 2 4.3 3.5 6.1l1.3-.3c.4.4.8.9 1.3 1.3L7 35.1c1.8 1.5 3.9 2.7 6.1 3.5l1-.9c.6.2 1.2.3 1.8.5l.4 1.3c1.1.2 2.3.3 3.5.3s2.4-.1 3.5-.3l.4-1.3c.6-.1 1.2-.3 1.8-.5l1 .9c2.3-.8 4.3-2 6.1-3.5l-.3-1.3c.4-.4.9-.8 1.3-1.3l1.3.3c1.5-1.8 2.7-3.9 3.5-6.1l-.9-1c.2-.6.3-1.2.5-1.8l1.3-.4ZM25.9 8.2c1.3.6 2.4 1.5 3.4 2.5l-3.1 6.2-2.6.9c-.6-.9-1.5-1.6-2.6-1.9v-2.8zM22 19.9c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2M20 6.8q2.1 0 3.9.6L20 11.3l-3.9-3.9q1.8-.6 3.9-.6m-5.9 1.4 4.9 4.9v2.8c-1.1.3-2 .9-2.6 1.9l-2.6-.9-3.1-6.2c1-1 2.2-1.9 3.4-2.5m-4.8 4.2 2.5 4.9-4.9 2.5c0-2.7.9-5.3 2.4-7.4m.2 15.4 5.4-.9.9 5.4c-2.5-.9-4.7-2.5-6.3-4.5m5.7-2.9L8.4 26c-.6-1.2-1.1-2.6-1.3-4.1l6.2-3.1 2.6.9v.3c0 1 .4 2 1 2.7l-1.6 2.2Zm7 8c-.7.1-1.4.2-2.1.2s-1.4 0-2.1-.2l-1.1-6.8 1.6-2.2c.5.2 1 .3 1.6.3s1.1-.1 1.6-.3l1.6 2.2zm2.1-.5.9-5.4 5.4.9c-1.6 2.1-3.7 3.7-6.3 4.5m7.4-6.4-6.8-1.1-1.6-2.2c.6-.7 1-1.7 1-2.7v-.3l2.6-.9 6.2 3.1c-.2 1.4-.7 2.8-1.3 4.1m-3.4-8.7 2.5-4.9c1.5 2.1 2.4 4.6 2.4 7.4z"/></g></g></svg> Cars </a> </li> <li> <a class="group flex flex-row items-center px-5 py-2 text-gray-300 hover:bg-gray-700 hover:text-green-400 focus:bg-gray-700 focus:text-green-400" href="https://arstechnica.com/culture/"> <svg class="mr-2 inline-block h-5 w-5 text-gray-100 group-hover:text-green-400 group-focus:text-green-400" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><defs><clipPath id="section-culture_svg__a"><path fill="none" d="M0 0h40v40H0z"/></clipPath><clipPath id="section-culture_svg__b"><path fill="none" d="M0 0h40v40H0z"/></clipPath></defs><g clip-path="url(#section-culture_svg__a)"><g fill="currentColor" clip-path="url(#section-culture_svg__b)"><path d="M19 32v7.1c0 .5.4 1 1 1s1-.4 1-1V32zm2-24V1c0-.6-.5-1-1-1s-1 .4-1 1v7.1h2m-8.3 22.6L9.6 36c-.3.5-.1 1 .3 1.3.5.3 1 .1 1.3-.3l3.3-5.7c-.5-.1-1-.3-1.5-.4-.1 0-.3 0-.4-.1M27.3 9.3 30.4 4c.3-.5.1-1-.3-1.3-.5-.3-1-.1-1.3.3l-3.3 5.7c.5.1 1 .2 1.5.4.1 0 .3 0 .4.1m-21.8 18L3 28.7c-.5.3-.6.8-.3 1.3s.8.6 1.3.3l3.5-2-.9-.6-.9-.6m28.7-14.3 2.6-1.5c.5-.3.6-.8.3-1.3s-.8-.6-1.3-.3l-3.5 2c.3.2.6.3 1 .5zm-9 18.5 3.3 5.7c.3.5.8.6 1.3.3s.6-.8.3-1.3l-3.1-5.3c-.1 0-.3 0-.4.1-.5.2-1 .3-1.5.4M14.6 8.7 11.3 3c-.3-.5-.8-.6-1.3-.3s-.6.8-.3 1.3l3.1 5.3c.1 0 .3 0 .4-.1.5-.2 1-.3 1.5-.4m17.9 19.6 3.5 2c.5.3 1 .1 1.3-.3.3-.5.1-1-.3-1.3l-2.6-1.5-.9.6-.9.6M7.4 11.6l-3.5-2c-.5-.3-1-.1-1.3.3-.3.5-.1 1 .3 1.3l2.6 1.5.9-.6.9-.6m25.2 2.4c-.6-.4-1.3-.7-1.9-1.1-1.3-.7-2.7-1.3-4.3-1.8-.6-.2-1.3-.4-1.9-.5-1.1-.3-2.3-.4-3.4-.5h-2c-1.2 0-2.3.2-3.4.5-.6.1-1.3.3-1.9.5-1.5.5-2.9 1.1-4.3 1.8-.7.3-1.3.7-1.9 1.1C2.9 16.7 0 20 0 20s2.9 3.3 7.5 6.1c.6.4 1.3.7 1.9 1.1 1.3.7 2.7 1.3 4.3 1.8.6.2 1.3.4 1.9.5 1.1.3 2.3.4 3.4.5h2c1.2 0 2.3-.2 3.4-.5.6-.1 1.3-.3 1.9-.5 1.5-.5 2.9-1.1 4.3-1.8.7-.3 1.3-.7 1.9-1.1C37.1 23.3 40 20 40 20s-2.9-3.3-7.5-6.1M20 28c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8-3.6 8-8 8"/><path d="M25 20c0 2.8-2.2 5-5 5s-5-2.2-5-5 2.2-5 5-5 5 2.2 5 5"/></g></g></svg> Culture </a> </li> <li> <a class="group flex flex-row items-center px-5 py-2 text-gray-300 hover:bg-gray-700 hover:text-green-400 focus:bg-gray-700 focus:text-green-400" href="https://arstechnica.com/gaming/"> <svg class="mr-2 inline-block h-5 w-5 text-gray-100 group-hover:text-green-400 group-focus:text-green-400" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><defs><clipPath id="section-gaming_svg__a"><path fill="none" d="M0 0h40v40H0z"/></clipPath><clipPath id="section-gaming_svg__b"><path fill="none" d="M0 0h40v40H0z"/></clipPath></defs><g clip-path="url(#section-gaming_svg__a)"><g fill="none" clip-path="url(#section-gaming_svg__b)"><path fill="currentColor" d="M30.7 39.7c-.7-1.1-1.7-1.8-2.5-2.8-.9-1.2 0-2 .8-3 .6-.9 1-1.9.8-3-.6-2.7-3.4-3.3-5.8-3.6-.7-.1-1.8-.2-2.3-.7s-.5-1.4-.5-2.1v-.4l15.5-3.6c2.3-.5 3.7-2.8 3.2-5.1l-2.8-12C36.6 1.1 34.3-.3 32 .2L3.3 6.8C1 7.4-.4 9.7.1 12l2.8 12c.5 2.3 2.8 3.7 5.1 3.2l11.1-2.6c0 1 .2 2.1.7 2.9 1.7 2.7 6 .8 7.6 3.3.8 1.2-.5 2.3-1.1 3.3-.6.9-.9 2-.4 3 .4 1.1 1.4 1.8 2.2 2.6 0 .1.2.2.3.3h2.4c0-.1-.1-.2-.2-.3m.7-28.7c1.3-.3 2.7.5 3 1.9.3 1.3-.5 2.7-1.9 3-1.3.3-2.7-.5-3-1.9-.3-1.3.5-2.7 1.9-3m-6-3.7c1.3-.3 2.7.5 3 1.9.3 1.3-.5 2.7-1.9 3-1.3.3-2.7-.5-3-1.9-.3-1.3.5-2.7 1.9-3m-9.9 13.2-2.7.6-1-4.1-4.1 1-.6-2.7 4.1-1-1-4.1 2.7-.6 1 4.1 4.1-1 .6 2.7-4.1 1z"/></g></g></svg> Gaming </a> </li> <li> <a class="group flex flex-row items-center px-5 py-2 text-gray-300 hover:bg-gray-700 hover:text-green-400 focus:bg-gray-700 focus:text-green-400" href="https://arstechnica.com/health/"> <svg class="mr-2 inline-block h-5 w-5 text-gray-100 group-hover:text-green-400 group-focus:text-green-400" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><defs><clipPath id="section-health_svg__a"><path fill="none" d="M0 0h40v40H0z"/></clipPath><clipPath id="section-health_svg__b"><path fill="none" d="M0 0h40v40H0z"/></clipPath></defs><g clip-path="url(#section-health_svg__a)"><g fill="currentColor" clip-path="url(#section-health_svg__b)"><path d="M10.4 21.6c-.4-.4-1-.4-1.4 0l-3.9 3.9c-.4.4-.4 1 0 1.4s1 .4 1.4 0l3.9-3.9c.4-.4.4-1 0-1.4"/><path d="M40 10.6c0-2.7-1-5.4-3.1-7.5C33.8 0 29.2-.8 25.4.8c-1.3.5-2.5 1.3-3.5 2.3L3.1 21.9c-4.2 4.2-4.2 10.9 0 15C5.2 39 7.9 40 10.6 40s5.4-1 7.5-3.1l18.7-18.7c2.1-2.1 3.1-4.8 3.1-7.5m-6.6-4c-.4-.4-.4-1 0-1.4s1-.4 1.4 0c3 3 3 7.8 0 10.8L26 24.8c-.4.4-1 .4-1.4 0s-.4-1 0-1.4l8.7-8.7c2.2-2.2 2.2-5.8 0-8M10.6 38.1c-2.3 0-4.5-.9-6.1-2.5-3.4-3.4-3.4-8.8 0-12.2l7.6-7.6c.6 2.1 2.3 4.9 4.8 7.4s5.2 4.2 7.4 4.8l-7.6 7.6c-1.6 1.6-3.8 2.5-6.1 2.5"/></g></g></svg> Health </a> </li> <li> <a class="group flex flex-row items-center px-5 py-2 text-gray-300 hover:bg-gray-700 hover:text-green-400 focus:bg-gray-700 focus:text-green-400" href="https://arstechnica.com/tech-policy/"> <svg class="mr-2 inline-block h-5 w-5 text-gray-100 group-hover:text-green-400 group-focus:text-green-400" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><defs><clipPath id="section-tech-policy_svg__a"><path fill="none" d="M0 0h40v40H0z"/></clipPath><clipPath id="section-tech-policy_svg__b"><path fill="none" d="M0 0h40v40H0z"/></clipPath></defs><g clip-path="url(#section-tech-policy_svg__a)"><path fill="currentColor" d="M12.8 0 6.4 6.4 0 12.8l4 1.4L14.2 4z"/><g clip-path="url(#section-tech-policy_svg__b)"><path fill="currentColor" d="M34.8 31.7c-4.4-10.4-6.1-23.6-6.1-23.6L15.4 5.4l-9.9 10 2.7 13.3s13.2 1.6 23.6 6.1c-.4 1.4 0 2.9 1.1 4 1.4 1.4 3.6 1.6 5.2.6L18.5 19.8c-1.6 1-3.8.8-5.2-.6-1.6-1.6-1.6-4.3 0-5.9s4.3-1.6 5.9 0c1.4 1.4 1.6 3.6.6 5.2L39.3 38c1-1.6.8-3.8-.6-5.2-1.1-1.1-2.6-1.4-4-1.1"/></g></g></svg> Policy </a> </li> <li> <a class="group flex flex-row items-center px-5 py-2 text-gray-300 hover:bg-gray-700 hover:text-green-400 focus:bg-gray-700 focus:text-green-400" href="https://arstechnica.com/science/"> <svg class="mr-2 inline-block h-5 w-5 text-gray-100 group-hover:text-green-400 group-focus:text-green-400" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><defs><clipPath id="section-science_svg__a"><path fill="none" d="M0 0h40v40H0z"/></clipPath><clipPath id="section-science_svg__b"><path fill="none" d="M0 0h40v40H0z"/></clipPath></defs><g clip-path="url(#section-science_svg__a)"><g fill="none" clip-path="url(#section-science_svg__b)"><path fill="currentColor" d="M39.6 34.5 28 14.6V4h1.1c.5 0 .9-.4.9-.9V.9c0-.5-.4-.9-.9-.9H10.9c-.5 0-.9.4-.9.9V3c0 .5.4.9.9.9H12v10.6L.4 34.5C-.9 37 .8 40 3.6 40h32.8c2.7 0 4.5-3 3.2-5.5M21.9 13.2c1.7 0 3 1.3 3 3s-1.3 3-3 3-3-1.3-3-3 1.3-3 3-3m-5-6c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2M4.1 36l6-10.3c.2-.3.5-.5.8-.5H13c-.1-.3-.2-.6-.2-1 0-1.7 1.3-3 3-3s3 1.3 3 3 0 .7-.2 1h4.2c0-1.1.9-2 2-2s2 .9 2 2h2.1c.3 0 .6.2.8.5l6 10.3H4.2Z"/></g></g></svg> Science </a> </li> <li> <a class="group flex flex-row items-center px-5 py-2 text-gray-300 hover:bg-gray-700 hover:text-green-400 focus:bg-gray-700 focus:text-green-400" href="https://arstechnica.com/security/"> <svg class="mr-2 inline-block h-5 w-5 text-gray-100 group-hover:text-green-400 group-focus:text-green-400" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><defs><clipPath id="section-security_svg__a"><path fill="none" d="M0 0h40v40H0z"/></clipPath><clipPath id="section-security_svg__b"><path fill="none" d="M0 0h40v40H0z"/></clipPath></defs><g clip-path="url(#section-security_svg__a)"><g fill="none" clip-path="url(#section-security_svg__b)"><path fill="currentColor" d="M37.7 21.1C39.7 10.4 32.8 0 20.8 0h-1.6C7.2 0 .3 10.4 2.3 21.1c.5 2.6-2.3 3.5-2.3 6.6 0 3.2 3.5 4 5.9 4.1h2.8c1.3 0 1.8.5 1.8 1.6 0 1.5.2 4.1.3 5.6 0 .2.7.4 1.9.5v-3.4c0-.4.3-.8.7-.8s.8.3.8.8v3.5c.9 0 1.8.1 2.9.1v-3.6c0-.4.3-.8.8-.8s.8.3.8.8v3.7h2.9v-3.7c0-.4.3-.8.8-.8s.8.3.8.8v3.6c1 0 2 0 2.9-.1v-3.5c0-.4.3-.8.8-.8s.8.3.8.8v3.4c1.1-.1 1.8-.3 1.9-.5.1-1.5.3-4.1.3-5.6 0-1.1.5-1.7 1.8-1.6h2.8c2.4-.1 5.9-.9 5.9-4.1 0-3.1-2.8-4-2.3-6.7m-26.7 4.7c-4 0-6.6-4-4.9-7.2 1.1-2 3.1-3.2 5.2-3.7 4.1-.9 7.6 2.9 6.7 6.6-.7 2.7-3.5 3.9-7 4.2m8.6 2.1-1 3c-.2.5-.7.8-1.1.6s-.7-.8-.5-1.3l.9-3c.2-.5.7-.8 1.1-.6s.7.8.5 1.3m2.8 3.6c-.4.2-.9 0-1.1-.6l-1-3c-.2-.5 0-1.1.5-1.3.4-.2.9 0 1.1.6l.9 3c.2.5 0 1.1-.5 1.3m6.6-5.7c-3.5-.4-6.3-1.5-7-4.2-.9-3.7 2.6-7.6 6.7-6.6 2.1.5 4.1 1.7 5.2 3.7 1.8 3.2-.9 7.2-4.9 7.2"/></g></g></svg> Security </a> </li> <li> <a class="group flex flex-row items-center px-5 py-2 text-gray-300 hover:bg-gray-700 hover:text-green-400 focus:bg-gray-700 focus:text-green-400" href="https://arstechnica.com/space/"> <svg class="mr-2 inline-block h-5 w-5 text-gray-100 group-hover:text-green-400 group-focus:text-green-400" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><defs><clipPath id="section-space_svg__a"><path fill="none" d="M0 0h40v40H0z"/></clipPath><clipPath id="section-space_svg__b"><path fill="none" d="M0 0h40v40H0z"/></clipPath></defs><g clip-path="url(#section-space_svg__a)"><g fill="currentColor" clip-path="url(#section-space_svg__b)"><path d="M32.9 13.1c-2.5-4.7-7.5-7.8-13.2-7.8-8.3 0-15 6.7-15 15s3.1 10.6 7.7 13.1c3.1-2.5 6.9-5.8 11-10 3.9-3.9 7-7.4 9.4-10.3M14.4 34.3c1.6.6 3.4 1 5.2 1 8.3 0 15-6.7 15-15s-.3-3.5-.9-5.2c-2.5 3-5.5 6.4-8.9 9.7-3.6 3.6-7.2 6.9-10.4 9.5"/><path d="M28.5 5.8c.6.4 1.2.8 1.7 1.2 3.5-2.7 6.1-4.2 7.6-4.8-.5 1.4-2.1 4.1-4.8 7.6-2.6 3.4-6.2 7.5-10.9 12.3s-9.6 8.9-13 11.5c-3.2 2.4-5.5 3.7-6.9 4.2.5-1.3 1.9-3.7 4.2-6.9-.4-.5-.8-1.1-1.2-1.7-4 5.4-6 9.4-4.9 10.5s5.1-.9 10.5-4.9c3.8-2.9 8.2-6.8 12.7-11.3s7.9-8.4 10.7-12c4.4-5.7 6.7-10 5.5-11.2s-5.5 1.1-11.2 5.5"/></g></g></svg> Space </a> </li> <li> <a class="group flex flex-row items-center px-5 py-2 text-gray-300 hover:bg-gray-700 hover:text-green-400 focus:bg-gray-700 focus:text-green-400" href="https://arstechnica.com/gadgets/"> <svg class="mr-2 inline-block h-5 w-5 text-gray-100 group-hover:text-green-400 group-focus:text-green-400" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><defs><clipPath id="section-gadgets_svg__a"><path fill="none" d="M0 0h40v40H0z"/></clipPath><clipPath id="section-gadgets_svg__b"><path fill="none" d="M0 0h40v40H0z"/></clipPath></defs><g clip-path="url(#section-gadgets_svg__a)"><g fill="currentColor" clip-path="url(#section-gadgets_svg__b)"><path d="M38 22c1.1 0 2-.9 2-2s-.9-2-2-2h-2v-6h2c1.1 0 2-.9 2-2s-.9-2-2-2h-2V4h-4V2c0-1.1-.9-2-2-2s-2 .9-2 2v2h-6V2c0-1.1-.9-2-2-2s-2 .9-2 2v2h-6V2c0-1.1-.9-2-2-2S8 .9 8 2v2H4v4H2c-1.1 0-2 .9-2 2s.9 2 2 2h2v6H2c-1.1 0-2 .9-2 2s.9 2 2 2h2v6H2c-1.1 0-2 .9-2 2s.9 2 2 2h2v4h4v2c0 1.1.9 2 2 2s2-.9 2-2v-2h6v2c0 1.1.9 2 2 2s2-.9 2-2v-2h6v2c0 1.1.9 2 2 2s2-.9 2-2v-2h4v-4h2c1.1 0 2-.9 2-2s-.9-2-2-2h-2v-6zm-6 10H8V8h24z"/><path d="M24.7 17.3 20 12h-7.1c-.6 0-1 .4-1 1s.4 1 1 1h6.3l4.1 4.7L20 22h8v-8z"/><path d="m15.2 22.7 4.7 5.3H27c.6 0 1-.4 1-1s-.4-1-1-1h-6.3l-4.1-4.7 3.3-3.3h-8v8z"/></g></g></svg> Tech </a> </li> </ul> <div class="mx-3 h-[1px] bg-gray-400"></div> <ul class="my-3 grid grid-cols-2 sm:grid-cols-1"> <li> <a class="group flex flex-row items-center px-5 py-2 text-gray-300 hover:bg-gray-700 hover:text-green-400 focus:bg-gray-700 focus:text-green-400" href="/features/"> <svg class="mr-2 inline-block h-5 w-5 text-gray-100 group-hover:text-green-400 group-focus:text-green-400" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 37.8"><defs><clipPath id="star_svg__a"><path fill="none" d="M0 0h40v37.8H0z"/></clipPath></defs><g fill="none" clip-path="url(#star_svg__a)"><path fill="currentColor" d="m20 0-6.2 12.4-13.8 2L10 24 7.6 37.8 20 31.3l12.4 6.5L30 24l10-9.6-13.8-2z"/></g></svg> Feature </a> </li> <li> <a class="group flex flex-row items-center px-5 py-2 text-gray-300 hover:bg-gray-700 hover:text-green-400 focus:bg-gray-700 focus:text-green-400" href="/reviews/"> <svg class="mr-2 inline-block h-5 w-5 text-gray-100 group-hover:text-green-400 group-focus:text-green-400" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><defs><clipPath id="section-reviews_svg__a"><path fill="none" d="M0 0h40v40H0z"/></clipPath><clipPath id="section-reviews_svg__b"><path fill="none" d="M0 0h40v40H0z"/></clipPath></defs><g clip-path="url(#section-reviews_svg__a)"><g fill="currentColor" clip-path="url(#section-reviews_svg__b)"><path d="M19.3 9.4V16l4.7 4.7h6.6l4.7-4.7V9.4l-4.7-4.7H24zm10.8.5c1.6 1.6 1.6 4.1 0 5.7s-4.1 1.6-5.7 0-1.6-4.1 0-5.7 4.1-1.6 5.7 0"/><path d="M31.4 22.7h-8.3l-5.9-5.9V8.5L25.9 0H12L6.9 5.1V19L0 25.9C0 33.7 6.3 40 14.1 40l6.9-6.9h13.9L40 28V14.1z"/></g></g></svg> Reviews </a> </li> <li> <a class="group flex flex-row items-center px-5 py-2 text-gray-300 hover:bg-gray-700 hover:text-green-400 focus:bg-gray-700 focus:text-green-400" href="/store/"> <svg class="mr-2 inline-block h-5 w-5 text-gray-100 group-hover:text-green-400 group-focus:text-green-400" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><defs><clipPath id="section-store_svg__a"><path fill="none" d="M0 0h40v40H0z"/></clipPath><clipPath id="section-store_svg__b"><path fill="none" d="M0 0h40v40H0z"/></clipPath></defs><g clip-path="url(#section-store_svg__a)"><g fill="none" clip-path="url(#section-store_svg__b)"><path fill="currentColor" d="M37.9 8.5h-9.4C28.5 3.8 24.7 0 20 0s-8.5 3.8-8.5 8.5H2.1L0 40h40zM20 2c3.6 0 6.5 2.9 6.5 6.5h-13C13.5 4.9 16.4 2 20 2m0 17c-4.7 0-8.5-3.8-8.5-8.5h2c0 3.6 2.9 6.5 6.5 6.5s6.5-2.9 6.5-6.5h2c0 4.7-3.8 8.5-8.5 8.5"/></g></g></svg> Store </a> </li> </ul> </nav> </div> </div> </div> <ul class="xxl:flex hidden gap-4 text-sm"> <li> <a class="text-gray-250 hover:text-green-400 focus:text-green-400" href="https://arstechnica.com/ai/"> AI </a> </li> <li> <a class="text-gray-250 hover:text-green-400 focus:text-green-400" href="https://arstechnica.com/information-technology/"> Biz & IT </a> </li> <li> <a class="text-gray-250 hover:text-green-400 focus:text-green-400" href="https://arstechnica.com/cars/"> Cars </a> </li> <li> <a class="text-gray-250 hover:text-green-400 focus:text-green-400" href="https://arstechnica.com/culture/"> Culture </a> </li> <li> <a class="text-gray-250 hover:text-green-400 focus:text-green-400" href="https://arstechnica.com/gaming/"> Gaming </a> </li> <li> <a class="text-gray-250 hover:text-green-400 focus:text-green-400" href="https://arstechnica.com/health/"> Health </a> </li> <li> <a class="text-gray-250 hover:text-green-400 focus:text-green-400" href="https://arstechnica.com/tech-policy/"> Policy </a> </li> <li> <a class="text-gray-250 hover:text-green-400 focus:text-green-400" href="https://arstechnica.com/science/"> Science </a> </li> <li> <a class="text-gray-250 hover:text-green-400 focus:text-green-400" href="https://arstechnica.com/security/"> Security </a> </li> <li> <a class="text-gray-250 hover:text-green-400 focus:text-green-400" href="https://arstechnica.com/space/"> Space </a> </li> <li> <a class="text-gray-250 hover:text-green-400 focus:text-green-400" href="https://arstechnica.com/gadgets/"> Tech </a> </li> </ul> <a class="hidden text-green-400 sm:block xl:text-sm" href="/civis/"> Forum </a> <div class="hidden h-5 w-[1px] bg-gray-400 lg:block"></div> <a class="hidden text-orange-400 lg:block xl:text-sm" href="/store/product/subscriptions/"> Subscribe </a> <div class="h-5 w-[1px] bg-gray-400"></div> <div class="text-settings-dropdown-nav"> <div x-data="{ open: false, toggle() { if (this.open) { return this.close() } // If we're inside main header, add a data attribute to the header if (this.$el.closest('#site-header')) { this.$el.closest('#site-header').dataset.dropdownOpen = 'true'; } this.open = true }, close() { if (!this.open) { return; } // If we're inside main header, add a data attribute to the header if (this.$el.closest('#site-header')) { this.$el.closest('#site-header').dataset.dropdownOpen = 'false'; } this.open = false } }" @keydown.escape.prevent.stop="close($refs.button)" @focusin.window="! $refs.panel.contains($event.target) && close()" x-id="['dropdown-button']"> <!-- Button --> <button type="button" x-ref="button" x-on:click=" toggle(); $dispatch('dropdown-opened', { panel: $refs.panel }); " :aria-expanded="open" :aria-controls="$id('dropdown-button')" :class="{ selected: open }" class="group flex items-center group" arial-label="" aria-label="Open text settings dropdown"> <svg class="h-5 w-5 text-gray-300 group-hover:text-green-400" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><defs><clipPath id="text-settings-open_svg__a"><path fill="none" stroke-width="0" d="M0 0h40v40H0z"/></clipPath><clipPath id="text-settings-open_svg__b"><path fill="none" stroke-width="0" d="M0 0h40v40H0z"/></clipPath></defs><g clip-path="url(#text-settings-open_svg__a)"><g fill="currentColor" clip-path="url(#text-settings-open_svg__b)"><path d="M26.38 23.2c-.19.21-.28.49-.28.85v.58c0 .4.11.72.34.93.23.22.59.33 1.09.33.42 0 .88-.09 1.37-.27q.735-.27 1.47-.75c.06-.04.11-.09.17-.13v-1.87h-3.23q-.66.015-.93.33"/><path d="M32 0H8C3.58 0 0 3.58 0 8v24.01C0 36.42 3.58 40 8 40h24c4.42 0 8-3.58 8-8V8c0-4.42-3.58-8-8-8M17.88 28.23l-1.23-4.42h-5.77l-1.23 4.42H5.84l4.88-15.77a1.316 1.316 0 0 1 1.28-.97h3.52q.465 0 .81.27c.23.18.39.41.47.7l4.85 15.77h-3.79Zm16.28 0H31.3l-.38-1.92c-.27.33-.59.65-.98.96-.44.35-.95.64-1.53.89-.58.24-1.25.36-1.99.36s-1.38-.13-1.97-.39q-.87-.39-1.38-1.14c-.34-.5-.51-1.12-.51-1.87v-1.24c0-.95.32-1.7.97-2.23s1.54-.8 2.67-.8h4.34v-.56c0-.57-.13-.98-.4-1.24s-.77-.39-1.52-.39c-.61 0-1.38.02-2.3.06s-1.87.09-2.84.16l-.34-2.38c.58-.11 1.25-.21 2.02-.29q1.14-.12 2.28-.21t2.04-.09c1 0 1.85.13 2.55.4.69.27 1.22.72 1.59 1.36.36.64.55 1.52.55 2.63v7.91Z"/><path d="M14.26 15.09c-.06-.28-.12-.55-.17-.81h-.65c-.05.26-.1.53-.16.81s-.12.56-.21.84l-1.42 5.1h4.22l-1.42-5.1c-.07-.27-.13-.55-.19-.84"/></g></g></svg> </button> <!-- Panel --> <div x-cloak x-ref="panel" x-show="open" x-transition.origin.top.center x-on:click.outside="close()" :id="$id('dropdown-button')" class="absolute overflow-hidden z-50 bg-gray-550 absolute right-0 top-14 mt-[1px] min-w-[200px] rounded-sm md:top-10"> <div class="text-settings"> <div class="text-settings-menu bg-gray-550 w-60"> <div class="flex items-center bg-gray-600 px-5 py-2"> <span class="font-impact text-gray-350 text-base font-semibold uppercase">Story text</span> </div> <div class="grid grid-cols-3 items-center gap-3 px-5 py-2"> <label class="font-impact w-20 text-base font-semibold uppercase text-gray-100" for="text-settings-size">Size</label> <select name="text-settings-size" class="text-settings-size col-span-2 bg-gray-600 text-sm text-gray-300"> <option value="small">Small</option> <option value="standard" selected>Standard</option> <option value="large">Large</option> </select> <label class="font-impact hidden w-20 text-base font-semibold uppercase text-gray-100 md:block" for="text-settings-width">Width <span class="text-gray-400">*</span> </label> <select name="text-settings-width" class="text-settings-width col-span-2 hidden bg-gray-600 text-sm text-gray-300 md:block"> <option value="standard" selected>Standard</option> <option value="wide">Wide</option> </select> <label class="font-impact w-20 text-base font-semibold uppercase text-gray-100" for="text-settings-links">Links</label> <select name="text-settings-links" class="text-settings-links col-span-2 bg-gray-600 text-sm text-gray-300"> <option value="standard" selected>Standard</option> <option value="orange">Orange</option> </select> <div class="font-impact col-span-3 hidden text-sm font-semibold uppercase text-gray-400 md:block"> <span class="mb-0 italic">* Subscribers only</span><br> <a href="/store/product/subscriptions/" class="text-green-400">Learn more</a> </div> <button class="font-impact text-settings-position col-span-3 mx-auto my-3 block rounded-sm border-2 border-green-400 px-3 py-1 text-base font-semibold uppercase text-gray-100" value="story"> Pin to story </button> </div> </div> </div> </div> </div> </div> <div class=""> <div x-data="{ open: false, toggle() { if (this.open) { return this.close() } // If we're inside main header, add a data attribute to the header if (this.$el.closest('#site-header')) { this.$el.closest('#site-header').dataset.dropdownOpen = 'true'; } this.open = true }, close() { if (!this.open) { return; } // If we're inside main header, add a data attribute to the header if (this.$el.closest('#site-header')) { this.$el.closest('#site-header').dataset.dropdownOpen = 'false'; } this.open = false } }" @keydown.escape.prevent.stop="close($refs.button)" @focusin.window="! $refs.panel.contains($event.target) && close()" x-id="['dropdown-button']"> <!-- Button --> <button type="button" x-ref="button" x-on:click=" toggle(); $dispatch('dropdown-opened', { panel: $refs.panel }); " :aria-expanded="open" :aria-controls="$id('dropdown-button')" :class="{ selected: open }" class="group flex items-center theme-selection-active group" arial-label="" aria-label="Open Theme selection dropdown"> <span class="sr-only">Theme</span> <svg class="theme-selection-active-dark hidden h-5 w-5 text-yellow-100 group-hover:text-yellow-200" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 38.4 38.4"><defs><clipPath id="theme-dark_svg__a"><path fill="none" d="M0 0h38.4v38.4H0z"/></clipPath><clipPath id="theme-dark_svg__b"><path fill="none" d="M0 0h38.4v38.4H0z"/></clipPath></defs><g clip-path="url(#theme-dark_svg__a)"><g fill="currentColor" clip-path="url(#theme-dark_svg__b)"><path d="M14.5 11.4c0-4.3 1.4-8.2 3.7-11.4C8.8 1.3 1.6 9.3 1.6 19.1s8.6 19.3 19.3 19.3 12.1-3.1 15.6-7.9c-.9.1-1.8.2-2.7.2-10.7 0-19.3-8.6-19.3-19.3m17.8-6.8v2.1c0 .8-.6 1.4-1.4 1.4s-1.4-.6-1.4-1.4V4.6c0-.8.6-1.4 1.4-1.4s1.4.6 1.4 1.4m0 6.8v2.1c0 .8-.6 1.4-1.4 1.4s-1.4-.6-1.4-1.4v-2.1c0-.8.6-1.4 1.4-1.4s1.4.6 1.4 1.4m-5.8-3.7h2.1c.8 0 1.4.6 1.4 1.4s-.6 1.4-1.4 1.4h-2.1c-.8 0-1.4-.6-1.4-1.4s.6-1.4 1.4-1.4m6.8 0h2.1c.8 0 1.4.6 1.4 1.4s-.6 1.4-1.4 1.4h-2.1c-.8 0-1.4-.6-1.4-1.4s.6-1.4 1.4-1.4"/></g></g></svg> <svg class="theme-selection-active-dusk hidden h-5 w-5 text-yellow-400 group-hover:text-yellow-200" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 38.18 40"><defs><clipPath id="theme-dusk_svg__a"><path fill="none" d="M0 0h38.18v40H0z"/></clipPath><clipPath id="theme-dusk_svg__b"><path fill="none" d="M0 0h38.18v40H0z"/></clipPath></defs><g clip-path="url(#theme-dusk_svg__a)"><g fill="currentColor" clip-path="url(#theme-dusk_svg__b)"><path d="M19.09 5.86C11.28 5.86 4.95 12.19 4.95 20s6.33 14.14 14.14 14.14S33.23 27.81 33.23 20 26.9 5.86 19.09 5.86m0 26.28C12.4 32.14 6.95 26.69 6.95 20c0-6.13 4.57-11.2 10.48-12.01a12.07 12.07 0 0 0-2.63 7.52c0 6.7 5.45 12.14 12.14 12.14.56 0 1.11-.05 1.66-.13-2.23 2.81-5.66 4.62-9.52 4.62m1.43-30.72v2.17c0 .78-.63 1.42-1.42 1.42s-1.42-.63-1.42-1.42V1.42a1.419 1.419 0 1 1 2.84 0M9.31 4.13l1.27 1.75c.46.63.32 1.52-.31 1.98s-1.52.32-1.98-.31L7.02 5.8a1.42 1.42 0 0 1 .31-1.98 1.42 1.42 0 0 1 1.98.31m-7.45 8.78 2.06.67c.74.24 1.15 1.04.91 1.79s-1.04 1.15-1.79.91l-2.06-.67a1.417 1.417 0 0 1-.91-1.78c.24-.74 1.04-1.15 1.79-.91M.98 24.39l2.06-.67c.74-.24 1.54.16 1.79.91.24.74-.17 1.54-.91 1.78l-2.06.67a1.42 1.42 0 0 1-1.79-.91c-.24-.74.17-1.54.91-1.79m6.04 9.82 1.27-1.75a1.42 1.42 0 0 1 1.98-.31c.63.46.77 1.35.31 1.98l-1.27 1.75c-.46.63-1.35.77-1.98.31a1.42 1.42 0 0 1-.31-1.98m10.65 4.38v-2.16c0-.78.63-1.42 1.42-1.42s1.42.63 1.42 1.42v2.16c0 .78-.63 1.42-1.42 1.42s-1.42-.63-1.42-1.42m11.2-2.71-1.27-1.75a1.42 1.42 0 0 1 .31-1.98 1.42 1.42 0 0 1 1.98.31l1.27 1.75c.46.63.32 1.52-.31 1.98s-1.52.32-1.98-.31m7.46-8.78-2.06-.67a1.424 1.424 0 0 1-.91-1.79c.24-.74 1.04-1.15 1.79-.91l2.06.67c.74.24 1.15 1.04.91 1.78s-1.04 1.15-1.79.91m.87-11.47-2.06.67c-.74.24-1.54-.17-1.79-.91-.24-.74.17-1.54.91-1.78l2.06-.67c.74-.24 1.54.16 1.79.91.24.74-.17 1.54-.91 1.79M31.16 5.8l-1.27 1.75c-.46.63-1.34.77-1.98.31a1.42 1.42 0 0 1-.31-1.98l1.27-1.75a1.42 1.42 0 0 1 1.98-.31c.63.46.77 1.35.31 1.98"/></g></g></svg> <svg class="theme-selection-active-light hidden h-5 w-5 text-yellow-400 group-hover:text-yellow-200" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><defs><clipPath id="theme-light_svg__a"><path fill="none" d="M0 0h40v40H0z"/></clipPath><clipPath id="theme-light_svg__b"><path fill="none" d="M0 0h40v40H0z"/></clipPath></defs><g clip-path="url(#theme-light_svg__a)"><g fill="currentColor" clip-path="url(#theme-light_svg__b)"><path d="M30 20c0 5.5-4.5 10-10 10s-10-4.5-10-10 4.5-10 10-10 10 4.5 10 10m8.6 1.4h-2.2c-.8 0-1.4-.6-1.4-1.4s.6-1.4 1.4-1.4h2.2c.8 0 1.4.6 1.4 1.4s-.6 1.4-1.4 1.4M34.1 7.9l-1.5 1.5c-.6.6-1.5.6-2 0-.6-.6-.6-1.5 0-2l1.5-1.5c.6-.6 1.5-.6 2 0 .6.6.6 1.5 0 2M21.4 1.4v2.2c0 .8-.6 1.4-1.4 1.4s-1.4-.6-1.4-1.4V1.4c0-.8.6-1.4 1.4-1.4s1.4.6 1.4 1.4M7.9 5.9l1.5 1.5c.6.6.6 1.5 0 2-.6.6-1.5.6-2 0L5.9 7.9c-.6-.6-.6-1.5 0-2 .6-.6 1.5-.6 2 0M1.4 18.6h2.2c.8 0 1.4.6 1.4 1.4s-.6 1.4-1.4 1.4H1.4C.6 21.4 0 20.8 0 20s.6-1.4 1.4-1.4m4.5 13.5 1.5-1.5c.6-.6 1.4-.6 2 0s.6 1.5 0 2l-1.5 1.5c-.6.6-1.5.6-2 0-.6-.6-.6-1.5 0-2m12.7 6.5v-2.2c0-.8.6-1.4 1.4-1.4s1.4.6 1.4 1.4v2.2c0 .8-.6 1.4-1.4 1.4s-1.4-.6-1.4-1.4m13.5-4.5-1.5-1.5c-.6-.6-.6-1.4 0-2s1.5-.6 2 0l1.5 1.5c.6.6.6 1.5 0 2-.6.6-1.5.6-2 0"/></g></g></svg> </button> <!-- Panel --> <div x-cloak x-ref="panel" x-show="open" x-transition.origin.top.center x-on:click.outside="close()" :id="$id('dropdown-button')" class="absolute overflow-hidden z-50 bg-gray-550 absolute right-0 top-14 mt-[1px] min-w-[200px] rounded-sm py-3 md:top-10"> <nav> <ul class="theme-selection-dropdown"> <li class="theme-selection-item group flex w-full cursor-pointer flex-row items-center px-5 py-2 text-gray-300 hover:bg-gray-700 hover:text-green-400 focus:bg-gray-700 focus:text-green-400" data-theme="light" data-selected="false"> <svg class="theme-selection-icon mr-2 inline-block h-5 w-5 text-gray-100 group-hover:text-green-400 group-focus:text-inherit" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><defs><clipPath id="theme-light_svg__a"><path fill="none" d="M0 0h40v40H0z"/></clipPath><clipPath id="theme-light_svg__b"><path fill="none" d="M0 0h40v40H0z"/></clipPath></defs><g clip-path="url(#theme-light_svg__a)"><g fill="currentColor" clip-path="url(#theme-light_svg__b)"><path d="M30 20c0 5.5-4.5 10-10 10s-10-4.5-10-10 4.5-10 10-10 10 4.5 10 10m8.6 1.4h-2.2c-.8 0-1.4-.6-1.4-1.4s.6-1.4 1.4-1.4h2.2c.8 0 1.4.6 1.4 1.4s-.6 1.4-1.4 1.4M34.1 7.9l-1.5 1.5c-.6.6-1.5.6-2 0-.6-.6-.6-1.5 0-2l1.5-1.5c.6-.6 1.5-.6 2 0 .6.6.6 1.5 0 2M21.4 1.4v2.2c0 .8-.6 1.4-1.4 1.4s-1.4-.6-1.4-1.4V1.4c0-.8.6-1.4 1.4-1.4s1.4.6 1.4 1.4M7.9 5.9l1.5 1.5c.6.6.6 1.5 0 2-.6.6-1.5.6-2 0L5.9 7.9c-.6-.6-.6-1.5 0-2 .6-.6 1.5-.6 2 0M1.4 18.6h2.2c.8 0 1.4.6 1.4 1.4s-.6 1.4-1.4 1.4H1.4C.6 21.4 0 20.8 0 20s.6-1.4 1.4-1.4m4.5 13.5 1.5-1.5c.6-.6 1.4-.6 2 0s.6 1.5 0 2l-1.5 1.5c-.6.6-1.5.6-2 0-.6-.6-.6-1.5 0-2m12.7 6.5v-2.2c0-.8.6-1.4 1.4-1.4s1.4.6 1.4 1.4v2.2c0 .8-.6 1.4-1.4 1.4s-1.4-.6-1.4-1.4m13.5-4.5-1.5-1.5c-.6-.6-.6-1.4 0-2s1.5-.6 2 0l1.5 1.5c.6.6.6 1.5 0 2-.6.6-1.5.6-2 0"/></g></g></svg> HyperLight </li> <li class="theme-selection-item group flex w-full cursor-pointer flex-row items-center px-5 py-2 text-gray-300 hover:bg-gray-700 hover:text-green-400 focus:bg-gray-700 focus:text-green-400" data-theme="dusk" data-selected="false"> <svg class="theme-selection-icon mr-2 inline-block h-5 w-5 text-gray-100 group-hover:text-green-400 group-focus:text-inherit" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 38.18 40"><defs><clipPath id="theme-dusk_svg__a"><path fill="none" d="M0 0h38.18v40H0z"/></clipPath><clipPath id="theme-dusk_svg__b"><path fill="none" d="M0 0h38.18v40H0z"/></clipPath></defs><g clip-path="url(#theme-dusk_svg__a)"><g fill="currentColor" clip-path="url(#theme-dusk_svg__b)"><path d="M19.09 5.86C11.28 5.86 4.95 12.19 4.95 20s6.33 14.14 14.14 14.14S33.23 27.81 33.23 20 26.9 5.86 19.09 5.86m0 26.28C12.4 32.14 6.95 26.69 6.95 20c0-6.13 4.57-11.2 10.48-12.01a12.07 12.07 0 0 0-2.63 7.52c0 6.7 5.45 12.14 12.14 12.14.56 0 1.11-.05 1.66-.13-2.23 2.81-5.66 4.62-9.52 4.62m1.43-30.72v2.17c0 .78-.63 1.42-1.42 1.42s-1.42-.63-1.42-1.42V1.42a1.419 1.419 0 1 1 2.84 0M9.31 4.13l1.27 1.75c.46.63.32 1.52-.31 1.98s-1.52.32-1.98-.31L7.02 5.8a1.42 1.42 0 0 1 .31-1.98 1.42 1.42 0 0 1 1.98.31m-7.45 8.78 2.06.67c.74.24 1.15 1.04.91 1.79s-1.04 1.15-1.79.91l-2.06-.67a1.417 1.417 0 0 1-.91-1.78c.24-.74 1.04-1.15 1.79-.91M.98 24.39l2.06-.67c.74-.24 1.54.16 1.79.91.24.74-.17 1.54-.91 1.78l-2.06.67a1.42 1.42 0 0 1-1.79-.91c-.24-.74.17-1.54.91-1.79m6.04 9.82 1.27-1.75a1.42 1.42 0 0 1 1.98-.31c.63.46.77 1.35.31 1.98l-1.27 1.75c-.46.63-1.35.77-1.98.31a1.42 1.42 0 0 1-.31-1.98m10.65 4.38v-2.16c0-.78.63-1.42 1.42-1.42s1.42.63 1.42 1.42v2.16c0 .78-.63 1.42-1.42 1.42s-1.42-.63-1.42-1.42m11.2-2.71-1.27-1.75a1.42 1.42 0 0 1 .31-1.98 1.42 1.42 0 0 1 1.98.31l1.27 1.75c.46.63.32 1.52-.31 1.98s-1.52.32-1.98-.31m7.46-8.78-2.06-.67a1.424 1.424 0 0 1-.91-1.79c.24-.74 1.04-1.15 1.79-.91l2.06.67c.74.24 1.15 1.04.91 1.78s-1.04 1.15-1.79.91m.87-11.47-2.06.67c-.74.24-1.54-.17-1.79-.91-.24-.74.17-1.54.91-1.78l2.06-.67c.74-.24 1.54.16 1.79.91.24.74-.17 1.54-.91 1.79M31.16 5.8l-1.27 1.75c-.46.63-1.34.77-1.98.31a1.42 1.42 0 0 1-.31-1.98l1.27-1.75a1.42 1.42 0 0 1 1.98-.31c.63.46.77 1.35.31 1.98"/></g></g></svg> Day & Night </li> <li class="theme-selection-item group flex w-full cursor-pointer flex-row items-center px-5 py-2 text-gray-300 hover:bg-gray-700 hover:text-green-400 focus:bg-gray-700 focus:text-green-400" data-theme="dark" data-selected="false"> <svg class="theme-selection-icon mr-2 inline-block h-5 w-5 text-gray-100 group-hover:text-green-400 group-focus:text-inherit" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 38.4 38.4"><defs><clipPath id="theme-dark_svg__a"><path fill="none" d="M0 0h38.4v38.4H0z"/></clipPath><clipPath id="theme-dark_svg__b"><path fill="none" d="M0 0h38.4v38.4H0z"/></clipPath></defs><g clip-path="url(#theme-dark_svg__a)"><g fill="currentColor" clip-path="url(#theme-dark_svg__b)"><path d="M14.5 11.4c0-4.3 1.4-8.2 3.7-11.4C8.8 1.3 1.6 9.3 1.6 19.1s8.6 19.3 19.3 19.3 12.1-3.1 15.6-7.9c-.9.1-1.8.2-2.7.2-10.7 0-19.3-8.6-19.3-19.3m17.8-6.8v2.1c0 .8-.6 1.4-1.4 1.4s-1.4-.6-1.4-1.4V4.6c0-.8.6-1.4 1.4-1.4s1.4.6 1.4 1.4m0 6.8v2.1c0 .8-.6 1.4-1.4 1.4s-1.4-.6-1.4-1.4v-2.1c0-.8.6-1.4 1.4-1.4s1.4.6 1.4 1.4m-5.8-3.7h2.1c.8 0 1.4.6 1.4 1.4s-.6 1.4-1.4 1.4h-2.1c-.8 0-1.4-.6-1.4-1.4s.6-1.4 1.4-1.4m6.8 0h2.1c.8 0 1.4.6 1.4 1.4s-.6 1.4-1.4 1.4h-2.1c-.8 0-1.4-.6-1.4-1.4s.6-1.4 1.4-1.4"/></g></g></svg> Dark </li> <li class="theme-selection-item group flex w-full cursor-pointer flex-row items-center px-5 py-2 text-gray-300 hover:bg-gray-700 hover:text-green-400 focus:bg-gray-700 focus:text-green-400" data-theme="system" data-selected="true"> <svg class="theme-selection-icon mr-2 inline-block h-5 w-5 text-gray-100 group-hover:text-green-400 group-focus:text-inherit" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><defs><clipPath id="theme-system_svg__a"><path fill="none" d="M0 0h40v40H0z"/></clipPath><clipPath id="theme-system_svg__b"><path fill="none" d="M0 0h40v40H0z"/></clipPath></defs><g clip-path="url(#theme-system_svg__a)"><g clip-path="url(#theme-system_svg__b)"><path fill="currentColor" d="M20 0C8.95 0 0 8.95 0 20s8.95 20 20 20 20-8.95 20-20S31.05 0 20 0m0 38V2c9.92 0 18 8.08 18 18s-8.08 18-18 18"/></g></g></svg> System </li> </ul> </nav> </div> </div> </div> <div class="hidden sm:flex md:justify-center" data-modal-id="search" x-data="{ open: false, init() { this.modalId = this.$el.dataset.modalId; }, show() { console.log(this.data); this.open = true; this.$dispatch('modal-opened', { panel: this.$refs.panel, modalId: this.modalId, }); }, hide() { this.open = false }, }"> <button type="button" aria-label="Search dialog..." class="search-button flex flex-row items-center text-gray-300 hover:text-gray-100" aria-label="Open search dialog" x-on:click="show()"> <svg class="h-5 w-5" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><defs><clipPath id="magnify_svg__a"><path fill="none" d="M0 0h40v40H0z"/></clipPath><clipPath id="magnify_svg__b"><path fill="none" d="M0 0h40v40H0z"/></clipPath></defs><g clip-path="url(#magnify_svg__a)"><g fill="none" clip-path="url(#magnify_svg__b)"><path fill="currentColor" d="M39.2 35.4 29 25.2c4.4-6.2 3.9-15-1.7-20.6C24.2 1.6 20.1 0 16 0S7.8 1.6 4.7 4.7c-6.2 6.2-6.2 16.4 0 22.6C7.8 30.4 11.9 32 16 32s6.5-1 9.3-3l10.2 10.2c.5.5 1.2.8 1.9.8s1.4-.3 1.9-.8c1-1 1-2.7 0-3.8M8.5 23.5c-2-2-3.1-4.7-3.1-7.5s1.1-5.5 3.1-7.5 4.7-3.1 7.5-3.1 5.5 1.1 7.5 3.1c4.2 4.2 4.2 10.9 0 15.1-2 2-4.7 3.1-7.5 3.1s-5.5-1.1-7.5-3.1"/></g></g></svg> </button> <template x-teleport="body"> <div class="fixed inset-0 z-[99999] overflow-y-auto" role="dialog" aria-modal="true" x-cloak x-show="open" x-on:keydown.escape.window.prevent.stop="open = false" x-id="['modal-title']" x-ref="panel" :aria-labelledby="$id('modal-title')"> <div class="fixed inset-0 bg-slate-900/80 opacity-100 backdrop-blur" x-show="open" x-transition.duration.150ms> </div> <div class="relative flex min-h-screen items-center justify-center" x-on:click="open = false" x-show="open" x-transition.duration.150ms> <div x-on:click.stop x-trap.noscroll.inert="open"> <span class="sr-only" :id="$id('modal-title')"> Search dialog... </span> <div class="search-wrapper relative z-[99999] w-screen p-5"> <div class="gcse-search"></div> </div> </div> </div> </div> </template> </div> <div class="h-5 w-[1px] bg-gray-400"></div> <div class="flex md:justify-center" data-modal-id="sign-in" x-data="{ open: false, init() { this.modalId = this.$el.dataset.modalId; }, show() { console.log(this.data); this.open = true; this.$dispatch('modal-opened', { panel: this.$refs.panel, modalId: this.modalId, }); }, hide() { this.open = false }, }"> <button type="button" aria-label="Sign in dialog..." class="whitespace-nowrap text-gray-300 hover:text-gray-100" aria-label="Open sign in dialog" x-on:click="show()"> Sign In </button> <template x-teleport="body"> <div class="fixed inset-0 z-[99999] overflow-y-auto" role="dialog" aria-modal="true" x-cloak x-show="open" x-on:keydown.escape.window.prevent.stop="open = false" x-id="['modal-title']" x-ref="panel" :aria-labelledby="$id('modal-title')"> <div class="fixed inset-0 bg-slate-900/80 opacity-100 backdrop-blur" x-show="open" x-transition.duration.150ms> </div> <div class="relative flex min-h-screen items-center justify-center" x-on:click="open = false" x-show="open" x-transition.duration.150ms> <div x-on:click.stop x-trap.noscroll.inert="open"> <span class="sr-only" :id="$id('modal-title')"> Sign in dialog... </span> <div class="sign-in-panel absolute left-1/2 top-1/2 w-3/4 min-w-[320px] max-w-xl -translate-x-1/2 -translate-y-1/2" > <header class="font-impact flex items-center justify-between bg-gray-600 px-7 py-4 font-semibold uppercase" > <div class="text-gray-350 flex items-center gap-3"> <svg class="h-3 w-3 text-green-400" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><defs><clipPath id="arrow-blocks-right_svg__a"><path fill="none" d="M0 0h40v40H0z"/></clipPath></defs><g fill="currentColor" clip-path="url(#arrow-blocks-right_svg__a)"><path d="M32 16h8v8h-8zm-8 8h8v8h-8zm-8 8h8v8h-8zm8-24h8v8h-8zm-8-8h8v8h-8zM0 16h16v8H0z"/></g></svg> Sign in </div> <button class="text-gray-300 hover:text-gray-100 focus:text-gray-100" x-on:click="open = false" > <svg class="h-3 w-3" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 34.7 40"><defs><clipPath id="x_svg__a"><path fill="none" d="M0 0h34.7v40H0z"/></clipPath></defs><g fill="none" clip-path="url(#x_svg__a)"><path fill="currentColor" d="m26.4 0-8.5 16.9h-1.1L8.3 0H.8l10.1 19.4L0 40h7.6l9.2-18.3h1.1L27.1 40h7.6L23.8 19.4 33.9 0z"/></g></svg> </button> </header> <div class="sign-in-panel-body bg-gray-700 px-7 py-4"> <div class="col-span-3 normal-case text-gray-300" x-data="{ html: '', form: '', triggered: false }" x-on:modal-opened.window=" panel = $el.parentElement.parentElement.parentElement.parentElement.parentElement; if (triggered || panel !== event.detail.panel) { return; } triggered = true; html = await (await fetch('/civis/login')).text(); // Parse html for form with action=/civis/login/login parser = new DOMParser(); doc = parser.parseFromString(html, 'text/html'); form = doc.querySelector('form[action="/civis/login/login"]'); // Remove autofocus and set focus to username field username = form.querySelector('input[name="login"]'); username.removeAttribute('autofocus'); document.querySelector('.sign-in-form').appendChild(form); username.focus(); " > <div class="sign-in-form"></div> </div> </div> </div> </div> </div> </div> </template> </div> </div> </header> <main class="main relative -mt-4 lg:mt-6" id="main"> <article class="double-column h-entry post-2027078 post type-post status-publish format-standard has-post-thumbnail hentry category-features category-gadgets tag-ads tag-amazon-2 tag-fire-tv tag-lg-2 tag-roku tag-samsung-2 tag-tvs" data-id="2027078"> <header> <div class="dusk:bg-gray-700 my-4 bg-white py-4 dark:bg-gray-700 md:my-10 md:py-8"> <div class="mx-auto max-w-2xl px-4 md:px-8 lg:grid lg:max-w-6xl"> <div class="md:mb-2"> <div class="upper-deck font-impact text-green-450 dusk:text-green-400 inline-flex flex-row flex-nowrap items-center gap-2 text-left text-sm font-semibold uppercase leading-tight dark:text-green-400"> <span class="upper-deck__icon"> <svg class="h-5 w-5" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><defs><clipPath id="section-gadgets_svg__a"><path fill="none" d="M0 0h40v40H0z"/></clipPath><clipPath id="section-gadgets_svg__b"><path fill="none" d="M0 0h40v40H0z"/></clipPath></defs><g clip-path="url(#section-gadgets_svg__a)"><g fill="currentColor" clip-path="url(#section-gadgets_svg__b)"><path d="M38 22c1.1 0 2-.9 2-2s-.9-2-2-2h-2v-6h2c1.1 0 2-.9 2-2s-.9-2-2-2h-2V4h-4V2c0-1.1-.9-2-2-2s-2 .9-2 2v2h-6V2c0-1.1-.9-2-2-2s-2 .9-2 2v2h-6V2c0-1.1-.9-2-2-2S8 .9 8 2v2H4v4H2c-1.1 0-2 .9-2 2s.9 2 2 2h2v6H2c-1.1 0-2 .9-2 2s.9 2 2 2h2v6H2c-1.1 0-2 .9-2 2s.9 2 2 2h2v4h4v2c0 1.1.9 2 2 2s2-.9 2-2v-2h6v2c0 1.1.9 2 2 2s2-.9 2-2v-2h6v2c0 1.1.9 2 2 2s2-.9 2-2v-2h4v-4h2c1.1 0 2-.9 2-2s-.9-2-2-2h-2v-6zm-6 10H8V8h24z"/><path d="M24.7 17.3 20 12h-7.1c-.6 0-1 .4-1 1s.4 1 1 1h6.3l4.1 4.7L20 22h8v-8z"/><path d="m15.2 22.7 4.7 5.3H27c.6 0 1-.4 1-1s-.4-1-1-1h-6.3l-4.1-4.7 3.3-3.3h-8v8z"/></g></g></svg> </span> <span class="upper-deck__text"> When the hardware is really about software </span> </div> </div> <h1 class="dusk:text-gray-100 mb-3 font-serif text-4xl font-bold text-gray-700 dark:text-gray-100 md:text-6xl md:leading-[1.05]"> Your TV set has become a digital billboard. And it’s only getting worse. </h1> <p class="text-gray-550 dark:text-gray-250 dusk:text-gray-250 my-3 text-2xl leading-[1.1] md:leading-[1.2]"> TV software is getting loaded with ads, changing what it means to own a TV set. </p> <div class="my-3 md:mb-6 md:mt-0"> <div class="font-impact text-xs font-semibold uppercase text-gray-300"><a class="text-orange-400 hover:text-orange-500" href="https://arstechnica.com/author/scharonharding/"> Scharon Harding </a> – <span class="whitespace-nowrap"> <time class="mr-[2px] inline-block cursor-default" title="2024-08-19T07:00:30-04:00" datetime="2024-08-19T07:00:30-04:00" x-data="{ compact: false, open: false, date: new Date('2024-08-19T07:00:30-04:00'), updatedTimestamp: false, format: function() { let dateFormat = { year: 'numeric', month: 'short', day: 'numeric' }; let timeFormat = { hour: 'numeric', minute: 'numeric' }; let formatted = this.date.toLocaleDateString(undefined, dateFormat) + ' ' + this.date.toLocaleTimeString(undefined, timeFormat); if (this.compact) { if (this.date.toDateString() === new Date().toDateString()) { formatted = this.date.toLocaleTimeString(undefined, timeFormat); if (this.updatedTimestamp) { formatted = 'at ' + formatted; } } else { formatted = this.date.toLocaleDateString(undefined, { year: 'numeric', month: 'numeric', day: 'numeric' }); } } if (this.updatedTimestamp) { formatted = 'Updated ' + formatted; } return formatted; } }" x-text="format()"> Aug 19, 2024 7:00 am </time> <span class="text-gray-550">|</span> <a class="view-comments text-gray-300 hover:text-gray-500" href="https://arstechnica.com/gadgets/2024/08/tv-industrys-ads-tracking-obsession-is-turning-your-living-room-into-a-store/#comments" title="697 comments"> <svg class="-mt-1 ml-1 mr-[2px] inline-block h-4 w-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 80 80"><defs><clipPath id="bubble-zero_svg__a"><path fill="none" stroke-width="0" d="M0 0h80v80H0z"/></clipPath><clipPath id="bubble-zero_svg__b"><path fill="none" stroke-width="0" d="M0 0h80v80H0z"/></clipPath></defs><g clip-path="url(#bubble-zero_svg__a)"><g fill="currentColor" clip-path="url(#bubble-zero_svg__b)"><path d="M80 40c0 22.09-17.91 40-40 40S0 62.09 0 40 17.91 0 40 0s40 17.91 40 40"/><path d="M40 40 .59 76.58C-.67 77.84.22 80 2.01 80H40z"/></g></g></svg> 697 </a> </span></div> </div> <div class="relative"> <div class="ars-lightbox"> <div class="ars-lightbox-item"> <a class="cursor-zoom-in" data-pswp-width="2560" data-pswp-height="1440" data-pswp-srcset="https://cdn.arstechnica.net/wp-content/uploads/2024/07/tv-advertising-overload.jpg 2560w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/tv-advertising-overload-300x169.jpg 300w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/tv-advertising-overload-640x360.jpg 640w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/tv-advertising-overload-768x432.jpg 768w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/tv-advertising-overload-1536x864.jpg 1536w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/tv-advertising-overload-2048x1152.jpg 2048w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/tv-advertising-overload-384x216.jpg 384w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/tv-advertising-overload-1152x648.jpg 1152w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/tv-advertising-overload-980x551.jpg 980w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/tv-advertising-overload-1440x810.jpg 1440w" data-cropped="false" href="https://cdn.arstechnica.net/wp-content/uploads/2024/07/tv-advertising-overload.jpg" target="_blank"> <img width="2560" height="1440" src="https://cdn.arstechnica.net/wp-content/uploads/2024/07/tv-advertising-overload.jpg" class="intro-image" alt="" loading="eager" decoding="async" fetchpriority="high" srcset="https://cdn.arstechnica.net/wp-content/uploads/2024/07/tv-advertising-overload.jpg 2560w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/tv-advertising-overload-300x169.jpg 300w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/tv-advertising-overload-640x360.jpg 640w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/tv-advertising-overload-768x432.jpg 768w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/tv-advertising-overload-1536x864.jpg 1536w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/tv-advertising-overload-2048x1152.jpg 2048w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/tv-advertising-overload-384x216.jpg 384w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/tv-advertising-overload-1152x648.jpg 1152w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/tv-advertising-overload-980x551.jpg 980w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/tv-advertising-overload-1440x810.jpg 1440w" sizes="(max-width: 2560px) 100vw, 2560px" /> </a> <div class="pswp-caption-content" id="caption-2040052"> <div class="caption font-impact dusk:text-gray-300 mb-4 mt-2 inline-flex flex-row items-stretch gap-1 text-base leading-tight text-gray-400 dark:text-gray-300"> <div class="caption-icon bg-[left_top_7px] w-[10px] shrink-0"></div> <div class="caption-content"> <span class="caption-credit mt-2 text-xs"> Credit: Aurich Lawson | Getty Images </span> </div> </div> </div> </div> </div> </div> <div> <div class="caption font-impact dusk:text-gray-300 mb-4 mt-2 inline-flex flex-row items-stretch gap-1 text-base leading-tight text-gray-400 dark:text-gray-300"> <div class="caption-icon bg-[left_top_7px] w-[10px] shrink-0"></div> <div class="caption-content"> <span class="caption-credit mt-2 text-xs"> Credit: Aurich Lawson | Getty Images </span> </div> </div> </div> </div> </div> </header> <div class="text-settings-dropdown-story mdl:absolute mdl:z-10 mdl:mb-0 mdl:mt-1 relative -mt-4 mb-2"> <div x-data="{ open: false, toggle() { if (this.open) { return this.close() } // If we're inside main header, add a data attribute to the header if (this.$el.closest('#site-header')) { this.$el.closest('#site-header').dataset.dropdownOpen = 'true'; } this.open = true }, close() { if (!this.open) { return; } // If we're inside main header, add a data attribute to the header if (this.$el.closest('#site-header')) { this.$el.closest('#site-header').dataset.dropdownOpen = 'false'; } this.open = false } }" @keydown.escape.prevent.stop="close($refs.button)" @focusin.window="! $refs.panel.contains($event.target) && close()" x-id="['dropdown-button']"> <!-- Button --> <button type="button" x-ref="button" x-on:click=" toggle(); $dispatch('dropdown-opened', { panel: $refs.panel }); " :aria-expanded="open" :aria-controls="$id('dropdown-button')" :class="{ selected: open }" class="group flex items-center bg-gray-150 dark:bg-gray-550 mdl:flex-col mdl:bg-transparent mdl:p-0 mdl:dark:bg-transparent flex w-full items-center justify-between px-[15px] py-2.5 sm:px-5 lg:px-8" arial-label="" aria-label="Open text settings dropdown"> <div class="flex items-center gap-2"> <svg class="dark:text-gray-250 mdl:h-7 mdl:w-7 h-5 w-5 text-gray-300 group-hover:text-green-400" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 43 43"><defs><clipPath id="text-settings_svg__a"><path fill="none" stroke-width="0" d="M0 0h43v43H0z"/></clipPath><clipPath id="text-settings_svg__b"><path fill="none" stroke-width="0" d="M0 0h43v43H0z"/></clipPath></defs><g clip-path="url(#text-settings_svg__a)"><g fill="currentColor" clip-path="url(#text-settings_svg__b)"><path d="M33.52 17.82c-.69-.27-1.55-.4-2.55-.4-.6 0-1.28.03-2.04.08-.76.06-1.52.12-2.28.21-.76.08-1.43.18-2.01.29l.34 2.38c.97-.06 1.92-.12 2.84-.16q1.38-.06 2.31-.06c.74 0 1.25.13 1.52.39s.4.67.4 1.24v.56h-4.34c-1.13 0-2.02.27-2.67.8s-.97 1.28-.97 2.23v1.24c0 .75.17 1.37.51 1.87q.51.75 1.38 1.14c.58.26 1.24.39 1.97.39s1.41-.12 1.99-.36a6.34 6.34 0 0 0 2.51-1.85l.38 1.92h2.86v-7.91c0-1.12-.18-1.99-.55-2.63a3 3 0 0 0-1.59-1.36m-1.49 8.42c-.06.04-.11.09-.17.13q-.735.48-1.47.75c-.49.18-.95.27-1.37.27-.5 0-.87-.11-1.09-.33-.23-.22-.34-.53-.34-.93v-.58c0-.36.09-.64.28-.85s.5-.31.94-.31l3.23-.02v1.87Zm-14.2-13q-.36-.27-.81-.27h-3.52q-.465 0-.81.27c-.23.18-.39.41-.47.7L7.35 29.72h3.81l1.23-4.42h5.77l1.23 4.42h3.79l-4.85-15.77a1.3 1.3 0 0 0-.47-.7m-4.71 9.27 1.42-5.1q.12-.405.21-.84c.06-.28.11-.55.16-.81h.65c.05.26.1.53.17.81s.13.56.19.84l1.42 5.1z"/><path d="M33.5 4.5c2.76 0 5 2.24 5 5v24.01c0 2.76-2.24 5-5 5h-24c-2.76 0-5-2.24-5-5V9.5c0-2.76 2.24-5 5-5zm0-3h-24c-4.42 0-8 3.58-8 8v24.01c0 4.42 3.58 8 8 8h24c4.42 0 8-3.58 8-8V9.5c0-4.42-3.58-8-8-8"/></g></g></svg> <span class="font-impact settings-text dark:text-gray-250 mdl:hidden text-xs font-semibold uppercase text-gray-300">Text settings</span> </div> <span class="settings-icon"> <svg class="dark:text-gray-250 mdl:hidden h-4 w-4 text-gray-300" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 39.8 40"><defs><clipPath id="settings_svg__a"><path fill="none" d="M0 0h39.8v40H0z"/></clipPath><clipPath id="settings_svg__b"><path fill="none" d="M0 0h39.8v40H0z"/></clipPath></defs><g clip-path="url(#settings_svg__a)"><g fill="currentColor" clip-path="url(#settings_svg__b)"><path d="M17.4 3c-.8-1.8-2.5-3-4.5-3S9.1 1.2 8.3 3H0v4h8.3c.8 1.8 2.5 3 4.6 3s3.8-1.2 4.6-3h22.4V3H17.5Zm-4.6 4.5c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5-1.1 2.5-2.5 2.5M27 15c-2 0-3.8 1.2-4.6 3H0v4h22.4c.8 1.8 2.5 3 4.6 3s3.8-1.2 4.6-3h8.3v-4h-8.3c-.8-1.8-2.5-3-4.6-3m0 7.5c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5-1.1 2.5-2.5 2.5M12.9 30c-2 0-3.8 1.2-4.6 3H0v4h8.3c.8 1.8 2.5 3 4.6 3s3.8-1.2 4.6-3h22.4v-4H17.5c-.8-1.8-2.5-3-4.6-3m0 7.5c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5-1.1 2.5-2.5 2.5"/></g></g></svg> <svg class="dark:text-gray-250 mdl:block mt-[3px] hidden h-auto w-5 text-gray-300" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 25.17"><defs><clipPath id="settings-compact_svg__a"><path fill="none" stroke-width="0" d="M0 0h40v25.17H0z"/></clipPath><clipPath id="settings-compact_svg__b"><path fill="none" stroke-width="0" d="M0 0h40v25.17H0z"/></clipPath></defs><g clip-path="url(#settings-compact_svg__a)"><g fill="currentColor" clip-path="url(#settings-compact_svg__b)"><path d="M27.09.09c-2.05 0-3.81 1.24-4.58 3H0v4h22.51c.77 1.76 2.53 3 4.58 3s3.81-1.24 4.58-3H40v-4h-8.33c-.77-1.76-2.53-3-4.58-3m0 7.5a2.5 2.5 0 0 1 0-5 2.5 2.5 0 0 1 0 5m-14.18 7.58c-2.05 0-3.81 1.24-4.58 3H0v4h8.34c.77 1.76 2.53 3 4.58 3s3.81-1.24 4.58-3h22.51v-4H17.5c-.77-1.76-2.53-3-4.58-3m-.01 7.5a2.5 2.5 0 0 1 0-5 2.5 2.5 0 0 1 0 5"/></g></g></svg> </span> </button> <!-- Panel --> <div x-cloak x-ref="panel" x-show="open" x-transition.origin.top.center x-on:click.outside="close()" :id="$id('dropdown-button')" class="absolute overflow-hidden z-50 bg-gray-550 absolute left-0 top-0"> <div class="text-settings"> <div class="text-settings-menu bg-gray-550 w-60"> <div class="flex items-center justify-between bg-gray-600 px-5 py-2"> <div class="flex items-center gap-2"> <svg class="h-5 w-5 text-green-400" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><defs><clipPath id="text-settings-open_svg__a"><path fill="none" stroke-width="0" d="M0 0h40v40H0z"/></clipPath><clipPath id="text-settings-open_svg__b"><path fill="none" stroke-width="0" d="M0 0h40v40H0z"/></clipPath></defs><g clip-path="url(#text-settings-open_svg__a)"><g fill="currentColor" clip-path="url(#text-settings-open_svg__b)"><path d="M26.38 23.2c-.19.21-.28.49-.28.85v.58c0 .4.11.72.34.93.23.22.59.33 1.09.33.42 0 .88-.09 1.37-.27q.735-.27 1.47-.75c.06-.04.11-.09.17-.13v-1.87h-3.23q-.66.015-.93.33"/><path d="M32 0H8C3.58 0 0 3.58 0 8v24.01C0 36.42 3.58 40 8 40h24c4.42 0 8-3.58 8-8V8c0-4.42-3.58-8-8-8M17.88 28.23l-1.23-4.42h-5.77l-1.23 4.42H5.84l4.88-15.77a1.316 1.316 0 0 1 1.28-.97h3.52q.465 0 .81.27c.23.18.39.41.47.7l4.85 15.77h-3.79Zm16.28 0H31.3l-.38-1.92c-.27.33-.59.65-.98.96-.44.35-.95.64-1.53.89-.58.24-1.25.36-1.99.36s-1.38-.13-1.97-.39q-.87-.39-1.38-1.14c-.34-.5-.51-1.12-.51-1.87v-1.24c0-.95.32-1.7.97-2.23s1.54-.8 2.67-.8h4.34v-.56c0-.57-.13-.98-.4-1.24s-.77-.39-1.52-.39c-.61 0-1.38.02-2.3.06s-1.87.09-2.84.16l-.34-2.38c.58-.11 1.25-.21 2.02-.29q1.14-.12 2.28-.21t2.04-.09c1 0 1.85.13 2.55.4.69.27 1.22.72 1.59 1.36.36.64.55 1.52.55 2.63v7.91Z"/><path d="M14.26 15.09c-.06-.28-.12-.55-.17-.81h-.65c-.05.26-.1.53-.16.81s-.12.56-.21.84l-1.42 5.1h4.22l-1.42-5.1c-.07-.27-.13-.55-.19-.84"/></g></g></svg> <span class="font-impact text-gray-350 text-base font-semibold uppercase">Story text</span> </div> <span class="text-settings-close" x-on:click="close();"> <svg class="h-4 w-4 text-gray-300" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><defs><clipPath id="close_svg__a"><path fill="none" d="M0 0h40v40H0z"/></clipPath></defs><g fill="none" clip-path="url(#close_svg__a)"><path fill="currentColor" d="M34.3 0 20 14.3 5.7 0H0v5.7L14.3 20 0 34.3V40h5.7L20 25.7 34.3 40H40v-5.7L25.7 20 40 5.7V0z"/></g></svg> </span> </div> <div class="grid grid-cols-3 items-center gap-3 px-5 py-2"> <label class="font-impact w-20 text-base font-semibold uppercase text-gray-100" for="text-settings-size">Size</label> <select name="text-settings-size" class="text-settings-size col-span-2 bg-gray-600 text-sm text-gray-300"> <option value="small">Small</option> <option value="standard" selected>Standard</option> <option value="large">Large</option> </select> <label class="font-impact hidden w-20 text-base font-semibold uppercase text-gray-100 md:block" for="text-settings-width">Width <span class="text-gray-400">*</span> </label> <select name="text-settings-width" class="text-settings-width col-span-2 hidden bg-gray-600 text-sm text-gray-300 md:block"> <option value="standard" selected>Standard</option> <option value="wide">Wide</option> </select> <label class="font-impact w-20 text-base font-semibold uppercase text-gray-100" for="text-settings-links">Links</label> <select name="text-settings-links" class="text-settings-links col-span-2 bg-gray-600 text-sm text-gray-300"> <option value="standard" selected>Standard</option> <option value="orange">Orange</option> </select> <div class="font-impact col-span-3 hidden text-sm font-semibold uppercase text-gray-400 md:block"> <span class="mb-0 italic">* Subscribers only</span><br> <a href="/store/product/subscriptions/" class="text-green-400">Learn more</a> </div> <button class="font-impact text-settings-position col-span-3 mx-auto my-3 block rounded-sm border-2 border-green-400 px-3 py-1 text-base font-semibold uppercase text-gray-100" value="nav"> Minimize to nav </button> </div> </div> </div> </div> </div> </div> <div class="my-2.5 mx-auto px-[15px] sm:px-5 lg:grid lg:max-w-5xl lg:grid-cols-3 lg:gap-6 lg:px-8 xl:px-0"> <div class="relative lg:col-span-2"> <div class="post-content post-content-double"> <div class="page-anchor-wrapper"><a class="" name="page-1" data-page="1" data-url="https://arstechnica.com/gadgets/2024/08/tv-industrys-ads-tracking-obsession-is-turning-your-living-room-into-a-store/"></a></div> <p>The TV business isn't just about selling TVs anymore. Companies are increasingly seeing viewers, not TV sets, as their most lucrative asset.</p> <p>Over the past few years, TV makers have seen rising financial success from TV operating systems that can show viewers ads and analyze their responses. Rather than selling as many TVs as possible, brands like LG, Samsung, Roku, and Vizio are increasingly, if not primarily, seeking recurring revenue from already-sold TVs via ad sales and tracking.</p> <p>How did we get here? And what implications does an ad- and data-obsessed industry have for the future of TVs and the people watching them?</p> <h2>The value of software</h2> <p>Success in the TV industry used to mean selling as many TV sets as possible. But with smart TVs becoming mainstream and hardware margins falling, OEMs have sought new ways to make money. TV OS providers can access a more frequent revenue source at higher margins, which has led to a viewing experience loaded with ads. They can be served from the moment you pick up your remote, which may feature streaming service ads <a href="https://www.theverge.com/circuitbreaker/2020/4/24/21232655/netflix-button-tv-remotes-advertisement-marketing-streaming">in the form of physical buttons</a>.</p> <p>Some TV brands already prioritize data collection and the ability to sell ads, and most are trying to boost their appeal to advertisers. Smart TV OSes have become the cash cow of the TV business, with providers generating revenue by licensing the software and through revenue sharing of in-app purchases and subscriptions.</p> <p>A huge part of TV OS revenue comes from selling ads, including on the OS's home screen and screensaver and through free, ad-supported streaming television channels. <a href="https://www.nexttv.com/news/us-tv-ad-revenue-to-fall-06-in-2024-groupm-forecasts">GroupM</a>, the world’s largest media investment company, reported that smart TV ad revenue grew 20 percent from 2023 to 2024 and will grow another 20 percent to reach $46 billion next year. In September 2023, Patrick Horner, practice leader of consumer electronics at analyst Omdia, <a href="https://omdia.tech.informa.com/blogs/2023/sep/the-drama-unfolding-on-tv">reported </a>that "each new connected TV platform user generates around $5 per quarter in data and advertising revenue."</p> <div class="ars-interlude-container in-content-interlude mx-auto max-w-xl"> </div> </div> </div> <div class="dusk:bg-gray-100 hidden min-w-[300px] justify-self-end dark:bg-gray-50 lg:block"> <div class="ad-wrapper is-sticky is-rail"> <div class="ad-wrapper-inner"> <div class="ad ad--rail"></div> </div> </div> </div> </div> <div class="ad-wrapper with-label is-fullwidth"> <div class="ad-wrapper-inner"> <div class="ad ad--mid-content"> </div> </div> </div> <div class="my-2.5 mx-auto px-[15px] sm:px-5 lg:grid lg:max-w-5xl lg:grid-cols-3 lg:gap-6 lg:px-8 xl:px-0"> <div class="relative lg:col-span-2"> <div class="post-content post-content-double"> <p>Automatic content recognition (<a href="https://www.adexchanger.com/data-exchanges/what-tv-advertisers-need-to-know-about-acr-in-2023/">ACR</a>) tech is at the heart of the smart TV ads business. Most TV brands say users can opt out of ACR, but we’ve already seen Vizio <a href="https://www.hollywoodreporter.com/business/business-news/spying-tvs-legal-settlement-provides-a-few-bucks-vizio-owners-millions-lawyers-1149262/">take advantage</a> of the feature <a href="https://arstechnica.com/tech-policy/2017/02/vizio-smart-tvs-tracked-viewers-around-the-clock-without-consent/">without user permission</a>. ACR is also sometimes turned on by default, and the off switch is often buried in a settings menu. Including ACR on a TV at all says a lot about a TV maker's priorities. Most users have almost nothing to gain from ACR and face privacy concerns by sharing information—sometimes in real time—about what they do with their TVs.</p> <p>At this point, consumers have come to expect ads and tracking on budget TVs from names like Vizio or Roku. But the biggest companies in TV are working on turning their sets into data-prolific billboards, too.</p> <h2>When TVs watch you back, so do corporations</h2> <p>In recent years, we've seen companies like LG and Samsung increase their TVs' ad capabilities as advertisers become more eager to access tracking data from TVs.</p> <p>LG, for example, started sharing data gathered from its TVs with Nielsen, giving the data and market measurement firm “the largest ACR data footprint in the industry,” according to an October announcement. The deal gives Nielsen streaming and linear TV data from LG TVs and provides firms buying ads on LG TVs with "'Always On' streaming measurement and big data from LG Ad Solutions" via <a href="https://www.adexchanger.com/digital-tv/nielsen-releases-nielsen-one-ads-in-the-fight-for-its-life/">Nielsen's ONE Ads</a> dashboard.</p> <p>LG, which recently unveiled a goal of evolving its hardware business into an ad-pushing “media and entertainment platform company," expects there to be 300 million webOS TVs in homes by 2026. That represents a huge data-collection and recurring-revenue opportunity. In September, LG said it would invest 1 trillion KRW (about $737.7 million) through 2028 into its "webOS business," or the business behind its smart TV OS. The company said updates will include improving webOS's UI, AI-based recommendations, and search capabilities.</p> </div> </div> <div class="dusk:bg-gray-100 hidden min-w-[300px] justify-self-end dark:bg-gray-50 lg:block"> <div class="ad-wrapper is-sticky is-rail"> <div class="ad-wrapper-inner"> <div class="ad ad--rail"></div> </div> </div> </div> </div> <div class="ad-wrapper with-label is-fullwidth"> <div class="ad-wrapper-inner"> <div class="ad ad--mid-content"> </div> </div> </div> <div class="my-2.5 mx-auto px-[15px] sm:px-5 lg:grid lg:max-w-5xl lg:grid-cols-3 lg:gap-6 lg:px-8 xl:px-0"> <div class="relative lg:col-span-2"> <div class="post-content post-content-double"> <p>Similarly, Samsung recently <a href="https://digiday.com/media/newfronts-briefing-samsung-conde-nast-roku-focus-presentations-on-new-ad-formats-and-category-specific-inventory/">updated</a> its ACR tech to track exposure to ads viewed on its TVs via streaming services instead of just from linear TV. Samsung is also trying to make its ACR data more valuable for ad targeting, including through a deal signed in December with analytics firm Experian.</p> <p>Representatives for LG and Samsung declined to comment to Ars Technica about how much of their respective company's business is ad sales. But the deals they've made with data-collection firms signal big interest in turning their products into lucrative smart TVs. In this case, "smart" isn't about Internet connectivity but rather how well the TV understands its viewer.</p> <div class="page-anchor-wrapper"><a class="record-pageview" name="page-2" data-page="2" data-url="https://arstechnica.com/gadgets/2024/08/tv-industrys-ads-tracking-obsession-is-turning-your-living-room-into-a-store/"></a></div> <h2>The true price of a cheap TV</h2> <p>Budget TVs are the leaders in this trend, often offsetting cheap hardware prices with ads and data collection. Some people seek out the <a href="https://arstechnica.com/gadgets/2024/04/meet-qdel-the-backlight-less-display-tech-that-could-replace-oled-in-premium-tvs/">latest display developments</a>, but many consumers merely want the cheapest TV they can buy within a certain size range. Various brands lure budget shoppers with low prices but then force them to pay through heightened ad exposure—either immediately or after a future software update. In recent months, we've seen budget brands test users' limits when it comes to ads, and this is all happening amid a global shift to streaming services that are also <a href="https://arstechnica.com/gadgets/2024/05/prime-video-subs-will-soon-see-ads-for-amazon-products-when-they-hit-pause/">increasingly ad-driven</a>.</p> <p>Roku OS is constantly trying to fit more ads with stronger targeting into its UI, whether that's on the menu, on screensavers, or delivered via Roku TV channels. Earlier this year, Roku OS introduced <a href="https://arstechnica.com/gadgets/2024/04/roku-ad-push-continues-with-plans-to-put-video-ads-in-os-home-screen/">home-screen video ads</a>.</p> <p>Roku has also tested a feature that "would force viewers to sit through effectively a mid-roll ad when clicking from the Roku City screensaver to return to home screen," <a href="https://digiday.com/media/newfronts-briefing-samsung-conde-nast-roku-focus-presentations-on-new-ad-formats-and-category-specific-inventory/">Digiday</a> reported in May. Additionally, Roku filed a patent for <a href="https://arstechnica.com/gadgets/2024/04/hdmi-customized-ad-insertion-patent-would-show-rokus-ads-atop-non-roku-video/">showing ads over anything you plug into your TV</a>. It's possible that neither capability will roll out, but interest in these sorts of developments illustrates the value Roku puts in advancing its ad services.</p> </div> </div> <div class="dusk:bg-gray-100 hidden min-w-[300px] justify-self-end dark:bg-gray-50 lg:block"> <div class="ad-wrapper is-sticky is-rail"> <div class="ad-wrapper-inner"> <div class="ad ad--rail"></div> </div> </div> </div> </div> <div class="ad-wrapper with-label is-fullwidth"> <div class="ad-wrapper-inner"> <div class="ad ad--mid-content"> </div> </div> </div> <div class="my-2.5 mx-auto px-[15px] sm:px-5 lg:grid lg:max-w-5xl lg:grid-cols-3 lg:gap-6 lg:px-8 xl:px-0"> <div class="relative lg:col-span-2"> <div class="post-content post-content-double"> <p>Moving off <a href="https://arstechnica.com/gadgets/2023/11/amazon-fire-tablets-and-other-gear-will-reportedly-switch-away-from-android/">an Android fork</a>, Amazon reportedly started deploying its own OS to run on its TVs <a href="https://www.lowpass.cc/p/amazon-vega-os-fire-tv-android">in November</a>. Amazon Fire TV users are subject to <a href="https://cordcuttersnews.com/amazons-fire-tv-is-adding-full-screen-video-ads-that-play-when-you-start-your-fire-tv/">full-screen video ads</a>, and OS ownership gives Amazon more control and greater potential for earnings from advertising services. Amazon's advertising business was thought to be its <a href="https://www.forbes.com/sites/jasongoldberg/2022/02/04/amazon-reveals-its-most-profitable-business/">most profitable</a> in 2020, and Fire OS is becoming a bigger part of that.</p> <p>With software updates easily forcing new ad capabilities into already-owned TVs, it's likely that this strategy will intensify in the near term as OS providers try to find more ways to support new types of ads. In the long term, with price often cited as a top factor in TV purchasing decisions, pricier brands may potentially cave and adopt more ad-centric tactics. Such moves could help those brands offer prices that are more competitive with budget options.</p> <h2>TV or store?</h2> <p>Even before smart TVs, watching TV typically meant watching plenty of commercials and product placements. But Internet connectivity, advanced tracking techniques, and interest in TV data collection from megastores are pushing TVs to evolve from digital billboards to digital stores.</p> <p>People usually only buy a new TV every few years or longer, which has driven OEMs to the ongoing revenue potential tied to data and ads. For users, this means that TV watching could become much more commercialized as the industry seeks new ways to use TVs for ad tracking. The current focus is on developing "shoppable ads," or ads that let people make purchases while using their TV.</p> <div class="ars-lightbox align-fullwidth my-5"> <div class="flex flex-col flex-nowrap gap-5 py-5 md:flex-row"> <div class="" style="flex-basis: calc(50% - 10px);"> <div class="ars-lightbox-item relative block h-full w-full overflow-hidden rounded-sm"> <a data-pswp-width="1024" data-pswp-height="576" data-pswp-srcset="https://cdn.arstechnica.net/wp-content/uploads/2024/07/roku-walmart-shoppable-ads-1024x576-1.jpg 1024w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/roku-walmart-shoppable-ads-1024x576-1-300x169.jpg 300w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/roku-walmart-shoppable-ads-1024x576-1-640x360.jpg 640w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/roku-walmart-shoppable-ads-1024x576-1-768x432.jpg 768w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/roku-walmart-shoppable-ads-1024x576-1-384x216.jpg 384w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/roku-walmart-shoppable-ads-1024x576-1-980x551.jpg 980w" data-cropped="true" href="https://cdn.arstechnica.net/wp-content/uploads/2024/07/roku-walmart-shoppable-ads-1024x576-1.jpg" target="_blank" class="cursor-zoom-in"> <img decoding="async" width="640" height="360" src="https://cdn.arstechnica.net/wp-content/uploads/2024/07/roku-walmart-shoppable-ads-1024x576-1-640x360.jpg" class="ars-gallery-image" alt="An example of a shoppable ad for Walmart on a Roku TV." loading="lazy" aria-labelledby="caption-2039400" srcset="https://cdn.arstechnica.net/wp-content/uploads/2024/07/roku-walmart-shoppable-ads-1024x576-1-640x360.jpg 640w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/roku-walmart-shoppable-ads-1024x576-1-300x169.jpg 300w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/roku-walmart-shoppable-ads-1024x576-1-768x432.jpg 768w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/roku-walmart-shoppable-ads-1024x576-1-384x216.jpg 384w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/roku-walmart-shoppable-ads-1024x576-1-980x551.jpg 980w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/roku-walmart-shoppable-ads-1024x576-1.jpg 1024w" sizes="auto, (max-width: 640px) 100vw, 640px"> </a> <div class="pswp-caption-content" id="caption-2039400"> A depiction of a shoppable ad for Walmart on a Roku TV. <div class="ars-gallery-caption-credit"> Roku </div> </div> </div> <div class="md:hidden"> <div class="ars-gallery-caption"> <svg class="ars-gallery-caption-arrow ars-gallery-caption-arrow-right" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 40 40"><defs><clippath id="arrow-blocks-right_svg__a"><path fill="none" d="M0 0h40v40H0z"></path></clippath></defs><g fill="currentColor" clip-path="url(#arrow-blocks-right_svg__a)"><path d="M32 16h8v8h-8zm-8 8h8v8h-8zm-8 8h8v8h-8zm8-24h8v8h-8zm-8-8h8v8h-8zM0 16h16v8H0z"></path></g></svg> <div class="ars-gallery-caption-content "> <span class="ars-gallery-caption-text">A depiction of a shoppable ad for Walmart on a Roku TV.</span> <span class="ars-gallery-caption-credit"> Roku </span> </div> </div> </div> </div> <div class="flex-1"> <div class="ars-lightbox-item relative block h-full w-full overflow-hidden rounded-sm"> <a data-pswp-width="1024" data-pswp-height="576" data-pswp-srcset="https://cdn.arstechnica.net/wp-content/uploads/2024/07/roku-walmart-shoppable-ads-checkout-1024x576-1.jpg 1024w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/roku-walmart-shoppable-ads-checkout-1024x576-1-300x169.jpg 300w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/roku-walmart-shoppable-ads-checkout-1024x576-1-640x360.jpg 640w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/roku-walmart-shoppable-ads-checkout-1024x576-1-768x432.jpg 768w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/roku-walmart-shoppable-ads-checkout-1024x576-1-384x216.jpg 384w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/roku-walmart-shoppable-ads-checkout-1024x576-1-980x551.jpg 980w" data-cropped="true" href="https://cdn.arstechnica.net/wp-content/uploads/2024/07/roku-walmart-shoppable-ads-checkout-1024x576-1.jpg" target="_blank" class="cursor-zoom-in"> <img decoding="async" width="640" height="360" src="https://cdn.arstechnica.net/wp-content/uploads/2024/07/roku-walmart-shoppable-ads-checkout-1024x576-1-640x360.jpg" class="ars-gallery-image" alt="An example of a shoppable ad for Walmart on a Roku TV." loading="lazy" aria-labelledby="caption-2039399" srcset="https://cdn.arstechnica.net/wp-content/uploads/2024/07/roku-walmart-shoppable-ads-checkout-1024x576-1-640x360.jpg 640w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/roku-walmart-shoppable-ads-checkout-1024x576-1-300x169.jpg 300w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/roku-walmart-shoppable-ads-checkout-1024x576-1-768x432.jpg 768w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/roku-walmart-shoppable-ads-checkout-1024x576-1-384x216.jpg 384w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/roku-walmart-shoppable-ads-checkout-1024x576-1-980x551.jpg 980w, https://cdn.arstechnica.net/wp-content/uploads/2024/07/roku-walmart-shoppable-ads-checkout-1024x576-1.jpg 1024w" sizes="auto, (max-width: 640px) 100vw, 640px"> </a> <div class="pswp-caption-content" id="caption-2039399"> Checking out on the Roku TV. <div class="ars-gallery-caption-credit"> Roku </div> </div> </div> <div class="md:hidden"> <div class="ars-gallery-caption"> <svg class="ars-gallery-caption-arrow ars-gallery-caption-arrow-right" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 40 40"><defs><clippath id="arrow-blocks-right_svg__a"><path fill="none" d="M0 0h40v40H0z"></path></clippath></defs><g fill="currentColor" clip-path="url(#arrow-blocks-right_svg__a)"><path d="M32 16h8v8h-8zm-8 8h8v8h-8zm-8 8h8v8h-8zm8-24h8v8h-8zm-8-8h8v8h-8zM0 16h16v8H0z"></path></g></svg> <div class="ars-gallery-caption-content "> <span class="ars-gallery-caption-text">Checking out on the Roku TV. </span> <span class="ars-gallery-caption-credit"> Roku </span> </div> </div> </div> </div> </div> <div class="hidden md:block"> <div class="ars-gallery-caption"> <svg class="ars-gallery-caption-arrow ars-gallery-caption-arrow-left" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 40 40"><defs><clippath id="arrow-blocks-right_svg__a"><path fill="none" d="M0 0h40v40H0z"></path></clippath></defs><g fill="currentColor" clip-path="url(#arrow-blocks-right_svg__a)"><path d="M32 16h8v8h-8zm-8 8h8v8h-8zm-8 8h8v8h-8zm8-24h8v8h-8zm-8-8h8v8h-8zM0 16h16v8H0z"></path></g></svg> <div class="ars-gallery-caption-content left"> <span class="ars-gallery-caption-text">A depiction of a shoppable ad for Walmart on a Roku TV.</span> <span class="ars-gallery-caption-credit"> Roku </span> </div> </div> <div class="ars-gallery-caption"> <svg class="ars-gallery-caption-arrow ars-gallery-caption-arrow-right" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 40 40"><defs><clippath id="arrow-blocks-right_svg__a"><path fill="none" d="M0 0h40v40H0z"></path></clippath></defs><g fill="currentColor" clip-path="url(#arrow-blocks-right_svg__a)"><path d="M32 16h8v8h-8zm-8 8h8v8h-8zm-8 8h8v8h-8zm8-24h8v8h-8zm-8-8h8v8h-8zM0 16h16v8H0z"></path></g></svg> <div class="ars-gallery-caption-content right"> <span class="ars-gallery-caption-text">Checking out on the Roku TV. </span> <span class="ars-gallery-caption-credit"> Roku </span> </div> </div> </div> </div> <p>Streaming services like Hulu already show shoppable ads, and TV OS operators are exploring ways to capitalize on the trend. Amazon and Roku TVs, for example, have shoppable ads on screensavers. Other brands, <a href="https://www.businesswire.com/news/home/20230502005443/en/KERV-Interactive-Announces-First-OEM-Partnership-with-Samsung-Ads-to-Offer-Automated-Interactive-Advertising-Solutions-across-CTVL%20">like Samsung</a>, are building out their ability to deliver shoppable ads on TVs. Relevant players are exploring formats like QR codes, games, and ads you can navigate with your remote. And TV brands are increasingly working with big stores like <a href="https://www.retailtouchpoints.com/topics/digital-marketing/roku-walgreens-and-the-future-of-ctv-shoppable-ad-experiences">Walgreens</a> and <a href="https://techcrunch.com/2023/03/10/roku-partners-with-best-buy-and-its-advertising-business-to-get-first-party-shopper-data/">Best Buy</a> to more extensively target advertising.</p> </div> </div> <div class="dusk:bg-gray-100 hidden min-w-[300px] justify-self-end dark:bg-gray-50 lg:block"> <div class="ad-wrapper is-sticky is-rail"> <div class="ad-wrapper-inner"> <div class="ad ad--rail"></div> </div> </div> </div> </div> <div class="ad-wrapper with-label is-fullwidth"> <div class="ad-wrapper-inner"> <div class="ad ad--mid-content"> </div> </div> </div> <div class="my-2.5 mx-auto px-[15px] sm:px-5 lg:grid lg:max-w-5xl lg:grid-cols-3 lg:gap-6 lg:px-8 xl:px-0"> <div class="relative lg:col-span-2"> <div class="post-content post-content-double"> <p>Omdia's Horner tells me that shoppable ads are the "next wave of smart TV advertising." Amazon and Walmart are expected to lead the way as huge retailers that can incorporate the purchase histories they have from their stores with viewer data. According to trade publication <a href="https://www.retailtouchpoints.com/topics/digital-marketing/thinking-beyond-the-30-second-ad-spot-how-best-buy-leveraged-ctv-to-reach-new-consumers">Retail TouchPoints</a>, Walgreens Senior Director of Client Success Katie Vogt explained the appeal at a June conference:</p> <blockquote><p>The beauty of reaching a specific Walgreens shopper is that [brands can] tie back the measurement and understand whether the shoppable [connected TV] ad actually drove those customers to go into a store or go online to make a purchase.</p></blockquote> <p>Walmart's proposed <a href="https://arstechnica.com/gadgets/2024/02/walmart-buying-tv-brand-vizio-for-its-ad-fueling-customer-data/">Vizio acquisition</a> is an obvious example of how eager retailers and advertisers are to access data collected from TVs. Through its Platform+ business unit, Vizio was <a href="https://arstechnica.com/gadgets/2021/05/vizio-tv-buyers-are-becoming-the-product-vizio-sells-not-just-its-customers/">one of the first</a> OEMs to focus more business on ad sales and tracking than hardware.</p> <div class="page-anchor-wrapper"><a class="record-pageview" name="page-3" data-page="3" data-url="https://arstechnica.com/gadgets/2024/08/tv-industrys-ads-tracking-obsession-is-turning-your-living-room-into-a-store/"></a></div> <figure class="ars-img-shortcode id-2027082 align-center"> <div> <div class="ars-lightbox"> <div class="ars-lightbox-item"> <a data-pswp-width="913" data-pswp-height="747" data-pswp-srcset="https://cdn.arstechnica.net/wp-content/uploads/2024/05/Vizio-quarterly-profits-USD-million-2-300x245.jpg 300w, https://cdn.arstechnica.net/wp-content/uploads/2024/05/Vizio-quarterly-profits-USD-million-2-640x524.jpg 640w, https://cdn.arstechnica.net/wp-content/uploads/2024/05/Vizio-quarterly-profits-USD-million-2-768x628.jpg 768w, https://cdn.arstechnica.net/wp-content/uploads/2024/05/Vizio-quarterly-profits-USD-million-2.jpg 913w" data-cropped="true" href="https://cdn.arstechnica.net/wp-content/uploads/2024/05/Vizio-quarterly-profits-USD-million-2.jpg" target="_blank" class="cursor-zoom-in"> <img decoding="async" width="913" height="747" src="https://cdn.arstechnica.net/wp-content/uploads/2024/05/Vizio-quarterly-profits-USD-million-2.jpg" class="attachment-full size-full" alt="Vizio quarterly profits USD million 2 Q1 2020 through Q4 2022" srcset="https://cdn.arstechnica.net/wp-content/uploads/2024/05/Vizio-quarterly-profits-USD-million-2.jpg 913w, https://cdn.arstechnica.net/wp-content/uploads/2024/05/Vizio-quarterly-profits-USD-million-2-300x245.jpg 300w, https://cdn.arstechnica.net/wp-content/uploads/2024/05/Vizio-quarterly-profits-USD-million-2-640x524.jpg 640w, https://cdn.arstechnica.net/wp-content/uploads/2024/05/Vizio-quarterly-profits-USD-million-2-768x628.jpg 768w" sizes="(max-width: 913px) 100vw, 913px"> </a> <div class="pswp-caption-content" id="caption-2027082"> In Q1 2024, Vizio reported $88.3 million gross profit for Platform+ and a $7.2 million loss for its devices business. <div class="ars-gallery-caption-credit"> Credit: <a href="https://omdia.tech.informa.com/blogs/2023/sep/the-drama-unfolding-on-tv" target="_blank">Omdia</a> </div> </div> </div> </div> </div> <figcaption> <div class="caption font-impact dusk:text-gray-300 mb-4 mt-2 inline-flex flex-row items-stretch gap-1 text-base leading-tight text-gray-400 dark:text-gray-300"> <div class="caption-icon bg-[left_top_5px] w-[10px] shrink-0"></div> <div class="caption-content"> In Q1 2024, Vizio reported $88.3 million gross profit for Platform+ and a $7.2 million loss for its devices business. <span class="caption-credit mt-2 text-xs"> Credit: <a class="caption-credit-link text-gray-400 no-underline hover:text-gray-500" href="https://omdia.tech.informa.com/blogs/2023/sep/the-drama-unfolding-on-tv" target="_blank"> Omdia </a> </span> </div> </div> </figcaption> </figure> <p>Walmart is willing to pay $2.3 billion for Vizio to help reach its dream of being a <a href="https://www.forbes.com/sites/andriacheng/2021/02/05/why-walmart-wants-a-bigger-slice-of-the-digital-ad-market/">top-10 advertising business</a>. Soon, using a Vizio TV could mean fueling Walmart's ability to sell and track ads and make retail sales.</p> <p>Stakeholders argue that shoppable ads provide a service to viewers, but the obvious winner is advertisers. As Tony Marlow, CMO of LG Ad Solutions, <a href="https://www.thedrum.com/open-mic/shoppable-tv-brings-the-store-to-the-living-room-heres-how-brands-can-capitalize">wrote</a> earlier this year, without shoppable TV ads, "marketers have been unable to gain a truly holistic view of the entire purchase journey."</p> <p>Going even further, <a href="https://arstechnica.com/gadgets/2023/12/upcoming-wireless-tvs-sell-users-on-screen-products-when-they-raise-their-hand/">newcomer Displace</a> is offering a peek at an aggressive TV-as-a-store future. The company says its sets, which will ship at the end of the year, will be able to use proprietary gesture tech to tell if someone is raising a hand. The TV will pause the content and use computer vision to look for stuff the viewer can buy. Viewers can place items they want in a shopping cart and pay for them using the TV's integrated NFC reader.</p> </div> </div> <div class="dusk:bg-gray-100 hidden min-w-[300px] justify-self-end dark:bg-gray-50 lg:block"> <div class="ad-wrapper is-sticky is-rail"> <div class="ad-wrapper-inner"> <div class="ad ad--rail"></div> </div> </div> </div> </div> <div class="ad-wrapper with-label is-fullwidth"> <div class="ad-wrapper-inner"> <div class="ad ad--mid-content"> </div> </div> </div> <div class="my-2.5 mx-auto px-[15px] sm:px-5 lg:grid lg:max-w-5xl lg:grid-cols-3 lg:gap-6 lg:px-8 xl:px-0"> <div class="relative lg:col-span-2"> <div class="post-content post-content-double"> <p>As a 2-year-old startup offering a niche product, Displace likely won't have the same impact on the industry as the likes of Amazon or Vizio. But Displace's TVs are indicative of an industry desperate for new ways to make money and eager to be an integral part of e-commerce.</p> <h2>Telly’s free TVs</h2> <p>Another niche upcoming TV set is the Telly. The company's <a href="https://arstechnica.com/gadgets/2023/05/double-screen-free-tv-will-show-you-ads-even-when-not-in-use/">TVs are free</a> but allow the startup to track their owners, and they have a secondary screen for showing ads, including when the TV is off (the secondary screen can also display information like the weather or sports scores). Telly's prospective owners must answer a long series of questions, like if they're registered to vote and who their cell phone provider is, with the data used for ad targeting. Telly has discussed further potential ways to commercialize TV watching, such as letting people earn gift cards by filling out surveys (also to help targeted advertising) on the TV.</p> <figure class="ars-img-shortcode id-1939328 align-center"> <div> <div class="ars-lightbox"> <div class="ars-lightbox-item"> <a data-pswp-width="1440" data-pswp-height="810" data-pswp-srcset="https://cdn.arstechnica.net/wp-content/uploads/2023/05/telly-2-300x169.jpg 300w, https://cdn.arstechnica.net/wp-content/uploads/2023/05/telly-2-640x360.jpg 640w, https://cdn.arstechnica.net/wp-content/uploads/2023/05/telly-2-768x432.jpg 768w, https://cdn.arstechnica.net/wp-content/uploads/2023/05/telly-2-1536x864.jpg 1536w, https://cdn.arstechnica.net/wp-content/uploads/2023/05/telly-2-384x216.jpg 384w, https://cdn.arstechnica.net/wp-content/uploads/2023/05/telly-2-1152x648.jpg 1152w, https://cdn.arstechnica.net/wp-content/uploads/2023/05/telly-2-980x551.jpg 980w, https://cdn.arstechnica.net/wp-content/uploads/2023/05/telly-2-1440x810.jpg 1440w, https://cdn.arstechnica.net/wp-content/uploads/2023/05/telly-2.jpg 1920w" data-cropped="true" href="https://cdn.arstechnica.net/wp-content/uploads/2023/05/telly-2-1440x810.jpg" target="_blank" class="cursor-zoom-in"> <img decoding="async" width="1920" height="1080" src="https://cdn.arstechnica.net/wp-content/uploads/2023/05/telly-2.jpg" class="attachment-full size-full" alt="Telly TV with ads on second screen" srcset="https://cdn.arstechnica.net/wp-content/uploads/2023/05/telly-2.jpg 1920w, https://cdn.arstechnica.net/wp-content/uploads/2023/05/telly-2-300x169.jpg 300w, https://cdn.arstechnica.net/wp-content/uploads/2023/05/telly-2-640x360.jpg 640w, https://cdn.arstechnica.net/wp-content/uploads/2023/05/telly-2-768x432.jpg 768w, https://cdn.arstechnica.net/wp-content/uploads/2023/05/telly-2-1536x864.jpg 1536w, https://cdn.arstechnica.net/wp-content/uploads/2023/05/telly-2-384x216.jpg 384w, https://cdn.arstechnica.net/wp-content/uploads/2023/05/telly-2-1152x648.jpg 1152w, https://cdn.arstechnica.net/wp-content/uploads/2023/05/telly-2-980x551.jpg 980w, https://cdn.arstechnica.net/wp-content/uploads/2023/05/telly-2-1440x810.jpg 1440w" sizes="(max-width: 1920px) 100vw, 1920px"> </a> <div class="pswp-caption-content" id="caption-1939328"> Telly's 4K TV comes with a different kind of price. <div class="ars-gallery-caption-credit"> Credit: <a href="https://mma.prnewswire.com/media/2076438/Telly_Ambient_Dualwave.jpg?p=publish" target="_blank">Telly</a> </div> </div> </div> </div> </div> <figcaption> <div class="caption font-impact dusk:text-gray-300 mb-4 mt-2 inline-flex flex-row items-stretch gap-1 text-base leading-tight text-gray-400 dark:text-gray-300"> <div class="caption-icon bg-[left_top_5px] w-[10px] shrink-0"></div> <div class="caption-content"> Telly's 4K TV comes with a different kind of price. <span class="caption-credit mt-2 text-xs"> Credit: <a class="caption-credit-link text-gray-400 no-underline hover:text-gray-500" href="https://mma.prnewswire.com/media/2076438/Telly_Ambient_Dualwave.jpg?p=publish" target="_blank"> Telly </a> </span> </div> </div> </figcaption> </figure> <p>Telly takes tracking to a new level, especially since owners can't opt out—blocking tracking may result in an owner being charged for the TV. The company's <a href="https://www.freetelly.com/viewing-and-activity-data-policy">viewing and activity data policy</a> says its TVs can track a myriad of things, including settings, search queries, apps usage, and how many people are within 25 feet of the TV. Telly claims that advertisers won’t see personal information when viewing data accumulated from its TVs.</p> <p>In theory, Telly could help get a new 55-inch 4K TV in the hands of people who wouldn’t be able to afford one otherwise. But at least in this early stage, the company isn’t primarily benefitting low-income households. According to a May <a href="https://videoweek.com/2024/05/01/telly-introduces-dual-screen-shoppable-ads-at-iab-newfronts-debut/">Video Week</a> report, Telly’s first 400,000 users have “higher incomes than the US average," which seems like a draw for advertisers.</p> </div> </div> <div class="dusk:bg-gray-100 hidden min-w-[300px] justify-self-end dark:bg-gray-50 lg:block"> <div class="ad-wrapper is-sticky is-rail"> <div class="ad-wrapper-inner"> <div class="ad ad--rail"></div> </div> </div> </div> </div> <div class="ad-wrapper with-label is-fullwidth"> <div class="ad-wrapper-inner"> <div class="ad ad--mid-content"> </div> </div> </div> <div class="my-2.5 mx-auto px-[15px] sm:px-5 lg:grid lg:max-w-5xl lg:grid-cols-3 lg:gap-6 lg:px-8 xl:px-0"> <div class="relative lg:col-span-2"> <div class="post-content post-content-double"> <p>Telly's business model is an outlier, but its CEO thinks the company is ahead of the curve, and <a href="https://deadline.com/2023/07/smart-tv-telly-spotify-microsoft-nielsen-starts-shipping-free-sets-1235437252/">advertisers are jumping aboard</a>. Still, Omdia's Horner believes Telly's strategy won't become mainstream. "Amazon and Walmart are the players to watch for trends in smart TV ads and e-commerce. Niche players giving away free TVs in exchange for extreme data collection will not move the market," he said.</p> <div class="page-anchor-wrapper"><a class="record-pageview" name="page-4" data-page="4" data-url="https://arstechnica.com/gadgets/2024/08/tv-industrys-ads-tracking-obsession-is-turning-your-living-room-into-a-store/"></a></div> <h2>When dumb TVs seem smart</h2> <p>As the TV industry has grown its ad capabilities over the years, shoppers have nearly lost the option to buy a new TV that doesn't connect to the Internet. Jacob Hoffman-Andrews, senior staff technologist at the Electronic Frontier Foundation, described the trend of building surveillance into all new smart TVs as "incredibly invasive and little understood."</p> <p>In an email to Ars, he added, "Nobody wants a snooping and snitching television, but lately that's all you can buy."</p> <p>Those who want a TV without an Internet connection have few options. You can try to prevent a smart TV from tracking you, but again, <a href="https://www.consumerreports.org/electronics/privacy/how-to-turn-off-smart-tv-snooping-features-a4840102036/">turning off ACR</a> and other tracking techniques can be challenging. Some TVs remove basic features like Internet connectivity if you don’t let them track you.</p> <p>Companies like Telly open a window for other brands to consider more intrusive tracking and ads. Consider a world in which you have to say a brand name at your TV to skip ads, as demonstrated by a <a href="https://patents.google.com/patent/US8246454?oq=8246454">Sony patent</a>:</p> <figure class="ars-img-shortcode id-1992344 align-center"> <div> <div class="ars-lightbox"> <div class="ars-lightbox-item"> <a data-pswp-width="868" data-pswp-height="688" data-pswp-srcset="https://cdn.arstechnica.net/wp-content/uploads/2023/12/sony-patent-300x238.png 300w, https://cdn.arstechnica.net/wp-content/uploads/2023/12/sony-patent-640x507.png 640w, https://cdn.arstechnica.net/wp-content/uploads/2023/12/sony-patent-768x609.png 768w, https://cdn.arstechnica.net/wp-content/uploads/2023/12/sony-patent.png 868w" data-cropped="true" href="https://cdn.arstechnica.net/wp-content/uploads/2023/12/sony-patent.png" target="_blank" class="cursor-zoom-in"> <img decoding="async" width="868" height="688" src="https://cdn.arstechnica.net/wp-content/uploads/2023/12/sony-patent.png" class="attachment-full size-full" alt="sony patent illustration" srcset="https://cdn.arstechnica.net/wp-content/uploads/2023/12/sony-patent.png 868w, https://cdn.arstechnica.net/wp-content/uploads/2023/12/sony-patent-300x238.png 300w, https://cdn.arstechnica.net/wp-content/uploads/2023/12/sony-patent-640x507.png 640w, https://cdn.arstechnica.net/wp-content/uploads/2023/12/sony-patent-768x609.png 768w" sizes="(max-width: 868px) 100vw, 868px"> </a> <div class="pswp-caption-content" id="caption-1992344"> An image from Sony's patent. <div class="ars-gallery-caption-credit"> Credit: Sony Interactive Entertainment LLC </div> </div> </div> </div> </div> <figcaption> <div class="caption font-impact dusk:text-gray-300 mb-4 mt-2 inline-flex flex-row items-stretch gap-1 text-base leading-tight text-gray-400 dark:text-gray-300"> <div class="caption-icon bg-[left_top_5px] w-[10px] shrink-0"></div> <div class="caption-content"> An image from Sony's patent. <span class="caption-credit mt-2 text-xs"> Credit: Sony Interactive Entertainment LLC </span> </div> </div> </figcaption> </figure> <p>It's likely that Sony won't make anything of this patent, as is typically the case with patents from research and development teams. But here again, we see how common it is for tech brands that sell TVs to experiment with ad formats and delivery.</p> <p>Some things TVs already track would have sounded extreme before 2011, when ACR started taking off. For example, using ACR, TVs can reveal to OS providers—and therefore advertisers—the shows watched on the set and whether that content was streamed or watched via an antenna or cable. ACR can even identify DVDs watched on a TV. Per <a href="https://www.adexchanger.com/data-exchanges/what-tv-advertisers-need-to-know-about-acr-in-2023/">Ad Exchanger</a>: “ACR ingests pixels on-screen to assign a value to each frame," which is like an "unknown fingerprint." The OS sends these fingerprints “to a database that logs content available on TV to find a known match and identify the content. Once ACR identifies the show, it can tie that viewing data to a specific household, such as a given household watching <em>The Big Bang Theory</em> at 9 pm." Advertisers can combine this information with other tactics, like <a href="https://www.ad-id.org/advertiser">advertisement identification</a>, which assigns a unique ID to ads, to further track TV usage.</p> </div> </div> <div class="dusk:bg-gray-100 hidden min-w-[300px] justify-self-end dark:bg-gray-50 lg:block"> <div class="ad-wrapper is-sticky is-rail"> <div class="ad-wrapper-inner"> <div class="ad ad--rail"></div> </div> </div> </div> </div> <div class="ad-wrapper with-label is-fullwidth"> <div class="ad-wrapper-inner"> <div class="ad ad--mid-content"> </div> </div> </div> <div class="my-2.5 mx-auto px-[15px] sm:px-5 lg:grid lg:max-w-5xl lg:grid-cols-3 lg:gap-6 lg:px-8 xl:px-0"> <div class="relative lg:col-span-2"> <div class="post-content post-content-double"> <p>But there are plenty who don’t know the extent to which their TVs are monitoring them. Complexity in understanding and controlling TV tracking is especially relevant as more sets incorporate microphones and cameras. Terms of service are often complex, wordy agreements buried in elusive TV settings or online, and companies have ways of <a href="https://arstechnica.com/gadgets/2024/03/disgraceful-messy-tos-update-allegedly-locks-roku-devices-until-users-give-in/">strong-arming TV owners into accepting</a> such agreements. Further complicating matters, it's possible for consumers to disable tracking from the TV OS provider, such as Google, but still be tracked by the TV OEM, like TCL.</p> <div class="page-anchor-wrapper"><a class="record-pageview" name="page-5" data-page="5" data-url="https://arstechnica.com/gadgets/2024/08/tv-industrys-ads-tracking-obsession-is-turning-your-living-room-into-a-store/"></a></div> <h2>Tune in next time...</h2> <p>With TV sales declining and many shoppers prioritizing pricing, smart TV players will continue developing ads that are harder to avoid and better at targeting. Interestingly, Horner told Ars that smart TV advertising revenue exceeding smart TV hardware revenue (as well as ad sale margins surpassing those of hardware) is a US-only trend, albeit one that shows no signs of abating. OLED has become a mainstay in the TV marketplace, and until the next big display technology becomes readily available, OEMs are scrambling to make money in a saturated TV market filled with budget options. Selling ads is an obvious way to bridge the gap between today and The Next Big Thing in TVs.</p> <p>Indeed, with companies like Samsung and LG making big deals with analytics firms and other brands building their businesses around ads, the industry's obsession with ads will only intensify. As we've seen before with TV commercials, which have gotten <a href="https://time.com/96303/tv-commercials-increasing/">more frequent over time</a>, once the ad genie is out of the bottle, it tends to grow, not go back inside.</p> <p>One side effect we're already seeing, Horner notes, is "a proliferation of more TV operating systems." While choice is often a good thing for consumers, it's important to consider if new options from companies like Amazon, Comcast, and TiVo actually do anything to notably improve the smart TV experience for owners.</p> </div> </div> <div class="dusk:bg-gray-100 hidden min-w-[300px] justify-self-end dark:bg-gray-50 lg:block"> <div class="ad-wrapper is-sticky is-rail"> <div class="ad-wrapper-inner"> <div class="ad ad--rail"></div> </div> </div> </div> </div> <div class="ad-wrapper with-label is-fullwidth"> <div class="ad-wrapper-inner"> <div class="ad ad--mid-content"> </div> </div> </div> <div class="mt-2.5 mx-auto px-[15px] sm:px-5 lg:grid lg:max-w-5xl lg:grid-cols-3 lg:gap-6 lg:px-8 xl:px-0"> <div class="relative lg:col-span-2"> <div class="post-content post-content-double"> <p>And OS operators' financial success is tied to the number of hours users spend viewing something on the OS. Roku's senior director of ad innovation, Peter Hamilton, told <a href="https://digiday.com/future-of-tv/how-ctv-platforms-are-pushing-non-traditional-ad-formats-but-not-too-far/">Digiday</a> in May that his team works closely with Roku's consumer team, "whose goal is to drive total viewing hours." Many smart TV OS operators are therefore focused on making it easier for users to navigate content via AI.</p> <p>Per a <a href="https://omdia.tech.informa.com/blogs/2023/sep/the-drama-unfolding-on-tv">blog post</a> from Omdia's Horner:</p> <blockquote><p>With advertising, it’s not just the number of TVs shipped but rather the number of hours of content consumed that determines the winner. In this respect, the TV itself matters as well. Only the set in the main TV viewing room will get enough engagement to justify selling at close-to-manufacturing costs. The smaller sets in bedrooms and the kitchen, for example, will not get enough engagement to be profitable from advertising alone. We expect that in the US, TVs that are 50 inches and above and in the main viewing area of the house will be the primary targets for advertising engagement.</p></blockquote> <p>Vendors I spoke with all said that ad interests wouldn't hinder R&D around more traditional features. Having TVs with desirable features like strong image or sound quality remains relevant for pushing ads. But it's easy to imagine TV brands growing complacent about improving more traditional TV capabilities, too.</p> <p>For most people who want fewer ads on their TVs, the only option is to vote with your dollar. There's also a growing pool of technically savvy folks sharing hacks for disconnecting smart TVs from the web or even <a href="https://arstechnica.com/gadgets/2024/07/broken-linux-laptop-makes-for-a-fine-smart-tv-alternative/">DIYing your own smart TV</a>.</p> <p>People who ask me for recommendations for cheap TVs used to receive lectures about factors like viewing angles and sound quality. Now, I talk about privacy, tracking concerns, and the software behind the hardware.</p> <p>No matter how you slice it, though, the ad-ificaiton of TVs is here to stay.</p> </div> <div class="-mx-2.5 sm:mx-0"> </div> <div class="listing-credit my-2"> <p class="text-gray-350 font-impact text-sm font-semibold"> Listing image: Aurich Lawson | Getty Images </p> </div> <div class="author-mini-bio"> <div class="flex flex-col items-start gap-5 border-t-4 py-5 dark:border-gray-700 sm:flex-row"> <div class="flex items-center gap-3"> <a class="relative block aspect-square h-24 w-24 shrink-0 overflow-hidden rounded-full border-4 border-green-400" href="https://arstechnica.com/author/scharonharding/"><img class="absolute left-0 top-0 min-h-full min-w-full object-cover" src="/wp-content/uploads/2021/09/scharon-harding-headshot.jpg" alt="Photo of Scharon Harding"></a> <div class="font-impact mb-0 text-left text-base font-semibold uppercase sm:hidden"> <a href="https://arstechnica.com/author/scharonharding/">Scharon Harding</a> <span class="block font-sans text-sm font-normal italic sm:inline-block">Senior Technology Reporter</span> </div> </div> <div class=""> <div class="font-impact mb-0 hidden text-left text-base font-semibold uppercase sm:block"> <a href="https://arstechnica.com/author/scharonharding/">Scharon Harding</a> <span class="block font-sans text-sm font-normal italic sm:ml-2 sm:inline-block">Senior Technology Reporter</span> </div> <div class="text-left text-base leading-5 text-gray-400" itemprop="description"> Scharon is a Senior Technology Reporter at Ars Technica writing news, reviews, and analysis on consumer gadgets and services. She's been reporting on technology for over 10 years, with bylines at Tom’s Hardware, Channelnomics, and CRN UK. </div> </div> </div> </div> <div class="story-tools flex items-center justify-between border-b-4 border-t-4 text-sm dark:border-gray-700 sm:text-lg"> <a class="view-comments font-impact my-5 flex items-center gap-2 whitespace-nowrap font-semibold uppercase" href="https://arstechnica.com/gadgets/2024/08/tv-industrys-ads-tracking-obsession-is-turning-your-living-room-into-a-store/#comments" title="697 comments"> <svg class="text-gray-300 hover:text-gray-500 h-6 w-6" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 80 80"><defs><clipPath id="bubble-zero_svg__a"><path fill="none" stroke-width="0" d="M0 0h80v80H0z"/></clipPath><clipPath id="bubble-zero_svg__b"><path fill="none" stroke-width="0" d="M0 0h80v80H0z"/></clipPath></defs><g clip-path="url(#bubble-zero_svg__a)"><g fill="currentColor" clip-path="url(#bubble-zero_svg__b)"><path d="M80 40c0 22.09-17.91 40-40 40S0 62.09 0 40 17.91 0 40 0s40 17.91 40 40"/><path d="M40 40 .59 76.58C-.67 77.84.22 80 2.01 80H40z"/></g></g></svg> 697 Comments </a> </div> </div> <div class="dusk:bg-gray-100 hidden min-w-[300px] justify-self-end dark:bg-gray-50 lg:block"> <div class="ad-wrapper is-sticky is-rail"> <div class="ad-wrapper-inner"> <div class="ad ad--rail"></div> </div> </div> </div> </div> </article> <div class="relative"> <section class="dusk:bg-none bg-gray-100 dark:bg-gray-50" id="comments"> <div class="comments-container mx-auto px-[15px] sm:px-5 lg:grid lg:max-w-5xl lg:grid-cols-3 lg:gap-y-6 lg:px-8 xl:px-0"> <div class="comments-wrapper col-span-3 hidden py-5"> <div class="lg:grid lg:grid-cols-3 lg:gap-6"> <div class="lg:col-span-2"> <div class="wp-forum-connect-comments relative"> <div class="comments-title font-impact xs:justify-center flex flex-row items-center gap-2 bg-gray-600 px-5 py-2 text-xl font-extrabold uppercase text-green-400 lg:text-2xl"> <svg class="h-6 w-6 rotate-[-75deg] text-gray-100" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 49 49"><defs><clipPath id="bubble_svg__a"><path fill="none" d="M.011 10.382 38.648.029l10.353 38.637L10.364 49.02z"/></clipPath><clipPath id="bubble_svg__b"><path fill="none" d="M.011 10.382 38.648.029l10.353 38.637L10.364 49.02z"/></clipPath></defs><g clip-path="url(#bubble_svg__a)"><g fill="currentColor" clip-path="url(#bubble_svg__b)"><path d="M29.7 43.8C19 46.7 8.1 40.3 5.2 29.7S8.7 8.1 19.3 5.2s21.6 3.5 24.5 14.1c2.9 10.7-3.5 21.6-14.1 24.5"/><path d="M24.5 24.5 1.7 10.2c-.8-.4-1.7.3-1.5 1.1l3.3 12.2 1.7 6.2z"/></g></g></svg> Comments </div> <a class="font-impact absolute bottom-0 right-5 top-0 flex flex-row items-center gap-2 text-base font-semibold uppercase text-gray-300 hover:text-gray-200" href="https://arstechnica.com/civis/threads/tv-industry%E2%80%99s-ads-tracking-obsession-is-turning-your-living-room-into-a-store.1502434/" target="_blank"> <svg class="h-5 w-5 text-gray-200" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><defs><clipPath id="forum-arrow_svg__a"><path fill="none" d="M0 0h40v40H0z"/></clipPath><clipPath id="forum-arrow_svg__b"><path fill="none" d="M0 0h40v40H0z"/></clipPath></defs><g clip-path="url(#forum-arrow_svg__a)"><g fill="none" clip-path="url(#forum-arrow_svg__b)"><path fill="#ff4e00" d="M23 0c-1.1 0-2 .9-2 2s.9 2 2 2h10.2L16.6 20.6c-.8.8-.8 2 0 2.8.4.4.9.6 1.4.6s1-.2 1.4-.6L36 6.8V17c0 1.1.9 2 2 2s2-.9 2-2V0z"/><path fill="currentColor" d="M30 24v12H4V10h12l4-4H4c-2.2 0-4 1.8-4 4v26c0 2.2 1.8 4 4 4h26c2.2 0 4-1.8 4-4V20z"/></g></g></svg> <span class="hidden sm:inline">Forum view</span> </a> </div> <div class="xf_thread_iframe_wrapper relative min-h-screen"> <div class="xf_thread_iframe_loading flex items-center justify-center"> <div class="my-20"> <img class="h-10 w-10" src="https://arstechnica.com/wp-content/themes/ars-v9/public/images/firework-loader.75ab30.gif" alt="Loading" /> Loading comments... </div> </div> <div class="xf_thread_iframe_container" id="xf_thread_iframe_container" data-thread-id="1502434" data-url="https://arstechnica.com/civis/threads/tv-industry%E2%80%99s-ads-tracking-obsession-is-turning-your-living-room-into-a-store.1502434/unread?in_iframe=1&theme=auto&wp_data=eyJ1cmwiOiJodHRwczpcL1wvYXJzdGVjaG5pY2EuY29tXC9nYWRnZXRzXC8yMDI0XC8wOFwvdHYtaW5kdXN0cnlzLWFkcy10cmFja2luZy1vYnNlc3Npb24taXMtdHVybmluZy15b3VyLWxpdmluZy1yb29tLWludG8tYS1zdG9yZVwvIiwib3Blbl9jb21tZW50cyI6ImNvbW1lbnRzPTEifQ==&" data-open="0" data-open-default="0"></div> </div> </div> <div class="dusk:bg-gray-100 row-span-2 hidden min-w-[300px] justify-self-end dark:bg-gray-50 lg:block"> <div class="ad-wrapper is-sticky is-rail"> <div class="ad-wrapper-inner"> <div class="ad ad--rail"></div> </div> </div> </div> </div> </div> </div> </section> </div> <div class="mx-auto mb-2.5 px-[15px] sm:px-5 lg:grid lg:max-w-5xl lg:grid-cols-3 lg:gap-6 lg:px-8 xl:px-0"> <div class="col-span-2 py-5"> <div class="post-navigation"> <div class="nav-previous post-navigation-link-wrapper"> <a class="post-navigation-link" rel="nofollow" href="https://arstechnica.com/science/2024/08/meteorites-give-the-moon-its-extremely-thin-atmosphere/" title="Go to: Meteorites give the Moon its extremely thin atmosphere"><svg class="text-orange-400" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><defs><clipPath id="arrow-blocks-right_svg__a"><path fill="none" d="M0 0h40v40H0z"/></clipPath></defs><g fill="currentColor" clip-path="url(#arrow-blocks-right_svg__a)"><path d="M32 16h8v8h-8zm-8 8h8v8h-8zm-8 8h8v8h-8zm8-24h8v8h-8zm-8-8h8v8h-8zM0 16h16v8H0z"/></g></svg> <span class="post-navigation-link-text">Prev story</span></a> </div> <div class="nav-next post-navigation-link-wrapper"> <a class="post-navigation-link" rel="nofollow" href="https://arstechnica.com/gadgets/2024/08/new-2gb-raspberry-pi-5-option-knocks-the-price-down-to-50/" title="Go to: $50 2GB Raspberry Pi 5 comes with a lower price and a tweaked, cheaper CPU"><span class="post-navigation-link-text">Next story</span><svg class="text-orange-400" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><defs><clipPath id="arrow-blocks-right_svg__a"><path fill="none" d="M0 0h40v40H0z"/></clipPath></defs><g fill="currentColor" clip-path="url(#arrow-blocks-right_svg__a)"><path d="M32 16h8v8h-8zm-8 8h8v8h-8zm-8 8h8v8h-8zm8-24h8v8h-8zm-8-8h8v8h-8zM0 16h16v8H0z"/></g></svg> </a> </div> </div> </div> </div> <div class="mx-auto -mt-2 mb-5 max-w-md sm:max-w-3xl sm:px-5 lg:grid lg:max-w-6xl lg:grid-cols-3 lg:gap-16 xl:px-0"> <div class="single-most-read dusk:bg-gray-700 relative col-span-2 bg-gray-100 dark:bg-gray-700"> <div class="component-most-read font-impact flex h-full min-h-[300px] flex-col flex-nowrap gap-5 pb-5 uppercase text-white"> <div> <header class="flex flex-row flex-nowrap items-center justify-center gap-2 bg-gray-600 px-5 py-2"> <svg class="h-[20px] w-[30px] text-gray-100" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 26"><defs><clipPath id="most-read_svg__a"><path fill="none" d="M0 0h40v26H0z"/></clipPath><clipPath id="most-read_svg__b"><path fill="none" d="M0 0h40v26H0z"/></clipPath></defs><g clip-path="url(#most-read_svg__a)"><g fill="none" clip-path="url(#most-read_svg__b)"><path fill="currentColor" d="M20 2h.8q1.5 0 3 .6c.6.2 1.1.4 1.7.6 1.3.5 2.6 1.3 3.9 2.1.6.4 1.2.8 1.8 1.3 2.9 2.3 5.1 4.9 6.3 6.4-1.1 1.5-3.4 4-6.3 6.4-.6.5-1.2.9-1.8 1.3q-1.95 1.35-3.9 2.1c-.6.2-1.1.4-1.7.6q-1.5.45-3 .6h-1.6q-1.5 0-3-.6c-.6-.2-1.1-.4-1.7-.6-1.3-.5-2.6-1.3-3.9-2.1-.6-.4-1.2-.8-1.8-1.3-2.9-2.3-5.1-4.9-6.3-6.4 1.1-1.5 3.4-4 6.3-6.4.6-.5 1.2-.9 1.8-1.3q1.95-1.35 3.9-2.1c.6-.2 1.1-.4 1.7-.6q1.5-.45 3-.6zm0-2h-1c-1.2 0-2.3.3-3.4.6-.6.2-1.3.4-1.9.7-1.5.6-2.9 1.4-4.3 2.3-.7.5-1.3.9-1.9 1.4C2.9 8.7 0 13 0 13s2.9 4.3 7.5 7.9c.6.5 1.3 1 1.9 1.4 1.3.9 2.7 1.7 4.3 2.3.6.3 1.3.5 1.9.7 1.1.3 2.3.6 3.4.6h2c1.2 0 2.3-.3 3.4-.6.6-.2 1.3-.4 1.9-.7 1.5-.6 2.9-1.4 4.3-2.3.7-.5 1.3-.9 1.9-1.4C37.1 17.3 40 13 40 13s-2.9-4.3-7.5-7.9c-.6-.5-1.3-1-1.9-1.4-1.3-.9-2.8-1.7-4.3-2.3-.6-.3-1.3-.5-1.9-.7C23.3.4 22.1.1 21 .1h-1"/><path fill="#ff4e00" d="M20 5c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8m0 11c-1.7 0-3-1.3-3-3s1.3-3 3-3 3 1.3 3 3-1.3 3-3 3"/></g></g></svg> <div class="font-impact inline text-xl font-extrabold uppercase text-green-400"> Most Read</div> </header> <ol> <li class="group relative"> <a href="https://arstechnica.com/tech-policy/2025/02/man-offers-to-buy-city-dump-in-last-ditch-effort-to-recover-800m-in-bitcoins/"> <img class="h-auto w-full rounded-sm group-hover:saturate-150" src="https://cdn.arstechnica.net/wp-content/uploads/2025/02/GettyImages-1382627667-768x432.jpg" alt="Listing image for first story in Most Read: Man offers to buy city dump in last-ditch effort to recover $800M in bitcoins" decoding="async" loading="lazy"> </a> <div class="relative px-[15px] py-4 sm:px-5"> <div class="most-read-divider absolute left-5 top-[-3px] h-[5px] w-1/4 bg-green-400"> </div> <span class="flex flex-row flex-nowrap items-start gap-4 font-serif text-xl font-bold normal-case leading-tight"> <span class="shrink-0 text-green-400">1.</span> <a class="most-read-title text-gray-100 visited:text-gray-400 hover:text-orange-400" href="https://arstechnica.com/tech-policy/2025/02/man-offers-to-buy-city-dump-in-last-ditch-effort-to-recover-800m-in-bitcoins/">Man offers to buy city dump in last-ditch effort to recover $800M in bitcoins</a> </span> </div> </li> <li class="group relative"> <div class="relative px-[15px] py-4 sm:px-5"> <div class="most-read-divider absolute left-5 top-0 h-[1px] w-1/4 bg-gray-400"> </div> <span class="flex flex-row flex-nowrap items-start gap-4 font-serif text-xl font-bold normal-case leading-tight"> <span class="shrink-0 text-green-400">2.</span> <a class="most-read-title text-gray-100 visited:text-gray-400 hover:text-orange-400" href="https://arstechnica.com/gaming/2025/02/the-diablo-hackers-that-debunked-a-record-speedrun/">How Diablo hackers uncovered a speedrun scandal</a> </span> </div> </li> <li class="group relative"> <div class="relative px-[15px] py-4 sm:px-5"> <div class="most-read-divider absolute left-5 top-0 h-[1px] w-1/4 bg-gray-400"> </div> <span class="flex flex-row flex-nowrap items-start gap-4 font-serif text-xl font-bold normal-case leading-tight"> <span class="shrink-0 text-green-400">3.</span> <a class="most-read-title text-gray-100 visited:text-gray-400 hover:text-orange-400" href="https://arstechnica.com/cars/2025/02/after-20-range-reduction-im-waiting-for-jaguar-to-buy-my-car-back/">After 20% range reduction, I’m waiting for Jaguar to buy my car back</a> </span> </div> </li> <li class="group relative"> <div class="relative px-[15px] py-4 sm:px-5"> <div class="most-read-divider absolute left-5 top-0 h-[1px] w-1/4 bg-gray-400"> </div> <span class="flex flex-row flex-nowrap items-start gap-4 font-serif text-xl font-bold normal-case leading-tight"> <span class="shrink-0 text-green-400">4.</span> <a class="most-read-title text-gray-100 visited:text-gray-400 hover:text-orange-400" href="https://arstechnica.com/cars/2025/02/protesters-demonstrate-outside-tesla-showrooms-in-us/">Protesters demonstrate outside Tesla showrooms in US</a> </span> </div> </li> <li class="group relative"> <div class="relative px-[15px] py-4 sm:px-5"> <div class="most-read-divider absolute left-5 top-0 h-[1px] w-1/4 bg-gray-400"> </div> <span class="flex flex-row flex-nowrap items-start gap-4 font-serif text-xl font-bold normal-case leading-tight"> <span class="shrink-0 text-green-400">5.</span> <a class="most-read-title text-gray-100 visited:text-gray-400 hover:text-orange-400" href="https://arstechnica.com/tech-policy/2025/02/trump-has-thrown-a-wrench-into-a-national-ev-charging-program/">Trump has thrown a wrench into a national EV charging program</a> </span> </div> </li> </ol> </div> <div class="most-read-customize text-center"> <button class="btn-customize font-impact mt-5 inline-flex flex-row flex-nowrap items-center justify-center gap-2 font-semibold uppercase text-gray-300 hover:text-gray-100" aria-label="Customize view settings" x-data x-on:click="$dispatch('view-settings-bar-open');"> <svg class="h-5 w-5" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 39.8 40"><defs><clipPath id="settings_svg__a"><path fill="none" d="M0 0h39.8v40H0z"/></clipPath><clipPath id="settings_svg__b"><path fill="none" d="M0 0h39.8v40H0z"/></clipPath></defs><g clip-path="url(#settings_svg__a)"><g fill="currentColor" clip-path="url(#settings_svg__b)"><path d="M17.4 3c-.8-1.8-2.5-3-4.5-3S9.1 1.2 8.3 3H0v4h8.3c.8 1.8 2.5 3 4.6 3s3.8-1.2 4.6-3h22.4V3H17.5Zm-4.6 4.5c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5-1.1 2.5-2.5 2.5M27 15c-2 0-3.8 1.2-4.6 3H0v4h22.4c.8 1.8 2.5 3 4.6 3s3.8-1.2 4.6-3h8.3v-4h-8.3c-.8-1.8-2.5-3-4.6-3m0 7.5c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5-1.1 2.5-2.5 2.5M12.9 30c-2 0-3.8 1.2-4.6 3H0v4h8.3c.8 1.8 2.5 3 4.6 3s3.8-1.2 4.6-3h22.4v-4H17.5c-.8-1.8-2.5-3-4.6-3m0 7.5c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5-1.1 2.5-2.5 2.5"/></g></g></svg> <span>Customize</span> </button> </div> </div> </div> </div> <div class="taboola-container border-t-gray-250 mx-auto my-5 mt-10 max-w-md border-t-4 px-5 pt-10 dark:border-t-gray-600 sm:max-w-3xl lg:max-w-6xl xl:px-0" > <div id="taboola-below-article-thumbnails---at"></div> </div> <script type="text/javascript"> window._taboola = window._taboola || []; _taboola.push({ mode: 'thumbnails-a-6x1', container: 'taboola-below-article-thumbnails---at', placement: 'Below Article Thumbnails - AT', target_type: 'mix' }); </script> </main> <div class="ad-wrapper is-fullwidth"> <div class="ad-wrapper-inner"> <div class="ad ad--footer"></div> </div> </div> <footer class="site-footer bg-black"> <div class="mx-auto max-w-6xl px-4 text-gray-300"> <div class="justify-between gap-10 py-8 md:flex"> <div class="site-footer-statement text-center md:w-3/5 md:text-left"> <svg class="mb-6 inline h-10 md:mb-4 md:h-12 lg:h-14" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 436 144.1"><defs><clipPath id="ars-full-mono_svg__a"><path fill="none" d="M0 0h436v144.1H0z"/></clipPath><clipPath id="ars-full-mono_svg__b"><path fill="none" d="M0 0h436v144.1H0z"/></clipPath></defs><g clip-path="url(#ars-full-mono_svg__a)"><g fill="currentColor" clip-path="url(#ars-full-mono_svg__b)"><path d="M218.8 83.7c-4.4 3.7-8.4 5-12.8 5-7.7 0-12.7-5.3-13.5-14h24.8l.9-5.5h-25.7c.8-8.7 5.7-14.1 12.9-14.1s8.8 1.7 12.9 5.1l1-5.9c-4-2.9-8.8-4.4-13.7-4.3-10.7 0-19.2 7.8-19.2 21.9s8.3 21.9 18.9 21.9c5.2.1 10.2-1.6 14.3-4.8zm-48.7-27.5v36.9h-5.8V56.2h-13.4v-5.3H183l.9 5.3H170Zm74.5 37.6c-11.9 0-19.5-8.8-19.5-21.8s7.8-22 19.6-22c4.3-.1 8.5 1.1 12 3.5l-.9 5.9c-3.2-2.6-7.1-4-11.2-4.1-8.6 0-13.6 6.5-13.6 16.6s5.1 16.6 13.6 16.6c4.3 0 8.5-1.6 11.9-4.2l.9 5.4c-3.7 2.6-8.2 4.1-12.8 4.1M292 93V73.5h-21.4V93h-5.8V50.9h5.8v17.5H292V50.9h5.8V93zm42.9 0-23.2-32.8V93h-5.3V50.9h5.1l22.4 31.5V50.9h5.3V93zm13.4-42.1h5.8V93h-5.8zm32.6 42.9c-11.9 0-19.5-8.8-19.5-21.8s7.8-22 19.6-22c4.3-.1 8.5 1.1 12 3.5l-.9 5.9c-3.2-2.6-7.1-4-11.2-4.1-8.6 0-13.6 6.5-13.6 16.6s5.1 16.6 13.6 16.6c4.3 0 8.5-1.6 11.9-4.2l.9 5.4c-3.7 2.6-8.2 4.1-12.8 4.1m32.9-43.1h5.8l16.3 41.5-5.6 1.2-5-13.1h-17.4L403.1 93h-5.8zm-4 24.6h13.5l-6.8-17.9zM72 0C32.3 0 0 32.3 0 72.1s32.3 72.1 72 72.1 72.1-32.3 72.1-72.1S111.8 0 72 0M53 94h-6.6l-.9-5.9c-4 4.4-9.6 6.8-15.6 6.8-8 0-13-4.8-13-12.3 0-11 9.4-15.4 27.8-17.3v-1.9c0-5.6-3.3-7.5-8.4-7.5S25.8 57.6 21 59.7l-1.1-7.1c5.3-2.1 10.3-3.7 17.1-3.7 10.7 0 15.9 4.3 15.9 14.2v30.8Zm19.2-26v26H64V50h6.6l1.4 9c3.1-5 8.2-9.5 15.5-9.9l1.3 7.9c-7.4.3-13.6 5.2-16.6 11m37.2 26.9c-5.6-.1-11.1-1.6-16.1-4.2l1.2-7.8c4.6 3.2 10 5 15.6 5.1 5.6 0 9-2.1 9-5.8s-2.5-5.6-10.5-7.5C98.2 72.1 94.1 69 94.1 61.1s5.9-12.2 15.6-12.2c5 0 9.9 1 14.5 3l-1.3 7.8c-4.1-2.4-8.7-3.7-13.4-3.8-5 0-7.6 1.9-7.6 5.1s2.2 4.6 9.2 6.4c10.9 2.8 15.8 5.9 15.8 14.3s-6.1 13.2-17.5 13.2"/><path d="M25.2 82.2c0 4.6 2.4 5.9 6.6 5.9s9.4-2.4 13.1-6.2V71.6c-16.3 1.6-19.7 6-19.7 10.6"/></g></g></svg> <p>Ars Technica has been separating the signal from the noise for over 25 years. With our unique combination of technical savvy and wide-ranging interest in the technological arts and sciences, Ars is the trusted source in a sea of information. After all, you don’t need to know everything, only what’s important.</p> <p class="mt-4"> <a href="https://bsky.app/profile/arstechnica.com" aria-label="Follow Ars Technica on Bluesky"> <svg class="inline h-12 w-12" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><defs><clipPath id="bluesky-logo_svg__a"><path fill="none" d="M0 0h40v40H0z"/></clipPath><clipPath id="bluesky-logo_svg__b"><path fill="none" d="M0 0h40v40H0z"/></clipPath></defs><g clip-path="url(#bluesky-logo_svg__a)"><g clip-path="url(#bluesky-logo_svg__b)"><path fill="currentColor" d="M14.34 12.38c2.29 1.72 4.76 5.21 5.67 7.08.9-1.87 3.37-5.36 5.66-7.08 1.65-1.24 4.34-2.2 4.34.85 0 .61-.35 5.13-.56 5.86-.71 2.55-3.32 3.2-5.63 2.81 4.05.69 5.07 2.97 2.85 5.25-4.22 4.33-6.07-1.09-6.54-2.47-.09-.26-.13-.37-.13-.27 0-.1-.04.02-.13.27-.47 1.39-2.32 6.81-6.54 2.47-2.22-2.28-1.19-4.56 2.85-5.25-2.31.39-4.92-.26-5.63-2.81-.2-.73-.56-5.25-.56-5.86 0-3.06 2.68-2.1 4.34-.85Z"/></g></g></svg> </a> <a href="https://mastodon.social/@arstechnica" aria-label="Follow Ars Technica on Mastodon"> <svg class="inline h-12 w-12" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><defs><clipPath id="mastodon-logo_svg__a"><path fill="none" d="M0 0h40v40H0z"/></clipPath><clipPath id="mastodon-logo_svg__b"><path fill="none" d="M0 0h40v40H0z"/></clipPath></defs><g clip-path="url(#mastodon-logo_svg__a)"><g clip-path="url(#mastodon-logo_svg__b)"><path fill="currentColor" d="M29.15 16.58c0-4.3-2.8-5.6-2.8-5.6-1.4-.7-3.9-.9-6.5-1-2.6 0-5 .3-6.4 1 0 0-2.8 1.3-2.8 5.6v3.4c.1 4.2.8 8.4 4.7 9.5 1.8.5 3.4.6 4.6.5 2.3-.1 3.5-.8 3.5-.8v-1.6s-1.7.5-3.5.4c-1.8 0-3.7-.2-4-2.4v-.6s1.8.4 4 .5c1.4 0 2.7 0 4-.2 2.5-.3 4.7-1.8 5-3.3.4-2.2.4-5.4.4-5.4zm-3.4 5.6h-2.1v-5.1c0-1.1-.5-1.6-1.4-1.6s-1.5.6-1.5 1.9v2.8h-2.1v-2.8c0-1.3-.5-1.9-1.5-1.9s-1.4.5-1.4 1.6v5.1h-2.1v-5.3c0-1.1.3-1.9.8-2.6.6-.6 1.3-1 2.2-1s1.9.4 2.4 1.2l.5.9.5-.9q.75-1.2 2.4-1.2c1.6 0 1.7.3 2.2 1 .6.6.8 1.5.8 2.6v5.3z"/></g></g></svg> </a> <a href="https://www.facebook.com/arstechnica" aria-label="Follow Ars Technica on Facebook"> <svg class="inline h-12 w-12" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><defs><clipPath id="facebook-logo_svg__a"><path fill="none" d="M0 0h40v40H0z"/></clipPath><clipPath id="facebook-logo_svg__b"><path fill="none" d="M0 0h40v40H0z"/></clipPath></defs><g clip-path="url(#facebook-logo_svg__a)"><g clip-path="url(#facebook-logo_svg__b)"><path fill="currentColor" d="M17.3 13.8v2.8h-2V20h2v10h4.2V20h2.8s.3-1.6.4-3.4h-3.2v-2.3c0-.3.5-.8.9-.8h2.3V10h-3.1c-4.4 0-4.3 3.4-4.3 3.9"/></g></g></svg> </a> <a href="https://www.youtube.com/@arstechnica" aria-label="Follow Ars Technica on YouTube"> <svg class="inline h-12 w-12" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><defs><clipPath id="youtube-logo_svg__a"><path fill="none" d="M0 0h40v40H0z"/></clipPath><clipPath id="youtube-logo_svg__b"><path fill="none" d="M0 0h40v40H0z"/></clipPath></defs><g clip-path="url(#youtube-logo_svg__a)"><g clip-path="url(#youtube-logo_svg__b)"><path fill="currentColor" d="M29.5 15.2c-.1-.4-.3-.8-.6-1.1s-.7-.5-1.1-.7C26.2 13 20 13 20 13s-6.3 0-7.8.4c-.4.1-.8.3-1.1.7-.3.3-.5.7-.6 1.1-.4 1.6-.4 4.8-.4 4.8s0 3.3.4 4.8c.1.4.3.8.6 1.1s.7.5 1.1.7c1.6.4 7.8.4 7.8.4s6.3 0 7.8-.4c.4-.1.8-.3 1.1-.7s.5-.7.6-1.1c.4-1.6.4-4.8.4-4.8s0-3.3-.4-4.8M17.9 23v-5.9l5.2 3-5.2 3z"/></g></g></svg> </a> <a href="https://www.instagram.com/arstechnica/" aria-label="Follow Ars Technica on Instagram"> <svg class="inline h-12 w-12" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40"><defs><clipPath id="insta-logo_svg__a"><path fill="none" d="M0 0h40v40H0z"/></clipPath><clipPath id="insta-logo_svg__b"><path fill="none" d="M0 0h40v40H0z"/></clipPath></defs><g clip-path="url(#insta-logo_svg__a)"><g clip-path="url(#insta-logo_svg__b)"><path fill="currentColor" d="M20 10h4.1c1.1 0 1.8.2 2.4.5.7.3 1.2.6 1.8 1.2s.9 1.1 1.2 1.8c.2.6.4 1.4.5 2.4v8.2c0 1.1-.2 1.8-.5 2.4-.3.7-.6 1.3-1.2 1.8-.6.6-1.1.9-1.8 1.2-.6.2-1.4.4-2.4.5h-8.2c-1.1 0-1.8-.2-2.4-.5-.7-.3-1.3-.6-1.8-1.2q-.75-.75-1.2-1.8c-.2-.6-.4-1.4-.5-2.4v-8.2c0-1.1.2-1.8.5-2.4.3-.7.6-1.2 1.2-1.8s1.1-.9 1.8-1.2c.6-.2 1.4-.4 2.4-.5zm0 2.5h-3.7c-.9 0-1.4.2-1.7.3-.4.1-.8.4-1.1.7s-.5.6-.7 1.1c-.1.3-.3.8-.3 1.7v7.4c0 .9.2 1.4.3 1.7.2.4.4.7.7 1.1.3.3.6.5 1.1.7.3.1.8.3 1.7.3h7.4c.9 0 1.4-.2 1.7-.3.4-.2.7-.4 1.1-.7.3-.3.5-.6.7-1.1.1-.3.3-.8.3-1.7v-7.4c0-.9-.2-1.4-.3-1.7-.1-.4-.4-.8-.7-1.1s-.7-.5-1.1-.7c-.3-.1-.8-.3-1.7-.3zm0 2.2c.7 0 1.4.1 2 .4s1.2.7 1.7 1.1c.5.5.9 1.1 1.1 1.7.3.6.4 1.3.4 2s-.1 1.4-.4 2-.7 1.2-1.1 1.7c-.5.5-1.1.9-1.7 1.1-.6.3-1.3.4-2 .4-1.4 0-2.7-.6-3.7-1.5-1-1-1.5-2.3-1.5-3.7s.6-2.7 1.5-3.7 2.3-1.5 3.7-1.5m0 8.3q1.2 0 2.1-.9T23 20c0-1.2-.3-1.5-.9-2.1S20.8 17 20 17c-1.2 0-1.5.3-2.1.9q-.9.9-.9 2.1c0 1.2.3 1.5.9 2.1q.9.9 2.1.9m6.6-8.1c0 .4-.2.7-.4 1s-.6.4-1 .4-.7-.2-1-.4c-.3-.3-.4-.6-.4-1s.2-.7.4-1c.3-.3.6-.4 1-.4s.7.2 1 .4c.3.3.4.6.4 1"/></g></g></svg> </a> </p> </div> <div class="text-center md:w-1/5 md:text-left"> <span class="font-impact mb-4 mt-6 block font-semibold uppercase">More from Ars </span> <ul id="menu-more_navigation" class="menu"><li id="menu-item-1971876" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1971876"><a href="https://arstechnica.com/about-us/">About Us</a></li> <li id="menu-item-1971877" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1971877"><a href="https://arstechnica.com/staff-directory/">Staff Directory</a></li> <li id="menu-item-1971878" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1971878"><a href="https://arstechnica.com/newsletters/">Newsletters</a></li> <li id="menu-item-1980432" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1980432"><a href="https://arstechnica.com/video/">Ars Videos</a></li> <li id="menu-item-1971879" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1971879"><a href="https://arstechnica.com/general-faq/">General FAQ</a></li> <li id="menu-item-1971880" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1971880"><a href="https://arstechnica.com/rss-feeds/">RSS Feeds</a></li> </ul> </div> <div class="text-center md:w-1/5 md:text-left"> <span class="font-impact mb-4 mt-6 block font-semibold uppercase">Contact</span> <ul id="menu-contact_navigation" class="menu"><li id="menu-item-1971881" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1971881"><a href="https://arstechnica.com/contact-us/">Contact us</a></li> <li id="menu-item-1971884" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1971884"><a target="_blank" href="https://www.condenast.com/brands/ars-technica">Advertise with us</a></li> <li id="menu-item-1971882" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1971882"><a href="https://arstechnica.com/reprints/">Reprints</a></li> </ul> </div> </div> <div class="pb-10 pt-5" id="copyright-terms"> <div class="mb-4 flex flex-row flex-nowrap items-center gap-2"> <svg class="h-4" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 14"><path d="M7.4 12.8h6.8l3.1-11.6H7.4C4.2 1.2 1.6 3.8 1.6 7s2.6 5.8 5.8 5.8" style="fill-rule:evenodd;clip-rule:evenodd;fill:#fff"/><path d="M22.6 0H7.4c-3.9 0-7 3.1-7 7s3.1 7 7 7h15.2c3.9 0 7-3.1 7-7s-3.2-7-7-7m-21 7c0-3.2 2.6-5.8 5.8-5.8h9.9l-3.1 11.6H7.4c-3.2 0-5.8-2.6-5.8-5.8" style="fill-rule:evenodd;clip-rule:evenodd;fill:#06f"/><path d="M24.6 4c.2.2.2.6 0 .8L22.5 7l2.2 2.2c.2.2.2.6 0 .8s-.6.2-.8 0l-2.2-2.2-2.2 2.2c-.2.2-.6.2-.8 0s-.2-.6 0-.8L20.8 7l-2.2-2.2c-.2-.2-.2-.6 0-.8s.6-.2.8 0l2.2 2.2L23.8 4c.2-.2.6-.2.8 0" style="fill:#fff"/><path d="M12.7 4.1c.2.2.3.6.1.8L8.6 9.8c-.1.1-.2.2-.3.2-.2.1-.5.1-.7-.1L5.4 7.7c-.2-.2-.2-.6 0-.8s.6-.2.8 0L8 8.6l3.8-4.5c.2-.2.6-.2.9 0" style="fill:#06f"/></svg> <a class="ot-sdk-show-settings" id="ot-sdk-btn">Do Not Sell My Personal Information</a> </div> © 2025 Condé Nast. All rights reserved. Use of and/or registration on any portion of this site constitutes acceptance of our <a href="https://www.condenast.com/user-agreement/">User Agreement</a> and <a href="https://www.condenast.com/privacy-policy/">Privacy Policy and Cookie Statement</a> and <a href="/amendment-to-conde-nast-user-agreement-privacy-policy/">Ars Technica Addendum</a> and <a href="https://www.condenast.com/privacy-policy/#california">Your California Privacy Rights</a>. Ars Technica may earn compensation on sales from links on this site. <a href="/affiliate-link-policy/">Read our affiliate link policy</a>. The material on this site may not be reproduced, distributed, transmitted, cached or otherwise used, except with the prior written permission of Condé Nast. <a href="https://www.aboutads.info/">Ad Choices</a> </div> </div> </footer> </div> <script src=""></script> <script type="text/javascript" src="https://s.skimresources.com/js/100098X1555750.skimlinks.js"></script> <script> (function() { const div = document.querySelector('.ars-interlude-container'); if (!div) { return; } // Exclude on sponsored posts if (document.querySelector('.single-ars_sponsored_post')) { return; } // If on an article page and the interlude container exists if (document.querySelector('body.single')) { const parent = div.parentElement; // Get all the top level elements in the parent that aren't the interlude container const elems = Array.from(parent.children).filter((elem) => elem !== div); // Loop over the elements in reverse order for (let i = elems.length - 1; i >= 0; i--) { const elem = elems[i]; // If the next element isn't one of: h1, h2, h3, h4, h5, h6, or div, insert the interlude container before it const nextElem = elems[i - 1]; if (nextElem && !['H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'DIV'].includes(nextElem.tagName)) { // Add .my-5 to the interlude container div.classList.add('my-5'); parent.insertBefore(div, elem); break; } } } const src = 'https://player.cnevids.com/interlude/arstechnica.js'; const s = document.createElement('script'); s.setAttribute('async', true); s.setAttribute('src', src); document.body.appendChild(s); })(); </script> <!-- Parse.ly start --> <script type="text/plain" class="optanon-category-C0002" id="parsely-cfg" src="//fpa-cdn.arstechnica.com/keys/arstechnica.com/p.js"></script> <!-- Parse.ly end --> <script id="snowplow-js-before"> window.snowplowQueue = window.snowplowQueue || []; window.snowplowContexts = {"site":{"orgId":"4gKgcFGUFUvCGFzHakTPfYp85Yi8","orgAppId":null,"appVersion":null,"env":"production"},"content":{"functionalTags":null,"hasBuyButtons":null,"noOfRevisions":null,"editorNames":null,"author_name":"Scharon Harding","contentId":"2027078","contentLength":5,"contentTitle":"Your TV set has become a digital billboard. And it\u2019s only getting worse.","contentSource":"web","authorIds":"46018","publishDate":"2024-08-19T11:00:30Z","modifiedDate":"2024-08-19T11:10:31Z","tags":"ads|Amazon|fire tv|LG|roku|Samsung|TVs","contentLang":"en-US","galleryName":null,"totalGalleryImages":null,"wordCount":2978,"contentType":null,"templateType":"article_standard_two_column","primaryTag":null,"contentFlag":"news","isCommerceContent":null,"pageTypeProperties":null,"section":"gadgets","subsection":null,"subsection2":null,"dataSource":"web","content_type":"article"},"syndication":{"content":null,"originalSource":null,"originalContentLanguage":null},"page":{"canonical":"https:\/\/arstechnica.com\/gadgets\/2024\/08\/tv-industrys-ads-tracking-obsession-is-turning-your-living-room-into-a-store\/","syndicatorUrl":null},"user":{"amguuid":null}}; window.snowplowConfig = {"SNOWPLOW_COLLECTOR":"c.arstechnica.com","SNOWPLOW_SCRIPT":"https:\/\/globalservices.conde.digital\/p77xzrbz9z.js","AVO_API_KEY":"FTJO6mVPBIzdGhjn2Ruy","APP_ID":"ars-technica","APP_NAME":"ars-technica","APP_ENV":"production","APP_VERSION":"1.0.0","COOKIE_DOMAIN":".arstechnica.com"}; </script> <script src="https://cdn.arstechnica.net/wp-content/mu-plugins/ars-snowplow/ars-snowplow-js/dist/main-1-0-4.js?ver=1.0.4" id="snowplow-js"></script> <script src="https://cdn.arstechnica.net/wp-content/plugins/article-forum-connect/public/js/iframe-resizer.parent.js?ver=5.3.1" id="article_forum_connect_iframe_resizer-js"></script> <script src="https://cdn.arstechnica.net/wp-content/plugins/article-forum-connect/public/js/iframe.js?ver=1.2.4" id="article_forum_connect_iframe-js"></script> <script id="app/0-js-before"> (()=>{"use strict";var r,e={},o={};function t(r){var a=o[r];if(void 0!==a)return a.exports;var n=o[r]={exports:{}};return e[r](n,n.exports,t),n.exports}t.m=e,r=[],t.O=(e,o,a,n)=>{if(!o){var i=1/0;for(v=0;v<r.length;v++){for(var[o,a,n]=r[v],s=!0,l=0;l<o.length;l++)(!1&n||i>=n)&&Object.keys(t.O).every((r=>t.O[r](o[l])))?o.splice(l--,1):(s=!1,n<i&&(i=n));if(s){r.splice(v--,1);var u=a();void 0!==u&&(e=u)}}return e}n=n||0;for(var v=r.length;v>0&&r[v-1][2]>n;v--)r[v]=r[v-1];r[v]=[o,a,n]},t.d=(r,e)=>{for(var o in e)t.o(e,o)&&!t.o(r,o)&&Object.defineProperty(r,o,{enumerable:!0,get:e[o]})},t.o=(r,e)=>Object.prototype.hasOwnProperty.call(r,e),(()=>{var r={121:0};t.O.j=e=>0===r[e];var e=(e,o)=>{var a,n,[i,s,l]=o,u=0;if(i.some((e=>0!==r[e]))){for(a in s)t.o(s,a)&&(t.m[a]=s[a]);if(l)var v=l(t)}for(e&&e(o);u<i.length;u++)n=i[u],t.o(r,n)&&r[n]&&r[n][0](),r[n]=0;return t.O(v)},o=globalThis.webpackChunk_roots_bud_sage=globalThis.webpackChunk_roots_bud_sage||[];o.forEach(e.bind(null,0)),o.push=e.bind(null,o.push.bind(o))})()})(); </script> <script src="https://cdn.arstechnica.net/wp-content/themes/ars-v9/public/js/app.3d0053.js" id="app/0-js"></script> <script src="https://cdn.arstechnica.net/wp-content/themes/ars-v9/public/js/ads.ae0b0b.js" id="ads/0-js"></script> <script src="https://cdn.arstechnica.net/wp-content/themes/ars-v9/public/js/stats.ff665f.js" id="stats/0-js"></script> </body> </html>