Bojujte s bacily pomocí aromaterapie

25. 11. 2009

Sdílet

Ilustrační obrázek
Autor: Depositphotos – VadimVasenin
Ilustrační obrázek
Máte pocit, že vám chybí energie? Trpíte nedostatkem čerstvého vzduchu a každodenním stresem? Odpoledne jdete z práce a máte dojem, že už je dávno noc? Potřebujete nutně aromaterapii. Nejenže vám zlepší náladu, ale třeba díky ní odoláte chřipce.

Už podle názvu poznáte, že v aromaterapii se využívají nejrůznější vůně, konkrétně aromatické látky rostlin, tzv. rostlinné silice. Popsat je můžeme jako prchavé látky, které nejsou ředitelné vodou, ale dobře se rozpouštějí v rostlinných olejích, medu, lihu, mléce nebo smetaně. Nejběžněji jsou rostlinné silice k dostání v podobě éterických olejů.

Podle mnoha aromaterapeutů působí éterické oleje jak na fyzické, tak na psychické úrovni.  Využívají se pro léčení psychických potíží, jako jsou nejrůznější stresy, deprese, nespavost nebo bolesti hlavy. Dokážou také stimulovat koncentraci a celkově osvěžit mysl. Rostlinné silice mají povzbuzující a tišící účinky, působí protizánětlivě, antivirově, relaxují celé tělo a posilují obranyschopnost organismu. Využít je můžete i jako lék na nejrůznější bolesti, proti nevolnosti nebo na vyrovnání tlaku.

Používáte aromatické oleje?

Aromaterapie přichází na scénu

aromalampa

O aromatických účincích rostlin se mluvilo už ve starověkém Egyptě, kde se éterické oleje přidávaly do vonných mastí nebo se používaly jako parfémy a masážní oleje. Své využití našly také jako léky na psychické a fyzické obtíže. Z Egypta se pak tyto esence rozšířily do starověkého Řecka a Říma. 

Účinky přírodních silic znovu objevil francouzský chemik René-Maurice Gattefosse v první polovině 20. století. Léčivost éterických olejů si vyzkoušel sám na sobě. Při jednom pokusu si totiž popálil ruku a zjistil, že bolest zmírní levandulový olej, který také přispěl k bezproblémovému zhojení rány. Právě tato zkušenost Gattefosse motivovala k dalšímu výzkumu esenciálních olejů.

Kontaktujte svého aromaterapeuta

Každá bylina a z ní získaná přírodní silice se vyznačuje specifickými účinky na lidské tělo. Platí přitom, že jeden éterický olej lze použít na různé psychické a fyzické neduhy. Při výběru éterického oleje, od něhož očekáváme zlepšení zdravotního stavu, byste měli kontaktovat profesionálního aromaterapeuta. V České republice existuje Asociace českých aromaterapeutů, kde najdete seznam a kontakty na odborníky ve vašem okolí. 

Na vdechování rostlinných silic by si měly dát pozor těhotné a kojící ženy, pro něž není vhodné velké množství éterických olejů, jako je například santalové dřevo nebo kafrovník. Opatrní bychom měli být také u kojenců a dětí do šesti let. Některé éterické oleje nejsou vhodné pro onkologicky nebo jinak vážně nemocné lidi.

Pokud nechceme éterickým olejem léčit závažné zdravotní problémy, je nejlepší řídit se při jeho výběru čichem. Éterický olej by nám měl v první řadě vonět a vyvolávat v nás příjemné pocity. Dbát bychom také měly na kvalitu olejů. Éterické oleje by neměly obsahovat žádné přídatné chemické látky, jako jsou nejrůznější rozpouštědla. Abychom měli skutečně jistotu, že kupujeme kvalitní výrobek, je nejlepší volit takové éterické oleje, které výrobce lisoval za studena nebo získal destilací vodní parou. Éterické oleje jsou dnes běžně k dostání v kamenných obchodech, stejně tak je možné si je objednat přes internet.

Aromaterapie na vlastní kůži

aromaterapie

Nejjednodušším a velmi příjemným použitím éterického oleje je jeho šíření ve vzduchu pomocí aromalampy. Do misky aromalampy, která by měla mít objem přibližně 100 ml, nalijeme vodu a nakapeme 5 – 8 kapek éterického oleje. Pod lampou zapálíme svíčku, která by měla být od nádobky vzdálena minimálně 7 cm, aby se voda nevypařovala příliš rychle. Po chvíli je místnost příjemně provoněná. Vdechováním se éterický olej dostává do průdušek a tělem se pak šíří až k jednotlivým orgánům.

Není nic jednoduššího, než si popisované účinky ověřit na vlastní kůži. A tak se vydávám do města poptat se po vhodné aromalampě. To však ještě netuším, že sehnat hezkou a požadovaným parametrům odpovídající aromalampu, může být problém. V prvních třech obchůdcích se svíčkami a dárkovým zbožím mi prodavačky dávají na „výběr“ z jednoho druhu aromalampy. Proto se raději vracím k počítači a objednávám aromalampu i s éterickými oleji přes internet.

