From 84cabdca7f27da35543675e4e677c40db3fe182c Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Mon, 18 May 2026 15:18:29 +0200 Subject: [PATCH] =?UTF-8?q?F=C3=BCge=20Debug-Option=20hinzu,=20um=20das=20?= =?UTF-8?q?Laden=20von=20Anzeigen=20zu=20erzwingen,=20und=20verbessere=20d?= =?UTF-8?q?as=20Fehlerhandling=20beim=20Laden=20des=20Propeller-Skripts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/src/components/HeaderAdBanner.vue | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/client/src/components/HeaderAdBanner.vue b/client/src/components/HeaderAdBanner.vue index 1f1ca3e..ed4619f 100644 --- a/client/src/components/HeaderAdBanner.vue +++ b/client/src/components/HeaderAdBanner.vue @@ -31,6 +31,9 @@ const isEnabled = computed(() => { // Small sticky header option (thin sticky header) const sticky = (import.meta.env.VITE_HEADER_STICKY || 'true') === 'true'; +// Debug bypass: allow forcing ad load with ?ads_debug=1 +const debugForceLoad = typeof window !== 'undefined' && new URLSearchParams(window.location.search).get('ads_debug') === '1'; + // A/B test config const abRatio = Number(import.meta.env.VITE_AB_RATIO || '50'); // percent for variant B @@ -100,6 +103,13 @@ async function renderPropeller() { s.dataset.zone = propSlotId; s.src = propScriptUrl; s.async = true; + s.onload = () => { + console.log('Propeller script loaded:', propScriptUrl, 'zone:', propSlotId); + }; + s.onerror = (e) => { + console.warn('Propeller script failed to load:', propScriptUrl, e); + try { window.dispatchEvent(new CustomEvent('ads:load-failed', { detail: { provider: 'propeller', zone: propSlotId, error: String(e) } })); } catch {} + }; // Append to the document (documentElement or body) like the snippet does const target = [document.documentElement, document.body].filter(Boolean).pop();