Lidé, firmy i samosprávy ruší účty u „české“ Sberbank, pro banku to může znamenat konec

25. 2. 2022
Doba čtení: 6 minut

Sdílet

Autor: Dalibor Z. Chvátal
Nepleťte politiku a byznys, brání se Sberbank, chystáme v Česku další expanzi. Jenže lidé a firmy mají na to jiný názor a od banky odcházejí. Nechtějí podporovat banku, kterou vlastní nebezpečný ruský stát.

Některé věty zrají rychleji než víno. Šéfka české Sberbank Marijana Vasilescu dříve apelovala na to, aby se nemíchaly politika a byznys. „Diplomatické vztahy se občas zhoršují, nebo naopak zlepšují, to platí pro většinu zemí, Rusko není výjimkou. Měli bychom se spíše soustředit na byznysové zájmy,“ konstatovala v rozhovoru pro deník E15.

Sberbank uzavřela 25. 2. ve 14 hodin všechny své pobočky v Česku. Zdůvodnila to bezpečnostními problémy na pobočkách.

V dalším rozhovoru pro Peníze.cz říká mimo jiné: V České republice působíme jako univerzální banka se službami pro velké firmy, malé a střední podniky a samozřejmě pro retail, tedy pro běžné klienty. Na tom se nic měnit nebude. Zároveň v České republice vidíme potenciál pro další růst.Chtěli bychom významně vzrůst a dostat se na hranici 200 tisíc klientů.

Jenže dosáhnout na tuto metu bude kvůli válce vyvolané Ruskem pro Sberbank nemožné. Seriózní subjekt nebo člověk již nebude chtít mít žádnou spojitost s bankou, kterou ovládá agresivní nepřátelský stát. A změna kurzu jejich klientů už probíhá.

Soukromé osoby, podnikatelé, firmy i neziskové organizace, které se Sberbank spolupracují, obchodují nebo mají u ní účty, se začínají od této banky veřejně distancovat a jsou připraveni své smlouvy ukončit. Pokud by nastal masivní odliv klientů, bude to mít pro banku fatální následky, protože poskytování služeb jen hrstce věrných klientů by pro banku bylo značně nerentabilní. Nejsnazší cestou by pak byl případný prodej banky nebo ukončení činnosti. Není to ale tak jednoduché, jak to vypadá.

Se Sberbank končíme, píšou lidi i firmy

Stahujeme peníze z účtů u Sberbank a rušíme je, potvrdil hejtman Jihomoravského kraje Jan Grolich.

Připojíme se k ostatním a ukončíme veškeré finanční operace se SberbankCZ, jelikož konečným příjemcem ze zisku je, přes SberbankAG, Ruská Sberbank vlastněná Ruskem, píše podnikatel s kosmetikou Tomáš Vlasák.

Právě jdu odtamtud. Pracovnice zcela vstřícná. Účet zrušen. píše Michal Mrskoč, podnikatel v UX designu.

Pracujeme v rodině na tom. Osobně jsem tam došel před X lety kvůli spořicímu účtu a pak přidal běžný. Spořicí jsem dnes převedl jinam, na běžném mám už jen pár korun s tím, že počítám s odstavením. Mamce zítra doběhne termínovaný, bere prachy a jde jinam. Nebudu je podporovat, píše soukromý klient banky s přezdívkou Pan Koš.

Už jsem v procesu opouštění od úterka. Ještě nechám účet otevřený kvůli platbám, kde si nejsem jistá, jak rychle systém zaznamená změnu účtu, čili např. plat, píše soukromá klientka banky Simona.

Dnes vystoupeno a převedeno do CZ banky, píše další soukromý klient Jan.

Můj bratr si z tama dnes převáděl všechny peníze pryč. A i když byl přímo na pobočce, tak si mohl poslat dnes jen 100 tis. Zbytek zítra, píše další soukromá osoba.

Tak dnes začnu pracovní den tím, že se podívám, kolik toho děláme se Sberbank… ‚Není to nic osobního, je to jen byznys,‘ říká jeden můj známý z oboru. Nesouhlasím. Pro mě je byznys vždy osobní záležitost. A osobně nenávidím lži a nedodržování slibů…, píše na svém LinkedIn profilu Petr Hrubý, zakladatel finančněporadenské společnosti Broker Consulting.

My už jsme Sberbank odstřihli, reaguje ve vláknu hypoteční specialista Tomáš Rusňák.

Mé společnosti podniknou kroky už dnes, přidává se Zdeněk Santler, šéf společnosti Santia.