Balíček mi pošta doručí o pár dní později. Nedočkavě do aromalampy s čínskými motivy naliji vodu a přidám několik kapek rozmarýnové silice, která má zatočit s únavou, bolestí hlavy a svalů a vyrovnat tlak. Silná vůně je v pokoji cítit téměř okamžitě. Hlava mě ten den zrovna nebolí, aktuální hodnotu svého tlaku neznám, ale unavená trochu jsem, a navíc mě čeká ještě pár hodin práce. Nakonec se však vzchopím a najdu dostatek energie vše dokončit. Zda to bylo vlivem rozmarýnové silice, je těžké soudit. Aromalampa, příjemná vůně a plamínek svíčky mi však přinejmenším zlepšily náladu v sychravém podzimním dni.

Aromaterapeutická masáž

Příjemným relaxačním zážitkem je také masáž éterickým olejem. Za tímto účelem můžeme navštívit aromaterapeuta nebo si zpříjemnit romantický večer ve dvou. Aromaolej lze zakoupit již hotový. Stejně tak je možné si ho připravit doma. Do 50 ml rostlinného, nejlépe za studena lisovaného, oleje nakapejte asi 20 kapek éterického oleje. Směs pak neberte do dlaní a masírujte postižené místo. Pro zmírnění bolesti svalů se výborně hodí například hřebíček. Kloubům uleví máta peprná.

aromakoupel

Éterický olej můžete použít také při koupeli. Stačí 8 – 15 kapek smíchat s medem, smetanou nebo mlékem a nalít do vany. Po vzoru starověkých kultur je možné si připravit i aromatickou mast. Potřebovat budete neutrální krém, do něhož přidáte 8 – 15 kapek éterického oleje.

Do boje proti chřipce

Podzim je období, kdy se naše tělo musí vypořádat s útoky bacilů a nachlazením. Éterickým olejům je připisována schopnost ničit viry a bakterie a zároveň posilovat obranyschopnost organismu. Chřipku samotné vdechování silic asi nevyléčí, ale může se stát podpůrným a příjemným doplňkem léčby.

chřipka

Při nachlazení a chřipce je vhodné použít eukalyptus, tea tree, mátu, rozmarýn nebo tymián. Tyto silice můžeme vdechovat pomocí aromalampy. Dalším možným způsobem aplikace silic jsou masáže hrdla a hrudníku. Eukalyptus nebo tea tree je vhodné přidat do horké koupele pokaždé, když máme pocit, že na nás útočí nachlazení nebo chřipka. Večer před spaním se doporučuje zaměnit tyto éterické oleje za levandulový, který uklidňuje a podporuje spánek.

Na škodu určitě nebude, pokud si před samotným nákupem éterického oleje zjistíme informace o účincích konkrétní rostlinné silice. Tady je přehled alespoň základních bylin, jejichž výtažky můžete v lahvičkách s éterickými oleji najít:

Anýz – astma, impotence, kašel, migrény, nachlazení

Cedr – bronchitida, rýma, akné, ekzém, nervozita, stres, močové a dýchací cesty (nepoužívat v těhotenství)

Citron – angína, astma, bolesti hlavy a zubů, deprese, chřipka, nadváha, žlučník, játra, stimulace myšlení, koncentrace, únava

Fenykl – zažívání, celulitida, mastná pleť (nevhodný pro epileptiky a děti do 6 let)

Hřebíček – tiší bolest, ústní a kožní poranění, nervové a svalové vypětí, duševní poruchy, stimuluje krevní oběh

Jasmín – nespavost, deprese, bolesti močovodu, onemocnění dělohy, urychluje porodní činnost

Jedle – nachlazení, revma, kašel, průjem, plynatost

Máta peprná – duševní vyčerpání, bolest hlavy, nervozita, bolesti kloubů, svalů, menstruační potíže, posiluje žaludek, dodává energii

Mateřídouška – žaludek, nervy, nespavost, bolesti hlavy, průjmy

Meduňka – nachlazení, horečka, deprese, snižuje krevní tlak, napětí, menstruační problémy

Pomeranč – vysoký tlak, nechutenství, nespavost, srdce, žlučník, nachlazení, zvyšuje koncentraci, rýma

Rozmarýn – zažívání, bolest hlavy, svalů, normalizace tlaku, migréna, zlepšuje paměť, únava, povzbuzuje, posiluje srdce

Růže – stres, migréna, bolest hlavy

Růžové dřevo – stres, nedostatek energie, psychické problémy

Šalvěj – únava, nízký tlak, dýchací potíže

Zázvor – revma, bolesti v krku, migrény

Autor článku

O zdravý životní styl a výživu se zajímá soukromě i profesně. Ráda ochutnává dobrá jídla v restauracích, experimentuje při vaření, pěstuje vlastní zeleninu a bylinky. Píše blog o jídle www.cojime.cz.

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