IDC: Globální poptávka po PC zůstává vysoká, objevují se ale náznaky ochlazení

14. 7. 2021
Doba čtení: 2 minuty

Sdílet

Autor: hakinmhan / stock.adobe.com
Po raketovém meziročním růstu v prvním čtvrtletí si trh ve druhém kvartálu 2021 připsal růst „jen“ o 13,2 %. Výrobci se nejvíce potýkají s nedostatkem komponentů, objevují se i náznaky ochabující spotřebitelské poptávky.

Společnost IDC ve své aktuální zprávě uvádí, že celosvětový nárůst poptávky po PC pokračoval i ve druhém čtvrtletí 2021, a to navzdory nedostatku komponentů a logistickým problémům, které panovaly napříč regiony.

Dodávky PC ve sledovaném období vzrostly o 13,2 % na 83,6 milionu kusů, přičemž analytici poukazují na to, že kategorie desktopů v růstu překonala notebooky. Nedostatky komponentů totiž výrazně zasáhly zejména nabídku notebooků.

IDC doplňuje, že ačkoli trh stále roste potěšitelným tempem, přece jen se jedná o výrazné zvolnění ve srovnání s 55,9% růstem v prvním čtvrtletí 2021 a 25,8% zlepšením v posledním kvartálu loňského roku.

Trh se potýká se smíšenými signály ze strany poptávky,“ vysvětluje Neha Mahajanová z IDC s tím, v souvislosti se znovuotevíráním podniků by mohla stoupat poptávka v komerčním segmentu.

Zaznamenali jsme však také ukazatele naznačující, že dochází ke zpomalení spotřebitelské poptávky. Lidé totiž po téměř roce intenzivního nakupování PC přeorientovávají své výdaje do jiných oblastí,“ uzavírá Mahajanová.

Lenovo zvyšuje náskok

Co se jednotlivých výrobců týče, růstu se dočkali všichni největší výrobci. Vedoucí Lenovo vykázalo 14,9% zlepšení a nepatrně zvýšilo svůj tržní podíl. Druhé HP naopak vyrostlo jen o mírných 2,7 %.

Podobným tempem jako Lenovo rostl i Dell, konkrétně o 16,4 %. O čtvrtou příčku se pak dělí AppleAcer; zatímco první jmenovaný zaznamenal růst prodejů o 9,4 %, Aceru v meziročním srovnání vzrostly dodávky o 17,6 %.

Tabulka – Výsledky globálního trhu PC v 2Q21 (miliony kusů)

Výrobce

Prodej 2Q21 

Podíl 2Q21

Prodej 2Q20 

Podíl 2Q20

Meziroč. změna

1. Lenovo

20,005

23,9 %

17,407

23,6 %

14,9 %

2. HP

18,594

22,2 %

18,104

24,5 %

2,7 %

3. Dell

13,976

16,7 %

12,010

16,3 %

16,4 %

4. Apple*

6,156

7,4 %

5,630

7,6 %

9,4 %

4. Acer*

6,088

7,3 %

5,177

7,0 %

17,6 %

ostatní

18,795

22,5 %

15,551

21,0 %

20,9 %

Celkem

83,614

100,0 %

73,879

100,0 %

13,2 %

* statistická remíza

Zdroj: IDC

Graf – Nejsilnější výrobci podle podílu 

Cyber25

Graf – Nejsilnější výrobci PC podle podílu 2Q21

Zdroj: IDC

Čtěte dále

Ransomware je stále hrozbou číslo jedna, vyděračské útoky vyrostly o 126 %
Ransomware je stále hrozbou číslo jedna, vyděračské útoky vyrostly o 126 %
Tři hlavní důvody, proč malé a středně velké firmy potřebují ke správě sítí umělou inteligenci
Tři hlavní důvody, proč malé a středně velké firmy potřebují ke správě sítí umělou inteligenci
Útoků e-šmejdů v Česku přibývá, roste ale i počet včas odhalených podvodů
Útoků e-šmejdů v Česku přibývá, roste ale i počet včas odhalených podvodů
AMD kupuje Nod.ai, posílí možnosti open source softwaru pro umělou inteligenci
AMD kupuje Nod.ai, posílí možnosti open source softwaru pro umělou inteligenci
Panasonic investuje do evropských center v Cardiffu a Budapešti
Panasonic investuje do evropských center v Cardiffu a Budapešti
3D tisk – jaké jsou náklady na 3D tisk?
3D tisk – jaké jsou náklady na 3D tisk?
'; 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 »