Silně doporučujeme našim poradcům a pobočkám tuto banku přestat okamžitě využívat, doporučovat a zprostředkovávat. V této souvislosti ji také vyjímáme z bonusového odměňování, píše Petr Borkovec, zakladatel finančně poradenské společnosti Partners.

Seznamte se: Sberbank Group

Sberbank (plným jménem PAO Sberbank Rossii) je největší ruská banka, v překladu je to ruská spořitelna – сберегательный банк. Dvě třetiny akcií ruské Sberbank vlastní ruská centrální banka (tj. přímo ruský stát), zbytek akcií je na ruské burze (MCX: SBER).

Ruská Sberbank se sídlem v Moskvě coby „matka“ vlastní dceřinou společnost Sberbank Europe AG. To je rakouská banka se sídlem ve Vídni.

Sberbank Europe AG je pozůstatek rakouské skupiny Volksbank International, kterou právě Sberbank Group koupila. Pod rakouskou banku Sberbank Europe AG, která se řídí evropským právem, tak spadají banky v 8 státech Evropy. Jednou z nich je opět dcera – česká Sberbank CZ, a.s.

Přehed působení Sberbank Group. (24. 2. 2022)
Autor: PAO Sberbank

Přehled působení Sberbank Group. (24. 2. 2022)

Česká Sberbank je právně vzato česká, ale…

Z pohledu práva:

Sberbank Europe AG je rakouská banka, řídí se rakouským právem, je regulována rakouskou centrální bankou a všechny vklady jsou u ní pojištěny do 100 000 €. O případné náhrady vkladů by se staral rakouský Einlagensicherung der Banken & Bankiers.

Sberbank CZ, a.s. je česká banka, řídí se českým právem, je regulována Českou národní bankou a všechny vklady jsou u ní pojištěny do 100 000 €, o případné náhrady vkladů by se staral český Garanční systém finančního trhu.

Ale to jen pro případ krachu banky a ten nehrozí. Vaše peníze v těchto Sberbank jsou v bezpečí, skutečně. Jenže už nejde jen o peníze, jde o víc.

O reakci na současnou situaci jsme požádali tiskovou mluvčí Sberbank Radku Černou: Naše vyjádření k situaci jsme uveřejnili na našich webových stránkách, napsala do redakce.


Sberbank CZ nadále funguje bez omezení a nabízí své produkty a služby všem svým klientům. Sberbank CZ patří do skupiny Sberbank Europe – evropské finanční instituce s evropskou bankovní licencí. Sberbank CZ je českou bankou, fungující na českém trhu, obsluhující české klienty a je regulovaná Českou národní bankou.

Webová strána české Sberbank v 1. den války, kterou Rusko zahájilo. (24. 2. 2022)
Autor: Dalibor Z. Chvátal

Webová stránka české Sberbank v 1. den války, kterou Rusko zahájilo. (24. 2. 2022)

Dopad sankcí na Sberbank

Americké sankce, které USA ve čtvrtek 24. 2. 2022 zavedly vůči Sberbank, značně skupině Sberbank Group zkomplikují přístup banky na globální trhy. Sberbank je tímto odříznutá od amerického finančního systému a má zmrazena veškerá aktiva, která se amerického finančního systému dotýkají.

(Dochází) k přerušení spojení největší ruské finanční instituce Sberbank, včetně 25 dceřiných společností, s americkým finančním systémem zavedením sankcí na korespondenční a platební účty. Toto opatření omezí přístup Sberbank k transakcím prováděným v dolarech, uvádí tisková zpráva Bílého domu.

Co to v překladu znamená pro české klienty banky? Pouze to, že ze Sberbank už nepošlete a nepřijmete dolarové platby (USD), nic dalšího se nemění. Zatím. Očekávaný zákaz ale bude i pro euro €, britskou libru (GBP) a japonský jen (JPY).

Banka nadále funguje podle českého právního řádu a je součástí českého clearingového systému CERTIS, který provozuje ČNB.

Už nejde jen o byznys. Jde o životy, a to doslova

Reputace Sberbank je vlivem války vyvolané Ruskem pryč. Přestože jde o „českou“ či „rakouskou“ banku, skutečným majitelem obou bank je ruská PAO Sberbank Rossia a právě do ní míří zisky ze všech jejích dceřiných společností v Evropě.

skoleni_12_6

