Zákon o daních z příjmů | Zákon č. 586/1992 Sb. - ČÁST SEDMÁ - PŘECHODNÁ A ZÁVĚREČNÁ USTANOVENÍ

Předpis č. 586/1992 Sb.

Znění od 4. 2. 2021

586/1992 Sb. Zákon České národní rady o daních z příjmů

ČÁST SEDMÁ

PŘECHODNÁ A ZÁVĚREČNÁ USTANOVENÍ

§ 40

(1) Pro odvodové a daňové povinnosti za rok 1992 a předchozí léta a při zdanění mezd zúčtovaných do prosince 1992 včetně se použijí dosavadní předpisy.

(2) Při zdanění příjmů daní z příjmů fyzických osob se od základu daně odečte též poměrná část ztráty z podnikatelské a jiné výdělečné činnosti podle § 28 odst. 5 zákona č. 389/1990 Sb., o dani z příjmů obyvatelstva.

(3) Osvobození příjmů z provozu malých vodních elektráren, větrných elektráren, solárních a geotermálních zdrojů energie a zařízení na výrobu bioplynu od daně z příjmů obyvatelstva, přiznaná podle právních úprav platných před nabytím účinnosti tohoto zákona, zůstávají v platnosti až do uplynutí doby, po kterou se na tyto příjmy osvobození vztahuje; dojde-li při provozu malých vodních elektráren, u nichž jsou příjmy osvobozeny, k překročení hranice 200 000 kWh vyrobené energie ročně, jsou předmětem daně pouze příjmy z energie vyrobené nad tento limit. Pokud byly na základě zákona č. 145/1961 Sb., o dani z příjmu obyvatelstva, a podle zákona č. 389/1990 Sb., o dani z příjmů obyvatelstva, osvobozeny příjmy z provozu těchto zařízení, nemohou již být tyto příjmy znovu osvobozeny podle § 4 odst. 1 písm. e).

(4) Ustanovení § 36 odst. 2 písm. a) bod 8 a písm. c) se nepoužije na poměrnou část úroků a jiných výnosů z vkladů na vkladních knížkách a vkladních listech a z vkladů jim naroveň postavených včetně úroků z vkladových účtů, které připadají na tyto vklady do 31. prosince 1992. Nepoužije se též na poměrnou část základu daně vztahujícího se k příjmům podle § 8 odst. 1 písm. f) zjištěnou podle poměru doby od uzavření pojistné smlouvy před nabytím účinnosti tohoto zákona do 31. prosince 1992 k celkové době od uzavření pojistné smlouvy do okamžiku, kdy se pojistné plnění začne poskytovat poprvé.

(5) Zákon č. 389/1990 Sb., o dani z příjmů obyvatelstva, se použije i po nabytí účinnosti tohoto zákona pro odklad placení daně uplatněný podle § 28 odst. 7 zákona č. 389/1990 Sb. a pro odpisování základních prostředků, které před nabytím účinnosti tohoto zákona již poplatník odpisoval podle § 28 odst. 4 zákona č. 389/1990 Sb. Po uplynutí dvou let od konce roku, v němž se toto odpisování uplatnilo poprvé, se postupuje obdobně podle odstavce 7 s výjimkou základních prostředků, jejichž zůstatková cena je nižší než 10000 Kč a zahrne se přímo do výdajů (nákladů). Dojde-li u uvedených základních prostředků (hmotného majetku) k technickému zhodnocení, zvyšuje se o něj cena, ze které byly odpisy prováděny (vstupní cena). V případě, že dojde v průběhu roku k vyřazení uvedeného odpisovaného základního prostředku (hmotného majetku), lze jako výdaj (náklad) uplatnit odpisy v poloviční výši.

(6) Osvobození, úlevy a výjimky přiznané podle § 22 odst. 3 zákona č. 76/1952 Sb., o dani ze mzdy, ve znění pozdějších předpisů, § 16 odst. 2 zákona č. 36/1965 Sb., o dani z příjmů z literární a umělecké činnosti, ve znění pozdějších předpisů, a § 27 zákona č. 389/1990 Sb., o dani z příjmů obyvatelstva, pozbývají platnosti dnem účinnosti tohoto zákona.

