簡體   English   中英

Adguard阻止GTM的dataLayer.push

[英]Adguard blocks dataLayer.push for GTM

我具有將點擊的鏈接屬性推送到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秒(這樣用戶將有'lag')
  • 檢查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/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM