Kam s ním? Demencí přibývá, péče chybí

17. 12. 2013

Sdílet

Autor: Isifa.cz
„Můžeme nechat babičku samotnou doma? Mívá vidiny, naposledy dala rychlovarnou konvici na plynový vařič… Co když zapálí celý panelák?“ Takové otázky po čase vyvstanou v mnoha rodinách. Demencí trpí 130 tisíc Čechů, odbornou péči má jenom čtvrtina z nich.

Kromě jiných typů demence může jít o Alzheimerovu chorobu, která je stále mezi českou i světovou populací rozšířenější (důkazem může být již všeobecně známý vtip o Němci, co schovává po domě věci). Důležité je nemoc včas identifikovat a nasadit vhodnou léčbu, aby se „špatné dny“ nezhoršovaly. Nezapomínejte ani na sebe, protože brzy můžete trpět depresemi.

LDN není řešení

Podle aktuální Světové zprávy o Alzheimerově chorobě (www.alz.co.uk) bude v polovině tohoto století již 277 milionů závislých seniorů, polovina z nich bude zasažená Alzheimerem nebo jinou formou demence. Počet postižených se tak za 40 let více než zdvojnásobí (v roce 2010 šlo o 101 milionů lidí). Ekonomické náklady spojené s touto nemocí se budou pohybovat v hodnotách okolo 600 miliard dolarů ročně, tedy přibližně procenta světového hrubého domácího produktu. Velký vliv na chmurné předpovědi má zvyšující se věk dožití.

Podle ředitelky sítě Alzheimercentrum Jaroslavy Jůzové je problém o to větší, že odbornou péči dostává pouze zlomek ze 130 tisíc lidí, kteří demencí v České republice trpí. Běžné LDN nejsou pro pacienty s demencí podle Alzheimercentra řešením, nezvládnou je ani personálně, ani technicky. Domovy pro seniory pak nejsou na dostatečně odborné úrovni, zejména u těžších forem demence. Často tak pacienti (podle centra přibližně ve třech čtvrtinách případů) zůstávají doma, což vede ke zhoršení jejich stavu.

O podcenění problému svědčí podle ředitelky i nízké náklady zdravotních pojišťoven, které v průměru na tyto pacienty dávají. „Suma 60 Kč na den je alarmující – tato částka přibližně odpovídá aplikaci jedné injekce. Zdravotní stav pacientů ale vyžaduje komplexní a vysoce specializovanou ošetřovatelskou péči, která denně stojí stovky korun,“ říká Jaroslava Jůzová.

Odbornou péči vyžadujte

Pokud tedy vidíte, jak to jde s vašimi blízkými „s kopce“, měli byste vyhledat odbornou pomoc, abyste se sami nepoložili. Alzheimer se nedá vyléčit, ale při včasné diagnóze se dá kvalitní život prodloužit.

Navíc budete mít nárok alespoň na základní finanční injekci, jako je třeba příspěvek na péči. Pomoc vám mohou například rady Občanského sdružení pomoci duševně nemocným ČR (www.spdn-cr.org). Měsíčně si tak můžete v rodinném rozpočtu polepšit o několik tisíc korun, podle stupně závislosti postiženého. Je dobré si před zažádáním přečíst rady na webu České psychiatrické společnosti (www.psychiatrie.cz).

Pokud k diagnóze Alzheimera dojde, budete mít nárok i na hrazení plen, pokud by pacient trpěl inkontinencí (což je u Alzheimera běžné), dostanete i podložky na lůžko. „Pleny jsou bez doplatku, podložky doplácíte ve výši 30 % celkové ceny,“ vysvětluje na svých stránkách Alzheimercentrum.

V situaci, kdy se o člověka s nemocí staráte doma, můžete zkusit alespoň občas využít služeb „respitní péče“, tedy odlehčovacích služeb, kdy vám na několik hodin týdně s nemocným pomůže jejich pracovník, abyste si mohli sami zajít k lékaři apod. Tyto služby nabízí například Česká alzheimerovská společnost (ČALS). „Cena se řídí platným ceníkem, při poskytnutí nejvýše 20 hodin týdně je cena jedné hodiny stanovena na 75 Kč,“ píše se na webu společnosti (www.alzheimer.cz). Obecně budete platit více, pokud budete potřebovat i asistenci lékaře nebo ergoterapeuta (rehabilitačního pracovníka, který pomáhá k aktivizaci pacienta, tedy aby se jeho fyzický a psychický stav nadále nezhoršoval).

V prvotních stádiích byste se ale hlavně neměli nechat odbýt lékaři, kteří nemusí být úplně vstřícní při vypisování diagnostických metod Alzheimerovy choroby. Může se také stát (zejména pokud je pacient nižšího věku), že lékař na podobnou diagnózu zapomene. Pomoci by mohlo, kdybyste mu nahlásili, že máte např. zdravotníka v rodině, který vás na možnost Alzheimera nebo jiného typu demence upozornil, roli také hrají genetické predispozice.

