diff --git a/client/src/components/adsense.tsx b/client/src/components/adsense.tsx index 5283cb5..ab46498 100644 --- a/client/src/components/adsense.tsx +++ b/client/src/components/adsense.tsx @@ -23,7 +23,11 @@ export default function AdSense({ style, layout, layoutKey, - eager = false, + // Privzeto zahtevamo takoj. Odlozena zahteva dvigne vidnost, a znizza stevilo + // prikazov pri enotah globlje na strani - in prav te (in-article, multiplex) + // nosijo prihodek. Lazy pot ostaja na voljo prek eager={false}, a je nikjer + // ne uporabljamo, dokler ucinka ne moremo izmeriti v AdSense. + eager = true, onAdStatus, }: AdSenseProps) { const adRef = useRef(null); @@ -230,36 +234,45 @@ export function MultiplexAd() { ); } -// En sam desni stolpec 300x600 namesto dveh 160x600. -// 160x600 je stara velikost z malo povprasevanja, dve enoti sta si konkurirali, -// prazna pa je brez onAdStatus pustila luknjo. Prikaze se sele, ko je dovolj -// prostora desno od vsebine (min-[1700px]). -export function PageSideAds({ contentHalfWidth = 640 }: { contentHalfWidth?: number }) { - const gap = 24; - const offset = contentHalfWidth + gap; +// Oba stolpca ostaneta (nic se ne odvzame), a se prilagodita sirini zaslona: +// 160x600 od 1536 px, 300x600 od 1700 px naprej, kjer je prostora dovolj. +// Sirino dolocz CSS, AdSense jo prebere ob zahtevi. Dodan onAdStatus, da prazna +// enota ne pusti luknje - prej je ni imela. +function SideRail({ side, offset }: { side: "left" | "right"; offset: number }) { const [filled, setFilled] = useState(null); if (filled === false) return null; return ( -
-
-
- -
+
+
+
); } +export function PageSideAds({ contentHalfWidth = 640 }: { contentHalfWidth?: number }) { + const gap = 10; + const offset = contentHalfWidth + gap; + return ( +
+ + +
+ ); +} + export function SidebarAd() { const [visible, setVisible] = useState(false); diff --git a/client/src/index.css b/client/src/index.css index 2361fae..7dacfed 100644 --- a/client/src/index.css +++ b/client/src/index.css @@ -312,3 +312,10 @@ div[class^="fc-"] { .adsbygoogle { contain: layout style; } + +/* Sirina stranskih stolpcev: 160x600 od 1536 px, 300x600 od 1700 px naprej. + Vrednost bere PageSideAds za izracun odmika od sredine. */ +.page-side-rails { --rail-w: 160px; } +@media (min-width: 1700px) { + .page-side-rails { --rail-w: 300px; } +} diff --git a/client/src/pages/article.tsx b/client/src/pages/article.tsx index 9ead4b8..c65e2c8 100644 --- a/client/src/pages/article.tsx +++ b/client/src/pages/article.tsx @@ -358,6 +358,11 @@ export default function ArticlePage() {
+ {/* Enota "Folx News - In-Article" (4154017639) je bila prej vrhnji pas nad + naslovnico. Ostane na clanku, a pod naslovom in tik pred besedilom: + isti prikazi, boljse mesto, naslov ne pade pod pregib. */} + + {(() => { const sanitized = sanitizeContent(article.content); const blocks = sanitized.split(/(?=<(?:p|h[2-4]|div)[\s>])/i).filter(Boolean); diff --git a/client/src/pages/home.tsx b/client/src/pages/home.tsx index ccfe991..d58bf7d 100644 --- a/client/src/pages/home.tsx +++ b/client/src/pages/home.tsx @@ -8,7 +8,7 @@ import { Eye, Play, Images } from "lucide-react"; import { Skeleton } from "@/components/ui/skeleton"; import Header from "@/components/header"; import Footer from "@/components/footer"; -import AdSense, { ArticleCardAd, SidebarAd, PageSideAds } from "@/components/adsense"; +import AdSense, { ArticleCardAd, SidebarAd, PageSideAds, MultiplexAd } from "@/components/adsense"; import { PhotoGalleryWidget } from "@/components/photo-gallery"; import { HoroscopeWidget } from "@/components/horoscope-widget"; import { RecipeWidget } from "@/components/recipe-widget"; @@ -970,6 +970,13 @@ export default function Home() { + {/* Multiplex je zadnjih sedem dni najhitreje rastoca enota (+500 %), + naslovnica ga edina ni imela. */} +
+
Anzeige
+ +
+