Nachlazení patří mezi běžné nemoci. Léčba spočívá v tlumení příznaků

7. 7. 2021 7:30
přidejte názor
Autor: Shutterstock

Rýma, ucpaný nos, kašel, celková únava a nesnesitelná bolest hlavy. To jsou jen některé z běžných příznaků nachlazení, což je jedna z nejčastějších chorob, s nimiž se lidé v dnešní době potýkají. Ačkoliv problémy většinou samy během sedmi až deseti dnů ustoupí, mohou být velice nepříjemné. Poradíme, jak se zbavit nachlazení co nejrychleji a co na nachlazení opravdu pomáhá.

Co je nachlazení?

Co se dozvíte v článku
  1. Co je nachlazení?
  2. Hlavní příčina nachlazení
  3. Další rizikové faktory
  4. Nachlazení: inkubační doba
  5. Jaké má nachlazení příznaky?
  6. Fáze nachlazení
  7. Možné komplikace
  8. Nachlazení, nebo chřipka?
  9. Diagnostika
  10. Léčba nachlazení
  11. Co dělat při nachlazení?
  12. Domácí léčba nachlazení
  13. Kdy jít k lékaři?
  14. Prevence

Nachlazení představuje běžné virové onemocnění horních cest dýchacích, které lékaři nazývají také nasofaryngitida, rinofaryngitida nebo akutní koryza. Tato infekce je pak kategorizovaná hlavně podle části těla, která je nejvíce postižená, přičemž nejčastěji se jedná o nos, ale mohou to být také dutiny (sinusitida) nebo krk (faryngitida).

Nachlazení občas potrápí každého z nás, přičemž velice nepříjemné může být nachlazení u dětí, nemoc se nevyhýbá ani seniorům nebo těhotným ženám a někdo dokonce prodělá nachlazení několikrát za rok. Mezi lidmi je přitom toto běžné onemocnění známé hlavně jako rýma a někteří lidé o něm hovoří také jako o chřipce, ačkoliv se tyto zdravotní komplikace v mnohém liší.

Hlavní příčina nachlazení

Nachlazení může způsobit zhruba 200 různých virů, které sice mají odlišné vlastnosti, ale v konečném důsledku vyvolávají u člověka velice podobné příznaky. Nejběžnější je nákaza rhinovirem, což je RNA virus z čeledi Picornaviridae, který má na svědomí 30–80 % všech případů tohoto nepříjemného onemocnění.

Na vině ovšem mohou být i další viry. Zhruba v 10–15 % případů se jedná o koronaviry a dalších 5–15 % případů tvoří nákaza virem chřipky (influenza). Nachlazení se ovšem může rozvinout také vlivem dalších patogenů, mezi něž patří například:

  • lidské viry parainfluenzy,
  • lidský respirační syncytiální virus,
  • adenoviry,
  • enteroviry,
  • metapneumovirus.

Velká rozmanitost virových původců nachlazení přitom znamená, že si lidský imunitní systém nedokáže proti tomuto onemocnění vybudovat trvalou imunitu. Jelikož navíc infekci často způsobuje více než jeden přítomný virus, není snadné se nachlazení ubránit a člověk se dokonce může nakazit jiným typem viru chvíli poté, co jedno nachlazení prodělal, což vede k opětovnému vzplanutí nepříjemných symptomů.

Pokud jde o to, jak dochází k přenosu onemocnění, virus se do těla většinou dostane prostřednictvím kapének nebo také při kontaktu s infikovaným nosním hlenem a kontaminovanými předměty. Viry totiž mohou v okolním prostředí přežít velice dlouho a například z nemytých rukou se snadno dostanou do očí nebo do nosu.

Rizikový je především pobyt ve větších kolektivech, jako jsou školy a školky, kde v důsledku těsné blízkosti mnoha dětí bývá nákaza velice častá. Problematické je pak samozřejmě i zanedbávání hygieny nebo oslabená imunita pacientů, přičemž dítě nákazu snadno rozšíří i na další členy rodiny a nachlazení se často opakovaně vrací.

