将Piwik 3.0.2分析集成到SharePoint 2016内部部署服务器场的简洁方法是什么? Piwik本身建议将以下片段嵌入网页的头部。如何以干净和支持的方式为我们所有的~5000个网站集实现这一目标?谢谢你的帮助:)
<!-- Piwik -->
<script type="text/javascript">
var _paq = _paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="//my-piwik-url/";
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', '3']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Piwik Code -->
&#13;
答案 0 :(得分:1)
如果您的服务器场中有加载项基础结构,您还可以查看Web Analytics Integration add-in
答案 1 :(得分:0)
如果是我,我会制作一个scriptlink自定义操作并将其指向我托管的文件(在sharepoint中或其他方式)。您可以安装一些PowerShell来循环租户并将自定义操作安装到每个网站集。查看this write up on how to accomplish this with powershell
答案 2 :(得分:0)
我创建了一个解决方案,用于在https://github.com/nils-a/piwik4sp在SharePoint中演示简单的piwik集成。
即使MDS (minimal download strategy)处于活动状态,它也能正常工作。但是,它是一个沙盒解决方案,正如您所说,您有大约5000个网站集,您应该修改为只有一个文件实例(例如,如果不能选择农场解决方案,请使用场解决方案或专用站点。 )
如果您从未(永远,)启用了MDS,则应执行以下操作:
<CustomAction Id="Piwik4SP.Script.Link"
Location="ScriptLink"
Sequence="202"
ScriptBlock="var _paq = _paq || [];
/* tracker methods like 'setCustomDimension' should be called before 'trackPageView' */
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u='//my-piwik-url/';
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', '3']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();" />
但是,为了很好地集成(即使使用MDS),请使用scriptLink来部署js文件like this:
<CustomAction Id="Piwik.Script.Link"
Location="ScriptLink"
Sequence="202"
ScriptSrc="~sitecollection/SiteAssets/Piwik4SP/piwik.js" />
in&#34; your&#34; piwik.js确保您注册MDS模块:
window.RegisterModuleInit('/path/to/your/piwik.js', someFuncToCallOnNavigate);
在someFuncToCallOnNavigate
中,您应该检查,如果piwik.js已经加载并在需要时加载。之后,您可以按照piwik api中的说明开始跟踪。请注意,尽管如此 - 如果启用了MDS - 您的大多数页面请求都将转到start.aspx
。因此,您可能希望在跟踪之前修改网址。有关我如何解决该问题,请参阅this file。