如何将 ExoClick 与 AgeGO 整合
本指南旨在解释
- 如何向 AgeGO 提交网站。
- 如何将年龄验证参数传递给 ExoClick 并阻止广告区域上的广告。
- 如何将 AgeGO 和 ExoClick 广告区整合在一起,以便在用户验证年龄之前向其展示 SFW 广告。
如何向 AgeGO 提交网站
要向AgeGO提交网站,请登录AgeGO仪表板。然后,进入 "我的网站",点击 "新网站":

在这些设置中,您至少需要添加名称和顶级域。完成这些设置后,点击 "创建"。网站将被添加到您的账户中。
默认情况下,所有网站在创建时都处于 "就绪 "状态。但这并不意味着您的网站可以使用AgeGO。为了在您的网站上启用AgeGO,您需要通过联系表格联系AgeGO,并提供与您的网站相对应的网站ID。
您可以在网站名称旁边找到网站 ID:

一旦您的网站获得批准,其状态将变为 "运行中",您就可以按照集成说明将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>
- In-Stream:https://s.magsrv.com/v1/vast.php?idzone=XXXXXX&ex_av=2&block_ad_types=101
- Popunder(链接):
https://s.pemsrv.com/v1/link.php?cat=&idzone=XXXXX&type=8&ex_av=2&block_ad_types=101 - 直接链接:https://s.zlinkt.com/v1/d.php?z=XXXXXXX&ex_av=2&blocked_ad_types=101
注意:在提供 SFW 广告时,必须同时使用 data-ex_av 和 data-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>
- In-Stream:https://s.magsrv.com/v1/vast.php?idzone=XXXXXXXX&ex_av=1
- Popunder(链接):
https://s.pemsrv.com/v1/link.php?cat=&idzone=XXXXXXX&type=8&ex_av=1 - 直接链接:https://s.zlinkt.com/v1/d.php?z=XXXXXXX&ex_av=
如何创建 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 叠加层就会出现。用户验证年龄后,页面将正常加载,这次不会屏蔽任何广告。
关于本教程的几点说明:
- 这种设置依赖于 AgeGO 设置的
agegoo_avercookie。不过,这一点可以改变:您可以使用 AgeGO 脚本的事件在 localStorage 中设置一个值,然后根据该值决定显示哪些广告。 - 这两种方法都只关注广告服务。此代码不考虑视频缩略图和其他网站内容。
- 目前,AgeGO没有内置国家检测功能。您需要决定何时显示此代码。
如果您想根据自己选择的不同事件设置 data-ex_av 和 data-block-ad-types,请参考我们的其他教程:动态屏蔽广告类型,动态屏蔽流内广告区域的广告类型。
最后,如需了解更通用的广告区与年龄验证解决方案的集成,请查看 [本教程](tutorials/publishers-tutorials/serve-sfw-ads.md)。