Nevíte si rady, jak snížit cukr v krvi? Pomohou některé potraviny, režimová opatření i doplňky stravy

26. 10. 2022 7:30
přidejte názor
Autor: Depositphotos

Ať už se potýkáte s cukrovkou, která dnes patří mezi velice častá metabolická onemocnění, nebo se této chorobě chcete za každou cenu vyhnout, jistě tušíte, že byste si měli hlídat hladinu krevního cukru. Pokud marně přemýšlíte, čím snížit cukr v krvi, zkuste nejprve změnit své stravovací návyky a dbát na pravidla zdravého životního stylu. Pomoci ovšem mohou i některé potravinové doplňky.

Hladina cukru v krvi

Cukry (sacharidy) jsou základním zdrojem energie pro lidské tělo. Jejich hladinu v krvi, která se odborně označuje jako glykémie, se přitom lidský organismus snaží pomocí regulačních mechanismů udržovat v určitém rozmezí. Pouze tak je možné zajistit dostatečný přísun energie, ale zároveň zabránit poškození, které souvisí s příliš vysokou, nebo naopak nízkou koncentrací cukru v krvi.

Glykémie by se za normální situace měla pohybovat v poměrně úzkém rozmezí – u dospělého člověka nalačno jde konkrétně o 3,9–5,6 mmol/l (někde se pak uvádí 4,0–5,9 mmol/l). Závisí přitom hlavně na způsobu stravování, tedy jak často a co přesně člověk konzumuje (v rámci sacharidů rozlišujeme jednoduché cukry, složené cukry a vlákninu). Dále pak hladinu cukru v krvi regulují hormony, kam patří zejména inzulin, glukagon a kortizol. [1, 2, 34]

Zvýšený krevní cukr

Tento stav se odborně označuje pojmem hyperglykémie. Zatímco v některých případech mívá krátkodobý charakter, u jiných pacientů bývá hladina krevního cukru zvýšená chronicky, což se z dlouhodobého hlediska pojí také s řadou závažných zdravotních komplikací. Může totiž dojít k poškození buněk, tkání i jednotlivých orgánů.

U pacientů například hrozí vyšší riziko prediabetu, kdy je hladina glukózy v krvi zvýšená, ale ještě nedosahuje hodnot cukrovky. Rozvinout se pak může i samotná cukrovka (diabetes mellitus), což je chronické metabolické onemocnění, jehož příčinou je neschopnost organismu produkovat nebo správně využívat inzulin, jenž se výrazně podílí na regulaci krevního cukru.

Kromě toho hyperglykémie ohrožuje zdraví srdce, ledvin, cév i dalších orgánů, poškozuje nervy a komplikuje již probíhající cukrovku. Mezi typické projevy se řadí celková únava, žízeň, časté močení, nevolnost a zvracení, hubnutí, kožní obtíže nebo acetonový dech. V případě cukrovky pak může hyperglykémie způsobit také diabetickou ketoacidózu a různé pozdní komplikace:

Jak snížit hladinu cukru v krvi?

Udržovat si krevní cukr v normě by neměli pouze cukrovkáři, ale všichni lidé, kterým záleží na jejich zdraví. Na vině totiž nemusí být pouze genetické predispozice, ale také nevhodný výběr potravin, nedostatek pohybu, sedavý způsob života nebo třeba nadměrný stres. Pokud tedy přemýšlíte, jak snížit cukr v krvi co nejrychleji, zkuste se zamyslet právě nad těmito faktory.

Jestliže se řadíte mezi diabetiky nebo se potýkáte s prediabetem, samozřejmě byste v první řadě měli konzultovat svou situaci s lékařem a zachovávat předepsanou léčbu. Stejně jako v případě zdravých osob, které si chtějí udržovat normální hladinu cukru v krvi, však hraje nejdůležitější roli vyvážený jídelníček, zdravé stravování a dodržování režimových opatření.

Pravidla zdravého životního stylu

