> 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-publisher/dynamically-block-ads-using-data-block-ad-types.md).

# Come bloccare dinamicamente i tipi di annunci usando data-block-ad-types

Come publisher, potresti voler controllare quali tipi di annunci vengono mostrati ai tuoi visitatori in base a condizioni specifiche come l'autenticazione dell'utente, le impostazioni di preferenza dell'utente o altri fattori. In questo articolo, mostriamo due frammenti di codice su come puoi gestire dinamicamente quali tipi di annunci vengono visualizzati o bloccati all'interno della tua zona annunci ExoClick.

la funzionalità di ExoClick **data-block-ad-types** funzionalità, e le stiamo dando un controllo dinamico su più spazi pubblicitari senza richiedere complesse integrazioni backend.

## ESEMPIO 1 - Visualizzare dinamicamente gli annunci in base all'input dell'utente

Questo metodo è ideale per regolare le restrizioni degli annunci in base al consenso dell'utente. Quando un visitatore accetta i tuoi termini, la sua preferenza viene salvata nel browser in `localStorage`. Questa azione modifica in modo permanente le impostazioni degli annunci per quell'utente in tutte le visite successive, consentendoti di mostrare una gamma più ampia di tipi di annunci una volta ottenuto il consenso.

```html
<!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" },
      ];

      //  MODIFICA I TIPI DI ANNUNCI BLOCCATI IN BASE AL VALORE BOOLEANO E RENDERIZZA DI NUOVO GLI ANNUNCI
      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>PAGINA DI TEST</h1>

    <!-- ACCETTA I TERMINI E AGGIUNGI IL CONSENSO AL LOCAL STORAGE AL CLIC -->
    <button
      id="accept-terms-button"
      onclick="updateAdRestrictions(true); localStorage.setItem('acceptTerms', true); this.remove();"
    >
      Accetto i termini e le condizioni
    </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>

    <!-- CONTROLLA LA MEMORIA LOCALE PER IL COOKIE VERIFICATO E CHIAMA updateAdRestrictions SE L'UTENTE È GIÀ VERIFICATO -->
    <!-- DEVE ESSERE POSIZIONATO DOPO GLI SCRIPT DELLE ZONE PUBBLICITARIE -->
    <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>
```

## ESEMPIO 2 - Visualizzare dinamicamente gli annunci in base al parametro URL

Questo approccio è efficace per modificare le impostazioni degli annunci in base a un parametro dell'URL. Ad esempio, dopo che un utente si autentica, può essere reindirizzato a un URL contenente un parametro come `?user_verified=1`. Questo parametro segnala alla pagina che l'utente è verificato, inducendo il sistema a mostrare tipi di annunci meno restrittivi per quella sessione.

```html
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Pagina di prova</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>
```


---

# 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-publisher/dynamically-block-ads-using-data-block-ad-types.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.
