Má se Facebook bát Joe Bidena?

27. 1. 2021

Sdílet

Autor: Fotolia © Karen Roach
Nový americký prezident Joe Biden nemá Marka Zuckerberga zrovna v lásce. Co může jeho nástup do funkce pro Facebook – a další technologické giganty – znamenat?

Spojené státy americké mají nového prezidenta. Co to znamená pro technologické giganty? Že by byl Joe Biden jejich kdovíjakým příznivcem, se říci nedá. Spíš naopak. Zejména vůči sociálním sítím je dlouhodobě kritický.

Demokratická senátorka Amy Klobucharová, která má k Bidenovi natolik blízko, že byla první řečnicí během jeho inaugurace, loni krátce po jeho vítězství dokonce hovořila o tom, že „rozpuštění Googlu“ kvůli porušování hospodářské soutěže je možnost, kterou se může Bidenova administrativa zabývat. Přesto, veřejným nepřítelem číslo jedna se pro ni zdá být šéf Facebooku Mark Zuckerberg.

Nejednou Biden Facebook použil coby příkladnou ukázku toho, jak se svobodný internet vymkl kontrole, v rozhovoru pro New York Times Biden před časem Facebook, potažmo Zuckerberga označil za „opravdový problém“ a pro CNN se vyjádřil pro změnu následovně: „Takto (jako Facebook) se nelze chovat. Nemůžete přehlížet a být nečinní tehdy, jestliže jste svědky naprostých lží.“

Pokud jste miliardář a jeden z nejvlivnějších lidí světa, nejspíš vás až tolik trápit nemusí, pokud vás prezident nemá v oblibě. Pokud však má tento prezident možnost zákonně restrukturalizovat fungování vaší firmy, respektive technologických gigantů a reformulovat vztahy a způsob komunikace s jejich uživateli, je už znepokojení na místě.

Jako problematický je vnímán článek 230, který se v roce 1996 dostal do zákona o komunikaci při jeho revizi po dlouhých 62 letech, a který společnostem jako Facebook, Google, YouTube, Twitter a dalším v zásadě dává imunitu a zbavuje je zodpovědnosti za obsah zveřejňovaný na jejich platformách třetími stranami. Ukončení jeho platnosti je jednou z mála věcí, na které se Biden dokázal shodnout se svým předchůdcem Donaldem Trumpem, ačkoliv motivace stran v Kongresu se liší.

Zatímco Demokraté po Facebooku požadují, aby obsah hlídal pečlivěji, jelikož jej viní z šíření typu lží, které dle nich například vedly k nedávnému útoku Trumpových příznivců na Kapitol, Republikáni poukazují zejména na „aroganci“ společností, které vnímají jako hrozbu pro svobodu slova, jestliže mají moc cenzurovat prezidenta, tak jako se před pár dny stalo Trumpovi.

Biden se o článku 230 v minulosti vyjádřil, že jej chce „s okamžitou platností“ zrušit. To by pro sociální sítě mohlo mít katastrofické následky, jelikož by byly okamžitě zodpovědné za všechen klamavý, podvodný a jinak škodlivý obsah, který na nich uživatelé zveřejňují. Žaloby, kterým Facebook v současnosti čelí v 46 státech USA kvůli údajně nezákonným způsobům, jakými si upevňuje svoje monopolní postavení, se v tomto světle zdají jako marginální problém.

„Očekávám, že Bidenova administrativa bude agresivně vymáhat dodržování zákonů na ochranu hospodářské soutěže,“ odhadl pro BBC advokát americké Kolumbijské univerzity Jameel Jaffar, specializující se na ochranu svobody projevu na internetu. Agentura Reuters minulý týden dokonce referovala o spekulacích, že by v rámci Bidenovy administrativy mohla vzniknout nová pozice specializovaná právě na ochranu hospodářské soutěže v souvislosti s technologickými giganty.         

Od samotných zákonodárců sice zatím příliš podnětů k tomu, jak problematiku řešit, nevzešlo, rozhýbat je však může právě Biden. Pokud ale mají být nějakým indikátorem pohyby na akciových trzích, alespoň zatím se technologičtí giganti nového prezidenta příliš bát nemusejí. Hodnota akcií Facebooku se po nedávném propadu opět zvedá a také o dalších firmách z kategorie Big Tech lze s klidem říct, že během koronavirové pandemie prosperovaly a pomohly dostat Nasdaq i Dow Jones Index k novým maximům.

