Končí lhůta pro papírová přiznání za rok 2024. Komu se vyplatí podat přiznání dnes?

1. 4. 2025
Doba čtení: 7 minut

Sdílet

Muž, který ukazuje na hodiny.
Autor: Podnikatel.cz s využitím DALL-E
Ilustrační obrázek
Dnes končí lhůta pro podání daňového přiznání v papírové podobě k dani z příjmů za rok 2024. Připravili jsme souhrn všeho důležitého, a to včetně formulářů.

Už několik let platí, že si poplatníci mohou prodloužit termín pro daňové přiznání elektronickým podáním. Kdo tak nestihne podat přiznání do dneška, může se pokutám vyhnout tím, že do 2. května podá přiznání elektronicky. Pozor ovšem na to, že většina OSVČ musí přiznání podat právě elektronicky. Některým OSVČ se navíc vyplatí podat přiznání už dnes.

Co se dozvíte v článku
  1. Kdo musí přiznání podat?
  2. Jak si lhůtu prodloužit
  3. Máte přeplatek? Přiznání podejte dnes
  4. Jak přiznání podat
  5. Kdo má povinné elektronické přiznání
  6. Stahujte formulář daňového přiznání včetně přehledů
  7. Dokdy daň doplatit
  8. Jak daň zaplatit
  9. Jaké slevy a nezdanitelné částky lze využít
  10. Stahujte přiznání k dani z příjmů fyzických osob – podnikajících
  11. Stahujte přiznání k dani z příjmů fyzických osob – nepodnikajících
  12. Stahujte přiznání k dani z příjmů právnických osob

Kdo musí přiznání podat?

Daňové přiznání podává dle § 38g zákona o daních z příjmů každý, jehož roční příjmy, které jsou předmětem daně z příjmů fyzických osob, přesáhly 50 000 Kč, pokud se nejedná o příjmy od daně osvobozené nebo o příjmy, z nichž je daň vybírána srážkou podle zvláštní sazby daně.

Daňové přiznání rovněž podávají poplatníci, kteří vykazují daňovou ztrátu, a to nezávisle na výši příjmů. Daňové přiznání dále podávají daňoví nerezidenti, kteří uplatňují slevu na dani podle § 35ba odst. 1 písm. b) až e) nebo daňové zvýhodnění anebo nezdanitelnou část základu daně.

Daňové přiznání je povinen podat také poplatník, jehož plátce daně oznámil dlužnou částku na dani nebo neoprávněně vyplacenou částku na daňovém bonusu vzniklou zaviněním poplatníka správci daně a předal doklady potřebné k vybrání vzniklého rozdílu podle § 38i odst. 5 písm. b).

Kdo všechno musí podat daňové přiznání k dani z příjmů za rok 2024? Přečtěte si také:

Kdo všechno musí podat daňové přiznání k dani z příjmů za rok 2024?

Daňové přiznání musí za rok 2024 podat i OSVČ, které se nově přihlásily k paušální dani. Paušální režim platí až pro rok 2025 a zálohy na paušální daň placené v letošním roce jsou zálohami roku 2025, a živnostníci tudíž musí za rok 2024 přiznání k dani z příjmů podat. Podle finanční správy to patří mezi jeden z nejčastějších omylů ohledně daňových přiznání.

Pozor rovněž na to, že přiznání musí podat i některé OSVČ, které byly v paušální režimu v loňském roce.

Že se OSVČ s paušální daní přiznání netýká? Omyl, v některých případech ho podat musí Přečtěte si také:

Že se OSVČ s paušální daní přiznání netýká? Omyl, v některých případech ho podat musí

Jak si lhůtu prodloužit

Lhůta pro podání přiznání v papírové podobě končí 1. dubna. U podání daňového přiznání ale platí liberační lhůta 5 pracovních dnů, o které se lze beztrestně opozdit. Navíc je stanovena minimální hranice pro vznik pokuty při pozdním podání na úrovni 1000 Kč. Pokud tak penále nedosáhne 1000 Kč, poplatník jej platit nemusí. 

Zároveň platí, že ti, kteří podají daňové přiznání elektronicky, mají lhůtu pro podání daňového přiznání prodlouženou o měsíc. Kdo tedy nestihne dnešní termín pro papírové přiznání, může se jakýmkoli sankcím vyhnout, pokud podá do 2. května. Kdo by navíc nestihl ani květnový termín, může se případné pokutě vyhnout využitím daňového poradce a tím si lhůtu prodloužit o další měsíce do 3. července. Už několik let totiž není nutné doručovat na finanční úřad plnou moc daňovému poradci před uplynutím tříměsíční lhůty. Stačí, když je dodána až s přiznáním.

Máte přeplatek? Přiznání podejte dnes

Pro některé OSVČ však může být výhodné podat přiznání nejpozději už dnes. Konkrétně se to týká těch, kterým vyjde přeplatek. Daňové přiznání v elektronické podobě je třeba podat včas, pokud má poplatník zájem o vrácení přeplatku v co nejdřívějším termínu. U daňových přiznání podaných v elektronické podobě po 1. dubnu 2025 se totiž uplatní již prodloužená lhůta do 2. května 2025. Případný přeplatek by proto byl vrácen až do 30 dnů po tomto datu, tedy nejpozději do 2. června 2025, upozornila generální ředitelka finanční správy Simona Hornochová.

