Menu Zavřít

Exodus z Rudého moře. Útoky hútíjských povstalců na nákladní lodě způsobují dvoutýdenní zpoždění a milionové výdaje navíc

12. 2. 2024
Doba čtení: 3 minuty
Autor: Depositphotos
  • Jedna z nejdůležitějších světových obchodních cest skrz Rudé moře je v současnosti téměř bez provozu. Můžou za to opakované útoky hútíjských povstalců na nákladní lodě
  • Logistické společnosti kvůli této situaci volí mnohem delší trasu kolem celé Afriky, což jim způsobuje obrovské dodatečné náklady
  • Přeprava kontejnerů nyní podstatně zdražila a podle odborníků může negativně ovlivnit i výši inflace

Útoky na kontejnerové lodě v Rudém moři už několik týdnů způsobují značný chaos, který výrazně ovlivňuje provoz na jedné z nejdůležitějších obchodních cest na světě. Situace se navíc pravděpodobně hned tak nezlepší, což dokazuje i vyjádření logistického gigantu Maersk. Vedení dánské společnosti totiž minulý týden varovalo, že problémy můžou trvat až jeden rok.

Za celou situací stojí jemenští povstalci Hútíové podporovaní íránskou vládou. Ti zintenzivnili své útoky na lodě koncem loňského listopadu v reakci na konflikt mezi Izraelem a teroristickým hnutím Hamás. Povstalci se pomocí svých ozbrojených akcí snaží donutit západní země, aby omezily podporu Izraeli.

Zpátky do Suezu. Kontejnerový gigant Maersk znovu přesměroval své lodě, aby se vyhnul jemenským povstalcům v Rudém moři
Přečtěte si také:

Zpátky do Suezu. Kontejnerový gigant Maersk znovu přesměroval své lodě, aby se vyhnul jemenským povstalcům v Rudém moři

Nebezpečí hrozící ve velké části Rudého moře má ale výrazný vliv na celosvětovou lodní dopravu. Rejdařské společnosti musely přesměrovat svá plavidla na mnohem delší cestu kolem jižní Afriky, což způsobuje výrazná zpoždění a také vysoké dodatečné náklady. „Došlo k téměř úplnému exodu větších kontejnerových lodí z Rudého moře a přilehlého Suezského průplavu,“ řekl CNN expert na lodní dopravu Richard Meade.

Suezským průplavem se přitom běžně přepravuje zhruba 10 až 15 procent veškerého světového zboží a stejnou cestou míří i přibližně 30 procent globálního objemu kontejnerové dopravy. Společnost Tesla už kvůli zpožděným dodávkám automobilových dílů musela pozastavit část výroby a před možným nedostatkem svých produktů varoval rovněž švédský nábytkářský gigant IKEA.

Cena přepravy narostla o 90 procent

Přesměrování lodí kolem jihoafrického mysu Dobré naděje se podle analytika Petera Sanda ze společnosti Xeneta týká zhruba 90 procent veškerého objemu, který normálně směřuje přes Rudé moře. Cesta z Asie do Evropy či zpět se kvůli tomu může u běžných kontejnerových lodí protáhnout až o dva týdny, u tankerů pak zpoždění činí až 18 dní.

Hlavní námořní trasy ohrožuje nedostatek vody, El Niňo může situaci ještě zhoršit
Přečtěte si také:

Hlavní námořní trasy ohrožuje nedostatek vody, El Niňo může situaci ještě zhoršit

Některé společnosti se tedy podle Sanda rozhodly, že budou své zboží raději přepravovat letecky. „Vybrané módní firmy v současnosti přepravují oděvy místo po moři vzduchem. Tady ale skutečně mluvíme o výrazném navýšení nákladů, protože letecká přeprava je 10krát až 20krát dražší,“ vysvětlil Sand, podle něhož v posledních týdnech výrazně vzrostly třeba letecké zásilky z Vietnamu do severní Evropy.

Nárůst nákladů se ale samozřejmě nevyhnul ani lodním společnostem. Prodloužení trasy o několik tisíc námořních mil si vyžádalo především masivní zvýšení výdajů za palivo, narostly také náklady na mzdy či pojištění. Xeneta tedy odhaduje, že lodní dopravci jako Maersk nebo Hapag-Lloyd musí kvůli delší cestě zaplatit zhruba jeden milion dolarů (asi 23 milionů korun) navíc za každé plavidlo.

Dlouhá cesta kolem Afriky samozřejmě do velké míry ovlivnila také cenu dopravy pro jednotlivé zákazníky. Průměrné náklady na přepravu standardního kontejneru se aktuálně vyšplhaly na 3786 dolarů (asi 88 tisíc korun), což je o 90 procent více než ve stejném období před rokem. U kontejneru cestujícího z čínské Šanghaje do nizozemského Rotterdamu pak vzrostly náklady za stejnou dobu o 158 procent a dosáhly 4426 dolarů (zhruba 103 tisíc korun).

Za covidu bylo hůř

Současné problémy způsobené húsíjskými povstalci jsou však stále o poznání mírnější než situace, která panovala během pandemie covidu. Tehdy náklady na přepravu jednoho kontejneru přesáhly i 10 tisíc dolarů, a to především kvůli silné poptávce po zboží způsobené tím, že lidé zůstávali doma.

CIF25

Bezemisní kontejnerová loď? Unikátní plavidlo Yara Eyde bude pohánět zelený čpavek, který má zajistit téměř nulové znečištění
Přečtěte si také:

Bezemisní kontejnerová loď? Unikátní plavidlo Yara Eyde bude pohánět zelený čpavek, který má zajistit téměř nulové znečištění

Experti přesto varují, že mnoho firem bude chtít vzrůstající výdaje za dopravu promítnout i do vyšší ceny zboží pro spotřebitele. Organizace pro hospodářskou spolupráci a rozvoj (OECD) v pondělí oznámila, že pokud náklady na přepravu zůstanou vysoké, inflace spotřebitelských cen v 38 členských zemích se může zvýšit o zhruba 0,4 procentního bodu.

Situace přitom mohla být ještě o poznání horší, paradoxně ji ale zlepšilo dění za covidu. Tehdy se totiž rejdařské společnosti rozhodly zareagovat na zvýšenou poptávku a objednaly si velké množství nových lodí. Díky tomu jsou nyní schopné pokrýt zájem zákazníků i přes prodloužení doby přepravy, které logicky vyžaduje vyšší množství plavidel.

  • Našli jste v článku chybu?
'; 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'; } }