Saltar para o conteúdo principal

Como bloquear dinamicamente tipos de anúncios utilizando data-blocked-types

Como editor, poderá querer controlar os tipos de anúncios que são apresentados aos seus visitantes com base em condições específicas, como a autenticação do utilizador, as definições de preferências do utilizador ou outros factores. Neste artigo, demonstramos dois snippets de código de como pode gerir dinamicamente os tipos de anúncios que são apresentados ou bloqueados na sua zona de anúncios da ExoClick.

Para que isto seja possível, estamos a tirar partido da funcionalidade data-blocked-type da ExoClick e estamos a dar-lhe um controlo dinâmico sobre vários anúncios sem exigir integrações complexas de backend.

EXEMPLO 1 - Apresentar anúncios dinamicamente com base na introdução do utilizador

Este método é ideal para ajustar as restrições de anúncios com base no consentimento do utilizador. Quando um visitante concorda com os seus termos, a sua preferência é armazenada no localStorage do seu browser. Esta ação modifica permanentemente as definições de anúncios para esse utilizador em todas as visitas subsequentes, permitindo-lhe apresentar uma gama mais vasta de tipos de anúncios após o consentimento.


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />

<script>

const adZoneConfigs = [
{ containerId: "zid-5662140", class: "eas6a97888e20", zoneid: "5662140" },
{ containerId: "zid-5532602", class: "eas6a97888e2", zoneid: "5532602" },
];

// CHANGE BLOCKED AD TYPES BASED ON BOOLEAN VALUE AND RE RENDER THE ADS
let updateAdRestrictions = (value) => {
if (value === true) {
adZoneConfigs.forEach((adZone) => {
let adContainer = document.getElementById(adZone.containerId);
adContainer.innerHTML = "";
adContainer.innerHTML = `
<ins class="${adZone.class}" data-zoneid="${adZone.zoneid}" data-block-ad-types=""></ins>

`;
(AdProvider = window.AdProvider || []).push({ serve: {} });
});
}
return;
};
</script>

</head>
<body>
<h1>TEST PAGE</h1>

<!-- ACCEPT TEMRS AND ADD CONSENT TO LOCAL STORAGE ON CLICK -->
<button
id="accept-terms-button"
onclick="updateAdRestrictions(true); localStorage.setItem('acceptTerms', true); this.remove();"
>
I accept the terms and conditions
</button>

<main>
<script
async
type="application/javascript"
src="https://a.magsrv.com/ad-provider.js"
></script>

<h2>zid-5662140</h2>
<div id="zid-5662140">
<ins
class="eas6a97888e20"
data-zoneid="5662140"
data-block-ad-types="101"
></ins>

<script>
(AdProvider = window.AdProvider || []).push({ serve: {} });
</script>
</div>


<h2>zid-5532602</h2>
<div id="zid-5532602">
<ins
class="eas6a97888e2"
data-zoneid="5532602"
data-block-ad-types="101"
></ins>
<script>
(AdProvider = window.AdProvider || []).push({ serve: {} });
</script>
</div>
</main>


<!-- CHECK LOCAL STORAGE FOR VERIFIED COOKIE AND CALL updateAdRestrictions IF THE USER IS ALREADY VERIFIED -->
<!-- MUST BE PLACED AFTER THE AD ZONES' SCRIPTS -->
<script>
const cookie = localStorage.getItem("acceptTerms");
const parsedCookie = JSON.parse(cookie)
if (parsedCookie === true) {
updateAdRestrictions(true);
document.getElementById("accept-terms-button").remove();
}
</script>
</body>
</html>

EXEMPLO 2 - Apresentar anúncios dinamicamente com base num parâmetro URL

Esta abordagem é eficaz para alterar as definições de anúncios com base num parâmetro de URL. Por exemplo, após a autenticação de um utilizador, este pode ser redireccionado para um URL que contenha um parâmetro como ?user_verified=1. Este parâmetro indica à página que o utilizador foi verificado, levando o sistema a apresentar tipos de anúncios menos restritivos para essa sessão.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Test Page</title>
</head>

<body>
<header>
<ins
class="eas6a97888e20"
data-zoneid="5662140"
data-block-ad-types="101"
></ins>

<script
async
type="application/javascript"
src="https://a.magsrv.com/ad-provider.js"
></script>

<script>
(AdProvider = window.AdProvider || []).push({ serve: {} });
</script>
</header>

<footer id="footer-ads">
<script
async
type="application/javascript"
src="https://a.magsrv.com/ad-provider.js"
></script>

<ins
class="eas6a97888e2"
data-zoneid="5532602"
data-block-ad-types="101"
></ins>

<script>
(AdProvider = window.AdProvider || []).push({ serve: {} });
</script>
</footer>

<script>
const userVerified = new URLSearchParams(window.location.search).get(
"user_verified"
);
const headerElement = document.querySelector('[data-zoneid="5662140"]');
const footerElement = document.querySelector('[data-zoneid="5532602"]');
const elementsArr = [headerElement, footerElement];
if (userVerified == 1) {
elementsArr.forEach((element) => {
element.setAttribute("data-block-ad-types", "");
const newElement = element.cloneNode(true);
element.parentNode.replaceChild(newElement, element);
});
}
</script>
</body>
</html>