Pokud poplatník nemusí podat přiznání elektronicky a podá jej po 1. dubnu 2025 v papírové podobě, 30denní lhůta pro vrácení přeplatku začne běžet až ode dne následujícího po podání přiznání.

Stahujte naše interaktivní formuláře pro daň z příjmů

Podnikám a vedu daňovou evidenci / uplatňuji paušál (Daňové přiznání s přehledy pro OSSZ a ZP s exportem do XML obsahuje: daňové přiznání k dani z příjmů fyzických osob pro ty, kteří uplatňují paušální výdaje nebo vedou daňovou evidenci,  přehledy pro správu sociálního zabezpečení a přehled pro zdravotní pojišťovny)

Podnikám a vedu účetnictví (Daňové přiznání s přehledy pro OSSZ a ZP s exportem XML obsahuje: daňové přiznání k dani z příjmů fyzických osob určené těm, kteří vedou účetnictví, účetní závěrku a přehledy pro správu sociálního zabezpečení)

Nepodnikám a mám více zdrojů příjmu (Daňové přiznání s exportem XML obsahuje pouze daňové přiznání k dani z příjmů fyzických osob bez přehledů pro OSSZ a ZP a je tedy primárně určeno poplatníkům, kteří nepodnikají a nemají příjmy dle § 7 zákona o DzP.)

Nepodnikám a jsem pouze zaměstnanec (Zjednodušené daňové přiznání pro fyzické osoby mající příjmy pouze ze zaměstnání v ČR, pokud potřebujete export do XML pro datovou schránku, vyberte si prosím jinou variantu formuláře)

Jak přiznání podat

Daňové přiznání lze podat elektronicky, v papírové podobě poštou nebo osobně na podatelnách finančních úřadů. Lze také využít u elektronického podání tzv. online finanční úřad na portálu MOJE daně a mít tak v přiznání i předvyplněné údaje. Do online finančního úřadu se poplatník může přihlásit hned několika způsoby. K dispozici je přihlášení přes tzv. e-Identitu. To je možné pomocí elektronického občanského průkazu s čipem, službou MojeID a také prostřednictvím bankovní identity.

Bankovní identitu si lze zřídit v internetovém bankovnictví banky. Dále je možné se přihlásit skrze datovou schránku. Pokud uživatel nevybere ani jednu z možností, může si nechat vygenerovat osobní přístupové údaje přímo od finančního úřadu, které si poplatník na úřadu vyzvedne. Při ověření identity tak už uživatel nebude muset při podávání i placení daní cokoli dalšího prokazovat.

Kdo má povinné elektronické přiznání

Pozor ovšem na to, že většina OSVČ si  nemůže vybrat a musí podat přiznání elektronicky. Konkrétně jde o ty, kdo mají zpřístupněnou datovou schránku na základě zákona (od roku 2023 všechny OSVČ s IČO) nebo mají za povinnost mít účetní závěrku ověřenou auditorem. Kdo přiznání elektronicky nepodá, ačkoli to měl za povinnost, může dostat pokutu 1000 Kč.

OSVČ musí podat přiznání a přehled elektronicky, datovka ale není jediná možnost Přečtěte si také:

OSVČ musí podat přiznání a přehled elektronicky, datovka ale není jediná možnost

Stahujte formulář daňového přiznání včetně přehledů

Daňové přiznání s přehledy pro OSSZ a ZP s exportem XML obsahuje: 

  • daňové přiznání k dani z příjmů fyzických osob určené těm, kteří vedou účetnictví, 
  • účetní závěrku, 
  • přehledy pro správu sociálního zabezpečení

Daňové přiznání s přehledy pro OSSZ a ZP s exportem do XML obsahuje: 

  • daňové přiznání k dani z příjmů fyzických osob pro ty, kteří uplatňují paušální výdaje nebo vedou daňovou evidenci, 
  • přehledy pro správu sociálního zabezpečení 
  • přehled pro zdravotní pojišťovny

Dokdy daň doplatit

Jestliže vám vyjde daňový nedoplatek, musíte jej uhradit ve stejném termínu jako pro podání přiznání. U pozdního doplacení existuje liberační lhůta 3 kalendářních dnů, o které se lze beztrestně opozdit. Stejně jako u sankcí za pozdní podání přiznání se úrok nepředepíše a nevzniká povinnost jej uhradit, nepřesáhne-li v úhrnu u jednoho druhu daně u jednoho správce daně za jedno zdaňovací období nebo za jeden kalendářní rok u jednorázových daní částku 1000 Kč.

Jak daň zaplatit

Také způsobů, jakým doplatit daň z příjmů, mají podnikatelé hned několik:

  • bankovní převod
  • zahraniční platba (pokud je podnikatel dlouhodobě v zahraničí a nemá přístup k českému účtu)
  • platba poštovní poukázkou typu „A“
  • hotově na pokladně finančního úřadu

