From 122bcd475094b4901ebae5e845a65e589bde3ca6 Mon Sep 17 00:00:00 2001 From: FrankZamora Date: Thu, 27 Nov 2025 21:05:49 -0600 Subject: [PATCH] feat(adsense): agregar mas opciones de formato y altura para Rail Ads MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Formatos: skyscraper (160x600), wide-skyscraper (160x800), half-page (300x600), large-skyscraper (300x1050) - Distancia desde arriba: 150, 200, 300 (default), 400, 500, 700px - Cambiar rail_top_offset de text a select con opciones predefinidas 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .../Ui/AdsensePlacementRenderer.php | 11 +++++--- Schemas/adsense-placement.json | 25 ++++++++++++++----- 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/Public/AdsensePlacement/Infrastructure/Ui/AdsensePlacementRenderer.php b/Public/AdsensePlacement/Infrastructure/Ui/AdsensePlacementRenderer.php index d226530c..c9fffabd 100644 --- a/Public/AdsensePlacement/Infrastructure/Ui/AdsensePlacementRenderer.php +++ b/Public/AdsensePlacement/Infrastructure/Ui/AdsensePlacementRenderer.php @@ -291,12 +291,17 @@ final class AdsensePlacementRenderer $leftEnabled = ($settings['behavior']['rail_left_enabled'] ?? true) === true; $rightEnabled = ($settings['behavior']['rail_right_enabled'] ?? true) === true; $format = $settings['behavior']['rail_format'] ?? 'skyscraper'; - $topOffset = (int)($settings['behavior']['rail_top_offset'] ?? 150); + $topOffset = (int)($settings['behavior']['rail_top_offset'] ?? 300); $delayEnabled = ($settings['forms']['delay_enabled'] ?? true) === true; // Dimensiones segun formato - $width = $format === 'half-page' ? 300 : 160; - $height = 600; + // skyscraper: 160x600, wide-skyscraper: 160x800, half-page: 300x600, large-skyscraper: 300x1050 + [$width, $height] = match($format) { + 'wide-skyscraper' => [160, 800], + 'half-page' => [300, 600], + 'large-skyscraper' => [300, 1050], + default => [160, 600], // skyscraper + }; $scriptType = $delayEnabled ? 'text/plain' : 'text/javascript'; $dataAttr = $delayEnabled ? ' data-adsense-push' : ''; diff --git a/Schemas/adsense-placement.json b/Schemas/adsense-placement.json index d06987d8..7546b9e4 100644 --- a/Schemas/adsense-placement.json +++ b/Schemas/adsense-placement.json @@ -225,15 +225,28 @@ "label": "Formato Rail Ads", "default": "skyscraper", "editable": true, - "options": ["skyscraper", "half-page"], - "description": "skyscraper=160x600, half-page=300x600" + "options": { + "skyscraper": "Skyscraper (160x600)", + "wide-skyscraper": "Wide Skyscraper (160x800)", + "half-page": "Half Page (300x600)", + "large-skyscraper": "Large Skyscraper (300x1050)" + }, + "description": "Tamano del anuncio en los rails laterales" }, "rail_top_offset": { - "type": "text", - "label": "Distancia desde arriba (px)", - "default": "150", + "type": "select", + "label": "Distancia desde arriba", + "default": "300", "editable": true, - "description": "Espacio desde el top del viewport" + "options": { + "150": "150px (Cerca del header)", + "200": "200px", + "300": "300px (Recomendado)", + "400": "400px", + "500": "500px", + "700": "700px (Debajo del fold)" + }, + "description": "Distancia vertical desde el top del viewport" } } },