【问题标题】:Google Sheets Add-on not triggering custom events in GTMGoogle 表格插件未触发 GTM 中的自定义事件
【发布时间】:2021-04-28 19:01:12
【问题描述】:

我正在尝试从 Google 应用脚本边栏触发 GTM 自定义事件。下面给出了代码的简化版本。如果我在本地服务器上作为网页在本地对其进行测试,则相同的代码可以工作。事件被触发。但是,当它是附加组件的一部分时,不会触发事件。任何帮助将不胜感激。 HTML 文件如下所示。这显示为侧边栏。 更新:我已经放了完整的工作代码。当我在本地服务器中进行测试时,以下相同的代码会触发标签。但是当在谷歌表格插件中显示为侧边栏时不会触发标签。我怀疑 html 显示在 iframe 中。不知道为什么它不起作用

<!DOCTYPE html>
<html>
  <head>
    <base target="_blank">
    <script>
    dataLayer = [];
    </script>
    <!-- Google Tag Manager -->
    <!-- Google Tag Manager -->
    <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
    new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
    j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
    'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
    })(window,document,'script','dataLayer','GTM-XXXXXXX');</script>
    <!-- End Google Tag Manager -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js" ></script> 
    
    <!-- Latest compiled and minified CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

    <!-- Optional theme -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">

    <!-- Latest compiled and minified JavaScript -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script> 
    <link rel="stylesheet" href="https://ssl.gstatic.com/docs/script/css/add-ons1.css">
  </head>
  <body>
      <!-- Google Tag Manager (noscript) -->
    <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-TLGFLD7"
    height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
    <!-- End Google Tag Manager (noscript) -->

    <div class="container main_page">
        <div class="row">
            <div class="col-md-12">
                <div class="text-center">
                    <button type="button" class="btn btn-primary" name="report" id="report"  >Create Report</button>
                </div>
            </div>
        </div>
    </div>
    <script>
        
        function ProcessReport() {
                dataLayer.push({'event':'run_report'});
                console.log(window.dataLayer);
        }
    
        
        $( document ).ready(function() {
            $("#report").click(ProcessReport);
        });
    </script>
  </body>
</html>

【问题讨论】:

    标签: google-apps-script google-tag-manager google-sheets-api gtag.js


    【解决方案1】:

    试试

    function ProcessReport() {
            dataLayer.push({'event':'run_report'});
            console.log(window.dataLayer);
    }
    
    
    $( document ).ready(function() {
        $("#report").click(ProcessReport());
    });
    

    【讨论】:

    • 我已经按照你的建议做了。它不工作。你可以在我更新的代码中看到变化。
    猜你喜欢
    • 1970-01-01
    • 2019-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-15
    相关资源
    最近更新 更多