(7) Pro zdaňovací období roku 1993 se při přechodu na odpisování hmotného majetku a nehmotného majetku podle tohoto zákona postupuje takto:

a) hmotný majetek se zařadí do odpisových skupin podle přílohy k tomuto zákonu,

b) u rovnoměrného odpisování se vstupní cenou (§ 29) rozumí cena, ze které byly prováděny odpisy před 1. lednem 1993 podle zvláštních předpisů,

c) u hmotného majetku již odpisovaného k 31. prosinci 1992 se pro rok 1993 postupuje při výpočtu odpisů podle údajů sloupce "v dalších letech odpisování" tabulky uvedené v § 31 odst. 1,

d) úplatně pořízený nehmotný majetek odpisovaný jako nehmotná aktiva k 31. prosinci 1992 může poplatník doodepsat, a to rovnoměrně, nejdéle však do pěti let od zahájení odpisování.

(8) U smluv o finančním pronájmu s následnou koupí najaté věci, které byly sjednány před 1. lednem 1993, se při odpisování použije vyhláška č. 586/1990 Sb., o odpisování základních prostředků, až do skončení platnosti uvedených nájemních smluv. Obdobně se postupuje i u odpisování investičních prací zaplacených nájemcem v najatém stavebním objektu.

(9) Pro odpisování rozdílů mezi vyvolávací cenou a cenou dosaženou vydražením se použije až do ukončení jeho odpisování sdělení federálního ministerstva financí38) i po nabytí účinnosti tohoto zákona.

(10) U základních prostředků odpisovaných před nabytím účinnosti tohoto zákona, u nichž pořizovací cena činila 10000 Kč a méně, může se zůstatková cena zahrnout plně do nákladů (výdajů) v roce 1993, nebo se může pokračovat v odpisování obdobně jako u hmotného majetku (odst. 7).

(11) U smluv o finančním pronájmu s následnou koupí najaté věci, které byly sjednány před 1. lednem 1993, se pro posouzení zahrnování nájemného do nákladů (výdajů) nepoužije ustanovení § 24 odst. 4.

(12) Důlní díla provozovaná před 1. lednem 1993 lze odpisovat jako celý soubor jednotnou roční sazbou ve výši 4 % ze vstupní ceny souboru.

(13) Ustanovení § 25 písm. w) se nepoužije pro zdaňovací období roku 1993.

(14) Pro zdaňovací období 1993 příjmy plynoucí poplatníkovi neúčtujícímu v soustavě podvojného účetnictví nejdéle do 15 dnů po skončení roku 1992, které hospodářsky souvisí s předchozím zdaňovacím obdobím, se považují za příjmy zdaňovacího období 1993. Při posuzování výdajů se postupuje obdobně.

(15) Za částky, které již byly u téhož poplatníka zdaněny podle tohoto zákona [§ 23 odst. 4 písm. d)], se pro zdaňovací období roku 1993 považují i částky zdaňované podle předpisů platných do konce roku 1992.

(16) Pro výnosy z vkladů na vkladních listech a z vkladů jim na roveň postavených, uskutečněných před nabytím účinnosti tohoto zákona, se použijí dosavadní předpisy.

(17) Podnikatelská odměna podle § 7 odst. 2 a 3 zákona č. 389/1990 Sb., o dani z příjmu obyvatelstva, ve znění zákona č. 578/1991 Sb., zaúčtovaná jako náklad v roce 1992 a vyplacená v roce 1993 je příjmem podle § 10.

(18) Náhrada za ztrátu na výdělku náležející podle zákoníku práce za období před 1. lednem 1993, která je vyplacena po tomto datu, je osvobozena od této daně.

(19) Ustanovení § 25 písm. k) se nepoužije pro podnikové bytové hospodářství do doby zrušení regulace cen nájemného.