Další rizikové faktory

Pacienti se tradičně domnívají, že nachlazení bývá způsobeno dlouhým pobytem ve studeném prostředí, například venku na dešti nebo na mrazu, podle čehož také onemocnění dostalo svůj název. Původcem obtíží ovšem bývají spíše některé viry, které jsou sezónní a častěji se vyskytují během chladného a vlhkého počasí.

Snazší přenos nákazy ovšem souvisí i se změnami v dýchací soustavě a k dalším rizikovým faktorům se řadí také slabá imunita, nedostatek spánku nebo špatná výživa. Aby toho nebylo málo, kolektivní imunita vůči konkrétní infekci se objevuje až po předchozím styku s určitým patogenem. Mladší část populace je proto náchylnější k respiračním infekcím než lidé starší.

Zatímco na podzim nebo během zimních měsíců není toto onemocnění nijak neobvyklé, nachlazení v létě můžečlověka nepříjemně zaskočit. Na vině přitom bývá třeba konzumace příliš studených nápojů (vychlazené limonády s kostkami ledu, ledová káva), které mohou tělu způsobit šok a vyvolat celou řadu nepříjemných příznaků včetně rýmy, kašle nebo celkové únavy.

Mezi další problémy, které mohou člověka v létě zaskočit, patří nachlazení z klimatizace. Pokud je venku totiž přes 30 °C a doma, v práci nebo v autě jede klimatizace naplno, nachlazení na sebe nenechá dlouho čekat. Rozdíl mezi venkovní a vnitřní teplotou by proto v ideálním případě neměl překročit 5 stupňů, a i když je vánek příjemný, nenechávejte na sebe klimatizaci přímo foukat.

Spousta lidí si potrpí také na návštěvy sauny, které by měly pomoci posílit jejich imunitu a fungovat jako prevence proti různým chorobám. Pro oslabený organismus je to ovšem zátěž, která může způsobit dehydrataci a průběh nemoci ještě urychlit. Sauna a nachlazení tedy nepředstavují dobrou kombinaci, a pokud vás trápí rýma nebo kašel, je lepší návštěvu tohoto zařízení raději na nějaký čas odložit.

Nachlazení: inkubační doba

Pokud jde o rozvoj onemocnění, prvotní příznaky se u pacienta objeví během jednoho až tří dnů od té doby, kdy přišel do kontaktu s virem. Inkubační doba nachlazení tedy činí zhruba 12–72 hodin. A jak dlouho trvá nachlazení? Jedná se obvykle o 7–10 dnů, ale některé příznaky mohou přetrvávat klidně i tři týdny.

Spoustu nemocných také zajímá, jak dlouho je člověk infekční pro ostatní. Tato doba se může lišit v závislosti na závažnosti jednotlivých příznaků, ale obecně se pacient stává nakažlivým ve chvíli, kdy se u něj objeví prvotní symptomy nachlazení, tedy zhruba druhý den po přenosu patogenů. Riziko nákazy je pak nejvyšší asi dva dny po manifestaci prvních příznaků a postupně se snižuje.

Co vám nejvíce funguje na nachlazení?

Jaké má nachlazení příznaky?

Nachlazení probíhá u každého jedince jinak, což závisí hlavně na konkrétním původci onemocnění, ale i na celkovém zdravotním stavu pacienta a dalších faktorech. Zatímco v některých případech nachlazení vyřadí pacienta na několik dnů z běžného fungování, jindy se jedná pouze o drobný problém, jelikož celá řada virů způsobujících nachlazení nevyvolává žádné výraznější symptomy.

Hlavním příznakem nachlazení je samozřejmě rýma, která bývá zpočátku vodnatá, ale později se mění v hustou sekreci. Další projevy nachlazení pak zahrnují silně ucpaný nos, kašel, bolest v krku, pocit únavy a vyčerpání, ztrátu chuti k jídlu, teplotu, nesnesitelné bolesti hlavy nebo třeba myalgie, což jsou nepříjemné bolesti svalů.

