Jak přírodní cestou zmírnit bolest v prsou, za kterou mohou hormony

21. 11. 2022

Sdílet

Autor: Depositphotos
Prsa čas od času bolí každou ženu. V naprosté většině případů nejde o nic závažného, stojí za tím hormony a výkyvy jejich hladiny během měsíčného cyklu. Přesto dokážou být bolesti hodně nepříjemné. Zmírnit potíže lze i jinak než pomocí prášků.

Téměř každá žena zažila nepříjemné pnutí a zvýšenou citlivost prsou, zejména v období před menstruací. Někdy se prsa nalévají téměř po ovulaci a nepříjemné pnutí i bolest trvají až do menses. 

Není hned nutné užívat hormony. Zaměřte se na jídelníček, zkuste vyloučit ze stravy některá jídla a vyzkoušejte osvědčené přírodní prostředky, bylinky nebo třeba homeopatika. 

Hormony zvyšují citlivost na dotek

Některé ženy trpí takzvanou mastodynií neboli bolestí prsou už od druhé poloviny menstruačního cyklu, to znamená ihned po ovulaci, což může být opravdu velice nepříjemné. Ono už totiž bohatě stačí, když je bolest a pnutí v prsou součástí premenstruačního syndromu, který nastupuje zhruba tak týden před začátkem menstruace

Kromě jiných projevů se objevuje typické napětí a bolest v prsou, která také ztěžknou, zvětší svůj objem a jsou velice citlivá na dotek. To může překážet i v běžné činnosti, vadí to i při sportu či při sexu.

Mastodynie

  • bolest v krajině prsní žlázy bez patologické příčiny
  • též mastalgie
  • může být příznakem premenstruačního syndromu, mastopatií, ale vzácně též karcinomu

Mastopatie

  • nezánětlivé nezhoubné onemocnění ženského prsu
  • podstatou jsou změny v mléčné žláze způsobené hormonálními vlivy
  • projevuje se bolestivostí, vznikem cyst či zatvrdlinek v prsu, změny se mohou zvýrazňovat v rámci menstruačního cyklu
  • výskyt je velmi častý, udává se až u poloviny žen

Použité zdroje: Velký lékařský slovník – lekarskeslovniky.cz

Příčinou jsou hormony, respektive výkyv jejich hladiny, o tom není pochyb. U některých žen je příčinou tvorba cyst nebo zatvrdlinek v prsou – pak jde o takzvanou mastopatii. Cysty se v průběhu menstruačního cyklu mění, často se spolu s menstruací rozpustí a ve druhé polovině cyklu se zase vytvoří a způsobí tak bolest a citlivost prsou. 

Stav je potřeba dobře sledovat a pomocí ultrazvukového vyšetření zavčas rozpoznat případné změny, které by mohly vést až k rozvoji rakoviny prsu. U žen s výskytem cyst a bulek v prsou je nutné velice dbát na prevenci vzniku nádorového onemocnění.

Jak se zbavit housera? Pomáhá hlavně teplo a klid Přečtěte si také:

Jak se zbavit housera? Pomáhá hlavně teplo a klid

Co pomáhá v každém případě, je kojení. V dalších případech je vhodné upravit jídelníček, životosprávu a vyzkoušet bylinky, které vám mohou pomoci nejen od premenstruačního syndromu a bolestivého napětí v prsou, ale i od případných cyst a uzlíků v prsou.

Na napětí v prsou zabírají také homeopatika

Homeopatika je dobré zvolit přímo na míru po poradě s homeopatem, obecně se na premenstruační syndrom a napětí v prsou doporučuje cimicifuga a agnus castus, dále lék s názvem lac caninum anebo folliculinum, jež se připravuje přímo z estrogenu.

Na bolestivá prsa, nafouknuté břicho a otoky v souvislosti s menstruačním cyklem platí také apis mellifica. 

Trápí vás zvýšená citlivost či bolest prsou před menstruací?

Důležité je zvýšit příjem vitamínu E, esenciálních mastných kyselin, vápníku a hořčíku i vitamínů skupiny B. Doporučuje se vysadit kávu a kakao, vzdát se čokolády, kofeinu a kolových nápojů, samozřejmostí je nepít alkohol a nekouřit, omezit ve stravě uzeniny, zrající sýry, solená jídla a cukr. Je vhodné dodržovat pitný režim, ideálně pít čistou neperlivou vodu, jíst hodně ovoce a zeleniny a nosit kvalitní a pevnou podprsenku.

Měsíček prsům svědčí

Měsíček lékařský není symbolem boje proti rakovině prsu jen pro svou krásu. Je výbornou bylinkou na gynekologická a nádorová onemocnění a má velice příznivý vliv na prsa. Řada z nás jej zná pouze ve formě měsíčkové masti, která je účinná na ekzémy, drobná poranění, popáleniny a suchou kůži. Mast z měsíčku však účinkuje také na plísně, má výrazné antiseptické a hojivé vlastnosti a prakticky ji můžete použít na jakýkoli kožní defekt či poranění, lupénku i kvasinková onemocnění kůže či pohlavních orgánů.

