Nejčastější chyby, omyly a mýty o první pomoci

Sdílet

Autor: SXC
Nejste si jistí, jak na první pomoc? Že nevíte správný poměr vdechů a stlačení hrudníku? Nebojte se! I vy byste chtěli být zachráněni. Pořád je lepší dělat něco než nic.

Spousta lidí má z myšlenky na to, že by měli poskytnout první pomoc, doslova hrůzu, protože neví, co a jak vlastně dělat a navíc jde o život, takže v těchto případech člověk mnohdy začíná panikařit.

První pomoc představuje sled relativně jednoduchých opatření, kterými jsme však schopni zachránit lidský život. Je proto více než žádoucí, aby byl člověk vybaven alespoň základními znalostmi o první pomoci. Faktem je, že v této souvislosti kolují různé mýty a polopravdy.

Kdo nic nedělá, nic nezkazí? To neplatí

Myšlenku, že raději neposkytnete první pomoc z obavy, že ji provedete nesprávně a pak vás ještě někdo bude „tahat po soudech“ za ublížení, raději zažeňte.

Obava z „právních problémů“ po poskytnutí pomoci není – při dodržení zásady „rozumné přiměřenosti“ – vůbec na místě. Čím vážnější je stav, tím více si můžeme a vlastně i musíme dovolit. Pokud se zjevně pokoušíme zachránit život, není co ztratit a rozhodně nám to nikdo nemůže (právně ani morálně) vyčítat.

Trestný čin neposkytnutí první pomoci podle paragrafu 150 a 151 trestního zákona (trestní sazba až dva roky) spáchá ten, kdo osobě, která je v nebezpečí smrti nebo jeví vážné známky poruchy zdraví nebo jiného vážného onemocnění, neposkytne první pomoc, ač tak může učinit bez nebezpečí pro sebe nebo jiného. Za trestný čin neposkytnutí pomoci řidičem dopravního prostředku při nehodě, na které měl účast, hrozí trestní sazba až 5 let.

Brát ohled na možné poranění páteře?


Autor: Isifa.cz

První pomoc začněte provádět co nejdříve

Jedním z rozšířených tvrzení je, že se zraněným by se raději nemělo hýbat, protože může mít poraněnou páteř a mohli bychom mu ještě více ublížit. Kdy to má své opodstatnění a jak tedy postupovat?

Poranění páteře je samozřejmě velmi vážný úraz, při kterém může dojít k poranění míchy a následné trvalé ztrátě hybnosti končetin. Ovšem záchrana života má vyšší prioritu. Pokud příčina poranění ukazuje na problém s páteří (pády z výšek, dopravní nehody, nárazy atd.), rozlišujeme, jak je na tom pacient s životními funkcemi.

„Pokud pacient nedýchá, tak pochopitelně nekoukáme na páteř a začneme co nejrychleji oživovat. Jestliže pacient masivně krvácí, je nutné krvácení zastavit. Páteř se stává prioritou jen v momentě, kdy nejsou ohroženy životní funkce,“ uvádí Robert Kameník, ředitel Školy první pomoci.

Zásady první pomoci: Krvácení / Bezvědomí

Příklad: Pokud pacienta najdeme v autě po dopravní nehodě a dýchá, tak po zabezpečení vozu tam pacienta můžeme nechat (řešíme páteř). Pokud ale nedýchá, tak ho co nejrychleji vyndáme a oživujeme (páteř nepáteř).

Pokud je třeba zastavit masivní krvácení, musíme urychleně něco strčit do rány. Vlastní ruku, hadr, ručník, cokoliv a pokud možno proti pevné podložce. Až sekundárně můžeme použít tlakový obvaz, který je nutno vyrobit. „Škrtidlo se dá také použít, ale to bych doporučil spíš u amputací. Pokud pacient krvácí z krční tepny, tak nepoužíváme tlakový obvaz, ale zase něco přímo do rány.“

Zapadlý jazyk se „nevytahuje“

„Zapadlý jazyk“ je laické označení pro ucpání dýchacích cest, když je člověk v bezvědomí. Ve skutečnosti se však o jazyk v ústech vůbec nejedná. Dýchací cesty ucpe kořen jazyka, který se dostane k zadní stěně nosohltanu a vliv má i celkové povolení svalstva v bezvědomí. Jak vlastně člověk pozná, že má postižený „zapadlý jazyk“ a jak mu v tomto případě pomoci?

„Pokud pacient nedýchá nebo dýchá nepřirozeně (chrčí), může být jedním z důvodů zapadlý jazyk. Pacienta dáme na rovnou a pevnou podložku a uděláme mírný záklon hlavy. Pokud pacient dýchá, jazyk ani dutinu ústní neřešíme. Dnes již hlavně nešpendlíme jazyk za ret a podobně,“ podotýká Robert Kameník.

Zásady první pomoci: Resuscitace – oživování

Kašlání při podezření na infarkt je jen mýtus

Možná už jste slyšeli o tom, že při podezření na infarkt může pomoci vynucené vykašlávání. Pak je prý šance potíže úplně zlikvidovat, nebo alespoň neztratit vědomí a dojet do nemocnice. Je na tom něco pravdy, anebo je to holý nesmysl?

„Pokud má pacient náhlé bolesti na hrudi, je nutné jej dát do polosedu, snažit se ho zklidnit a zavolat rychle záchranku. Můžete podat pod jazyk acylpyrin, ale ne jej polknout, opravdu pod jazyk. Nutit kašlat pacienta nedoporučuji,“ radí Robert Kameník.


Autor: Isifa.cz

Horká voda na omrzliny nepatří

MUDr. Ondřej Franěk ze Zdravotnické záchranné služby hlavního města Prahy na www.zachrannasluzba.cz vysvětluje, že případy, kdy kašel oddálil bezvědomí, byly jen výjimečně popsány u pacientů, ležících v klidu na lůžku pod monitory v katetrizační laboratoři. I za těchto optimálních podmínek (okamžité rozpoznání, klid, poloha vleže minimalizující potřebný tlak krve) tento postup mohl pouze překlenout dobu v řádu sekund nebo nejvýše desítek sekund, nutnou pro provedení defibrilace elektrickým výbojem. Naopak v reálném životě případ udržení funkčního oběhu kašlem nebyl nikdy popsán.

První pomoc při hadím uštknutí? Rozhodně ne vysátí rány

Při poskytování první pomoci při uštknutí zmijí zapomeňte na její vysávání či podobné „zaručené“ praktiky! Častý mýtus také je, že ruku či nohu zasaženou hadími jedovými zuby je třeba směrem k srdci podvázat. Zaškrcením jsou však ve skutečnosti končetiny jen poškozovány a šíření infekce to stejně nezabrání.

Jak uvádí Robert Kameník: „Vysát hadí jed z rány je hloupost. Dnes už ránu ani nezaškrcujeme. Dáme pacienta opět do klidu a voláme záchranku.“

Krvácení z nosu se záklonem hlavy neřeší

Kdo z nás jako dítě někdy nezažil krvácení z nosu. A co nám tehdy všichni doporučovali? Záklon hlavy.

Podle současných informací se má však hlava naopak mírně předklonit, aby nedošlo k polykání krve, v důsledku čehož hrozí pozvracení. „Uděláme předklon, chladíme kořen nosu a použijeme guraspon. Jedná se o speciální hmotu, která se v nose roztáhne a po určité době sama vstřebá do těla.“

Co se dělat nemá

Robert Kameník radí:

  • Má se po požití jedu vždy vyvolat zvracení?
    Po požití jedu je dobré vyvolat zvracení co nejrychleji. Výjimku ale děláme u použití kyselin a louhů, kdy zvracení nevyvoláváme. Pokud pacient požil léky, uschováme platíčka a vezmeme vzorek zvratků na toxikologii.
  • Má se při popáleninách mazat postižené místo mastí?
    Při popáleninách musíme chladit, pokud se jedná o zarudnutí či puchýře. Jestliže jsou již příškvary, tak nechladíme, ale pouze sterilně kryjeme. Na chlazení používáme výhradně proud vody. Ne masti apod.
    (Lidový recept doporučuje nanést na spáleniny máslo nebo olej a podle výzkumu britského červeného kříže tuto „léčebnou“ metodu používá každý pátý rodič popáleného dítěte. Jenže takovým postupem jen mnohem spíš docílíte zanesení infekce do rány a tím vzniku těžkých komplikací. Zdroj: http://ona.idnes.cz)
  • Má se při omrzlinách místo ohřívat teplou vodou?
    Omrzliny se týkají holých částí těla. Musíme pacienta dát do tepla a pozvolna zahříváme postižená místa. Nesmí se použít horká voda. Proces musí být opravdu velmi pozvolný. Pokud je pacient při plném vědomí, můžeme podat tekutiny.

Nebojte se zachraňovat!

I vy byste si přáli být zachráněni… Většina lidí neví, jak správně provést resuscitaci, zejména kolik vdechů a stlačení provést. Neznalost nebo ochromení z celé události by ale nemělo vést k tomu, že se raději do resuscitace vůbec nepustíte a vzdáte ji.

„Resuscitace nebo oživování se provádí poměrem 2 vdechy a 30 stlačení hrudníku. Pokud se jedná o cizího člověka a my se štítíme, tak nedýcháme, ale aspoň masírujeme. Pokud nevíme přesně poměry, tak masírujeme do příjezdu záchranky. Pořád lepší něco, než nic. Pochopitelně je velmi žádoucí zavolat dispečink a spojit se s dispečerem, který krom toho, že pošle sanitku, tak vám může poradit co a jak,“ říká Robert Kameník.

Shrnutí rozdílů při resuscitaci

Poměr stlačení : vdechům

Technika stlačování

Zahájení KPR

Dospělí

30:2

2 ruce

30 stlačeními

Kojenci a děti 1 – 8 let

30:2

1 – 2 ruce

5 vdechy

Novorozenci

3:1

2 prsty

5 vdechy

Zdroj: Wikipedia.org

Autor článku

Psaní článků pro internetové magazíny se věnuje již od roku 2010. Na serveru Vitalia.cz se zaměřuje zejména na zdravotní problematiku.

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