Max banka končí, od října se sloučí s Bankou CREDITAS. Co se mění pro klienty?

22. 8. 2024
Doba čtení: 6 minut

Sdílet

Autor: Depositphotos
Dva roky připravovaná fúze Max banky a Banky CREDITAS je za dveřmi. Jaké změny přinese a co klienty obou bank čeká v den přerodu?

Na přelomu září a října 2024 zmizí z tuzemského trhu Max banka. Fúze, která je plánována už dva roky, tedy od chvíle, kdy Max banku (tehdy ještě Expobank) koupila Banka CREDITAS, se uzavře 1. října. V ten den se obě banky zcela spojí. Společnost Max banka a.s. k tomuto datu zanikne a všechna její práva a povinnosti přejdou na CREDITAS.

Máme velkou radost, že se nám obě banky podařilo připravit na fúzi ve velmi krátkém čase. Klientů Banky CREDITAS se změna téměř nedotkne, klienty Max banky čeká od října v podstatě jen změna kódu banky v čísle účtu. Skvělou zprávou pro ně je zavedení okamžitých plateb, které Max banka dosud nenabízela. Věříme, že klienti budou v nové bance spokojeni,  říká Eva Collardová, generální ředitelka Banky CREDITAS.

Po převedení klientů Max banky bude mít CREDITAS více než 250 tisíc klientů s bilanční sumou cca 200 miliard Kč.

Kvůli procesu propojení obou bank nastanou 30. září částečné odstávky systémů obou bank a také pobočky CREDITAS budou mít tento den dříve zavřeno. Nastavení služeb a produktů i jejich obsluha má zůstat i po propojení bank stejná.

Co se změní pro klienty Max banky

Jak to bude se stávajícími čísly účtů

  • Pokud jste klienti Max banky, vaše číslo účtu zůstane i po 1. říjnu stejné. 
  • Změní se pouze kód banky za lomítkem a také IBAN. Nový kód nyní bude 2250. Původní kód Max banky (4000) bude platit ještě 6 měsíců, což je doba, kdy byste měli provést změny a informovat své okolí o změně kódu banky (například pokud vám někdo posílá peníze atd.) Po 6 měsících už vám platba se starým kódem nebude připsána na účet.

Co dělat, když vám na účet u Max banky chodí například důchod, mateřská, nemocenská, ošetřovné či jiný příspěvek, případně jiný příspěvek v mateřství vyplácený ČSSZ

V těchto případech bude nutné kontaktovat Českou správu sociálního zabezpečení (ČSSZ) a nahlásit změnu platebních údajů pro výplatu příspěvku. Pokud se jedná o jiný typ důchodu, např. vojenský (ten je vyplácen Ministerstvem obrany), je třeba se spojit přímo s odesílatelem platby. Rodičovské příspěvky posílá Úřad práce, je tedy nutné změny ohlásit tam. Ještě 6 měsíců po 1. říjnu bude banka akceptovat i starý kód, je tedy dostatek času změnu všude oznámit.

Co bude se stávajícím účtem a jak ho můžete nadále používat

  • Pokud máte účty u obou bank, všechny vám i nadále zůstanou a budete je ovládat odděleně.
  • Produkty Max banky budete i nadále spravovat online v Maxbankingu.

Platební karty

Platební karty vydané jednou či druhou bankou zůstanou beze změny v platnosti. Jakmile se přiblíží termín konce platnosti karty, dostanete automaticky novou. Ke kompletní výměně platebních karet za karty Banky CREDITAS dojde později.

Půjčky a úvěry

Veškeré závazky, které máte u Max banky, budou platné i do budoucna. Podmínky půjčky či související služby a dokumenty se pro vás nezmění. Po 1. říjnu si jen změníte kód banky u čísla účtu, na které zasíláte splátky.

Cestovní pojištění k platebním kartám 

Cestovní pojištění ke kartám zůstane v platnosti, nezmění se ani poplatky. Smlouvy zůstanou zachovány se stávajícími podmínkami.

Okamžité platby 

Na co klienti Max banky tak dlouho čekali, konečně přichází. Po sloučení bank budete moct posílat i přijímat okamžité platby v českých korunách.

Změna swiftového kódu 

Dochází ke změně BIC (swiftový kód) z EXPNCZPP na CTASCZ22. U plateb se bude zobrazovat BIC CTASCZ22. Starý kód bude platit ještě po dobu šesti měsíců od fúze a platby s tímto kódem budou v této době na váš účet připsány. O této změně je nutné informovat odesílatele plateb.

IBAN

Změnou bankovního kódu účtů v Max bance se mění i IBAN. Svůj nový IBAN uvidíte v internetovém a mobilním bankovnictví a na výpisu z účtu.

Jak je to s pojištěním vašich uložených peněz

U každé tuzemské banky jsou vklady klientů ze zákona pojištěny do výše ekvivalentu 100 tisíc eur, tedy cca 2,5 milionu Kč. Jestliže jste měli doposud uloženy peníze jak v Max bance, tak i u CREDITAS, pak se ochrana týkala obou vašich vkladů, každého do uvedené výše, protože obě banky fungovaly zvlášť.

