Cysta na vaječníku může mít i velikost pomeranče. Jak rozpoznat příznaky?

6. 1. 2023 9:00
přidejte názor
ručitel
MUDr. Daniel Petr | Odborný garant článku
„Cysta vaječníku je relativně běžným nálezem při gynekologickém vyšetření.“

Cysta na vaječníku může být velmi nepříjemná, pokud se nezjistí včas. Proto nezapomínejte na pravidelné kontroly u svého gynekologa, který problém může zavčas objevit, a tím i lépe řešit. Jak se onemocnění projevuje, proč vzniká a co na něj pomáhá? 

Cysta – co to je a jak se vytvoří?

Cysta vaječníku je onemocnění ženského pohlavního ústrojí, které nejvíce trápí ženy ve zralém věku či po porodu. Cysta je útvar, který je vyplněný tekutinou a oddělený od okolí. Za cystu se považuje útvar, který je větší než 2 cm, zpravidla se chvíli zvětšuje a poté zmenšuje. Vyskytnout se mohou cysty na vaječníku od velikosti hrášku až po velikost pomeranče. Kromě cysty na vaječnících se u žen objevuje také cysta v děloze.

Toto onemocnění vzniká  nejčastěji v důsledku hormonálních změn a velkého množství mužského pohlavního hormonu. Proto se většina cyst objevuje v období, kdy žena ovuluje. Kvůli neuvolněnému vajíčku se vaječník naplní tekutinou, nicméně tyto cysty po několika menstruačních cyklech samy od sebe zmizí.

Pokud útvar po cyklu skutečně vymizí, doporučuje se další kontrola obvykle za tři měsíce (tato kontrola je nutná i v případě, že cysta nezmizela). Lékař pak na základě ultrazvuku zhodnotí, zda cystu stačí sledovat, anebo je lepší variantou chirurgické ošetření.

Typy cyst

Cysty můžeme rozdělit do dvou základních typů, a to:

  • Cysty folikulární – jedná se o nejčastější typ cyst. Jak už název napovídá, jde vlastně o zvětšený folikul, který nepraskl a čirá tekutina uvnitř něj se zmnožila. Po naplnění může cysta dosahovat až 15 cm. Tento útvar zpravidla samovolně pukne,
  • Cysty žlutého tělíska – bývají menší než folikulární cysty. Jsou prokrvácené a často stojí za poruchami pravidelnosti menstruačního a ovulačního cyklu. [1, 2, 3, 4, 56]

Příznaky cysty na vaječníku

Z velké části jsou cysty nezhoubné, malé cysty jsou velmi často bez jakýkoli příznaků a samy po nějaké době zmizí. Bývají zjištěny náhodně během preventivní prohlídky, a to konkrétně pohmatem a následným ultrazvukovým vyšetřením. Obtíže jsou závislé na velikosti útvaru, poměrně často se ale objevuje:

  • nepravidelnost menstruačního cyklu,
  • tlak v podbřišku,
  • bolestivost při sexu,
  • bolest v klidovém režimu (u větších cyst).

Větší prasklá cysta na vaječníku může způsobit zánět v podbřišku, který se projevuje velmi silnou bolestí, nevolností až zvracením a horečkou. V takovém okamžiku je nutné neprodleně vyhledat lékaře. Hrozí totiž krvácení do dutiny břišní. Pokud se krvácení potvrdí, je nutné přistoupit k operativnímu ošetření, které se většinou provádí laparoskopicky.

Prasklá cysta: příznaky

Jaké má prasklá cysta projevy? Nejčastěji se jedná o tyto:

Příznaky větších cyst na vaječnících

Zajímá vás, jak poznat cystu na vaječníku větších rozměrů? Typicky na základě těchto příznaků:

Syndrom polycystických ovárií

S cystami na vaječnících souvisí i onemocnění zvané syndrom polycystických ovárií. Jedná se o nejčastější endokrinologické onemocnění, které v různých formách postihuje 6 až 20 % žen. Tělo v jejich případě produkuje nadměrné množství mužských hormonů (testosteronu), což má za důsledek absenci menstruace a v konečném stádiu i neplodnost.

Vaječníky pacientek jsou zvětšené a obalené shlukem velkých folikulů, což je zpravidla důsledkem toho, že u těchto žen nedochází k ovulaci. Tyto cysty jsou na až trojnásobně zvětšených vaječnících poskládány tak, že budí dojem perlovitého náhrdelníku.

Zpoždění menstruace nemusí nutně značit těhotenství. Jaké jsou další potenciální příčiny?
Přečtěte si také:

Zpoždění menstruace nemusí nutně značit těhotenství. Jaké jsou další potenciální příčiny?

Podle některých odborníků by za vznikem onemocnění mohla stát i takzvaná inzulinová rezistence. Inzulin je totiž důležitým činitelem při transportu krevního cukru i jeho následném využití a regulaci. Důležitou roli navíc hraje i při metabolismu uhlovodanů a tuků. Dojde-li na buněčné úrovni k rezistenci vůči účinku inzulinu, organismus se s tím snaží vyrovnat tím, že ho začne tvořit více. U pacientky tak dochází k takzvané hyperinzulinemii, která může být příčinou toho, že vaječníky tvoří výrazně více mužských hormonů.

