oglas v mrezi enak kartici: okvir prevzame visino vrstice, fiksna enota 300x400 centrirana v njem
This commit is contained in:
@@ -177,22 +177,17 @@ export function GridBannerAd() {
|
||||
}
|
||||
|
||||
export function ArticleCardAd() {
|
||||
const seed = useMemo(() => adSeedCounter++, []);
|
||||
const [filled, setFilled] = useState<boolean | null>(null);
|
||||
if (filled === false) return null;
|
||||
// 31. 8. 2026: oglas mora biti enak kartici, torej cela celica in ne nizji
|
||||
// blok z luknjo pod njim. Okvir je zato h-full in prevzame visino vrstice,
|
||||
// oglas pa je v njem centriran. Enota 9916590834 je fiksna 300x400: fiksne
|
||||
// mere Googlova skripta ne prevaja, zato se ne razteguje kot responsive.
|
||||
return (
|
||||
// 31. 8. 2026: enota 3854634730 je v AdSense nastavljena kot fluid in-feed
|
||||
// in si visino racuna sama (248 px), inline visine pa Googlova skripta
|
||||
// prepise — z minHeight/height 400 je celico raztegnil na 600 in vrstica
|
||||
// je narasla. Zato pustimo fluid, okvir pa se prilagodi vsebini in stoji
|
||||
// na vrhu celice, da pod njim ni vidne luknje.
|
||||
// Vzorec z imeni izvajalcev je bil pod oglasom viden kot prazna grafika,
|
||||
// ker je fluid enota nizja od celice. Zdaj je okvir samo okoli oglasa in
|
||||
// se skrci na njegovo visino.
|
||||
// 31. 8. 2026: fiksna Display enota 300x400, ki jo je Sebastjan naredil
|
||||
// posebej za mrezo. Fluid In-feed (3854634730) si je visino racunal sam in
|
||||
// se ustavil pri 258 px, zato je pod njim ostajala luknja.
|
||||
<div className="self-start w-full flex justify-center rounded-md border border-card-border bg-card overflow-hidden">
|
||||
<div
|
||||
className="h-full w-full flex items-center justify-center rounded-md border border-card-border bg-card overflow-hidden"
|
||||
data-testid="ad-card"
|
||||
>
|
||||
<AdSense
|
||||
slot="9916590834"
|
||||
responsive={false}
|
||||
|
||||
@@ -924,13 +924,17 @@ 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 > 0 && videos.length) {
|
||||
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) {
|
||||
// video namesto zadnjega clanka v vrstici brez oglasa
|
||||
const v = videos[vidCount % videos.length];
|
||||
vidCount += 1;
|
||||
@@ -1065,7 +1069,7 @@ export default function Home() {
|
||||
item.type === "widget"
|
||||
? <div key={item.key}>{item.widget!.el}</div>
|
||||
: item.type === "ad"
|
||||
? <div key={item.key} className="flex items-start empty:hidden" data-testid={`ad-grid-${item.key}`}><ArticleCardAd /></div>
|
||||
? <div key={item.key} className="h-full empty:hidden" data-testid={`ad-grid-${item.key}`}><ArticleCardAd /></div>
|
||||
: item.type === "video" && item.video
|
||||
? <VideoCard key={item.key} video={item.video} />
|
||||
: item.article
|
||||
|
||||
Reference in New Issue
Block a user