将Piwik分析集成到SharePoint 2016中

将Piwik分析集成到SharePoint 2016中,sharepoint,matomo,Sharepoint,Matomo,什么是将Piwik 3.0.2分析集成到SharePoint 2016内部场的干净方法?Piwik本身建议将以下代码片段嵌入到网页的标题部分。如何以一种干净和支持的方式为我们的所有~5000个网站集实现这一点?谢谢你的帮助:) 变量| paq=| paq |[]; /*应在“trackPageView”之前调用“setCustomDimension”等跟踪器方法*/ _paq.push(['trackPageView']); _paq.push(['enableLinkTracking'])

什么是将Piwik 3.0.2分析集成到SharePoint 2016内部场的干净方法?Piwik本身建议将以下代码片段嵌入到网页的标题部分。如何以一种干净和支持的方式为我们的所有~5000个网站集实现这一点?谢谢你的帮助:)


变量| paq=| paq |[];
/*应在“trackPageView”之前调用“setCustomDimension”等跟踪器方法*/
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(功能(){
var u=“//我的piwik url/”;
_push(['settrackerrl',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);
})();

如果是我,我将执行scriptlink自定义操作,并将其指向我托管的文件(在sharepoint或其他文件中)。您可以装配一些powershell来循环通过租户,并将自定义操作安装到每个网站集。查看

我已经创建了一个解决方案,在SharePoint中演示了一个简单的piwik集成

即使处于活动状态,它也会工作。但是,这是一个沙箱解决方案,正如您所说,您有约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);
      })();" />

然后,在
someFuncToCallOnNavigate
中,您应该检查piwik.js是否已加载,如果需要,请加载。之后,您可以按照piwik api中的说明开始跟踪。请注意,如果启用了MDS,大多数页面请求将发送到
start.aspx
。因此,您可能希望在跟踪url之前对其进行修改。请参阅我如何尝试解决该问题。

如果您的服务器场中有一个外接程序框架结构,您也可以查看一下该框架结构。请记住,如果启用了MDS,仅按上述方式添加脚本块可能(并不总是)起作用。
<CustomAction Id="Piwik.Script.Link"
    Location="ScriptLink"
    Sequence="202"
    ScriptSrc="~sitecollection/SiteAssets/Piwik4SP/piwik.js" />
window.RegisterModuleInit('/path/to/your/piwik.js', someFuncToCallOnNavigate);