(20) U rozpočtových a příspěvkových organizací a obcí nejsou ve zdaňovacím období roku 1993 předmětem daně rovněž příjmy z činností, vymezených ve statutu nebo zřizovací listině jako hlavní činnost i v případě, že nesplňují kritéria § 18 odst. 3, pokud je poplatník nevykazuje jako hospodářskou činnost a jsou prokazatelně zohledněny za celé zdaňovací období ve finančním vztahu k rozpočtu zřizovatele nebo v rozpočtu obce.

(22) Ustanovení § 35 odst. 3 se nepoužije pro zdaňovací období roku 1994.

(23) Částky zúčtované do výnosů,20) které souvisejí s rozpouštěním rezerv vytvořených na vrub nákladů před nabytím účinnosti tohoto zákona, které nejsou podle § 24 odst. 1 písm. i) výdajem (nákladem) na dosažení, zajištění a udržení příjmů, se zahrnují do základu daně.

(24) Výjimka ve vztahu k pojišťovnám uvedená v § 36 odst. 2 písm. a) bodu 8 se nepoužije za zdaňovací období roku 1994.

§ 41

Zrušují se:

1. zákon č. 76/1952 Sb., o dani ze mzdy, ve znění vládního nařízení č. 43/1953 Sb., vládního nařízení č. 112/1953 Sb., zákona č. 71/1957 Sb., zákona č. 101/1964 Sb., zákona č. 90/1968 Sb. a zákona č. 578/1991 Sb.,

2. § 8 zákona č. 88/1952 Sb., o materiálním zabezpečení příslušníků ozbrojených sil,

3. zákon č. 36/1965 Sb., o dani z příjmů z literární a umělecké činnosti, ve znění zákona č. 160/1968 Sb. a zákona č. 578/1991 Sb.,

4. § 51 zákona č. 100/1970 Sb., o služebním poměru příslušníků Sboru národní bezpečnosti,

5. zákon č. 172/1988 Sb., o zemědělské dani, ve znění zákona č. 157/1989 Sb., zákona č. 574/1990 Sb. a zákona č. 578/1991 Sb.,

6. zákon č. 156/1989 Sb., o odvodech do státního rozpočtu, ve znění zákona č. 574/1990 Sb. a zákona č. 578/1991 Sb.,

7. zákon č. 157/1989 Sb., o důchodové dani, ve znění zákona č. 108/1990 Sb., zákona č. 574/1990 Sb. a zákona č. 578/1991 Sb.,

8. zákon č. 389/1990 Sb., o dani z příjmů obyvatelstva, ve znění zákona č. 578/1991 Sb.,

9. nařízení vlády České socialistické republiky č. 207/1989 Sb., o provádění odvodu ze zisku na základě finančního plánu,

10. nařízení vlády České republiky č. 554/1991 Sb., o osvobození některých příjmů od daně z příjmů obyvatelstva a daňových úlevách pro začínající samostatně hospodařící rolníky,

11. vyhláška federálního ministerstva financí, ministerstva financí České socialistické republiky a ministerstva financí Slovenské socialistické republiky č. 161/1976 Sb., kterou se provádí zákon o dani ze mzdy, ve znění vyhlášky č. 14/1982 Sb., vyhlášky č. 86/1984 Sb., vyhlášky č. 311/1990 Sb., vyhlášky č. 72/1991 Sb., zákona č. 578/1991 Sb. a vyhlášky č. 49/1992 Sb.,

12. vyhláška ministerstva financí č. 184/1968 Sb., k provedení zákona o dani z příjmů z literární a umělecké činnosti, ve znění vyhlášky č. 151/1980 Sb., vyhlášky č. 14/1982 Sb., vyhlášky č. 86/1984 Sb. a vyhlášky č. 7/1991 Sb.,

13. vyhláška federálního ministerstva financí č. 215/1988 Sb., kterou se provádí zákon o zemědělské dani, ve znění vyhlášky č. 559/1990 Sb.,

14. vyhláška federálního ministerstva financí č. 192/1989 Sb., kterou se provádí zákon o odvodech do státního rozpočtu,