'; document.getElementById('preroll-iframe').onload = function () { setupIframe(); } prerollContainer = document.getElementsByClassName('preroll-container-iframe')[0]; } function setupIframe() { prerollDocument = document.getElementById('preroll-iframe').contentWindow.document; let el = prerollDocument.createElement('style'); prerollDocument.head.appendChild(el); el.innerText = "#adContainer>div:nth-of-type(1),#adContainer>div:nth-of-type(1) > iframe { width: 99% !important;height: 99% !important;max-width: 100%;}#videoContent,body{ width:100vw;height:100vh}body{ font-family:'Helvetica Neue',Arial,sans-serif}#videoContent{ overflow:hidden;background:#000}#adMuteBtn{ width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:20px;right:25px}"; videoContent = prerollDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; const playPromise = videoContent.play(); if (playPromise !== undefined) { playPromise.then(function () { console.log('PREROLL sound allowed'); // setUpIMA(true); videoContent.volume = 1; videoContent.muted = false; setUpIMA(); }).catch(function () { console.log('PREROLL sound forbidden'); videoContent.volume = 0; videoContent.muted = true; setUpIMA(); }); } } function setupDimensions() { prerollWidth = Math.min(iinfoPrerollPosition.offsetWidth, 480); prerollHeight = Math.min(iinfoPrerollPosition.offsetHeight, 320); } function setUpIMA() { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. createAdDisplayContainer(); // Create ads loader. adsLoader = new google.ima.AdsLoader(adDisplayContainer); // Listen and respond to ads loaded and error events. adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, onAdsManagerLoaded, false); adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, onAdError, false); // An event listener to tell the SDK that our content video // is completed so the SDK can play any post-roll ads. const contentEndedListener = function () { adsLoader.contentComplete(); }; videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Preroll advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; // Specify the linear and nonlinear slot sizes. This helps the SDK to // select the correct creative if multiple are returned. // adsRequest.linearAdSlotWidth = prerollWidth; // adsRequest.linearAdSlotHeight = prerollHeight; adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. prerollDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( prerollDocument.getElementById('adContainer'), videoContent); } function unmutePrerollAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(0.3); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } else { adsManager.setVolume(0); prerollDocument.getElementById('adMuteBtn').innerHTML = ''; } } function onAdsManagerLoaded(adsManagerLoadedEvent) { // Get the ads manager. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true; adsRenderingSettings.loadVideoTimeout = 12000; // videoContent should be set to the content video element. adsManager = adsManagerLoadedEvent.getAdsManager(videoContent, adsRenderingSettings); // Add listeners to the required events. adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, onContentPauseRequested); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, onContentResumeRequested); adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, onAdEvent); // Listen to any additional events, if necessary. adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, onAdEvent); playAds(); } function playAds() { // Initialize the container. Must be done through a user action on mobile // devices. videoContent.load(); adDisplayContainer.initialize(); // setupDimensions(); try { // Initialize the ads manager. Ad rules playlist will start at this time. adsManager.init(1920, 1080, google.ima.ViewMode.NORMAL); // Call play to start showing the ad. Single video and overlay ads will // start at this time; the call will be ignored for ad rules. adsManager.start(); // window.addEventListener('resize', function (event) { // if (adsManager) { // setupDimensions(); // adsManager.resize(prerollWidth, prerollHeight, google.ima.ViewMode.NORMAL); // } // }); } catch (adError) { // An error may be thrown if there was a problem with the VAST response. // videoContent.play(); } } function onAdEvent(adEvent) { const ad = adEvent.getAd(); console.log('Preroll event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: if (!ad.isLinear()) { videoContent.play(); } prerollDocument.getElementById('adContainer').style.width = '100%'; prerollDocument.getElementById('adContainer').style.maxWidth = '640px'; prerollDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); if (ad.isLinear()) { intervalTimer = setInterval( function () { // Example: const remainingTime = adsManager.getRemainingTime(); // adsManager.pause(); }, 300); // every 300ms } prerollDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (prerollLastError === 303) { playYtVideo(); } break; case google.ima.AdEvent.Type.COMPLETE: if (ad.isLinear()) { clearInterval(intervalTimer); } playYtVideo(); break; } } function onAdError(adErrorEvent) { console.log(adErrorEvent.getError()); prerollLastError = adErrorEvent.getError().getErrorCode(); if (!loadNext()) { playYtVideo(); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrlIndex < iinfoVastUrls.length) { iinfoPrerollPosition.remove(); playPrerollAd(); } else { return false; } adVolume = 1; return true; } function onContentPauseRequested() { videoContent.pause(); } function onContentResumeRequested() { videoContent.play(); } function onActiveView() { if (prerollContainer) { const containerOffset = prerollContainer.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (prerollPaused) { adsManager.resume(); prerollPaused = false; } return true; } else { if (!prerollPaused) { adsManager.pause(); prerollPaused = true; } } } return false; } function playYtVideo() { iinfoPrerollPosition.remove(); youtubeIframe.style.display = 'block'; youtubeIframe.src += '&autoplay=1&mute=1'; } }
OSZAR »