Postarejte se, aby vaši zaměstnanci dobře jedli. Vyplatí se vám to

21. 4. 2018

Sdílet

Firemní dny zdraví a programy na podporu vitality zaměstnanců – to je rostoucí trend roku 2018. Chytrý zaměstnavatel ví, že se mu vitální zaměstnanec vyplatí.

U společností západní Evropy je běžné, že pro své zaměstnance vytvářejí podmínky pro vyšší výkonnost, zvyšování vitality, efektivnější dosahování firemních cílů a ochranu jejich zdraví. Inspirují zaměstnance formou různých programů a úprav firemního prostředí, aby lidé mohli lépe dosahovat rovnováhy mezi pohybem, prací a psychikou formou různých programů. To vše má dopad na výkonnost lidí ve firmě i na její celkovou ekonomickou situaci.

Toto vše také prokázaly studie univerzit (např. výzkumy z Brigham Young University). Mezi další závěry z výzkumů patří fakt, že nezdravá strava a špatný životní styl zaměstnanců velmi snižují jejich pracovní produktivitu a taky úspěch v kariérním postupu.

I firmy v ČR již mají dobré zkušenosti

Také společnosti v České republice projevují postupem času větší zájem o inspiraci zaměstnanců k vyšší vitalitě – a vyplácí se jim to. Dny zdraví a programy na podporu vitality pro nejrůznější společnosti zařizuji již šest let a ze zkušeností vyplývá, že i v České republice a na Slovensku se zvyšuje počet ředitelů a manažerů, kteří tyto aktivity ve svých firmách organizují.

Od roku 2016 je velmi patrná vzrůstající komunikace a zájem z řad personálních či obchodních ředitelů. Sami mi potvrzují, že inspirace svých podřízených pomocí různých programů s jejich osobní účastí se jim vyplácí. Z mých referencí to jasně vyplývá. Pro zajímavost, mezi společnosti, pro které jsem připravoval různé programy, patří Makro, Lego, Kooperativa, Total, Renault, Zepter, Adler, Century 21, Metrostav, Rossmann, Krka, Adron, Česká podnikatelská pojišťovna, ČSOB leasing, Hypoteční banka, Jungheinrich, Raben, Šmídl, Česká spořitelna, Sberbank, Dimension data, Veracomp, Sova studio, MěÚ Chrudim, ČEZ, Economia…

Programy na podporu vitality patří mezi důležité motivační faktory

Společnosti dnes mnohdy bojují o udržení si stávajícího zaměstnance nebo řeší problém, jak si „přitáhnout“ mladé pracovníky.

Pravidelné workshopy, kantýna se zdravými jídly a nápoji, teambuildingy se zaměřením na podporu vitality, možnost odpočinku během pracovní doby, cvičicí programy jako součástí pracovní doby apod. – vše patří mezi dnešní motivující faktory pro mnoho zaměstnanců.

I během pracovní doby je třeba starat se o vitalitu

Je jedno, zda je člověk vrcholový manažer, obchodník, dělník, prodavačka, nebo maminka na mateřské. Všichni potřebují být vitální. Obzvlášť v dnešní době, kdy je doslova nezbytné mít energii, zvládat hektické tempo běžných dní. Málokdo si může dovolit nezvládat svou práci nebo být dlouhodobě nemocný. Když člověk nemá energii, je hodně unavený, nebo dokonce nemocný, těžko v životě úspěšně a dlouhodobě zvládá aktivity, které by chtěl či potřeboval zvládat.


Autor: Photo by Chris Spiegl on Unsplash, podle licence: Public domain

Pokud máte málo energie nebo vaše paměť a mozek nefungují tak, jak byste si představovali, je možné využít několik osvědčených rad a tipů. Najdete je dále v článku

Mnohaleté výzkumy jasně potvrzují, že lidé, kteří mají energii, jsou šťastní, energičtí a zdraví, jsou v práci kreativnější, produktivnější, dosahují lepších pracovních výsledků a také mají pozitivnější vliv na lidi ve svém okolí.

Podstatnou část dne trávíme v práci. Lidé běžně pracují osm až deset hodin denně. Velká část populace se během času stráveného v práci tak vyčerpá (fyzicky i mentálně), že to má negativní dopad i na kvalitu jejich soukromého života. Kdo by ale nechtěl trávit čas s partnerem nebo rodinou v plné svěžesti, vitalitě a zdraví.

Několik tipů, jak zvyšovat vitalitu v rámci pracovní doby 

Pokud máte málo energie nebo vaše paměť a mozek nefungují tak, jak byste si představovali, je možné využít několik osvědčených rad a tipů:

Kvašená zelenina

Je důležité, aby kvašená zelenina byla zcela bez pasterizace, sterilizace a konzervantů. Dále klíčené luštěniny, ořechy a panenský, za studena lisovaný olivový olej (s aciditou pod 0,2). Tyto superpotraviny se dají připravit buď jako salát, nebo rozmixovat do formy dipu. To je základem supervýživy (nejen) v rámci pracovní doby.

Superpomazánka pro mozek

