启用/禁用AdBlock时,我设法触发了FB标准事件。但是我需要在页面中对honeypot和dataLayer推送脚本进行硬编码以使其正常工作。添加假冒" ad_status.js" file和dataLayer将脚本作为GTM中的标记推送,发送到标准事件的参数始终设置为" true",即使禁用AdBlock也是如此。
这就是我所拥有的:
1 js file" ad_status.js"包含以下内容:
var e=document.createElement('div'); e.id='NGjRPgxAQCMZ';
e.style.display='none'; document.body.appendChild(e);
1数据层变量" AdBlocked"其数据变量名称为"被阻止":
1个自定义HTML标记,称为" AdbLock检测":
<script>
(function() {
var d = document.createElement('script');
d.src = '//www.mydomain.com/ad_status.js';
document.head.appendChild(d);
})();
</script>
启用或停用AdBlock时推送事件的1个自定义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>
任何帮助都会非常高兴!
非常感谢。
答案 0 :(得分:0)
您不需要这么多标签。所有你需要的是:
ad_status.js
添加到您的网站根文件夹PageView
触发器Html代码:
<script>
var ERR_BLOCKED_BY_CLIENT = true;
(function() {
function checkAds(){
var blocked = document.getElementById('NGjRPgxAQCMZ') == null;
fbq('track', 'AdBlock', {
enabled: blocked
});
}
var d = document.createElement('script');
d.src = '/ad_status.js';
document.head.appendChild(d);
d.addEventListener('load', function() {
ERR_BLOCKED_BY_CLIENT = false;
checkAds()
});
setTimeout( function() {
if (ERR_BLOCKED_BY_CLIENT)
{
checkAds();
}
},1000);
})();
</script>