Reputation: 3483
I added the GTM code inside the SharePoint Master Page inside the body tag.
<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.
<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?
Upvotes: 2
Views: 34038
Reputation: 53
I was able to solve it for a SharePoint Online site collection. Assuming that the Publishing Features are turned on, I:
Upvotes: 1
Reputation: 36
You can find a sandbox solution for this in codeplex. I guarantee this works fine. all installation guidance is there.
Upvotes: 0
Reputation: 36
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,
</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 -->
Upvotes: 1