Kdo se rozhodne daň zaplatit skrze internetové bankovnictví či složenkou, musí kromě čísla účtu správně vyplnit i variabilní symbol. Tím je DIČ, pokud jej podnikatel má, nebo rodné číslo, a to bez jakýchkoli mezer, pomlček nebo lomítek, nebo IČ. Ať už se podnikatel rozhodne daň zaplatit složenkou nebo skrze internetové bankovnictví, potřebuje znát čísla bankovních účtů finančních úřadů:

Bankovní účty pro daně z příjmů
Název finančního úřadu Daň z příjmů právnických osob Daň z příjmů fyzických osob podávajících přiznání Daň z příjmů fyzických osob ze závislé činnosti
FÚ pro hlavní město Prahu 7704–77628031/0710 721–77628031/0710 713–77628031/0710
FÚ pro Středočeský kraj 7704–77628111/0710 721–77628111/0710 713–77628111/0710
FÚ pro Jihočeský kraj 7704–77627231/0710 721–77627231/0710 713–77627231/0710
FÚ pro Plzeňský kraj 7704–77627311/0710 721–77627311/0710 713– 77627311/0710
FÚ pro Karlovarský kraj 7704–77629341/0710 721–77629341/0710 713–77629341/0710
FÚ pro Ústecký kraj 7704–77621411/0710 721–77621411/0710 713–77621411/0710
FÚ pro Liberecký kraj 7704–77628461/0710 721–77628461/0710 713–77628461/0710
FÚ pro Královehradecký kraj 7704–77626511/0710 721–77626511/0710 713–77626511/0710
FÚ pro Pardubický kraj 7704–77622561/0710 721–77622561/0710 713–77622561/0710
FÚ pro Kraj Vysočina 7704–67626681/0710 721–67626681/0710 713–67626681/0710
FÚ pro Jihomoravský kraj 7704–77628621/0710 721–77628621/0710 713–77628621/0710
FÚ pro Olomoucký kraj 7704–47623811/0710 721–47623811/0710 713–47623811/0710
FÚ pro Moravskoslezský kraj 7704–77621761/0710 721–77621761/0710 713–77621761/0710
FÚ pro Zlínský kraj 7704–47620661/0710 721–47620661/0710 713–47620661/0710
Specializovaný finanční úřad 7704–77620021/0710 713–77620021/0710

Jaké slevy a nezdanitelné částky lze využít

Přehled slev na dani a zvýhodnění

V daňovém přiznání za rok 2024 můžete dle § 35ba a § 35c zákona o daních z příjmů uplatnit tyto slevy a zvýhodnění:

  • Základní sleva na poplatníka
  • Sleva na manželku (manžela) žijící s poplatníkem v domácnosti (roční sleva)
  • Sleva z titulu pobírání invalidního důchodu
  • Sleva držitele průkazu ZTP/P
  • Daňové zvýhodnění na vyživované dítě
  • Sleva za zastavenou exekuci
Změny ve slevách na dani za rok 2024 a 2025 Přečtěte si také:

Změny ve slevách na dani za rok 2024 a 2025

Souhrn nezdanitelných částí základu daně

Nezdanitelné části základu daně upravuje § 15 zákona o daních z příjmů. Jedná se o:

  • bezúplatná plnění (dříve označované jako dary),
  • úroky z hypotečního a z úvěru ze stavebního spoření,
  • daňově podporované produkty (například penzijní připojištění nebo dlouhodobý investiční produkt)
Jaké nezdanitelné části základu daně lze za rok 2024 a v roce 2025 využít? Přečtěte si také:

Jaké nezdanitelné části základu daně lze za rok 2024 a v roce 2025 využít?

Stahujte přiznání k dani z příjmů fyzických osob – podnikajících

Pro uplatňující paušál nebo vedoucí daňovou evidenci

Daňové přiznání k dani z příjmů fyzických osob s přehledy pro Českou správu sociálního zabezpečení a zdravotní pojišťovnu 

Pro vedoucí účetnictví

Daňové přiznání k dani z příjmů fyzických osob s přehledy pro Českou správu sociálního zabezpečení a zdravotní pojišťovnu - obsahuje také účetní závěrku

Stahujte přiznání k dani z příjmů fyzických osob – nepodnikajících

Pro více zdrojů příjmů

Daňové přiznání k dani z příjmů fyzických osob bez přehledů 

Tento tiskopis je primárně určen poplatníkům, kteří nepodnikají a nemají příjmy dle § 7 zákona o daních z příjmů.

Školení pro účetní - podzimní novinky

Pro zaměstnance

Zjednodušené daňové přiznání pro fyzické osoby mající příjmy pouze ze zaměstnání v ČR

Stahujte přiznání k dani z příjmů právnických osob

Daňové přiznání k dani z příjmů právnických osob

Autor článku

Daniel Morávek píše o daních, zákonech a důchodech. Vysvětluje, jak legislativa ovlivňuje podnikatele a živnostníky. Profil autora →

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 »