`
},
{
id: "clickadilla",
weight: 1,
code: ``
},
{
id: "clickadu",
weight: 1,
code: `
`
},
{
id: "evadav",
weight: 1,
code: ``
}
];
const KEY = "auto_cpm_stats";
const POP_KEY = "auto_cpm_pop_today";
const TODAY = new Date().toISOString().slice(0,10);
/* =========================
DAILY POP LIMIT
========================= */
if (localStorage.getItem(POP_KEY) === TODAY) return;
localStorage.setItem(POP_KEY, TODAY);
/* =========================
LOAD STATS
========================= */
let stats = JSON.parse(localStorage.getItem(KEY) || "{}");
ADS.forEach(ad => {
if (!stats[ad.id]) {
stats[ad.id] = { views: 0, score: 1 };
}
});
/* =========================
WEIGHTED PICK
========================= */
let pool = [];
ADS.forEach(ad => {
const score = stats[ad.id].score || 1;
for (let i = 0; i < score; i++) pool.push(ad);
});
const selected = pool[Math.floor(Math.random() * pool.length)];
/* =========================
INJECT IKLAN
========================= */
const box = document.createElement("div");
box.innerHTML = selected.code;
document.body.appendChild(box);
/* =========================
UPDATE VIEW
========================= */
stats[selected.id].views++;
/* =========================
PERFORMANCE SCORING
(heuristic sederhana tapi efektif)
========================= */
setTimeout(() => {
// Jika user masih di halaman setelah 8 detik → dianggap berhasil
if (document.visibilityState === "visible") {
stats[selected.id].score = Math.min(stats[selected.id].score + 1, 10);
} else {
stats[selected.id].score = Math.max(stats[selected.id].score - 1, 1);
}
localStorage.setItem(KEY, JSON.stringify(stats));
}, 8000);
})();