跳至主要内容

如何将 ExoClick 与 AgeGO 整合

本指南旨在解释

  • 如何向 AgeGO 提交网站。
  • 如何将年龄验证参数传递给 ExoClick 并阻止广告区域上的广告。
  • 如何将 AgeGO 和 ExoClick 广告区整合在一起,以便在用户验证年龄之前向其展示 SFW 广告。

如何向 AgeGO 提交网站

要向AgeGO提交网站,请登录AgeGO仪表板。然后,进入 "我的网站",点击 "新网站":

ExoClick AgeGO 1

在这些设置中,您至少需要添加名称顶级域。完成这些设置后,点击 "创建"。网站将被添加到您的账户中。

默认情况下,所有网站在创建时都处于 "就绪 "状态。但这并不意味着您的网站可以使用AgeGO。为了在您的网站上启用AgeGO,您需要通过联系表格联系AgeGO,并提供与您的网站相对应的网站ID。

您可以在网站名称旁边找到网站 ID:

ExoClick AgeGO 2

一旦您的网站获得批准,其状态将变为 "运行中",您就可以按照集成说明将AgeGO集成到您的网站上。该解决方案目前提供两种方法:Modal(简单或高级)S2S,每种方法的设置说明可在AgeGO仪表板上找到。在本指南中,我们将讨论Modal方法。

如何通过年龄验证状态并提供 SFW 广告

在使用年龄验证系统(AgeGO 或其他供应商)时,您可能希望继续向任何用户(未验证年龄的用户和验证了年龄的用户)显示广告。

为了识别用户是否通过年龄验证,请在广告区使用 data-ex_av 参数。该参数允许 3 个值:

  • "0":无年龄验证(未定义)
  • "1":年龄验证 - 已验证
  • "2":年龄验证 - 未验证

然后,为了阻止某些用户(此处指未验证年龄的用户)看到广告,请使用 data-block-ad-types 参数。该参数允许多个值,但在本指南中我们只使用101值。

因此,如果您想提供 SFW 广告,并想将该用户识别为尚未验证年龄的人,您将这样整合参数:

  • 同步广告格式(横幅、FPI、多格式等):
<script async type="application/javascript" src="https://a.magsrv.com/ad-provider.js"></script> 
<ins class="eas6a97888e2" data-zoneid="XXXXXXXX" data-ex_av="2" data-block-ad-types="101"></ins>
<script>(AdProvider = window.AdProvider || []).push({"serve": {}});</script>

注意:在提供 SFW 广告时,必须同时使用 data-ex_avdata-block-ad-types ,否则将无法正确识别用户,也无法阻止广告。

如果您想向已验证的用户提供各种广告,您可以这样提供:

  • 同步广告格式(横幅、FPI、多格式等)
<script async type="application/javascript" src="https://a.magsrv.com/ad-provider.js"></script> 
<ins class="eas6a97888e2" data-zoneid="XXXXXXX" data-ex_av="1"></ins>
<script>(AdProvider = window.AdProvider || []).push({"serve": {}});</script>

如何创建 SFW 体验

下面的教程介绍了如何创建 "SFW 体验",即如何确保在用户尚未验证年龄时只提供 SFW 广告。请注意,这种方法只是一种建议,如果您需要遵循不同的用户流程,可以更改设置。

为此,我们需要创建一个单独的脚本文件。在本例中,我们将其命名为 main.js

function getCookie(name) {
const value = `; ${document.cookie}`;
const parts = value.split(`; ${name}=`);
if (parts.length === 2) return parts.pop().split(';').shift();
}

function verifier(event, container) {
window.AGEGO = window.AGEGO || function () {
(AGEGO.e = AGEGO.e || []).push(arguments)
};
AGEGO('configure', {
siteId: XXXXXXX, // Site ID of your site in AgeGo
autoBlur: true,
verifyMode: 'inline',
requireAgeVerification: true,
allowDirectContinue: false,
overlay: {
logo: 'wlogo.png', // Logo of your site
theme: 'auto'
},
events: {
onVerificationFlowEnd() {
console.log("Verification successfull");
window.location.reload();
},
onVerificationFlowFailed() {
console.log("Verification failed with errorcode:" + error);
},
onAgeVerify() {
console.log("Begin Age Verification process");
},
onDirectContinue() {
console.log("DirectContinue action");
},
onUnderageSkip() {
console.log("Skipped");
},
onVerifiedBefore() {
console.log("Verified Before");
}
}
}
);

var n = document.createEvent("Event");
n.initEvent("DOMContentLoaded", !0, !0),
document.dispatchEvent(n);
}

const TARGET_SELECTOR = '.main, .footer; // replace with classes where click will be intercepted

function intercept(e) {
const container = e.target.closest(TARGET_SELECTOR);
if (!container) return;

e.preventDefault();
e.stopImmediatePropagation();
e.stopPropagation();

verifier(e, container);
}

该文件包含三个函数:一个用于检测 cookie 的函数、一个用于加载 AgeGO 叠加层的函数,以及一个用于检测点击特定类的函数。在本例中,我们使用.main.footer类。

然后,在网站的 HTML 代码中添加以下内容:

<!--Code from AgeGo-->
<script src="https://verifycdn.agego.com/v1/verify.js"></script>

<!-- Code with custom functions-->
<script src="main.js"></script>

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

<!-- Ad zones. XXXX and YYYYY correspond to the class and zone IDs provided by the Admin Panel. -->
<div id="videontv">
<ins class="XXXXXX" data-zoneid="YYYYYY" data-block-ad-types="101" data-ex_av="2"></ins>
<ins class="XXXXXX" data-zoneid="YYYYYY" data-block-ad-types="101" data-ex_av="2"></ins>
</div>

<!-- Code to serve ads with the right params-->
<script>
const agegoValue = getCookie("agego_aver");
if (agegoValue === "yes") {
console.log("user verified");
const adInsElements = document.querySelectorAll("ins");
adInsElements.forEach(ins => {
ins.setAttribute("data-ex_av", "1");
ins.setAttribute("data-block-ad-types", "0");
});
}
else {
console.log("user not verified");
['pointerdown', 'click', 'touchstart'].forEach(type => {
document.addEventListener(type, intercept, { capture: true });
});
}
(AdProvider = window.AdProvider || []).push({"serve": {}});
</script>

在本例中,广告默认为 SFW,直到用户验证其年龄。当用户点击我们之前提到的选定类别时,AgeGO 叠加层就会出现。用户验证年龄后,页面将正常加载,这次不会屏蔽任何广告


关于本教程的几点说明:

  1. 这种设置依赖于 AgeGO 设置的 agegoo_aver cookie。不过,这一点可以改变:您可以使用 AgeGO 脚本的事件在 localStorage 中设置一个值,然后根据该值决定显示哪些广告。
  2. 这两种方法都只关注广告服务。此代码不考虑视频缩略图和其他网站内容。
  3. 目前,AgeGO没有内置国家检测功能。您需要决定何时显示此代码。

如果您想根据自己选择的不同事件设置 data-ex_avdata-block-ad-types,请参考我们的其他教程:动态屏蔽广告类型动态屏蔽流内广告区域的广告类型

最后,如需了解更通用的广告区与年龄验证解决方案的集成,请查看 [本教程](tutorials/publishers-tutorials/serve-sfw-ads.md)。