Syndrom polycistických vaječníků je nebezpečný i z toho důvodu, že dlouho probíhá bez výrazných příznaků. Kromě nepravidelné nebo chybějící menstruace mohou pacientkám napovědět typické znaky v jejich vzhledu. Nemocné ženy totiž zpravidla vypadají mužně a tak nějak „hrubě“. Tyto ženy mají postavu postrádající typicky ženské křivky a tvary. Dalším poznávacím znamením je pak také hrubý či hluboký hlas. Zvýšená hladina mužských hormonů u pacientek dále způsobuje:

  • nadměrné vypadávání vlasů,
  • maštění vlasů,
  • akné,
  • hyperpigmentaci.

Poznávacím znakem je rovněž zvýšené ochlupení, které se objevuje na místech, která pro ženy nejsou úplně typická: například na hrudníku, na tvářích, nad horním rtem, na bradě, na zádech i na břiše. Hormonální nerovnováha pak dopadá také na jejich psychiku. Důsledkem nemoci navíc může být třeba vysoký krevní tlak, cholesterol, rakovina vaječníků, kardiovaskulární onemocnění či cévní mozková příhoda. [12, 13, 14, 15, 16]

Myslíte si, že byste měla zhubnout?

Jak cystám předejít a jak se jich zbavit?

Pokud se obtíže týkají i vás, pravděpodobně vás zajímá, jak se zbavit cysty na vaječníku. V současné době bohužel neexistuje žádná terapie, pomocí které by bylo možné onemocnění cíleně léčit. Léčit se tedy pouze jednotlivé příznaky. Lékem první volby bývá v mnoha případech hormonální antikoncepce.

U pacientek, které mají jen menstruační cykly bez přítomnosti ovulace, se v druhé části cyklu podávají gestageny, což jsou hormony na bázi progesteronu. Ten v organismu přirozeně vzniká z buněk žlutého tělíska, které se tvoří z buněk prasklého folikulu po uvolnění vajíčka.

Důležitá jsou rovněž určitá režimová opatření. Nepříznivé jevy v některých případech může odstranit výraznější redukce váhy u obézních pacientů. Po redukci váhy totiž dochází k obnovu cyklu ovulace čímž se odbourává neplodnost. Zlepšuje se rovněž metabolismus tuků, snižuje se jejich množství v krvi a menší je i rezistence orgánů na inzulin.

Cysty, které se projeví jako zhoubné, vyžadují chirurgické vyšetření.

Doplňková léčba cyst

Co pomáhá na cysty na vaječníku podle výzkumů? Podle některých studií se cysty objevují a jsou přirozenou součástí ženského těla za okolností, kdy jsou oslabena játra, která tak nejsou schopna očišťovat organismus. Proto je vhodné podpořit funkci jater.

Vhodnou přírodní léčbou je užití byliny s názvem ostropestřec mariánský, která se využívá k léčení již od starověkého Řecka a Říma. Tato bylina s purpurovými květy kvete od června do srpna a na konci tohoto období se sbírají její semena pro léčivé účely. Je známa díky své funkci ochrany jater před toxickými látkami včetně léků.

Též léčí jaterní choroby, zmírňuje poškození jater alkoholem a pomáhá k léčení žlučových kamenů. Pozor, léčivé složky ostropestřce nejsou dobře rozpustné ve vodě, proto doporučujeme využívat léčivku ve formě tablet, v čaji z této byliny je obvykle menší množství látek, které chrání játra.


Oblíbeným doplňkem stravy je také INDOL-IN.


Pro někoho může být pampeliška (též nazývaná smetánka lékařská) jen obtěžující plevel, nicméně se jedná o bylinu, která má léčivé účinky při posílení funkce jater nebo podpoře trávení a pomáhá také snižovat hladinu estrogenů. Kořen pampelišky můžete využít na přípravu čaje, ke kterému můžete namíchat i jiné bylinky, jako například lékořici, a osladit si čaj medem. Stejně tak je možné zužitkovat její listy přidáním do salátu, nebo z nich lze také extrahovat šťávu.

Vaše strava by měla obsahovat méně živočišných tuků, jako je v mase, vejcích či mléčných výrobků. Naopak věnujte větší pozornost rybám, zelenině, a to nejlépe listové, a dále také čerstvému ovoci.

Vhodné je také doplnit výše uvedenou stravu o Omega 3 mastné kyseliny, které jsou důležité pro procesy našeho těla. Konkrétně se jedná o korigování krevního tlaku, zvyšování imunity, snižování srdečního onemocnění nebo zmenšování menstruačních křečí. [17, 18, 19, 20, 21]

Zdroje: nemoci.vitalion.cz, gyncare.cz, nzip.cz, stefajir.cz, nhs.uk, wikiskripta.eu, mayoclinic.org, my.clevelandclinic.org, hopkinsmedicine.org, labtestsonline.cz, internimedicina.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 »