Co na suchý dráždivý kašel? Pomohou babské rady i léky

1. 8. 2021 14:26
21 nových názorů
ručitel
MUDr. Daniel Petr | Odborný garant článku
„Dlouhodobý suchý kašel vyžaduje vyšetření lékařem. Nepodceňujte jej.“

Suchý kašel je jeden z nejméně příjemných příznaků onemocnění dýchacích cest, jehož projevy jsou nejen bolestivé, ale také přitahují nechtěnou pozornost. Obzvláště kašel v noci dokáže život znepříjemnit a nemocný mnohdy hledá pomoc lékařskou cestou. Kašel lze však léčit doma, s pomocí volně prodejných léků.

Kašel je obranný reflex těla, který čistí dýchací cesty. Proto kašlou kuřáci, lidé pracující s chemikáliemi, nebo v prašném prostředí a samozřejmě nemocní. Kašel mívá dvě podoby: suchou a vlhkou. Suchý kašel má dráždivou podobu, zatímco vlhký je produktivní, neboť nemocný produkuje hlen. Obzvláště suchý dráždivý kašel je velice nepříjemný, neboť je doprovázen škrábáním v krku. Častý je také dávivý kašel.

Obsah článku:

Co způsobuje suchý kašel

Kašel je především reflex k očistě dýchacích cest od vnějších látek. Suchým kašlem můžete trpět po vdechnutí kouře, prachu, nebo kousku jídla. Současně je ale kašel součástí většiny respiračních chorob.

Nástup suchého kašle je jedním z prvních příznaků onemocnění dýchacích cest. Bývá projevem astmatu, alergií a zánětů dýchacích cest. Nejčastěji se objevuje při infekci hrtanu, tedy laryngitidě. Při té totiž vzniká zánět horních cest dýchacích a prokrvuje se sliznice, která dráždí k suchému kašli. Dráždivý suchý kašel, na rozdíl od kašle vlhkého, nevytváří hleny a nemocný nic nevykašlává, přesto do vlhkého kašle většinou přechází.

Jakmile se z kašle suchého stane vlhký kašel, začne se v dýchacích cestách pacienta tvořit nadbytek hlenů. A protože tyto hleny bývají často relativně husté, tělo se jich zbavuje jen velmi obtížně. Aby bylo vykašlávání jednoduší, je potřeba hleny zředit. Pomoci může například sirup BOIRON Stodal.

Přetrvává-li kašel po dobu delší než osm týdnů, dost možná se v takovém případě jedná spíše již o chronickou chorobu. Jejích příčin může být mnoho. Chronický kašel bývá důsledkem onemocnění srdce, plic, ale také třeba jícnu. Pokud kouříte, pak je dosti pravděpodobné, že původní zdroj této choroby bude souviset právě s cigaretami.

Jaký kašel je vám více nepříjemný?

V každém případě na nic nečekejte a vyrazte za svým praktickým lékařem. Pakliže totiž necháte chorobě volný průběh, může postupem času dojít k výraznému zhoršení.

Suchý kašel u dětí

Jako u všech nemocí, je kašel u dětí třeba hlídat více než už dospělých. Kašel děti vyčerpává více než dospělé, namáhají si při něm břišní a hrudní svaly. Stejně jako u dospělých, je suchý kašel způsoben různými nemocemi, nejčastěji virového původu. Návštěva lékaře nemusí být nutná, neboť stačí volně prodejné léky na zmírnění projevů.

Ačkoli lze kašel léčit doma, někdy je lepší kontaktovat lékaře. Zajděte k obvodnímu lékaři, přetrvává-li kašel déle než 10 dní, když má dítě zvýšenou až vysokou teplotu, když dítě dýchá zrychleně nebo u dýchání vydává zvláštní zvuky. Určitě neprodleně vyhledejte odbornou pomoc, když se obáváte, že dítě vdechlo cizí těleso.

Kašel u miminka

Novorozenci, potažmo kojenci ještě nemají svůj imunitní systém zcela rozvinutý, a tak jsou na kašel, respektive jakékoliv jiné nachlazení o poznání náchylnější. Takto malé děti se hůře zbavují hlenu a kašel je více vyčerpává, proto jim často infekce dýchacích cest činí větší potíže než dospělým.

Jejich stav se navíc může velmi rychle měnit, a to jak k lepšímu, tak k horšímu. V případě, že intenzita kašle postupně narůstá, raději na nic nečekejte a vydejte se s děťátkem k lékaři. Ten následně nasadí vhodnou léčbu.

Co na suchý kašel

Jak se zbavit suchého kašle? Jaké léky je vhodné nasadit, když vás trápí suchý kašel? Záleží na původu nemoci. Suchý kašel bývá často při akutním zánětu nosohltanu a nemocný kašle hlavně v noci. Na takový kašel se dávají antitusika a antihistaminika, které zmírňují otok sliznice.

Jak snížit vysokou teplotu? Pomohou léky, obklady i bylinky
Přečtěte si také:

Jak snížit vysokou teplotu? Pomohou léky, obklady i bylinky

Když se kašel zdá být hluboký, bývá způsoben zánětem průdušnice, a i v takovém případě se podávají antihistaminika. Pokud přejde infekce na průdušky, jedná se o akutní bronchitidu (zánět průdušek), což je nejčastější onemocnění dýchací soustavy. Jestliže postihne plicní tkáň, jde o akutní pneumonii neboli zápal plic.

