(function() { var d = document, w = window; // Inisialisasi global tracker untuk anti-duplikat di halaman yang sama w.kabiActiveAds = w.kabiActiveAds || {}; var slotId = 'kabi_slot_' + Math.random().toString(36).substr(2, 9); var currentAdId = 2; if (currentAdId !== null) { w.kabiActiveAds[slotId] = currentAdId; } var initialHtml = "
\"Ad\"
Iklan
"; var apiUrl = "https://kabarlagi.id/ads/api/serve_ad.php/v/image/random/json/kabarlagi?code=RYH9LUUTJE"; var refreshInterval = 15000; // 15 detik // Cari posisi script saat ini untuk inject container var currentScript = d.currentScript || (function() { var scripts = d.getElementsByTagName('script'); return scripts[scripts.length - 1]; })(); var container = d.createElement('div'); container.className = 'kabi-ad-rotator'; container.style.transition = 'opacity 0.4s ease-in-out'; container.innerHTML = initialHtml; if (currentScript && currentScript.parentNode) { currentScript.parentNode.insertBefore(container, currentScript.nextSibling); } else { if (d.readyState === 'loading') { d.write('
'); d.getElementById('kabi-fallback').appendChild(container); } else { d.body.appendChild(container); } } function buildAdHtml(data) { var c = data.ad; var campType = c.ad_type; var clickUrl = data.tracking.click_url; var wDim = c.dimensions.width || '100%'; var hDim = c.dimensions.height || 'auto'; var hStr = isNaN(hDim) ? hDim : hDim + 'px'; var html = '
'; html += ''; if (campType === 'image' && c.image_url) { html += ''+(c.title || '')+''; } else if (campType === 'html' && c.html_content) { html += c.html_content; } else { html += '
'; html += '

'+(c.title || '')+'

'; if (c.description) html += '

'+c.description+'

'; if (c.cta && c.cta.text) html += ''+c.cta.text+''; html += '
'; } html += '
Iklan
'; return html; } function refreshAd() { var activeIds = []; for (var key in w.kabiActiveAds) { if (w.kabiActiveAds.hasOwnProperty(key) && w.kabiActiveAds[key]) { activeIds.push(w.kabiActiveAds[key]); } } // PERBAIKAN: Batasi exclude maksimal 20 ID untuk mencegah URL terlalu panjang var limitedIds = activeIds.slice(-20); var excludeParam = limitedIds.length > 0 ? '&exclude=' + limitedIds.join(',') : ''; var fetchUrl = apiUrl + excludeParam + '&rand=' + new Date().getTime(); fetch(fetchUrl, { cache: 'no-cache' }) .then(function(res) { if (!res.ok) throw new Error('Network response was not ok'); return res.json(); }) .then(function(data) { if (data.success && data.ad) { w.kabiActiveAds[slotId] = data.ad.id; container.style.opacity = '0'; setTimeout(function() { container.innerHTML = buildAdHtml(data); container.style.opacity = '1'; }, 400); } else { // Jika tidak ada iklan, sembunyikan container agar tidak ada kotak kosong container.style.display = 'none'; delete w.kabiActiveAds[slotId]; } }) .catch(function(e) { console.warn('KABI ADS: Refresh failed', e); }); } // Jalankan rotasi if (refreshInterval > 0) { setInterval(refreshAd, refreshInterval); } })();