Zatímco kašel trápí v tomto případě asi 40 % nemocných, bolest v krku je přítomná asi v polovině případů. Kašel ale bývá spíše mírný, a co se týče zvýšené teploty, ta obvykle nedosahuje příliš vysokých hodnot. Mezi další komplikace se pak řadí i zvětšené uzliny na krku při nachlazení nebo vykašlávání hlenu z dolních cest dýchacích, který může mít čirou, žlutou až zelenou barvu.

Příznaky nachlazení:

Fáze nachlazení

Jaký má nachlazení průběh? V první fázi, tedy jakmile uplyne inkubační doba nemoci, se objevuje nepříjemné svědění nebo pálení v nose, pacienti často kýchají a výjimkou není ani silná bolest v krku. Kromě toho je patrná celková únava nebo vyčerpání i při běžných činnostech, dostavit se může také zimnice a postižení si stěžují, že jim celkově není dobře.

Druhá fáze představuje vrchol nachlazení, kdy se z nosu spustí řídká rýma a pacienti musí mít neustále po ruce kapesník. Dalším typickým příznakem je pak bolest v krku a ztráta chuti k jídlu, stále přetrvává výrazná únava a výjimkou není ani ztráta čichu při nachlazení. Nosní sekrece totiž začíná být stále hustší a sliznice otéká, což může způsobit problémy s čichem i chutí.

Pokud jde o třetí fázi onemocnění, zde již nachlazení pomalu ustupuje, protože pacientův imunitní systém zvítězil nad probíhající infekcí. Otok nosní sliznice postupně mizí, zánět v krku se zlepšuje a vytrácí se také rýma. Ačkoliv jsou příznaky na ústupu, je dobré stále dbát na dodržování preventivních opatření a snažit se vyhnout dalšímu kontaktu s viry, abyste předešli komplikacím.

Možné komplikace

Nachlazení obvykle mívá mírný průběh, většina symptomů se zlepší během jednoho týdne a onemocnění postupem času vymizí i bez jakékoliv léčby. U malých pacientů nebo v případě jedinců s oslabeným imunitním systémem se ovšem mohou objevit také komplikace v podobě závažnějšího průběhu nemoci nebo sekundární bakteriální infekce, která způsobuje zánět dutin, faryngitidu či různé ušní záněty (například zánět středního ucha).

Nachlazení, nebo chřipka?

Ačkoliv si spousta lidí myslí, že chřipka a nachlazení jsou v podstatě totožné, není to pravda. Obyčejné nachlazení totiž není zdaleka tak nebezpečné, jako může být v některých případech chřipka. Ta totiž probíhá většinou v epidemiích, má závažnější průběh a někdy dokonce může ohrozit pacienta na životě. Proto je dobré znát rozdíl mezi chřipkou a nachlazením.

Zatímco nachlazení může vyřadit člověka z běžného fungování na několik dnů, v případě chřipky to bývá klidně i několik týdnů. Projevy, které zahrnují bolest v krku, bolest hlavy a svalů, kašel nebo třeba horečku, totiž bývají mnohem intenzivnější. Pacienti navíc mohou pociťovat také ztížené dýchání nebo jiné obtíže.

Pokud jde o charakteristické znaky jednotlivých zdravotních problémů, rozdíly je třeba hledat hlavně v konkrétních projevech těchto nemocí. Například bolesti hlavy a svalů bývají v případě chřipky velice časté a kruté, zatímco při nachlazení nedosahují takové intenzity. Zato je doprovází ucpaný nos, kýchání a bolesti v krku, což pro chřipku není tak typické. Bolest zad při nachlazení není příliš častá, ale chřipku doprovází celkem běžně, a přidat se může také nevolnost nebo zvracení.

U pacientů pak může probíhat nachlazení bez teploty nebo je teplota při nachlazení mírná, ale chřipka se naopak vyznačuje vysokými horečkami. Také celková slabost trvá u pacientů potýkajících se s chřipkou delší dobu, klidně i 3 týdny. Kašel je pak v porovnání s nachlazením mnohem výraznější. Kromě toho se mohou dostavit komplikace, jako je například zánět vedlejších dutin, zánět průdušek nebo zápal plic, což následně může vyžadovat i hospitalizaci.

Diagnostika

Odlišit jednotlivé typy infekcí horních dýchacích cest je možné na základě konkrétních projevů, s nimiž se pacienti potýkají. Nachlazení postihuje hlavně nosní dutinu a může zahrnovat také proměnlivé úrovně zánětu v krku, faryngitida pak zasahuje především hltan a bronchitida plíce. Pacienti jsou proto běžně schopní si diagnózu určit sami a izolace viru se provádí pouze zřídka.

Léčba nachlazení

Ačkoliv se lidé často ptají, jak se zbavit nachlazení přes noc, ve skutečnosti to není až tak jednoduché. Jakmile se tyto zdravotní komplikace objeví, je totiž těžké ovlivnit jejich průběh a dobu trvání, protože léky na nachlazení postup nemoci příliš neuspíší. Mohou ovšem zabránit rozvoji dalších obtíží, jako je zánět vedlejších nosních dutin. Jaká tedy existuje pro nachlazení léčba?

Jelikož pro nachlazení neexistuje jeden konkrétní lék, který by prokazatelně zkrátil dobu trvání této infekce, je nutné zaměřit se spíše na léčbu příznaků. S tím mohou pomoci například analgetika (léky na bolest) či antipyretika (léky na snížení horečky), jako je ibuprofen nebo paracetamol. Samotné léky proti kašli obvykle nepřináší žádnou výraznější úlevu a u dětí se většinou nedoporučují.

Vzhledem k tomu, že antibiotika na virové infekce neúčinkují, není vhodné je při nachlazení podávat. Stejně tak prokazatelně nefungují ani antivirotika a většina pozitivních výsledků terapie bývá přisuzována spíše placebo efektu. Zmírnit symptomy rýmy ovšem mohou antihistaminika první generace, nosní spreje, kapky na kašel nebo různé sirupy.

Co dělat při nachlazení?

Ačkoliv spousta lidí chodí i s rýmou, kašlem a dalšími symptomy do práce nebo do školy, abyste podpořili léčbu nachlazení, je vhodné dodržovat klidový režim. Důležitý je hlavně odpočinek a pacienti by měli dbát také na dostatečný příjem tekutin, což zajistí hydrataci organismu, jelikož tělo jich během nachlazení spotřebuje více.

Kromě toho může pomoci také horká koupel, a to zejména v raných stádiích nemoci, kdy pacient nemá horečku. Účinným způsobem, jak rychle vyléčit nachlazení, bývá i vdechování páry, což zvlhčuje podrážděnou sliznici, kloktání teplé slané vody, vyplachování nosu či studené a teplé zábaly, které pomáhají snížit horečku, zmírnit bolest v krku a ulevit od nepříjemného kašle.

Stále více lidí si v poslední době chválí otužování, jelikož pravidelná ledová sprcha údajně posiluje organismus, může pomoci předejít nepříjemným zdravotním komplikacím a zvyšuje odolnost proti nachlazení. Je ovšem nutné k tomu přistupovat zodpovědně. Otužování při nachlazení nebo jiné nemoci pak raději vynechejte, protože byste mohli své obtíže spíše zhoršit.

Spoustu lidí také zajímá, zda je možné cvičit při nachlazení, nebo na sportovní aktivity raději musí na nějaký čas zapomenout. Zpravidla byste měli poslouchat své tělo, a pokud se necítíte dobře, ideálně si odpočinout a trénink na pár dní vynechat. Dále se doporučuje řídit se následujícími radami:

  • Cvičení při nachlazení je povoleno, pokud se symptomy projevují pouze od hrdla výše. To znamená, že člověka trápí kýchání, rýma, ucpaný nos nebo mírná bolest v krku, ale celkově se cítí dobře a nepotýká se s žádnou výraznější únavou. I tak je ovšem vhodné tempo cvičení zmírnit a dobu sportování zkrátit.
  • Cvičit při nachlazení byste naopak neměli, pokud se symptomy projevují od hrdla dolů a zahrnují třeba nepříjemné bolesti svalů po celém těle nebo dusivý kašel. To samé platí také ve chvíli, kdy má člověk horečku, je velice unavený a připadá si zcela bez energie.