Po fúzi, tedy od 1. října 2024, však budou všechny vaše vklady vedeny pouze v Bance CREDITAS, a tedy pojištěny jako vklady v jedné bance. Po tomto datu se vaše vklady sloučí a budou pojištěny pouze na zákonnou hodnotu 100 tisíc eur. Pozor tedy na to, pokud váš celkový vklad bude vyšší, pak by bylo rozumné zvážit jeho přesun do jiné banky. Zárukou pojištění vašich peněz je Garanční fond finančního trhu.

Jak bude probíhat „Den D“

Internetové a mobilní bankovnictví Max banky

Veškeré on-line aplikace Max banky budou od 30. září od 12:00 až do 1. října do 13:00 nedostupné.

Hotovostní pokladna Max banky 

Od 30. září do 1. října bude uzavřena pokladna Max banky, která je umístěna na pobočce Banky CREDITAS na Pankráci.

Možnost on-line založení Neo účtu

Od 29. září od 18:00 do 1. října do 13:00 bude nedostupné on-line zakládání Neo účtu přes webové stránky i mobilní aplikaci Max banky.

Provoz infolinky

Informační linka kontaktního centra 800 700 800 bude fungovat pouze v omezeném režimu.

Splátky úvěrů v v Max bance

Pokud máte v Max bance úvěr a splátky hradíte právě ke konci měsíce, pošlete svoji platbu tentokrát dříve, nejlépe do pátku 27. září.

Platby kartou a výběry z bankomatu 

Platit kartou Max banky či vybírat z bankomatu budete moct v kritických dnech bez omezení, a to i při nákupech na internetu. Fungovat bude i zasílání potvrzovacích SMS či ePINu. Pro bezproblémové fungování internetových plateb si raději včas zkontrolujte nastavení 3D Secure telefonního čísla a bezpečnostního prvku ePIN u své platební karty (detaily).

Opatření v Bance CREDITAS

Otevírací doba poboček

Všechny pobočky této banky budou v době 30. září od 11:00 do 1. října do 13:00 uzavřeny.

Internetové a mobilní bankovnictví 

Veškeré online aplikace i okamžité platby budou nedostupné v době od 30. září od 12:00 do 1. října do 13:00.

Provoz infolinky

Informační linka kontaktního centra 800 888 009 bude fungovat pouze v omezeném režimu.

Online registrace nových klientů

Od 29. září od 18:00 do 1. října do 13:00 nebude pro nové zájemce o bankovní služby dostupná možnost online registrace.

Splátky úvěrů

Stejně jako u Max banky, pokud máte v CREDITAS splátky úvěrů nastavené na datum přelomu měsíce, pak raději tuto splátku pošlete o pár dní dříve, ideálně do 27. září.

Platby kartou a výběry z bankomatů

Platit kartou a vybírat z bankomatů budete moct bez omezení, a to včetně plateb, kde je nutné potvrzení SMS či ePINem.

Cesta banky k českým vlastníkům

Max banka spatřila světlo světa 4. října 2022, kdy vystřídala svoji předchůdkyni Expobank, kterou Banka CREDITAS koupila. Získala tím tehdy cca 16 tisíc klientů (fyzických i právnických osob), kapitál 2 mld. Kč a bilanční sumu ve výši 12 mld. Kč. Banka CREDITAS v té chvíli měla přibližně 170 tisíc klientů s celkovým kapitálem 6 mld. Kč.

K prodeji Expobank přiměl jejího ruského majitele, finančníka Igora Kima, vpád ruských vojsk na Ukrajinu. Vzápětí se v Česku strhl „run“ na ruskou Sberbank, kterou její klienti dokázali během několika dní poslat ke dnu tím, že z ní vybrali své peníze.

Školení pro účetní - podzimní novinky

Expobank měla nahnáno, protože stačilo málo a stejný osud by mohl potkat i ji. Banka však toto krizové období se ctí ustála nejen svým proaktivním přístupem, ale také distancováním se od ruské agrese. O Expobank mělo původně zájem konsorcium složené z lotyšské Signed bank a amerických investorů. Ti však nakonec od záměru ustoupili. Na koupi se Expobank dohodla v červenci 2022 s Bankou CREDITAS. Od té chvíle jde o další skutečně českou banku.

Po fúzi  s Max bankou se CREDITAS se stává další nástupnicí po svých předchůdkyních Interbance, BAWAG International Bank, LBBW Bank CZ a Expobank.

Jak šel čas s Max bankou

28. 12. 1990  Udělení bankovní licence InterBank. 

Do 18. 6. 2004 Interbanka. 

31. 3. 2005  sloučení InterBank s BAWAG International Bank CZ a.s. 

2004 BAWAG Bank CZ a.s. změnila akcionáře a k 17. 9. 2008 svůj právní název na LBBW Bank CZ a.s. 

13. 10. 2014 – změna názvu na Expobank CZ a.s. 

4. 10. 2022 – přejmenování na Max banka a.s.

1. 10. 2024 – fúze Max banky s Bankou CREDITAS

Autor článku

Autorka pracuje jako finanční poradkyně u společnosti Kapitol.

'; 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 »