Google apps script Google Sheets附加组件不触发GTM中的自定义事件

Google apps script Google Sheets附加组件不触发GTM中的自定义事件,google-apps-script,google-tag-manager,google-sheets-api,gtag.js,Google Apps Script,Google Tag Manager,Google Sheets Api,Gtag.js,我正试图从谷歌应用程序脚本侧栏触发GTM自定义事件。下面给出了代码的简化版本。如果我在本地服务器上以网页的形式对其进行本地测试,同样的代码也可以工作。事件被触发。但当它是附加组件的一部分时,不会触发事件。任何帮助都将不胜感激。下面给出了HTML文件。这将显示为侧边栏。 更新:我已将完整的工作代码放入。当我在本地服务器中进行测试时,下面的代码也会触发标记。但是当在GoogleSheets插件中显示为边栏时,is不会触发标签。我怀疑html显示在iframe中。不确定它为什么不工作 <!DOC

我正试图从谷歌应用程序脚本侧栏触发GTM自定义事件。下面给出了代码的简化版本。如果我在本地服务器上以网页的形式对其进行本地测试,同样的代码也可以工作。事件被触发。但当它是附加组件的一部分时,不会触发事件。任何帮助都将不胜感激。下面给出了HTML文件。这将显示为侧边栏。 更新:我已将完整的工作代码放入。当我在本地服务器中进行测试时,下面的代码也会触发标记。但是当在GoogleSheets插件中显示为边栏时,is不会触发标签。我怀疑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>

数据层=[];
(函数(w,d,s,l,i){w[l]=w[l]||【】;w[l]。推送({'gtm.start':
new Date().getTime(),事件:'gtm.js'});var f=d.getElementsByTagName[0],
j=d.createElement,dl=l!=“数据层”?“&l=”+l:“”;j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(窗口、文档、'script'、'dataLayer'、'GTM-XXXXXXX');
创建报告
函数ProcessReport(){
push({'event':'run_report'});
console.log(window.dataLayer);
}
$(文档).ready(函数(){
$(“#报告”)。单击(ProcessReport);
});
试试看


我已经按照你的建议做了。它不起作用。您可以在我更新的代码中看到更改。
function ProcessReport() {
        dataLayer.push({'event':'run_report'});
        console.log(window.dataLayer);
}


$( document ).ready(function() {
    $("#report").click(ProcessReport());
});