diff --git a/client/src/components/adsense.tsx b/client/src/components/adsense.tsx index ddfa3c1..e184b08 100644 --- a/client/src/components/adsense.tsx +++ b/client/src/components/adsense.tsx @@ -150,6 +150,28 @@ export default function AdSense({ let adSeedCounter = 1; +// Vodoravni pas med vrsticami mreze. Oglas v celici je vrstico raztegnil na +// svojo visino (546 px proti 399 px kartice) in pod izvlecki je ostalo prazno. +// Pas cez vso sirino na visino kartic ne vpliva in ima boljso zapolnjenost. +export function GridBannerAd() { + const [filled, setFilled] = useState(null); + if (filled === false) return null; + return ( +
+
+ Anzeige +
+ +
+ ); +} + export function ArticleCardAd() { const seed = useMemo(() => adSeedCounter++, []); const [filled, setFilled] = useState(null); diff --git a/client/src/pages/home.tsx b/client/src/pages/home.tsx index eb57bdd..8eeba1b 100644 --- a/client/src/pages/home.tsx +++ b/client/src/pages/home.tsx @@ -10,7 +10,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, MultiplexAd, TopBannerAd } from "@/components/adsense"; +import AdSense, { ArticleCardAd, SidebarAd, PageSideAds, MultiplexAd, TopBannerAd, GridBannerAd } from "@/components/adsense"; import { NewsWidget } from "@/components/news-widget"; import { BreakingNewsWidget } from "@/components/breaking-news-widget"; import PushPromptBanner from "@/components/push-prompt-banner"; @@ -924,17 +924,13 @@ export default function Home() { // Oglas gre le v vsako drugo vrstico. Meritev 31. 8. 2026: od 13 enot na // naslovnici jih je 9 vrnilo unfilled, torej je mest vec, kot jih Google // za to stran zapolni. Manj mest z visjo zapolnjenostjo prinese vec. - let adCount = 0; let vidCount = 0; const totalRows = items.length / 4; for (let r = 0; r < totalRows; r++) { const rowStart = r * 4; const hasWidget = items.slice(rowStart, rowStart + 4).some((it) => it.type === "widget"); if (hasWidget) continue; - if (r % 2 === 1) { - const pos = r === 1 ? 3 : adCount % 2 === 0 ? 0 : 3; - items[rowStart + pos] = { type: "ad", key: `ad-row-${adCount++}` }; - } else if (r > 0 && videos.length) { + if (r > 0 && videos.length) { // video namesto zadnjega clanka v vrstici brez oglasa const v = videos[vidCount % videos.length]; vidCount += 1; @@ -1076,6 +1072,11 @@ export default function Home() { ? : null )} + {ri > 0 && (ri + 1) % 2 === 0 && ( +
+ +
+ )} {ri > 0 && (ri + 1) % 3 === 0 && widePairs[Math.floor(ri / 3) % Math.max(1, widePairs.length)] && (