Jak rychle vyléčit chrapot? Záleží na tom, zda jde o potíže z nachlazení či mluvení Přečtěte si také:

Jak rychle vyléčit chrapot? Záleží na tom, zda jde o potíže z nachlazení či mluvení

Ale také vnitřní užití má svůj význam. Měsíček je i vnitřně velmi účinný na různé bakterie a plísně, má silné antiseptické vlastnosti a je možné s ním také kloktat a léčit záněty v krku. 

Pití čaje se doporučuje při jaterních a žlučníkových onemocněních, podporuje tvorbu žluče a enzymů slinivky břišní, má velice pozitivní vliv na čištění jater a v podstatě na jakékoli trávicí potíže. Je skvělým antioxidantem a jeho pití je na místě při jakémkoli nádorovém onemocnění. Léčí cysty v prsou a příznivě ovlivňuje celou gynekologickou oblast a hormonální systém. Právem je považován za symbol boje proti rakovině ženských orgánů.

Jak se naučit míchat vlastní koření? Základem je paprika, chilli a kvalitní pepř, říká pražský kořenář Přečtěte si také:

Jak se naučit míchat vlastní koření? Základem je paprika, chilli a kvalitní pepř, říká pražský kořenář

Na úpravu menstruačního cyklu, zmírnění příznaků premenstruačního syndromu a bolestivého napětí v prsou se také doporučuje kontryhel, který je naprosto jedinečnou ženskou bylinkou.

Kromě něj na prsa také účinkuje olej z pupalky dvouleté, který se užívá vnitřně po lžičkách nebo ve formě kapslí. Tato vysoká žlutě kvetoucí rostlina ve svých semenech ukrývá olej, jenž obsahuje cenné esenciální mastné kyseliny, zejména kyselinu linolovou a gama linolenovou mající protizánětlivé působení. Užití pupalky se doporučuje v případě kožních potíží, při lupence a premenstruačním syndromu.

Ploštičník a červený jetel ovlivňují hormony

Již zmíněný ploštičník neboli cimicifuga je běžnou součástí přírodních přípravků, které se užívají v přechodu nebo také při premenstruačním syndromu. Stejně jako červený jetel výrazně ovlivňuje hormonální hladiny a zmírňuje veškeré projevy klimakteria

Obsahuje totiž fytoestrogeny a napomáhá odstraňovat jak návaly a pocity horka, tak také nepříjemné pnutí v prsou, nervovou podrážděnost, nespavost, bolesti hlavy i kloubů. Působí celkově protizánětlivě i protikřečově, upravuje přirozený cyklus ženy, má příznivý vliv na prsa a preventivně snižuje riziko vzniku karcinomu. Dávkování by mělo být v rukou lékárníka či lékaře a neměl by se užívat dlouhodobě. Ve vyšších dávkách vyvolává nevolnost a závratě, u těhotných žen může způsobit vyvolání porodu nebo potratu. Užívá se také v homeopatické podobě.

Další bylinkou je drmek obecný, latinsky agnus castus, který rovněž ovlivňuje hormonální hladiny a pomáhá regulovat menstruaci, odstraňovat nepříjemné projevy premenstruačního syndromu a klimakteria a posilovat plodnost ženy. Užívá se také jako prevence potratu a na podporu ovulace. Působí i při gynekologických zánětech, hubí některé bakterie a plísně. Užívá se při nejrůznějších gynekologických potížích. Může mít některé vedlejší účinky, nedoporučuje se proto užívat dlouhodobě. Zpravidla bývá už součástí některých produktů nabízených v lékárnách. Také drmek existuje v homeopatické podobě.

„Ženské“ bylinky proti bolestivému napětí v prsou

  • Měsíček lékařský – výborný na gynekologická a nádorová onemocnění, má velice příznivý vliv na prsa
  • Kontryhel – na úpravu menstruačního cyklu, zmírnění příznaku premenstruačního syndromu a bolestivého napětí v prsou
  • Pupalka dvouletá – olej z pupalky se užívá vnitřně po lžičkách nebo ve formě kapslí, pomáhá na napětí v prsou a při premenstruačním syndromu
  • Ploštičník – výrazně ovlivňuje hormonální hladiny, užívá se v přechodu, při premenstruačním syndromu, zmírňuje projevy klimakteria a nepříjemné pnutí v prsou
  • Červený jetel – obdobně jako ploštičník ovlivňuje hormonální hladinu, pomáhá na bolesti prsou
  • Drmek obecný – rovněž ovlivňuje hormonální hladiny a pomáhá regulovat menstruaci, odstraňovat nepříjemné projevy premenstruačního syndromu a klimakteria, posiluje plodnost, užívá se také jako prevence potratu, na podporu ovulace a při nejrůznějších gynekologických potížích

Autor článku

Externí redaktorka a copywriterka píšící pro webové i tištěné magazíny. Zaměřuje se na oblast zdraví, historie medicíny, psychologie, filozofie, etikoterapie a alternativní medicíny.

Všeobecné dotazy, připomínky a tipy směřujte na adresu [email protected].

Tiskové zprávy zasílejte na e-mail [email protected].

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