Termín daňového přiznání je tu, na jakou přílohu nezapomenout?

02.05.2025 | , Finance.cz
DANĚ


perex-img Zdroj: Shutterstock

Termín daňového přiznání je tu a pro využití některých slev na dani je potřeba doložit některé přílohy. Jaké slevy se neobejdou bez doložení příloh?

sluchatka

Poslechněte si článek v audio verzi

00:00 / 00:00

Tento článek pro vás načetl robotický hlas. Jestliže v něm najdete chybu ve výslovnosti, dejte nám prosím vědět.

Snížit daň si můžete uplatněním různých slev na dani či položkami snižujícími základ daně. Nicméně poměrně častou chybou je nedodání přílohy pro uplatnění takové výhody.

Jaké přílohy doložit k uplatnění slev na dani?

Sleva na dani na poplatníka se dokazovat nemusí

Sleva na dani na poplatníka činí 30 840 Kč za rok, na tuto slevu mají nárok všichni daňoví poplatníci.

Tuto slevu není nutné nijak prokazovat, ale pozor, zaměstnanci tuto slevu mohou využít pouze u 1 zaměstnavatele v daném měsíci a musí u něho mít podepsané prohlášení k dani, takzvaný růžový formulář.

Sleva na dani na druhého z manželů byla omezena, kdo na ni má nárok a jak ji dokázat?

Sleva na dani manželku/manžela činí 24 840 Kč za rok.

Na tuto slevu vzniká nárok, jestliže hrubé příjmy manžela/manželky nepřesáhly částku 68 000 Kč za rok 2024.

Od roku 2024 je nutné splnit podmínku péče o dítě mladší 3 let věku, jestliže se manžel/ka stará o dítě starší, tak tuto slevu nelze uplatnit.

Při dosažení věku 3 let se sleva uplatňuje poměrově, což vysvětluje Patrik Madle, tiskový mluvčí z Generálního finančního ředitelství: „Poplatník může uplatnit slevu na manžela ve výši jedné dvanáctiny za každý kalendářní měsíc, na jehož počátku byly splněny podmínky pro uplatnění nároku na snížení daně.“

Tip: Kdo má tříleté dítě, už platí. Osekaná sleva na manželku zvedne daň řadě lidí

V daňovém přiznání je dále nutno doložit i to, že manžel/ka neuplatňuje daňové zvýhodnění na děti.

K daňovému přiznání pro uplatnění této slevy je nutné doložit:

  • čestné prohlášení manžela/manželky,
  • kopii dokladu prokazující totožnost manžela/manželky.

Jen upozornění pro nesezdané páry, sleva na dani na manžela/manželku, lze uplatnit pouze u uzavřeného sňatku či registrovaného partnerství.

Sleva na druhého z manželů bez příjmů – držitele ZTP/P

V případě, že manžel/ka je držitelem průkazu ZTP/P, tak se sleva na dani zvyšuje na 49 680 Kč. V tomto případě ještě dokládáte kopii (fotku) průkazu ZTP/P manžela/manželky.

Držitel průkazu ZTP/P má nárok na slevu na dani, stačí doložit průkaz ZTP/P

Jestliže jste držitelem průkazu ZTP/P, tak máte nárok na slevu na dani ve výši 16 140 Kč, což prokážete doložením kopie průkazu ZTP/P.

Invalidní důchod prvního, druhého a třetího stupně

V případě pobírání invalidního důchodu mají invalidní důchodci 1. a 2. stupně nárok na slevu na dani ve výši 2520 Kč, v případě 3. stupně pak na 5040 Kč.

Tuto slevu můžete nárokovat při předložení:

  • rozhodnutí ČSSZ o přiznání invalidního důchodu,
  • každoročně potvrzení od ČSSZ o výplatě invalidního důchodu.

Slevu na dani na studenta a školkovné již za rok 2024 neuplatníte

Za rok 2024 již neuplatníte dvě slevy na dani, slevu na dani na studenta a slevu na dani za umístění dítěte v předškolním zařízení („školkovné“), obě tyto slevy byly zrušeny.

Daňové přiznání na rok 2024

Jaký typ přiznání potřebujete Interaktivní XLS
Uplatňuji paušál stáhnout
Vedu účetnictví stáhnout
Mám více zdrojů příjmu stáhnout
Jsem pouze zaměstnanec stáhnout

Co doložit pro uplatnění daňového zvýhodnění na dítě?

Pro uplatnění daňového zvýhodnění na dítě je nutné doložit rodný list, v případě studia dítěte staršího 18 let i potvrzení o studiu.

