IDC: Ekonomiky ožívají, dodávky PC ve třetím kvartálu nicméně mírně klesly

9. 10. 2024
Doba čtení: 1 minuta

Sdílet

Autor: Depositphotos
Prodejní cyklus zpomaluje kombinace faktorů, v minulém čtvrtletí navíc prodejci výrazně doplňovali zásoby.

Společnost IDC ve své aktuální analýze informuje, že ačkoli globální ekonomika ve třetím čtvrtletí vykázala známky oživení, v dodávkách PC se pozitivní vývoj neprojevil. Dodávky podle analytiků meziročně klesly o 2,4 % na 68,8 milionu kusů.

„Poptávka po PC se bezpochyby probudila ve spotřebitelském i komerčním sektoru,“ shrnuje Jitesh Ubrani z IDC. „Velká část se však stále soustředila na základní modely, kterým prospívá oživení ekonomiky i začátek školního roku a s ním související prodejní akce.“

Analytik přesto očekává, že hnacím motorem prémiového segmentu v nadcházejících měsících budou novější počítače s umělou inteligencí spolu s dedikovanými čipy Intel a AMD a také očekávané laptopy od Applu založené na čipu M4.

„Předpokládáme, že umělá inteligence pronikne do všech sfér ICT do konce této dekády,“ nastiňuje Linn Huangová z IDC. „Až do roku 2026 ovšem bude proces v náběhové fázi, což je déle, než se očekávalo.“

Dvouciferný Asus

IDC si rovněž povšimlo, že komerční poptávka zůstává silná i mimo vzdělávací sektor. Řada organizací totiž začala s obnovovacím cyklem v rámci příprav na ukončení podpory Windows 10. Dobrou zprávou je i to, že klíčové trhy (například Japonsko) ve třetím čtvrtletí zaznamenaly dvouciferný růst – ostatní trhy by měly v následujících kvartálech následovat.

„Po dvou čtvrtletích mírného růstu si trh dává pauzu před nákupní sezonou na konci roku,“ podotkl Bryan Ma z IDC. „V současném geopolitickém prostředí sice nelze vyloučit další pokles, ale myslíme si, že převáží pozitivní faktory, které trh v příštím roce pozvednou k mírnému jednocifernému růstu.“

Tabulka – Vývoj trhu PC v 3Q24 (miliony kusů)

Výrobce

Prodej 3Q24

Podíl 3Q24

Prodej 3Q23

Podíl 3Q23

Meziroč. změna

1. Lenovo

16,5

24,0 %

16,0

22,7 %

3,0 %

2. HP

13,6

19,7 %

13,5

19,2 %

0,4 %

3. Dell

9,8

14,3 %

10,3

14,5 %

–4,0 %

4. Asus*

5,5

7,9 %

5,0

7,0 %

10,0 %

4. Apple*

5,3

7,8 %

7,0

10,0 %

–24,2 %

5. Acer

4,5

6,6 %

4,3

6,1 %

4,4 %

ostatní

13,6

19,7 %

14,4

20,4 %

–5,6 %

Celkem

68,8

100,0 %

70,5

100,0 %

-2,4 %

* statistická shoda

Zdroj: IDC

Graf – Vývoj trhu PC podle podílů výrobců

Zdroj: IDC

Čtěte dále

Téměř dvě třetiny firem preferují uchovávat zálohu v cloudu
Téměř dvě třetiny firem preferují uchovávat zálohu v cloudu
Arrow posiluje nabídku úložišť, podepsalo smlouvu s Object First
Arrow posiluje nabídku úložišť, podepsalo smlouvu s Object First
Optoma Photon Go: Chytrý přenosný projektor s ultra krátkou projekční vzdáleností
Optoma Photon Go: Chytrý přenosný projektor s ultra krátkou projekční vzdáleností
Polovina českých podnikatelů neví, jak se bránit proti kybernetickým útokům
Polovina českých podnikatelů neví, jak se bránit proti kybernetickým útokům
Tomáš Břečka je novým country managerem iStyle
Tomáš Břečka je novým country managerem iStyle
IDC: Cla necla, globální dodávky počítačů by letos měly vyrůst o 4 %
IDC: Cla necla, globální dodávky počítačů by letos měly vyrůst o 4 %
'; 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 »