当启用/禁用 AdBlock 时,我设法触发了 FB 标准事件。但是,我需要在页面中硬编码蜜罐和 dataLayer 推送脚本才能使其工作。当在 GTM 中添加伪造的“ad_status.js”文件和 dataLayer 推送脚本作为标签时,发送到标准事件的参数始终设置为“true”,即使 AdBlock 被禁用。
这是我所拥有的:
1 个 js 文件“ad_status.js”,其中包含以下内容:
var e=document.createElement('div'); e.id='NGjRPgxAQCMZ';
e.style.display='none'; document.body.appendChild(e);
1 个数据层变量“AdBlocked”,其数据变量名称为“blocked”:
- 变量类型:数据层变量
- 变量名:阻塞
1 个名为“AdbLock 检测”的自定义 HTML 标记:
<script>
(function() {
var d = document.createElement('script');
d.src = '//www.mydomain.com/ad_status.js';
document.head.appendChild(d);
})();
</script>
- 在所有页面上触发
1 个在启用或禁用 AdBlock 时推送事件的自定义 HTML 标记:
<script type="text/javascript">// <![CDATA[
jQuery(document).ready(checkAds());
function checkAds() {
if (document.getElementById('NGjRPgxAQCMZ') != undefined) {
document.write("<script>dataLayer.push({'event':'adBlock','blocked':'false'});</sc" + "ript>");
} else {
document.write("<script>dataLayer.push({'event':'adBlock','blocked':'true'});</sc" + "ript>");
}
}
// ]]></script>
- 在所有页面上触发
- 设置了标签排序,因此第二个标签在第一个标签之后触发。
1 个带有 fb 标准事件的自定义 HTML 标签:
<script>
fbq('track', 'AdBlock', {
enabled: {{AdBlocked}}
});
</script>
- 满足以下“自定义事件”时触发:
任何帮助都会非常高兴!
非常感谢。