daňového zvýhodnění na dítě je nutné doložit i to, že si daňové zvýhodnění nenárokuje druhý z rodičů.

K tomu slouží formulář Potvrzení zaměstnavatele druhého z poplatníků pro uplatnění nároku na daňové zvýhodnění v případě, že je partner zaměstnán. V případě, že je životní partner OSVČ či není ekonomicky aktivní, tak je nutné přiložit čestné prohlášení.

 

Jak uplatnit a doložit odčitatelné položky od základu daně?

Úroky z hypotéky mohou snížit základ daně až o 300 000 Kč

Častou položkou snižující základ daně je uplatnění úroků z hypotéky, jež mohou snížit základ daně až o 300 000 Kč ( nebo jen maximálně 150 000 Kč u bytové potřeby obstarané od 1. ledna 2021).

Pro doložení nároku na tuto odčitatelnou položku je nutné přiložit k daňovému přiznání:

  • potvrzení o poskytnutém úvěru na bytové potřeby a o výši zaplacených úroků z tohoto úvěru,

Pouze při prvním podání přílohy o úrocích z hypotéky je nutné doložit:

  • výpis z katastru nemovitostí dokazující, že nemovitost používáte k bydlení,
  • smlouvu o hypotečním úvěru.

Životní pojištění a spoření na penzi - snížení základu daně až o 48 000 Kč

Úhrady za soukromé životní pojištění, penzijní spoření či dlouhodobý investiční produkt (DIP) mohou snížit základ daně až o 48 000 Kč (v součtu). K uplatnění je třeba přiložit:

  • potvrzení o zaplacených částkách na soukromé životní pojištění, na penzijní připojištění, penzijní pojištění či DIP,
  • smlouvu o uzavření životního pojištění (při prvním podání), penzijního připojištění, penzijního pojištění či DIP.

Darem daně nezarmoutíš

Darování je záslužná činnost, kterou si můžete odečíst od základu daně, minimálně si můžete odečíst 1000 Kč a maximálně 15 % základu daně.

Fyzické osoby pak mohou za roky 2024 až 2026 využít zvýhodněného odpočtu bezúplatného plnění (daru) od základu daně až do výše 30 % základu.

Pro uplatnění bezúplatného plnění (daru) je nutné k daňovému přiznání doložit potvrzení o převzetí daru. Tu většinou zasílají dobročinné společnost automaticky nebo si je vyžádejte. Můžete rovněž doložit darovací smlouvu.

Tip: Buďte štědří! Zvýšené odpočty darů od základu daně platí i pro roky 2025 a 2026

Za rok 2024 vám základ daně již nesníží odborové příspěvky, úhrady za zkoušky ověřující výsledky dalšího vzdělávání

Za rok 2024 již nelze uplatnit odčitatelné položky odborové příspěvky, úhrady za zkoušky ověřující výsledky dalšího vzdělávání. Tyto odčitatelné položky byly zrušeny.

Jaké další přílohy můžete dokládat?

Přílohy rovněž musí dokládat i zaměstnanci, kteří si své daňové přiznání podávají sami, kdy je nutné doložit potvrzení o zdanitelných příjmech od zaměstnavatele. Dalšími přílohami mohou být doklady dokazující příjmy z podnikání, pronájmu či ze zahraničí.

Dále častou přílohou je i potvrzení o pobírání důchodu.

Při vedení účetnictví je nutné jako přílohu uvést účetní závěrku.

Rovněž lze z daní odečíst jako odčitatelné položky náklady na výzkum a vývoj a daňovou ztrátu z let minulých (z posledních pěti) let.

Řešíte si daňové přiznání sami? Použijte inteligentní daňové šablony od business.center.cz, najdete je zde

Zdroj: YouTube/Podnikatel.cz

Autor článku

Michal Bureš

Michal Bureš  

Šéfredaktor Finance.cz


Pomohl vám tento obsah? Dejte mu hodnocení:

Průměrné hodnocení: 5
Hlasováno: 1 krát

Články ze sekce: DANĚ


'; document.getElementById('preroll_iframe').onload = function(){ preroll_setupIframe(); } } function preroll_setupIframe() { prerollDocument = document.getElementById('preroll_iframe').contentWindow.document; let el = prerollDocument.createElement('style'); el.type = 'text/css'; prerollDocument.head.appendChild(el); el.innerText = "#preroll_adContainer>div:nth-of-type(1),#preroll_adContainer>div:nth-of-type(1) > iframe {width: 99% !important;height: 99% !important;max-width: 100%;}#preroll_videoContent,body{width:100vw;height:100vh}body{font-family:'Helvetica Neue',Arial,sans-serif}#preroll_videoContent{overflow:hidden;background:#000}#preroll_adMuteBtn{width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:-5px;right:25px}"; preroll_videoContent = prerollDocument.getElementById('preroll_contentElement'); preroll_videoContent.style.display = 'none'; preroll_videoContent.volume = 1; preroll_videoContent.muted = false; const playPromise = preroll_videoContent.play(); if (playPromise !== undefined) { console.log('PREROLL sound forbidden');preroll_videoContent.volume = 0;preroll_videoContent.muted = true;preroll_setUpIMA(false); //playPromise.then(function () { console.log('PREROLL sound allowed');preroll_setUpIMA(true); }).catch(function () { console.log('PREROLL sound forbidden');preroll_videoContent.volume = 0;preroll_videoContent.muted = true;preroll_setUpIMA(false); }); } } function preroll_setUpIMA(sound) { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. preroll_createAdDisplayContainer(); // Create ads loader. preroll_adsLoader = new google.ima.AdsLoader(preroll_adDisplayContainer); // Listen and respond to ads loaded and error events. preroll_adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, preroll_onAdsManagerLoaded, false); preroll_adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, preroll_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() { preroll_adsLoader.contentComplete(); }; preroll_videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); if (sound && preroll_iinfoVastUrlIndex <= preroll_iinfoVastUrls.length-1) { adsRequest.adTagUrl = preroll_iinfoVastUrls[preroll_iinfoVastUrlIndex]; console.log('Preroll advert: ' + preroll_iinfoVastUrls[preroll_iinfoVastUrlIndex]); preroll_current = 0; preroll_videoContent.muted = false; preroll_videoContent.volume = 1; } else { adsRequest.adTagUrl = preroll_iinfoVastUrlsMuted[preroll_iinfoVastUrlIndexMuted]; console.log('Preroll advert: ' + preroll_iinfoVastUrlsMuted[preroll_iinfoVastUrlIndexMuted]); preroll_current = 1; preroll_videoContent.muted = true; preroll_videoContent.volume = 0; } adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; preroll_adsLoader.requestAds(adsRequest); } function preroll_createAdDisplayContainer() { prerollDocument.getElementById('preroll_videoContent').style.display = 'none'; preroll_adDisplayContainer = new google.ima.AdDisplayContainer( prerollDocument.getElementById('preroll_adContainer'), preroll_videoContent); } function preroll_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. preroll_adsManager = adsManagerLoadedEvent.getAdsManager(preroll_videoContent, adsRenderingSettings); // Add listeners to the required events. preroll_adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, preroll_onAdError); preroll_adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, preroll_onContentPauseRequested); preroll_adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, preroll_onContentResumeRequested); preroll_adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, preroll_onAdEvent); // Listen to any additional events, if necessary. preroll_adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, preroll_onAdEvent); preroll_adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, preroll_onAdEvent); preroll_adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, preroll_onAdEvent); preroll_playAds(); } function preroll_playAds() { // Initialize the container. Must be done through a user action on mobile // devices. preroll_videoContent.load(); preroll_adDisplayContainer.initialize(); try { preroll_adsManager.init(preroll_width_init, preroll_height_init, google.ima.ViewMode.NORMAL); preroll_adsManager.start(); } catch (adError) { } } function preroll_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('Preroll event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: prerollDocument.getElementById('preroll_adContainer').style.width = '100%'; prerollDocument.getElementById('preroll_adContainer').style.maxWidth = '640px'; prerollDocument.getElementById('preroll_adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: prerollDocument.getElementById('preroll_adMuteBtn').style.display = 'block'; preroll_init_container.style.display = 'none'; try { adsManager.pause(); } catch (error) { } break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: preroll_play_yt(); break; case google.ima.AdEvent.Type.COMPLETE: preroll_play_yt(); break; } } function preroll_onAdError(adErrorEvent) { // Handle the error logging. console.log(adErrorEvent.getError()); preroll_last_error = adErrorEvent.getError().getErrorCode(); console.log(preroll_last_error); if (!preroll_loadNext()) { preroll_play_yt(); } } function preroll_onContentPauseRequested() { preroll_videoContent.pause(); } function preroll_onContentResumeRequested() { preroll_videoContent.play(); } function preroll_loadNext() { if (preroll_current === 0) { preroll_iinfoVastUrlIndex++; if (preroll_iinfoVastUrls.length > preroll_iinfoVastUrlIndex) { preroll_init(); } else { return false; } } else { preroll_iinfoVastUrlIndexMuted++; if (preroll_iinfoVastUrlsMuted.length > preroll_iinfoVastUrlIndexMuted) { preroll_init(); } else { return false; } } preroll_adVolume = 1; return true; } function preroll_unmuteAdvert() { preroll_adVolume = !preroll_adVolume; if (preroll_adVolume) { preroll_adsManager.setVolume(1); prerollDocument.getElementById('preroll_adMuteBtn').innerHTML = ''; } else { preroll_adsManager.setVolume(0); prerollDocument.getElementById('preroll_adMuteBtn').innerHTML = ''; } } function tryToInicializePreroll() { preroll_init(); } function preroll_play_yt() { preroll_videoElement.style.display = 'block'; const youTubeUrlQueryString = preroll_videoElement.src.includes('?'); const firstLetterOfAddedUrl = youTubeUrlQueryString ? '&' : '?'; preroll_videoElement.src += firstLetterOfAddedUrl + 'autoplay=1&mute=0'; preroll_init_container.style.display = 'none'; document.querySelectorAll('.preroll-container').forEach(e => e.remove()); finance_init_container.style.display = 'block'; try { adsManager.pause(); } catch (error) { } }

'; document.getElementById('outstream-iframe').onload = function(){ setupIframe(); } } function setupIframe() { outstreamDocument = document.getElementById('outstream-iframe').contentWindow.document; let el = outstreamDocument.createElement('style'); el.type = 'text/css'; 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 (!outstream_direct_played) { console.log('Setup iframe: direct'); setUpIMA(true); } else if (iinfoOutstreamAllowed) { console.log('Setup iframe: allowed article'); const playPromise = videoContent.play(); playPromise.then(function () { console.log('OUTSTREAM sound allowed'); setUpIMA(false); }).catch(function () { renderPassback(); }); } else { console.log('Setup iframe: passback'); renderPassback(); } } /** * 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 = iinfoVastDirect; console.log('Outstream DIRECT CAMPAING advert: ' + iinfoVastDirect); videoContent.muted = true; videoContent.volume = 0; outstream_direct_played = true; } else { adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Outstream advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; } adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } /** * 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(1); 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(); try { adsManager.init(outstream_width_init, outstream_height_init, google.ima.ViewMode.NORMAL); adsManager.start(); } catch (adError) { } } /** * 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(); }, 300); // every 300ms } //unmuteAdvert(); outstreamDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (outstream_last_error == 303) { renderPassback(); } 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 (true) { renderPassback(); } break; } } function renderPassback() { console.log('Outstream Spouštím Passback'); advertContainer.innerHTML = ""; advertContainer.appendChild(passBackDiv); } /** * Handles ad errors. * @param {!google.ima.AdErrorEvent} adErrorEvent */ function onAdError(adErrorEvent) { // Handle the error logging. console.log(adErrorEvent.getError()); outstream_last_error = adErrorEvent.getError().getErrorCode(); console.log(outstream_last_error); if (!loadNext()) { renderPassback(); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrls.length > iinfoVastUrlIndex) { outstream_init(); } else { return false; } adVolume = 1; return true; } function onContentPauseRequested() { videoContent.pause(); } function onContentResumeRequested() { videoContent.play(); } function onActiveView() { console.log('outstream onActiveView()'); var wrapper = document.getElementsByClassName('outstream-container')[0]; if (wrapper) { var containerOffset = wrapper.getBoundingClientRect(); var windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (outstream_paused) { adsManager.resume(); outstream_paused = false; /*window.removeEventListener('scroll', onActiveView);*/ console.log('Outstream: ad resume()'); } return true; } else { if (!outstream_paused) { adsManager.pause(); outstream_paused = true; /*window.removeEventListener('scroll', onActiveView);*/ console.log('Outstream: ad pause()'); } } } return false; } let outstream_initialize_interval = setInterval(tryToInicializeOutstream, 100); function tryToInicializeOutstream() { console.log(cpexPackage.adserver.displayed); var wrapper = document.getElementsByClassName('outstream-container')[0]; if (wrapper) { var containerOffset = wrapper.getBoundingClientRect(); var windowHeight = window.innerHeight; if (containerOffset.top < windowHeight / 1 && containerOffset.bottom > 0.0) { if (cpexPackage.adserver.displayed) { clearInterval(outstream_initialize_interval); outstream_init(); } } } }
OSZAR »