lynx   »   [go: up one dir, main page]

Mark Zuckerberg zničil Instagram. Ano, i tak se to dá říci

5. 4. 2016
Doba čtení: 2 minuty

Sdílet

Autor: Instagram
Když před lety Facebook koupil Instagram a nechal ho být (ani ho nezrušil), bylo to velmi milé překvapení. Doba ale postoupila a Facebook už ničí, co může.

Guilio Michelon má v How Mark Zuckerberg ruined Instagram pravdu. Když před mnoha lety Facebook koupil Instagram, tak si všichni uživatelé oddechli, protože ho nechal být. Nezasáhl do něj, nezrušil ho (jako třeba zbytečně zrušil Gowallu a další koupené věci) a minimálně ho ovlivňoval. Jenže doba pokročila, Instagram vyrostl a Facebook nutně potřebuje další příjmy. Takže vlastně není divu, že do něj začal mohutně zasahovat.

Michelon připomíná, že „insta“ v názvu znamenalo „okamžitý“ (instant), tedy to, že fotografie sledovaných uživatelů mohl vidět hned, v reálném čase. A také měl jistotu, že pokud nasdílí na svém účtu fotky, tak je jeho přátelé (sledující) uvidí. 

Což přestává platit. Instagram chystá podobné filtrování timeline, jako známe z Facebooku. Po jeho nasazení uvidíte jenom zlomek toho, co byste vidět měli (a hlavně chtěli) a změna Instagramu zároveň umožní začít vybírat od firem (a něco málo jednotlivců) peníze za to, že se fotografie sledujícím ukážou.

Aby toho nebylo málo, zmizí i chronologičnost fotografií. Podivný zmatený algoritmus bude vytahovat staré věci a skládat timeline bez ladu a skladu. Něco, co na Twitteru zničilo možnost sledovat dění na konferencích, akcích či zpravodajskou událost.

Odejít a nevrátit se

Jediné, do čeho ještě Facebook nezasáhl, je snadnost pořízení fotografií, ale i tady je otázka, co firmu později napadne. Prozatím jsou tu první vlaštovky ve stále se zvyšujícím počtu filtrů a nepochybné chuti doplnit emotikony a různé další „vychytávky“, aby „mladí byli nadšení“. Nakonec i prodloužení videí z patnácti na šedesát sekund nemá nic moc společného s uživateli, opět jde o „vstřícnost“ k firmám, inzerci a času trávenému v aplikaci.

Na Facebooku už ani vaše vlastní timeline (tedy to, co máte na vašem profilu) není vaše. Facebook nově zavedl zobrazování vybraných příspěvků na začátku profilu a teprve po odrolování se dostanete k obvyklé časové posloupnosti. Čím hlouběji ale jdete, tím méně příspěvků z té doby uvidíte. 

Čeká-li něco takového i Instagram, tak je dost jisté, že přestane pro fotografy být zajímavý jako portfolio. Jejich fotografie budou posuzovány, vybírány a vyhazovány jakýmsi algoritmem. Bez toho, že by měli možnost to ovlivnit.

Content First

Nasazení inzerce do toku fotografií od vámi sledovaných účtů bylo dlouho očekávanou nutností, ale málokdo tušil, že hlad po penězích a snaha uspokojit inzerenty půjde až tak daleko, že na deset zobrazených fotografií vám Instagram běžně zobrazí i polovinu v podobě reklam. A jak nakonec říká i Michelon, Instagram a sociální média se mění v televizi – stroj snažící se jen co nejvíce připoutat diváka. S jediným cílem, ukázat mu co nejvíce inzerce.

Bohužel, nemáme moc na výběr. Sociální média, která před lety vyrostla právě a jenom díky tomu, že nám ukazovala vše, co jsme si objednali, se mění k nepoznání. Mají dost uživatelů, zejména těch, kteří jsou jejich rukojmími, aby si mohla je dovolit začít ignorovat. Jediné, co nakonec vlastně můžeme udělat, je odejít, smazat účet a už se nevrátit.

Autor článku

Konzultant a publicista, provozuje www.pooh.cz. Podle některých si myslí, že rozumí všemu, sám je však přesvědčen o pravém opaku a ani v 30+ letech nedokázal přijít na to, jak mít peníze a nepracovat.
'; 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'; } }
Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).
Лучший частный хостинг