Jedním ze způsobů, jak snížit cukr v krvi bez léků, je samozřejmě dodržování režimových opatření, která souvisí se zdravým životním stylem. Existuje totiž celá řada různých faktorů, které mohou hladinu cukru v krvi výrazně ovlivnit. Proto byste měli dbát na následující rady odborníků:

  • Jezte menší porce jídla asi 5×-6× denně.
  • Dodržujte pitný režim (alespoň 2 litry tekutin denně).
  • Snažte se, aby byl váš jídelníček vyvážený, a sledujte složení potravin.
  • Zvyšte přísun vlákniny, která se podílí na regulaci glykémie.
  • Konzumujte potraviny bohaté na chrom a hořčík.
  • Vyvarujte se příliš velkému příjmu bílkovin a dbejte na správný přísun tuků.
  • Vylučte ze svého jídelníčku potraviny s vyšším obsahem jednoduchých cukrů.
  • Vyhněte se kouření a zvýšené konzumaci alkoholu.
  • Nepřejídejte se a udržujte si zdravou váhu (zkuste shodit přebytečná kila).
  • Dopřávejte svému organismu dostatek spánku (6–8 hodin denně).
  • Alespoň 3× týdně se věnujte fyzické aktivitě (například procházkám).
  • Snažte se vyhýbat stresovým činitelům a nadměrné psychické zátěži.
  • Hlídejte si hladinu krevního cukru pomocí glukometru. [9, 10, 11, 12]

Potraviny snižující cukr v krvi

Nejste si jistí, co snižuje cukr v krvi a jaký způsob stravování zvolit, abyste si udrželi glykémii ve správném rozmezí? Pacientova strava by samozřejmě měla být v první řadě vyvážená, což zajistí, že organismus bude mít dostatek všech potřebných živin. Pokud si ovšem hlídáte hladinu krevního cukru, preferovanou volbou jsou potraviny, které mají nízký glykemický index (GI).

Tato hodnota vyjadřuje, jak rychle se sacharidy obsažené v přijímané potravě změní na glukózu a ta se pak dostane do krevního oběhu. Jinými slovy se tedy jedná o ukazatel, který nám říká, o kolik se zvedne hladina cukru v krvi po určitém jídle. Právě potraviny, jejichž glykemický index je nízký (konkrétně do 55), obsahují málo cukru (a často větší množství vlákniny), pomalu se vstřebávají a způsobují menší vzestup krevního cukru.

Vhodné potraviny:

  • listová zelenina,
  • luštěniny,
  • ořechy a semínka (chia, lněná),
  • mléko a zakysané produkty,
  • ryby a mořské plody,
  • libové maso,
  • borůvky a višně,
  • jablka a jablečný ocet,
  • grepy a pomeranče,
  • česnek a cibule,
  • kysané zelí,
  • avokádo,
  • celozrnné výrobky.

Přestože jsme výše uvedli potraviny, které snižují cukr v krvi a mohou skvěle obohatit jídelníček člověka, jenž se snaží udržovat glykémii v normě, mějte na paměti, že musí být součástí vyváženého jídelníčku. Pokud je tedy budete konzumovat v rámci pokrmů, které celkově nepředstavují vhodnou volbu, jejich vliv na hladinu krevního cukru bohužel bude velice omezený. [13, 14, 15, 16]

Jakým způsobem snižujete cukr v krvi?

Doplňky stravy

Zvýšenou hladinu krevního cukru je možné částečně upravit také pomocí potravinových doplňků. Ty samozřejmě nejsou schopné nahradit klasickou léčbu cukrovky a rozhodně byste je neměli užívat jako náhradu terapie, kterou doporučil lékař, ale mohou pomoci snížit glykémii, přispívají k omezení chuti na sladké a mohou pacientův stav celkově zlepšit. Jsou navíc dostupné v mnoha různých podobách, takže si každý vybere, co mu bude vyhovovat. [17, 18]

Advance Diaben

Nevíte si rady, čím srazit cukr v krvi a vrátit jeho hladinu zase do normálu? Skvělým řešením by mohl být komplexní doplněk stravy Advance Diaben (60 kapslí), jenž obsahuje unikátní kombinaci látek, které přispívají právě k udržování normální glykémie, je vhodný pro diabetiky a díky přírodním složkám se celkově hodí k dlouhodobému užívání.

Přípravek Advance Diaben zahrnuje konkrétně gurmar (Gymnema sylvestre), což je rostlina, jejíž extrakt příznivě ovlivňuje metabolismus glukózy, udržuje hladinu cukru v normě, přispívá ke kontrole tělesné hmotnosti a má vliv také na pacientovu chuť k jídlu. Dále pak obsahuje extrakt ze skořice (Cinnamomum zeylanicum), což efektivně napomáhá regulaci glykémie, a kyselinu alfa-lipoovou, která předchozí dvě suroviny vhodně doplňuje.

Leros Vyrovnaný cukr