Co pomáhá na kašel, který přetrvává? Nemocný mnohdy vyhledá lékaře a žádá o antibiotika. Ty ale většinou nepomohou, protože se využívají na léčbu bakteriálních onemocnění a kašel bývá způsoben viry. Naopak při bezdůvodném podání antibiotik se zvyšuje rezistence bakterií na tyto léky.

Jak zastavit kašel v noci? Tlumte ho léky. Jedním z nejúčinnějších medikamentů v tomto ohledu je běžný sirup na kašel. Trápí-li suchý kašel vaše dítě, buďte při jeho výběru obzvláště opatrní a volte pouze takový, který neobsahuje kodein.

Další možností jsou pak kapky na kašel. I po nich bývá v lékárnách tradičně velký zájem. Velmi často lidé sahají například po výrobcích značky Stoptussin. Stejně jako u většiny nemocí je doporučené dodržovat pitný režim a mít dostatek tekutin.

Ověřené léky, ulevující od suchého kašle jsou: Acc LongSinupretSinecod.

Jednou z příčin suchého kašle může být také žaludeční reflux. To znamená, že se trávicí šťávy ze žaludku vrací do jícnu a mohou následně dráždit sliznici dýchacích cest. Žaludeční reflux se léčí léky, jako je třeba omeprazol. Z volně prodejných přípravků se doporučuje například Rennie. Pomůže, když nebudete jíst ostrá a kořeněná jídla, nebudete pít velké množství kávy ani čaje a budete spát na lůžku podloženém v horní části.

Babské rady na kašel

Jak si se suchým kašlem poradit i bez lékaře? Vyzkoušejte následující opatření:

  • pravidelně větrejte,
  • zvlhčujte vzduch v pokoji,
  • inhalujte vodní páry,
  • podložte si hlavu polštáři,
  • udržujte dostatek tekutin,
  • pijte bylinkové nálevy,
  • udělejte si Priessnitzový zábal,
  • konzumujte dostatek horkých tekutin,
  • dodávejte tělu vitamín C,
  • dejte si cibulový čaj.

Domácí léčba suchého kašle

Na většinu onemocnění způsobujících suchý kašel stačí domácí léčba. Mějte klidový režim a často a krátce větrejte v pokoji, chladný a vlhký vzduch má příznivý vliv na sliznici, naopak teplý a suchý ji dráždí. Při otevření okna dejte ale pozor na průvan, ten má naopak tendence onemocnění zhoršovat.

Vzduch zvlhčujte zvlhčovačem nebo rozvěšenými mokrými prostěradly po pokoji. Inhalace vodní páry s vonnými olejíčky může pomoci urychlit léčbu, vhodné jsou levandulové a eukalyptové oleje.

Lékaři doporučují podložení hlavy, především u dětí. Udržujte dostatek tekutin. Vhodným řešením může být například kombinace čajů na kašel a nápojů z bylinných výtažků. A pokud jde o samotné bylinky na suchý kašel, mezi nejúčinnější patří heřmánek, šalvěj nebo lipový květ. Rovněž pomáhá i bylinkový nálev z islandského lišejníku a levandule nebo čaj z divizny velkokvěté. Abyste léčbu suchého kašle co nejvíce urychlili, pijte jej klidně i dvakrát denně.

Ulevit si také můžete Priessnitzovým zábalem, ten dětem dělejte bez igelitu. A co se týče posledně zmíněné rady, pak vězte, že i cibule na kašel skutečně pomáhá. A to ve svých nejrůznějších formách. Můžete si z ní udělat cibulový čaj, sirup, popřípadě ji můžete posypat cukrem a následně po lžičkách požívat uvolněnou cibulovou šťávu.

Někteří pacienti při léčbě kašle využívají třeba i homeopatika, tedy léky založené na alternativní medicíně, jejímž principem je léčit výhradně pomocí přírodních látek, nikoliv chemie. Jejich přínos je však dle odborníků velice diskutabilní.

Kašel v těhotenství

Kašel se přirozeně nevyhýbá ani těhotným ženám. Toto běžné onemocnění může u nastávajících maminek být o něco více nepříjemné a vysilující než obvykle. Na plod jako takový by však v naprosté většině případů nemělo mít žádný vliv.

V souvislosti s kašlem v těhotenství je nicméně potřeba dávat větší pozor na volbu léků. Během prvního a druhého trimestru lze po zvážení užívat přípravky obsahující účinnou látku dextrometforman, zatímco v trimestru třetím a posléze v období kojení zase pro změnu léky s butamirátem.

MUDr. Thai Bao Han (neregistrovaný)
Dobrý den, pokud máte bolesti, doporučuji vyšetření u vašeho praktického lékaře.
Václav (neregistrovaný)
Mám dlouholety dráždivý kašel(údajně mám astma)používám vše možné nemohu se z toho dostat asi suchej kašel kříž jsem v dopravě a chutné mně to Každý se po mně otáčí už nevím co s tím nefunguje mně jedna klasická
MUDr. Thai Bao Han (neregistrovaný)
Dobrý den, pokud nekouříte, bylo by vhodné znovu absolvovat pneumologické vyšetření a vyměnit terapii.
dagmar (neregistrovaný)
Dobrý den. Už měsíc mě trápí suchý kašel. Vyzkoušela jsem možné sirupy a nic. Jsem očkovaná.
  • 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'; } }
'; 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 »