Domácí léčba nachlazení

Zajímají vás spíše babské rady na nachlazení? Svou imunitu a rychlejší uzdravení můžete podpořit osvědčenými potravinami a vyváženým přísunem živin. Kromě toho mohou pomoci také bylinky proti nachlazení nebo třeba horký nápoj na nachlazení, který má protizánětlivý účinek. Co jíst při nachlazení a jaké tekutiny konzumovat, aby se vám ulevilo od potíží?

  • med,
  • heřmánkový čaj,
  • šalvějový čaj,
  • zázvorový čaj,
  • česnečka,
  • kuřecí vývar,
  • chilli,
  • křen,
  • cibule.

Mezi oblíbené recepty posledních let patří zázvorový čaj na nachlazení, který tělo prohřeje a díky obsahu léčivých látek pomáhá zmírnit jednotlivé symptomy. Někdy se pak také doporučuje česneková polévka na nachlazení nebo třeba cibule na nachlazení, jejíž jemné plátky lidé kombinují s medem, aby vznikl sirup s léčivými silicemi, který zmírňuje kašel a rozpouští hleny.

Oblíbené jsou samozřejmě i byliny na nachlazení, které se aplikují v podobě sirupů, tinktur nebo čajů. Vyzkoušet můžete například jitrocel, černý bez, lípu, šalvěj, šípek, echinaceu, rakytník nebo lichořeřišnici. O jejich užití se ovšem nejprve poraďte v lékárně, jelikož některé bylinky není radno konzumovat ve větším množství.

Bylinky pak mohou být prospěšné i jiným způsobem, například ve formě tymiánové masti, která uvolní ucpané dutiny, či tea tree oleje, jenž se natírá kolem nosních dírek a zklidňuje podrážděnou sliznici. Olej se dá ovšem nakapat také do koupele, kde podobně jako ten eukalyptový působí uklidňujícím dojmem a uvolňuje horní dýchací cesty.

Kdy jít k lékaři?

Pokud se necítíte dobře po dobu delší než deset dnů a přetrvává u vás silná rýma, kašel, bolest hlavy nebo bolest v krku, je nutné zamířit do zdravotní ordinace. To samé platí v případě, že máte vysoké horečky nebo zvýšená teplota neustupuje. Může se totiž jednat o chronické nachlazení (chronická rýma) nebo jiné onemocnění, jako je například chřipka, streptokoková angína, bronchitida či zápal plic, a lékař musí zvolit vhodný způsob terapie, kterým se komplikací zbavíte (například antibiotika).

Prevence

Stoprocentní prevence, která by zabránila rozvoji nachlazení, bohužel neexistuje. Člověk ovšem může posílit svůj organismus a vyhnout se rizikovým faktorům, které mají na rozvoji těchto nepříjemných zdravotních komplikací svůj podíl. Jaká opatření je tedy vhodné dodržovat?

  • Dbejte na základní pravidla hygieny a často si myjte ruce.
  • Jezte vyváženou stravu a dbejte na přísun vitamínů a minerálů.
  • Soustřeďte se na dostatečný pitný režim a pravidelný pohyb.
  • V místnostech, kde se pohybujete, zvlhčujte vzduch.
  • Snažte se co nejvíce vyhýbat viditelně nemocným lidem.
  • Volte oblečení s ohledem na roční období a počasí.
  • Vyzkoušejte pravidelné otužování pro posílení imunity.
  • Pokuste se omezit stres a vyhnout se stresovým situacím.
  • Dopřejte si dostatečně dlouhý spánek.

Zdroje: aspirin.cz, benu.cz, lekarna.cz

  • Žádné názory
  • 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 »