15. vyhláška federálního ministerstva financí č. 193/1989 Sb., kterou se provádí zákon o důchodové dani, ve znění vyhlášky č. 214/1990 Sb.,

16. vyhláška federálního ministerstva financí č. 211/1989 Sb., o financování některých zařízení společenské spotřeby a některých činností,

17. vyhláška federálního ministerstva financí č. 586/1990 Sb., o odpisování základních prostředků, ve znění vyhlášky č. 345/1991 Sb.,

18. výnos ministerstva financí České socialistické republiky č. j. 153/39 337/71 o předkládání průkazů pro slevu na vyživované osoby u daně z příjmů z literární a umělecké činnosti a promíjení zmeškaných lhůt, registrovaný v částce 1/1972 Sb.,

19. výnos ministerstva financí České socialistické republiky č. j. 153/20 148/1972, kterým se vydává předpis "3 % daň z příjmů z literární a umělecké činnosti - postup při předkládání potvrzení", registrovaný v částce 26/1972 Sb.,

20. výnos ministerstva financí České socialistické republiky č. j. 153/15 101/1974 o dani z příjmů z literární a umělecké činnosti u ročních příjmů pod 25 tis. Kčs, registrovaný v částce 14/1974 Sb.,

21. výnos ministerstva financí České socialistické republiky č. j. 153/25 508/1974 o postupu při předkládání potvrzení na 3 % daň z příjmů z literární a umělecké činnosti, registrovaný v částce 3/1975 Sb.,

22. výnos federálního ministerstva financí č. j. VI/1-7 718/1976 o výjimečném uznávání osob, u nichž došlo k zvýšení důchodů podle zákona č. 121/1975 Sb., o sociálním zabezpečení, za vyživované osoby pro účely daně ze mzdy, registrovaný v částce 10/1976 Sb.,

23. výnos federálního ministerstva financí č. j. VI/1-2 017/77 o zdaňování mezd vyplácených subjekty se sídlem v cizině za práci vykonávanou v ČSSR osobám, které se zde zdržují pouze dočasně, registrovaný v částce 9/1977 Sb.,

24. výnos federálního ministerstva financí č. j. VI/1-27 067/77 o posuzování hospodářského zabezpečení poskytovaného studujícím při cyklickém studiu na středních školách pro pracující u daně ze mzdy, registrovaný v částce 1/1978 Sb.,

25. výnos federálního ministerstva financí č. j. VI/1-8 762/78 "Odměny poskytované při udělení cen za vědeckou, technickou, uměleckou, publicistickou a jinou činnost; daň ze mzdy", registrovaný v částce 15/1978 Sb.,

26. výnos federálního ministerstva financí č. j. VI/1-26 711/1978 o zdaňování náborových příspěvků poskytovaných pracovníkům v souvislosti s prováděním racionalizačních a organizačních opatření, registrovaný v částce 5/1979 Sb.,

27. výnos federálního ministerstva financí č. j. VI/1-4 537/79 - "Daňové posuzování hodnoty stravování a ubytování poskytovaného pracovníkům pionýrských táborů", registrovaný v částce 11/1979 Sb.,

28. výnos federálního ministerstva financí č. j. VI/1-421/1981 o zdaňování odstupného vypláceného horníkům, registrovaný v částce 10/1981 Sb.,

29. výnos federálního ministerstva financí č. j. VI/1-584/82 o zvýšení hranice vlastního příjmu pro uznávání osob za vyživované podle výnosu o výjimečném uznávání osob, u nichž došlo ke zvýšení důchodu podle zákona č. 121/1975 Sb., o sociálním zabezpečení, za vyživované pro účely daně ze mzdy, registrovaný v částce 8/1982 Sb.,

30. výnos federálního ministerstva financí č. j. VI/1-12 836/82 o poskytování slev daně ze mzdy na zletilé děti, které se staly plně invalidní před dovršením věku rozhodného pro skončení povinné školní docházky, registrovaný v částce 3/1983 Sb.,

