Я создал решение для демонстрации простой интеграции piwik в SharePoint по адресу https://github.com/nils-a/piwik4sp.
Он будет работать, даже если MDS (стратегия минимальной загрузки) активен. Однако это решение для песочницы, и, как вы сказали, у вас есть ~ 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-файла примерно так:
<CustomAction Id="Piwik.Script.Link"
Location="ScriptLink"
Sequence="202"
ScriptSrc="~sitecollection/SiteAssets/Piwik4SP/piwik.js" />
в «вашем» piwik.js убедитесь, что вы регистрируете модуль для MDS:
window.RegisterModuleInit('/path/to/your/piwik.js', someFuncToCallOnNavigate);
в someFuncToCallOnNavigate
вы должны проверить, загружен ли уже piwik.js, и загрузить его, если это необходимо. После этого вы можете начать отслеживать, как описано в API piwik. Имейте в виду, однако, что - если MDS включен - большинство ваших страниц-запросов будут start.aspx
. Поэтому вы, вероятно, захотите изменить URL-адрес, прежде чем отслеживать его. См. этот файл о том, как я пытался решить эту проблему.
person
Nils
schedule
19.08.2017