Jak poznat problém a jak se s ním doma vyrovnat

Pokud začne tatínek nebo maminka zapomínat na základní věci, měl by je lékař poslat na odborné vyšetření. Impulzem jsou zejména změny úplně prvotních návyků a částečné změny priorit – například člověk, který se celý život staral o zahrádku, již ven nechodí. Často se také vyskytují nedostatky v péči o sebe sama. Pokud se obáváte jít hned k lékaři, můžete své blízké (nebo sami sebe) alespoň nasměrovat na vyšetření, které zdarma v rámci Dnů paměti poskytuje ČALS. Musíte se ale předem objednat (telefonní seznam je zde – www.alzheimer.cz).

Můžete si s nimi také vyzkoušet pár základních testů, například zeptat se na několik otázek z testu „Mini Mental“ (celý v angličtině například zde – www.health.gov.bc.ca), pokud budou mít vaši blízcí problémy s některými otázkami, je třeba vyhledat odbornou pomoc. Známý je také test hodin, kdy lidé postižení chorobou nezvládají prostorovou orientaci (www.alzheimercentrum.cz), můžete si také vyplnit dotazník ohledně zvládání základních aktivit (www.alzheimercentrum.cz).

Další informace o testech můžete zjistit i na stránkách Nadačního fondu Alzheimer (www.alzheimernf.cz).

Pokud budete mít člověka s demencí nakonec doma, snažte se mu připomínat polozapomenuté věci, zpívejte si s ním dětské písničky a říkadla, hrajte šachy a dámu a vždy se ho ptejte na to, co právě dělá nebo dělal. Příkladem může být příprava omelety a následné dotazování: „Jak se ta omeleta dělá, co všechno v ní je?“

Problém lidí s duševními poruchami bude podle dostupných informací čím dál nabývat na síle, bylo by třeba reformovat zdravotnicko-sociální systém, aby pro ně mohlo být více lůžek a posílit možnosti alternativní pomoci. Některé LDN a nemocnice následné péče mají již své ergoterapeuty. Navíc pokud je budou vaši blízcí opouštět, často doporučí skrze sociální pracovníky další postup i pro domácí léčení, včetně případné respitní péče.

Užitečné odkazy

Alzheimer a demence

Zatím chybí nový plán a jeho realizace

V České republice dostala v roce 2010 čtyři ministerstva za úkol vypracovat tzv. Plán Alzheimer, který měl spatřit světlo světa v červenci 2011. „Plán Alzheimer by měl zejména analyzovat současnou situaci lidí s demencí a jejich rodinných příslušníků, potřeby a jejich zajištění, včetně dostupnosti a kvality zdravotnických a sociálních služeb pro tuto cílovou skupinu,“ informoval o ambiciózním plánu rezort práce a sociálních věcí (www.mpsv.cz). Posléze se plán několikrát odložil, naposledy požádal ministr Leoš Heger o přeložení termínu pro předložení Národního akčního plánu pro Alzheimerovu nemoc a další obdobná onemocnění na léta 2014–2017 na konec roku 2014. „Je třeba říci, že vládou České republiky byl přijat Národní akční plán podporující pozitivní stárnutí pro období let 2013 až 2017, jehož součástí je i Péče o nejkřehčí seniory s omezenou soběstačností, která se týká i osob s Alzheimerovou nemocí a jinými neurodegenerativními nemocemi,“ řekla serveru Vitalia.cz mluvčí ministerstva zdravotnictví Viktorie Plívová. Jde však zatím doopravdy pouze o plán (jak se můžete přesvědčit zde www.mpsv.cz).

Problémů kromě samotné choroby je mnoho, pokud o člověka s demencí pečují rodinní příslušníci, trpí často depresemi, navíc mají problémy s vyžitím, protože jde takřka o neplacenou práci na plný úvazek. „Podle evropské studie až 78 % pečujících životních partnerů a 47 % pečujících dospělých dětí trpí nebo trpělo depresí,“ sdělil někdejší ministr práce Jaromír Drábek.

Nenechte se těmito problémy pohltit, jinak nastoupíte do začarovaného kruhu vlastní neřešitelné deprese, kdy následně budete mít kvůli starostem o své blízké potíže s udržením práce. Když dojde k hospitalizaci pacienta, snažte se jej navštěvovat, abyste si to v budoucnosti nemuseli vyčítat a trpět pocitem viny.

Autor článku

Zkušenosti sbíral jako student biochemie na Přírodovědecké fakultě UK, posléze se přes server Lidovky.cz dostal až na Barrandov, kde několik let působil jako reportér tiskové agentury Mediafax. Nyní píše o všem, co ho baví a zajímá.

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