V přeneseném slova smyslu, jakoukoli korunu, kterou necháte Sberbank na sobě vydělat, dáváte ruskému státu, potažmo akcionářům. A jak následně Rusko peníze používá, vidíme v podobě války vzdálené jen pouhých 364 km od českých hranic. To je vzdálenost z Mostů u Jablunkova do Užhorodu.

Čeští klienti se o peníze ve Sberbank bát nemusejí, jsou v bezpečí. Sberbank se ale oprávněně musí bát (nejen) o české klienty. Její působení v Česku a Evropě je totiž sečteno. Kvalitní konkurence je dostatek a už se na její klienty těší.

Chcete mít každé ráno v mailu přehled aktuálních článků z Měšce? Objednejte si náš mailový servis a žádná důležitá informace vám neuteče. Objednat si lze i týdenní přehled nebo také newsletter To hlavní, páteční souhrn nejdůležitějších článků ze všech našich serverů. Newslettery si můžete objednat na této stránce.

Autor článku

Autor se věnuje publikační činnosti v oblasti osobních financí. Specializuje se na finanční produkty, spotřebitelská témata a osobní silniční dopravu.

'; 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ě).
'; document.getElementById('outstream-iframe').onload = function () { setupIframe(); } replayScreen = document.getElementById('iinfoOutstreamReplay'); iinfoOutstreamPosition = document.getElementById('iinfoOutstreamPosition'); outstreamContainer = document.getElementsByClassName('outstream-container')[0]; setupReplayScreen(); } function setupIframe() { outstreamDocument = document.getElementById('outstream-iframe').contentWindow.document; let el = outstreamDocument.createElement('style'); outstreamDocument.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:-5px;right:25px}"; videoContent = outstreamDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; if ( location.href.indexOf('rejstriky.finance.cz') !== -1 || location.href.indexOf('finance-rejstrik') !== -1 || location.href.indexOf('firmy.euro.cz') !== -1 || location.href.indexOf('euro-rejstrik') !== -1 || location.href.indexOf('/rejstrik/') !== -1 || location.href.indexOf('/rejstrik-firem/') !== -1) { outstreamDirectPlayed = true; soundAllowed = true; iinfoVastUrlIndex = 0; } if (!outstreamDirectPlayed) { console.log('OUTSTREAM direct'); setUpIMA(true); } else { if (soundAllowed) { const playPromise = videoContent.play(); if (playPromise !== undefined) { playPromise.then(function () { console.log('OUTSTREAM sound allowed'); setUpIMA(false); }).catch(function () { console.log('OUTSTREAM sound forbidden'); renderBanner(); }); } } else { renderBanner(); } } } function getWrapper() { let articleWrapper = document.querySelector('.rs-outstream-placeholder'); // Outstream Placeholder from RedSys manipulation if (articleWrapper && articleWrapper.style.display !== 'block') { articleWrapper.innerHTML = ""; articleWrapper.style.display = 'block'; } // Don't render OutStream on homepages if (articleWrapper === null) { if (document.querySelector('body.p-index')) { return null; } } if (articleWrapper === null) { articleWrapper = document.getElementById('iinfo-outstream'); } if (articleWrapper === null) { articleWrapper = document.querySelector('.layout-main__content .detail__article p:nth-of-type(6)'); } if (articleWrapper === null) { // Euro, Autobible, Zdravi articleWrapper = document.querySelector('.o-article .o-article__text p:nth-of-type(6)'); } if (articleWrapper === null) { articleWrapper = document.getElementById('sidebar'); } if (!articleWrapper) { console.error("Outstream wrapper of article was not found."); } return articleWrapper; } function setupDimensions() { outstreamWidth = Math.min(iinfoOutstreamPosition.offsetWidth, 480); outstreamHeight = Math.min(iinfoOutstreamPosition.offsetHeight, 320); } /** * Sets up IMA ad display container, ads loader, and makes an ad request. */ function setUpIMA(direct) { 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(); if (direct) { adsRequest.adTagUrl = directVast; console.log('Outstream DIRECT CAMPAING advert: ' + directVast); videoContent.muted = true; videoContent.volume = 0; outstreamDirectPlayed = true; } else { adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Outstream 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 = outstreamWidth; // adsRequest.linearAdSlotHeight = outstreamHeight; adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } function setupReplayScreen() { replayScreen.addEventListener('click', function () { iinfoOutstreamPosition.remove(); iinfoVastUrlIndex = 0; outstreamInit(); }); } /** * Sets the 'adContainer' div as the IMA ad display container. */ function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. outstreamDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( outstreamDocument.getElementById('adContainer'), videoContent); } function unmuteAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(0.3); outstreamDocument.getElementById('adMuteBtn').innerHTML = ''; } else { adsManager.setVolume(0); outstreamDocument.getElementById('adMuteBtn').innerHTML = ''; } } /** * Loads the video content and initializes IMA ad playback. */ 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(outstreamWidth, outstreamHeight, google.ima.ViewMode.NORMAL); // } // }); } catch (adError) { // An error may be thrown if there was a problem with the VAST response. // videoContent.play(); } } /** * Handles the ad manager loading and sets ad event listeners. * @param { !google.ima.AdsManagerLoadedEvent } adsManagerLoadedEvent */ 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(); } /** * Handles actions taken in response to ad events. * @param { !google.ima.AdEvent } adEvent */ function onAdEvent(adEvent) { // Retrieve the ad from the event. Some events (for example, // ALL_ADS_COMPLETED) don't have ad object associated. const ad = adEvent.getAd(); console.log('Outstream event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: // This is the first event sent for an ad - it is possible to // determine whether the ad is a video ad or an overlay. if (!ad.isLinear()) { // Position AdDisplayContainer correctly for overlay. // Use ad.width and ad.height. videoContent.play(); } outstreamDocument.getElementById('adContainer').style.width = '100%'; outstreamDocument.getElementById('adContainer').style.maxWidth = '640px'; outstreamDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); // This event indicates the ad has started - the video player // can adjust the UI, for example display a pause button and // remaining time. if (ad.isLinear()) { // For a linear ad, a timer can be started to poll for // the remaining time. intervalTimer = setInterval( function () { // Example: const remainingTime = adsManager.getRemainingTime(); // adsManager.pause(); }, 300); // every 300ms } outstreamDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (outstreamLastError === 303) { if (isBanner) { renderBanner(); } else { replayScreen.style.display = 'flex'; } } break; case google.ima.AdEvent.Type.COMPLETE: // This event indicates the ad has finished - the video player // can perform appropriate UI actions, such as removing the timer for // remaining time detection. if (ad.isLinear()) { clearInterval(intervalTimer); } if (isBanner) { renderBanner(); } else { replayScreen.style.display = 'flex'; } break; } } /** * Handles ad errors. * @param { !google.ima.AdErrorEvent } adErrorEvent */ function onAdError(adErrorEvent) { // Handle the error logging. console.log(adErrorEvent.getError()); outstreamLastError = adErrorEvent.getError().getErrorCode(); if (!loadNext()) { renderBanner(); } } function renderBanner() { if (isBanner) { console.log('Outstream: Render Banner'); iinfoOutstreamPosition.innerHTML = ""; iinfoOutstreamPosition.style.height = "330px"; iinfoOutstreamPosition.appendChild(bannerDiv); } else { console.log('Outstream: Banner is not set'); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrlIndex < iinfoVastUrls.length) { iinfoOutstreamPosition.remove(); outstreamInit(); } else { return false; } adVolume = 1; return true; } /** * Pauses video content and sets up ad UI. */ function onContentPauseRequested() { videoContent.pause(); // This function is where you should setup UI for showing ads (for example, // display ad timer countdown, disable seeking and more.) // setupUIForAds(); } /** * Resumes video content and removes ad UI. */ function onContentResumeRequested() { videoContent.play(); // This function is where you should ensure that your UI is ready // to play content. It is the responsibility of the Publisher to // implement this function when necessary. // setupUIForContent(); } function onActiveView() { if (outstreamContainer) { const containerOffset = outstreamContainer.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (outstreamPaused) { adsManager.resume(); outstreamPaused = false; } return true; } else { if (!outstreamPaused) { adsManager.pause(); outstreamPaused = true; } } } return false; } let outstreamInitInterval; if (typeof cpexPackage !== "undefined") { outstreamInitInterval = setInterval(tryToInitializeOutstream, 100); } else { const wrapper = getWrapper(); if (wrapper) { let outstreamInitialized = false; window.addEventListener('scroll', () => { if (!outstreamInitialized) { const containerOffset = wrapper.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight / 1 && containerOffset.bottom > 0.0) { outstreamInit(); outstreamInitialized = true; } } }); } } function tryToInitializeOutstream() { const wrapper = getWrapper(); if (wrapper) { const containerOffset = wrapper.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight / 1 && containerOffset.bottom > 0.0) { if (cpexPackage.adserver.displayed) { clearInterval(outstreamInitInterval); outstreamInit(); } } } else { clearInterval(outstreamInitInterval); } } }
OSZAR »