javascript - Adguard 会阻止 GTM 的 dataLayer.push

标签 javascript google-tag-manager

我有一个函数可以将点击的链接属性推送到 Google 标签管理器的 dataLayer。

https://developers.google.com/tag-manager/enhanced-ecommerce

问题是扩展程序“adguard”能够阻止此类跟踪。 在 adguard 中,它称为“所有已知计数器和分析系统的过滤器”。在阻止 dataLayer.push 的同时,它也会阻止 eventCallback 事件,并且链接不会打开。

这是函数:

function ga_promoTriggerClick(e)
{
    var p_id = $(e).attr("data-id");
    var p_name = $(e).attr("data-name");
    var p_creation = $(e).attr("data-creation");
    var p_pos = $(e).attr("data-pos");

    dataLayer.push({
        'event': 'promotionClick',
        'ecommerce': {
            'promoClick': {
                'promotions': [
                    {
                        'id': p_id,
                        'name': p_name,
                        'creative': p_creation,
                        'position': p_pos
                    }]
            }
        },
        'eventCallback': function()
        {
            var p_href = $(e).attr("href");
            if(typeof p_href != "undefined")
            {
                document.location = $(e).attr("href");
            }
        }
    });
}

如果“adguard”阻止了 dataLayer.push,我如何向用户发送链接?

一些想法:

  • 错误/成功/失败函数,但它们都不存在。
  • 设置超时 1 秒(这样用户就会有“滞后”)
  • 检查 adguard 是否已打开(以某种方式),然后单击检查变量

感谢您的建议

最佳答案

对我有用的解决方案非常简单。我所需要的只是检查标签管理器是否工作。

<script type="text/javascript">
window.addEventListener('load', function()
{
    if(window.ga && ga.create) 
    {
        console.log('Google Analytics is loaded');
    } 
    else 
    {
        console.log('Google Analytics is not loaded');    
    }

    if(window.google_tag_manager)
    {
        console.log('Google Tag Manager is loaded');
    }
    else
    {
        console.log('Google Tag Manager is not loaded');
    }
}, false);
</script>

在这里找到解决方案:https://marthijnhoiting.com/detect-if-someone-is-blocking-google-analytics-or-google-tag-manager/

关于javascript - Adguard 会阻止 GTM 的 dataLayer.push,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47676861/

相关文章:

javascript - Lodash union 无法与展开操作符一起使用

javascript - Http 内容导致 Https 内容出错

html - 什么时候应该在 GTM 自定义 html 标签中引用变量?

google-analytics - 事件数据,通过 Google 跟踪代码管理器发送,在 Google Bigquery 中不可见

javascript - JavaScript 字符串替换方法中的斜线而不是引号

Javascript新手问题

javascript - 现代 Javascript 支持哪些哈希算法?

javascript - 确保在重定向之前完成 Google Tag Manager 和 Google Analytics

javascript - 是否可以使用 <img> 标签触发页面浏览?

google-analytics - 使用 Google 跟踪代码管理器进行 anchor 链接跟踪