Naslovnica je imela lastno kopijo zgornjega pasu s trdo visino 90 px in
responsive=false. Google je vanjo postavil 320x50 in okrog je ostal siv rob -
tako je izgledalo na telefonu. Zdaj uporablja skupno komponento TopBannerAd,
ki je format=auto z full-width-responsive: kreativa dobi celo sirino, prazna
enota se ne izrise. Isto velja za vse ostale strani, ki TopBannerAd ze
uporabljajo.
Lepljivemu pasu odstranjen overflow-hidden in maxHeight - oglas mora biti cel
viden, vodoravni format itak ne da vec kot 320x100.
Po podatkih AdSense (zadnjih 7 dni) prihodek nesejo folx.tv in-article
(98,93 EUR), Folx News In-Article = slot 4154017639 (82,45 EUR) in Multiplex
(63,59 EUR). Prejsnji commit je pri dveh od teh zmanjsal stevilo mest.
- odlozena zahteva (IntersectionObserver) NI vec privzeta: eager=true.
Odlozeno nalaganje dvigne vidnost, a znizza stevilo prikazov pri enotah
globlje na strani - in prav te nesejo denar. Pot ostaja v kodi za kasneje,
ko bomo ucinek lahko izmerili. Popravek 3-sekundnega odstevanja ostane.
- clanek: enota 4154017639 vrnjena na stran, a pod naslovom in tik pred
besedilom namesto kot pas nad naslovnico - isti prikazi, boljse mesto,
naslov ne pade pod pregib.
- PageSideAds: oba stolpca spet tu. Sirina se prilagodi zaslonu prek
--rail-w: 160x600 od 1536 px, 300x600 od 1700 px. Dodan onAdStatus, da
prazna enota ne pusti luknje.
- naslovnica dobi Multiplex, edina strana ga ni imela.
Skupaj na clanku (telefon): display pred besedilom, in-article za uvodom,
display na sredini (in vec pri dolgih), multiplex, lepljivi pas.
- vse enote se zahtevajo sele ~200 px pred vstopom v vidno polje
(IntersectionObserver); prej so se vse pushale ob nalaganju strani, tudi
tiste globoko spodaj, ki jih uporabnik ni nikoli videl. Odlocitev o praznosti
(3 s) tece sele od zahteve, ne od mounta.
- clanek: zgornji pas odstranjen (potiskal je naslovnico in naslov pod pregib,
placan pa je najslabse). Prvi oglas pride sele v besedilu.
- clanek: stevilo oglasov vezano na dolzino — 2 osnovna + 1 na vsakih 5 blokov
cez 10, strop 5. Mediana (9 blokov) ostane pri 2, dolgi clanki dobijo do 5.
Prvi je fluid in-article, vsi nadaljnji nov InContentDisplayAd (odzivni
display, visja kreativa).
- TopBannerAd na seznamih: odzivni namesto trdih 90 px.
- mobilni lepljivi pas: odzivni vodoravni (do 110 px) namesto trdih 320x50,
z onAdStatus — prazen se ne izrise.
- PageSideAds: en desni 300x600 sticky z onAdStatus namesto dveh 160x600 brez
zaznave (prazna je pustila luknjo); prikaze se od 1700 px navzgor.
- interstitial odstranjen s horoskopa (prekrivalo cez zaslon, zaklenilo scroll);
interstitial-ad.tsx in neuporabljen parallax-ad.tsx izbrisana.
CMP ostaja nedotaknjen po dogovoru.
- Nov dnevni scheduler (server/scheduler.ts): vsak dan ob zagonu in vsakih 6h
preveri/generira horoskope in kozmicne dogodke (prej samo enkrat ob zagonu)
- Kozmicni dogodki so zdaj AI-generirani in dnevni (nova tabela cosmic_events
+ /api/cosmic-events), namesto hardcoded fiksnih datumov iz feb/mar 2026
- Naslovni horoskop widget bere pravi AI horoskop za danes (prej staticni tekst)
- Frontend: staleTime 30min + refetchOnWindowFocus za dnevno osvezevanje
Introduce a `forceShow` prop to the InterstitialAd component, and utilize it in `horoscope.tsx` to make the interstitial ad appear on every visit to the horoscope page, bypassing the previous article visit counter logic.
Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 23852c00-4779-460a-9e0c-d09fee4b6c92
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: 49bdd096-9b74-4b58-b1ec-4755d50170b1
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/f209e72a-0939-48fa-84fc-57854de71967/23852c00-4779-460a-9e0c-d09fee4b6c92/OPD8Ro3
Replit-Helium-Checkpoint-Created: true
Introduces a new `MobileStickyAd` component that displays a 320x50px ad banner at the bottom of the screen on mobile devices only. The ad appears after a 2-second delay and can be dismissed by the user for the session. The footer dynamically adjusts its padding to prevent content overlap with the sticky ad. The `replit.md` file is updated to reflect this new feature.
Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 23852c00-4779-460a-9e0c-d09fee4b6c92
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: db8604a4-d491-44c8-b0ac-b67d779b436a
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/f209e72a-0939-48fa-84fc-57854de71967/23852c00-4779-460a-9e0c-d09fee4b6c92/tdiozLO
Replit-Helium-Checkpoint-Created: true
Modify the push notification banner component to immediately dismiss the banner upon user acceptance, ensuring the Chrome permission prompt can appear without obstruction and providing clearer error handling for subscription failures.
Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 23852c00-4779-460a-9e0c-d09fee4b6c92
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: be1d64b0-1371-4911-84cb-b3bb4611974c
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/f209e72a-0939-48fa-84fc-57854de71967/23852c00-4779-460a-9e0c-d09fee4b6c92/tdiozLO
Replit-Helium-Checkpoint-Created: true
Introduce a new push notification prompt banner that appears on the homepage after a delay, encouraging users to subscribe to notifications. The banner will not appear if the user is already subscribed, has previously dismissed it, or if push notifications are not supported. Refactor existing push notification logic to be more modular and reusable across components.
Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 23852c00-4779-460a-9e0c-d09fee4b6c92
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: cf18a9e4-eed8-448c-9c3c-694f18134403
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/f209e72a-0939-48fa-84fc-57854de71967/23852c00-4779-460a-9e0c-d09fee4b6c92/ICRgny1
Replit-Helium-Checkpoint-Created: true
Update various page components and the footer to use a `max-w-7xl` width for consistent layout across the site. Removes explicit `contentHalfWidth` props from `PageSideAds` components, allowing them to default to the standardized width.
Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 23852c00-4779-460a-9e0c-d09fee4b6c92
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: 2d87eb5e-a5f7-4bb4-8334-5904d9d52843
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/f209e72a-0939-48fa-84fc-57854de71967/23852c00-4779-460a-9e0c-d09fee4b6c92/ee1CXlO
Replit-Helium-Checkpoint-Created: true
Adjust footer styling to ensure sidebar advertisements remain visible by removing the full-width background from the footer element and applying it only to the content area, while maintaining text readability.
Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 23852c00-4779-460a-9e0c-d09fee4b6c92
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: 98495929-00d4-48d6-b73e-5a2680ffcbc0
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/f209e72a-0939-48fa-84fc-57854de71967/23852c00-4779-460a-9e0c-d09fee4b6c92/ee1CXlO
Replit-Helium-Checkpoint-Created: true
Revises the footer component in client/src/components/footer.tsx, removing old category and legal links, restructuring the layout into three columns, and updating the descriptive text and social links.
Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 23852c00-4779-460a-9e0c-d09fee4b6c92
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: 7f4dc175-3c66-4be7-b8f0-6ba895d1f431
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/f209e72a-0939-48fa-84fc-57854de71967/23852c00-4779-460a-9e0c-d09fee4b6c92/ee1CXlO
Replit-Helium-Checkpoint-Created: true
Update the maximum width of the footer container from `max-w-7xl` to `max-w-4xl` to bring the three columns closer together, enhancing content distribution across the entire footer width.
Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 23852c00-4779-460a-9e0c-d09fee4b6c92
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: 85c9ae86-15ba-439d-a7cd-288c8d64062c
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/f209e72a-0939-48fa-84fc-57854de71967/23852c00-4779-460a-9e0c-d09fee4b6c92/ee1CXlO
Replit-Helium-Checkpoint-Created: true