Rozmixujte avokádo, kokosový tuk, předem namočené makadamové, para a vlašské ořechy (v poměru 3:1:1), olej ze skandinávského pstruha, předem namočené lněné semínko, nepražený kakaový prášek, přidejte špetku himalájské nebo mořské soli, špetku kurkumy a lžičku prášku z organické guarany. Uchovávejte nejlépe ve skleněné dóze v lednici. Lze připravit i na 2–3 dny dopředu.

Mlsná svačina

Kokosové chipsy, makadamové ořechy (nejlépe předem namočené na dvanáct hodin) a nepražená čokoláda (min. 85 % kakaa). Lze pochopitelně konzumovat samostatně, ale dohromady je to naprostá nutriční lahůdka. Je to úžasná svačina, která vám dodá energii, podpoří mozkovou činnost, schopnost soustředění a v neposlední řadě také imunitu.

Dip (nebo chcete-li pomazánka)

Uvařte a rozmixujte brokolici, cuketu, mrkev a dýni. Přidejte panenský kokosový tuk za studena lisovaný, špetku ajurvédské soli, nativní syrovátkový proteinový prášek a předem namočené lněné semínko. Opět úžasná svačina, lze však využít i jako oběd.

Extrakt z grepových jadérek

Doporučuji kvalitní 60% extrakt. Používá se tak, že se doporučené množství nakape do vody a následně vypije. Je to velký pomocník při podpoře imunity, ale je vhodné jej užít i při počátečních pocitech nachlazení nebo když cítíme, že potřebujeme navýšit energii.

Kvas

Nápoj vzniklý při výrobě kvašené zeleniny je dokonalý pomocník při podpoře vitality organismu.

Galerie: Zdroje probiotických bakterií v potravinách

Zelený pu-erh

Velmi vhodný je čaj zelený pu-erh (pouze sypaný) spolu s kurkumou a zázvorem (dají se pořídit jako sušený prášek v organické kvalitě). Nápoj o objemu 0,2–0,4 l má velmi povzbuzující efekt (lze pít např. na povzbuzení místo kávy), a navíc podpoří imunitu a vitalitu.

Hovězí vývar

Silný kostní hovězí vývar (nejlépe od zvířat z bio chovu), lze ho skladovat v lednici a po zahřátí vypít – stačí již 0,1 l a zažijete příval energie.

Ochucená voda

Skvělý nápoj pro chladná období či počasí je teplejší voda se špetkou zázvoru, kurkumy, perníkového koření. Všechna tato koření totiž mají prohřívací efekt na organismus.

Zelená káva

Zelená káva ochucená kořením kardamom (nejlépe v organické kvalitě).

Čaj pro zklidnění

Hodí se například po prožitém stresu apod. Je složený z těchto bylinek: meduňka, fenykl, šípek, anýz, lékořice, kdoule, koriandr, galgán a pestrovka kulovitá.

Během jídla nepijte a „žvýkejte“

Vhodnější je napít se cca 15–20 minut před jídlem a potom až minimálně 30 minut po jídle než popíjet během konzumace. Jídlo dostatečně žvýkejte (nejlépe až do tekuté podoby).

TIP: Opravdu bychom měli sousto přežvykovat 20×?

Střídejte sezení a stání

Střídejte sezení a stání tak, abyste dvacet minut seděli a deset minut stáli. A takto to opakujte ideálně v průběhu celého dne. Pokud máte možnost, udělejte si také několik dřepů nebo rotačních pohybů každých dvacet minut. Dají se pořídit i různé výškově nastavitelné stoly apod. Tento jednoduchý návyk má velmi pozitivní vliv na střevní mikrobiom, hormonální nastavení těla, metabolismus tuků, mozkovou činnost, paměť, eliminaci negativní nálady a tím tedy pozitivní vliv na psychiku, imunitu a mnoho dalšího.

Představte si něco hezkého

Mentální techniky nejen pro pracovní dobu – „technika vizualizace a prožitku“. Základem je zastavit se a věnovat alespoň několik okamžiků sám sobě. Na několik okamžiků (alespoň 1–5 minut) se svou myslí zaměřte na něco, co vám dělá radost, uvolní vás to apod. (Např. si představte, že jste v lese, je tam klid, pouze šum lesa, slunce proniká skrze stromy – všude na vás působí harmonie a klid). Pokud děláte vizualizaci správně, pak plně zažíváte pocity, emoce a celkové fyzické i psychické uvolnění – jako by to bylo reálné. Tato technika vám pomůže uvolnit se kdykoli během dne a nastolit harmonii mysli, což je velmi žádoucí pro schopnost člověka čelit stresu, kterému je vystaven, a to nejen v práci.

Závěrem lze říci, že mnoho zaměstnavatelů si již uvědomuje, že jejich zaměstnanci jsou obrovské aktivum. Proto se jim snaží vytvářet vhodné podmínky pro práci, pořádají různé workshopy, dny zdraví, dlouhodobé personalizované programy, vytvářejí zdravé kantýny a bufety, realizují relaxační a pohybová centra přímo v prostředí pracoviště apod.

Autor článku

Ing. Martin Škába, výživový specialista, zabývá se personalizovanou výživou u dospělých, sportovců, dětí i seniorů. Specializuje se na firemní workshopy a Dny zdraví. Propojuje staré stravovací zvyklosti s nejmodernějšími výzkumy v oblasti výživy.

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