Co sníží cukr v krvi, pokud se chcete vyhnout každodennímu užívání tobolek? Vyzkoušet můžete například čajovou směs Leros Vyrovnaný cukr, která je obsažena ve 20 sáčcích o hmotnosti 1 g. Pokud si chcete čaj připravit, stačí jeden z nich zalít vařící vodou (250 ml) a nechat vyluhovat v přikryté nádobě po dobu 10 minut. Mějte ovšem na paměti, že čaj se nesmí vařit a vždy se připravuje čerstvý.

Co se týče složení, přípravek Leros Vyrovnaný cukr představuje účinnou kombinaci různých bylin. Sem patří například borůvka a list gymnemy, které příznivě ovlivňují hladinu krevního cukru, přičemž gymnema zároveň snižuje chuť k jídlu i na sladké. Truskavec obecný pak podporuje trávení a pomáhá kontrolovat tělesnou hmotnost, zatímco kořen lékořice pozitivně ovlivňuje imunitní systém.

Přímo v chuti čajové směsi pak dominuje rooibos, jenž dodává nápoji tmavě oranžovou barvu, ale i lékořice s příjemným anýzovým nádechem. Díky ostatním bylinkám, kam patří například nať šalvěje lékařské s kořenitým aroma nebo nať jestřabiny, která působí dřevitým nádechem, si pak čaj získává jemnou bylinnou vůni.

DIAMizin Gurmar

Další možností, jak rychle snížit cukr v krvi, je produkt Simply You DIAMizin Gurmar, který obsahuje 150 kapslí, jejichž hlavní účinnou složkou je extrakt z gurmaru (Gymnema sylvestre). Jde o tropickou liánu označovanou také jako gymnéma lesní, která roste v Indii a již po staletí se používá v ajurvédské medicíně. Název gurmar pak v překladu znamená zabíječ cukru či sladké chuti.

Výtažky z rostliny Gymnema sylvestre efektivně přispívají k udržování správné hladiny krevního cukru. Normální glykémie pak samozřejmě souvisí také s tím, že člověk dokáže lépe ovládat svou chuť na různé sladkosti a další produkty plné rychlých jednoduchých cukrů. Kromě toho pak doplněk stravy DIAMizin Gurmar pomáhá kontrolovat tělesnou hmotnost, což jistě ocení řada pacientů i pacientek.

Walmark Dialevel

Ať už přemýšlíte, jak rychle snížit cukr v krvi před odběrem, nebo zkrátka chcete udržovat glykémii ve správném rozmezí, pomoci by vám mohl potravinový doplněk Walmark Dialevel 60 tablet. Tento přípravek je určený hlavně diabetikům a osobám s poruchou glukózové tolerance, ale hodit se bude také jedincům s nadváhou, kteří se snaží o redukci tělesné hmotnosti.

Přípravek Walmark Dialevel příznivě ovlivňuje hladinu krevního cukru a brání vzniku neurodegenerativních komplikací při diabetu. Obsahuje například kyselinu alfa-lipoovou, která chrání nervovou tkáň, má silné antioxidační účinky a pomáhá při bolestech, neklidu nebo mravenčení, což může mít na svědomí diabetická neuropatie. Dále pak zahrnuje skořici a chrom, které přispívají k udržování normální hladiny glukózy a správnému metabolismu makroživin.

Diaskor MPX

Jedním ze způsobů, jak rychle srazit cukr v krvi, je také doplněk stravy MedaPreX Diaskor MPX (60 tobolek), který je unikátní svým složením. Obsahuje totiž 11 účinných látek, kam patří především chrom, hořčík, zinek, kyselina alfa-lipoová, ale i řada vitamínů (B1, B2, B3, B6, C, E). Vše je pak doplněno vodním skořicovým extraktem.

Přípravek Diaskor MPX je vhodný hlavně pro osoby s poruchami metabolismu cukrů, tedy pro diabetiky, u nichž pokrývá zvýšenou potřebu vitamínů a minerálů. Přítomná skořice pak snižuje necitlivost buněk na inzulín v těle a pomáhá normalizovat hodnotu krevního cukru. Účinnost daného extraktu se navíc podařilo prokázat i v klinické studii, která potvrdila snížení glykémie až o 29 %.

Zdroje: heureka.cz, lekarnickekapky.cz, rehabilitace.info, cs.medlicker.com, healthline.com, verywellhealth.com, health.clevelandclinic.org, wikiskripta.eu, 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 »