谷歌标记管理器(GTM)不在SharePoint上工作。

时间:2021-12-03 14:08:46

I added the GTM code inside the SharePoint Master Page inside the body tag.

我在body标签内的SharePoint主页中添加了GTM代码。

<body>
<--Body content goes here -->

<!-- Google Tag Manager -->
        <noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-XXXXXXXX"
        height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
        <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=
        '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
        })(window,document,'script','dataLayer','GTM-T9XLSX');</script>
        <!-- End Google Tag Manager -->

</body>

But It seems that the script is not properly fired as the whole content is wrapped by a form element as following.It generate by SharePoint.

但是,似乎脚本并没有正确地触发,因为整个内容是由一个表单元素包装的,如下所示。它产生了SharePoint。

<body>
    <form method="post" action="" onsubmit="javascript:return WebForm_OnSubmit();" id="aspnetForm">
    <--Body content goes here -->

    <!-- Google Tag Manager -->
            <noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-XXXXXXXX"
            height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
            <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=
            '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
            })(window,document,'script','dataLayer','GTM-T9XLSX');</script>
            <!-- End Google Tag Manager -->
   </form>
</body>

Is there a way we can properly place the tag in SharePoint?

是否有一种方法可以正确地将标签放置在SharePoint中?

3 个解决方案

#1


1  

There is one workaround. You can directly edit the '.master' page in SharePoint 2013 using sharepoint designer and insert the the GTM just after the closing tag of sharepoint form as below,

有一个解决方案。你可以直接编辑。2013年SharePoint的master' page使用SharePoint designer,在SharePoint表单结束标签后插入GTM,如下图所示:

</SharePoint:SharePointForm>
<!-- Google Tag Manager -->
    <noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-XXXXXXXX"
    height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
    <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=
    '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
    })(window,document,'script','dataLayer','sss');</script>
    <!-- End Google Tag Manager -->

#2


1  

I was able to solve it for a SharePoint Online site collection. Assuming that the Publishing Features are turned on, I:

我可以为SharePoint的在线站点收集解决它。假设发布功能被打开,我:

  1. Put all the Google Tag Manager stuff into a dedicated HTML file.
  2. 将所有谷歌标记管理器内容放入专用的HTML文件中。
  3. Upload the HTML file somewhere like the root Site Assets library.
  4. 将HTML文件上载到根站点资产库之类的地方。
  5. Go to the Design Manager > Snippet Tool
  6. 转到Design Manager > Snippet工具。
  7. Configure a Content Editor Web Part to render the HTML file.
  8. 配置一个内容编辑器Web部件来呈现HTML文件。
  9. Embed the Content Editor Web Part into your master page with no chrome/make invisible with your preferred method of choice or use the native ms-hide class
  10. 将内容编辑器Web部件嵌入到您的主页面中,并没有使用您首选的选择方法或使用本机的ms-hide类。
  11. Check-in, publish.
  12. 签到,发布。

#3


0  

You can find a sandbox solution for this in codeplex. I guarantee this works fine. all installation guidance is there.

你可以在codeplex中找到一个沙盒解决方案。我保证这样做没问题。所有安装指导都在那里。

#1


1  

There is one workaround. You can directly edit the '.master' page in SharePoint 2013 using sharepoint designer and insert the the GTM just after the closing tag of sharepoint form as below,

有一个解决方案。你可以直接编辑。2013年SharePoint的master' page使用SharePoint designer,在SharePoint表单结束标签后插入GTM,如下图所示:

</SharePoint:SharePointForm>
<!-- Google Tag Manager -->
    <noscript><iframe src="//www.googletagmanager.com/ns.html?id=GTM-XXXXXXXX"
    height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
    <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=
    '//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
    })(window,document,'script','dataLayer','sss');</script>
    <!-- End Google Tag Manager -->

#2


1  

I was able to solve it for a SharePoint Online site collection. Assuming that the Publishing Features are turned on, I:

我可以为SharePoint的在线站点收集解决它。假设发布功能被打开,我:

  1. Put all the Google Tag Manager stuff into a dedicated HTML file.
  2. 将所有谷歌标记管理器内容放入专用的HTML文件中。
  3. Upload the HTML file somewhere like the root Site Assets library.
  4. 将HTML文件上载到根站点资产库之类的地方。
  5. Go to the Design Manager > Snippet Tool
  6. 转到Design Manager > Snippet工具。
  7. Configure a Content Editor Web Part to render the HTML file.
  8. 配置一个内容编辑器Web部件来呈现HTML文件。
  9. Embed the Content Editor Web Part into your master page with no chrome/make invisible with your preferred method of choice or use the native ms-hide class
  10. 将内容编辑器Web部件嵌入到您的主页面中,并没有使用您首选的选择方法或使用本机的ms-hide类。
  11. Check-in, publish.
  12. 签到,发布。

#3


0  

You can find a sandbox solution for this in codeplex. I guarantee this works fine. all installation guidance is there.

你可以在codeplex中找到一个沙盒解决方案。我保证这样做没问题。所有安装指导都在那里。