Füge Platzhalter für Propeller-Anzeigen hinzu und verbessere das Skript-Rendering
This commit is contained in:
@@ -34,6 +34,9 @@ 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';
|
||||
|
||||
// Auto load flag (env) - set to 'true' to load ads on mount without waiting for interaction
|
||||
const autoLoad = (import.meta.env.VITE_PROP_AUTOLOAD || 'true') === 'true';
|
||||
|
||||
// A/B test config
|
||||
const abRatio = Number(import.meta.env.VITE_AB_RATIO || '50'); // percent for variant B
|
||||
|
||||
@@ -99,6 +102,11 @@ async function renderPropeller() {
|
||||
return;
|
||||
}
|
||||
|
||||
// create placeholder first and insert into ad container
|
||||
const placeholder = document.createElement('div');
|
||||
placeholder.className = 'propeller-ad-placeholder';
|
||||
adContainer.value.appendChild(placeholder);
|
||||
|
||||
const s = document.createElement('script');
|
||||
s.dataset.zone = propSlotId;
|
||||
s.src = propScriptUrl;
|
||||
@@ -111,16 +119,8 @@ async function renderPropeller() {
|
||||
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();
|
||||
if (target) target.appendChild(s);
|
||||
|
||||
// Clear container so the ad can render without duplicates
|
||||
adContainer.value.innerHTML = '';
|
||||
// Propeller will usually inject the ad into the page; keep a placeholder node
|
||||
const placeholder = document.createElement('div');
|
||||
placeholder.className = 'propeller-ad-placeholder';
|
||||
adContainer.value.appendChild(placeholder);
|
||||
// Append the script directly into the placeholder so the provider injects into it
|
||||
placeholder.appendChild(s);
|
||||
|
||||
// Observe the document for injected ad nodes and relocate them into our placeholder
|
||||
const observeAndRelocate = () => {
|
||||
|
||||
Reference in New Issue
Block a user