31. výnos federálního ministerstva financí č. j. VI/1-13 318/82 o zdaňování odměn za fotografické práce prováděné na základě dohod o pracích konaných mimo pracovní poměr, registrovaný v částce 3/1983 Sb.,

32. výnos federálního ministerstva financí č. j. V/1-3 776/83 o zdaňování odstupného poskytovaného horníkům, registrovaný v částce 14/1983 Sb.,

33. výnos federálního ministerstva financí č. j. V/1-21 317/84 o výjimečném uznávání vdov po účastních odboje a rodičů účastníka odboje, u nichž došlo ke zvýšení důchodu podle zákona č. 108/1984 Sb., o zvýšení některých nízkých důchodů a o dalších změnách v sociálním zabezpečení za vyživované osoby pro účely daně ze mzdy, registrovaný v částce 3/1985 Sb.,

34. výnos federálního ministerstva financí č. j. V/1-21 171/84 o daňovém posuzování zahraničních občanů zaměstnaných v československých organizacích na základě mezivládních dohod, registrovaný v částce 4/1985 Sb.,

35. výnos federálního ministerstva financí č. j. V/1-1 895/85 o daňovém posuzování příspěvků na úhradu za užívání družstevních bytů poskytovaných pracovníkům zemědělských organizací, registrovaný v částce 8/1985 Sb.,

36. výnos federálního ministerstva financí č. j. V/1-13 669/85 o zdaňování odměn za odběr a sběr biologického materiálu z lidského organismu na výrobu sér, očkovacích látek a léčiv a za odběr orgánů pro transplantaci, registrovaný v částce 26/1985 Sb.,

37. ustanovení § 7 odst. 8 výnosu federálního ministerstva financí č. j. III/3-10 780/86 a výnosu ministerstva financí ČSR č. j. 122/11 735/86 o poskytování příspěvků na úhradu za užívání družstevních bytů ve vymezeném území při západní hranici Československé socialistické republiky, registrovaného v částce 16/1986 Sb.,

38. výnos federálního ministerstva financí č. j. V/1-7 393/87 ze dne 15. 5. 1987 o prominutí důsledků opožděného předložení průkazu o počtu vyživovaných osob pro účely daně ze mzdy, registrovaný v částce 16/1987 Sb.,

39. výnos federálního ministerstva financí č. j. V/1-5 614/88 ze dne 29. dubna 1988 o daňovém posuzování zahraničních občanů v čs. organizacích, registrovaný v částce 12/1988 Sb.,

40. výnos federálního ministerstva financí č. j. II/4-19 752/88 ze dne 8. 12. 1988, kterým se osvobozují od daně ze mzdy věcné odměny poskytované pracovníkům v oblasti civilní obrany a branné výchovy, registrovaný v částce 47/1988 Sb.,

41. výnos federálního ministerstva financí č. j. II/4-22 067/89 ze dne 29. 12. 1989 o daňovém posuzování cestovních náhrad znalců za znalecké posudky o ceně staveb, pozemků, trvalých porostů a úhradách za zřízení práva osobního užívání pozemků, registrovaný v částce 40/1989 Sb.,

42. výnos federálního ministerstva financí č. j. II/1-18 039/1989, ministerstva financí, cena mezd ČSR č. j. 152/16 309/1989 a ministerstva financí, cen a mezd SSR č. j. 71/1 644/1989 o vymezení oprávnění finančních správ a národních výborů k povolování úlev na zemědělské dani a penále, registrovaný v částce 36/1989 Sb.,

43. výnos federálního ministerstva financí č. j. II/1-18 795/89, ministerstva financí, cen a mezd ČSR č. j. 152/23 286/89 a ministerstva financí, cen a mezd SSR č. j. 72/2 220/89 o vymezení oprávnění finančních správ a národních výborů k povolování úlev na odvodu ze zisku, důchodové dani a penále, registrovaný v částce 40/1989 Sb.

§ 42

Účinnost

Tento zákon nabývá účinnosti dnem 1. ledna 1993.

Skrýt změny zákona Legenda text přidán text vypuštěn
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 »