For the complete documentation index, see llms.txt. This page is also available as Markdown.

如何使用 data-block-ad-types 动态屏蔽广告类型

作为发布商,您可能希望根据特定条件(如用户身份验证、用户偏好设置或其他因素)来控制向访客展示哪些类型的广告。本文中,我们演示两个代码片段,说明如何在您的 ExoClick 广告位中动态管理显示或屏蔽哪些广告类型。

为了实现这一点,我们正在利用 ExoClick 的 data-block-ad-types 功能,并让它无需复杂的后端集成即可对多个广告位进行动态控制。

示例 1 - 根据用户输入动态显示广告

这种方法非常适合根据用户同意来调整广告限制。当访问者同意你的条款时,他们的偏好会存储在其浏览器的 localStorage中。此操作会永久修改该用户在后续访问中的广告设置,使你在获得同意后能够展示更广泛的广告类型。

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

      //  根据布尔值更改被屏蔽的广告类型,并重新渲染广告
      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>测试页面</h1>

    <!-- 接受条款并在点击时将同意信息添加到本地存储 -->
    <button
      id="accept-terms-button"
      onclick="updateAdRestrictions(true); localStorage.setItem('acceptTerms', true); this.remove();"
    >
      我接受条款和条件
    </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>

    <!-- 检查本地存储中已验证的 cookie,并在用户已验证时调用 updateAdRestrictions -->
    <!-- 必须放在广告位脚本之后 -->
    <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>

示例 2 - 根据 URL 参数动态显示广告

这种方法适合根据 URL 参数更改广告设置。例如,在用户完成身份验证后,可以将其重定向到包含如下参数的 URL: ?user_verified=1。该参数会向页面表明用户已通过验证,从而促使系统在该会话中显示限制更少的广告类型。

最后更新于

这有帮助吗?