> For the complete documentation index, see [llms.txt](https://docs.exoclick.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.exoclick.com/tutorials/it/tutorial/tutorial-per-editori/serve-sfw-ads.md).

# Come servire annunci SFW con ExoClick

Man mano che i paesi iniziano a introdurre leggi sulla verifica dell’età, gli editori devono trovare un modo per rispettare queste leggi minimizzando al tempo stesso l’impatto che esse hanno sui loro ricavi. Ecco perché ExoClick ha introdotto un paio di parametri che possono essere aggiunti alle zone pubblicitarie per aiutare gli editori non solo a bloccare i prodotti NSFW, ma anche a verificare se questi utenti riescono effettivamente a confermare la propria età. In questo tutorial ti mostreremo come usare questi parametri.

## data-ex\_av

Il `parametro data-ex_av` determina se l’utente ha verificato la propria età oppure no e consente 3 valori:

* `"0"`: Nessuna verifica dell’età (non definito)
* `"1"`: Verifica dell’età - verificata
* `"2"`: Verifica dell’età - non verificata (SFW)

Esempio di codice:

```html
<script async type="application/javascript" src="https://a.magsrv.com/ad-provider.js"></script> 
 <ins class="eas6a97888e2" data-zoneid="5209020"  data-ex_av="2"></ins> 
 <script>(AdProvider = window.AdProvider || []).push({"serve": {}});</script>
```

## data-block-ad-types

Il `data-block-ad-types` parameter consente di bloccare al volo specifiche etichette di tipo annuncio. Ai fini del blocco degli annunci NSFW, useremo solo il valore `"101"` in questo parametro.

Esempio di codice:

```html
<script async type="application/javascript" src="https://a.magsrv.com/ad-provider.js"></script> 
 <ins class="eas6a97888e2" data-zoneid="5209020"  data-block-ad-types="101"></ins> 
 <script>(AdProvider = window.AdProvider || []).push({"serve": {}});</script>
```

## Utilizzo dei parametri

Considerando quanto abbiamo spiegato, se vuoi mostrare un annuncio SFW e vuoi identificare quell’utente come qualcuno che non ha ancora verificato la propria età, integrerai i parametri in questo modo:

```html
<script async type="application/javascript" src="https://a.magsrv.com/ad-provider.js"></script> 
 <ins class="eas6a97888e2" data-zoneid="5209020" data-ex_av="2"  data-block-ad-types="101"></ins> 
 <script>(AdProvider = window.AdProvider || []).push({"serve": {}});</script>
```

{% hint style="info" %}
**Nota**: è importante utilizzare entrambi i parametri.
{% endhint %}

E se vuoi mostrare annunci NSFW a un utente verificato, li pubblichi in questo modo:

```html
<script async type="application/javascript" src="https://a.magsrv.com/ad-provider.js"></script> 
 <ins class="eas6a97888e2" data-zoneid="5209020" data-ex_av="1"></ins> 
 <script>(AdProvider = window.AdProvider || []).push({"serve": {}});</script>
```

La sezione successiva include alcuni esempi di come puoi aggiungere dinamicamente questi parametri alle tue zone pubblicitarie. A seconda della verifica dell’età che stai utilizzando, gli utenti potrebbero essere verificati tramite un cookie, un parametro URL o qualcos’altro. In definitiva, **è tua responsabilità rilevare lo stato di verifica dei tuoi utenti e implementare i parametri di conseguenza.**

### Esempio 1: modifica dei parametri in base al valore del cookie

Supponiamo che tu stia assegnando agli utenti che hanno verificato con successo la propria età un cookie di prima parte chiamato “verified\_user” con valore “yes”. In questo scenario, puoi aggiungere dinamicamente i parametri ex\_av e data-block-ad-types in questo modo:

```html
//zone pubblicitarie banner
<script async type="application/javascript" src="https://a.magsrv.com/ad-provider.js"></script>
<div id=”adspot1”>
<ins class="eas6a97888e2" data-zoneid="5409832" data-block-ad-types="101" data-ex_av="2"></ins>
<div id=”adspot2”>
<ins class="eas6a97888e2" data-zoneid="5632512" data-block-ad-types="101" data-ex_av="2"></ins>
<div id=”adspot3”>
<ins class="eas6a97888e2" data-zoneid="57382911" data-block-ad-types="101" data-ex_av="2"></ins>

//zone pubblicitarie fpi
<script async type="application/javascript" src="https://a.pemsrv.com/ad-provider.js"></script> 
<ins class="eas6a97888e35" data-zoneid="5045990" data-block-ad-types="101"  data-ex_av="2"></ins>

//funzione dinamica basata sul cookie
<script>
function getCookie(name) {
const value = `; ${document.cookie}`;
const parts = value.split(`; ${name}=`);
if (parts.length === 2) return parts.pop().split(';').shift();
}

const verifiedUser = getCookie("verified_user");
if (verifiedUser === "verifiedUser") {
const adInsElements = document.querySelectorAll("ins");
adInsElements.forEach(ins => {
ins.setAttribute("data-ex_av", "1");
ins.setAttribute("data-block-ad-types", "0");
});
}
(AdProvider = window.AdProvider || []).push({"serve": {}});
</script>
```

Questo script ti permetterà di mostrare annunci NSFW agli utenti che hanno il cookie “user\_verified”. Nota che dovrai ricaricare la pagina dopo che l’utente ha verificato la propria età, in modo che lo script possa rilevare correttamente il cookie.

### Esempio 2: modifica dei parametri in base al parametro URL

In questo esempio, supponiamo che l’URL riceva un parametro chiamato “user\_verified=yes” quando l’utente verifica con successo la propria età.

```html
<script async type="application/javascript" src="https://a.magsrv.com/ad-provider.js"></script>
<div id="ad-container">
      <ins class="eas6a97888e20" data-zoneid="5662140" data-block-ad-types="101" data_ex_av="2"></ins>
</div>
    <script>
      (AdProvider = window.AdProvider || []).push({ serve: {} });
    </script>
    <script>
      const userVerified = new URLSearchParams(window.location.search).get(
        "user_verified"
      );
      if (userVerified === "yes") {
        let container = document.getElementById("ad-container");

        container.innerHTML = "";

        let newIns = document.createElement("ins");
        newIns.className = "eas6a97888e20";
        newIns.setAttribute("data-zoneid", "5662140");
        newIns.setAttribute("data-block-ad-types", "");
        newIns.setAttribute("data-ex_av","1");
        container.appendChild(newIns);

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

{% hint style="info" %}
**Ricorda**: questi esempi di codice sono soltanto suggerimenti. Dovresti discutere con lo strumento di verifica dell’età il modo in cui gli utenti vengono verificati e adattare di conseguenza i tuoi script.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.exoclick.com/tutorials/it/tutorial/tutorial-per-editori/serve-sfw-ads.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
