Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Google アナリティクスで SharePointの利用状況を確認する

3 905 vues

Publié le

SharePoint Onlineの利用状況をGoogleアナリティクスやPiwikで分析することは可能
利用概要を見るレベルであれば十分利用可能
Public以外の社内サイトでも技術的には利用可能
UserCustomActionsの仕組みを利用してトラッキング用のJavascriptを埋め込む
Javascriptベースの仕組みでは直接ダウンロードするログは収集できない課題が残る

Publié dans : Logiciels
  • Identifiez-vous pour voir les commentaires

Google アナリティクスで SharePointの利用状況を確認する

  1. 1. Google アナリティクスで SharePointの利用状況を確認する 2016年5月 SharePoint Onlineカスタマイズ
  2. 2. 今回のお題 SharePoint Onlineの利用状況を Googleアナリティクスで解析する
  3. 3. 利用する仕組み •UserCustomActions •すべてのページにJavascriptを埋め込 める •GoogleアナリティクスのJavascriptを これで組み込む Hackingには超便利な手法!
  4. 4. JavaScriptの埋め込み Powershellで簡単に埋め込める • Activate Google Analytics in SharePoint Online site https://gist.github.com/vgrem/2884bdad94d450e0f869
  5. 5. 埋め込みスクリプト (function (i, s, o, g, r, a, m) { i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () { (i[r].q = i[r].q || []).push(arguments) }, i[r].l = 1 * new Date(); a = s.createElement(o), m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m) })(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga'); ga('create', 'UA-4XXXXXXXX9-5', 'auto'); ga('send', 'pageview'); Googleのアナリティクスポータルで取得可能
  6. 6. 埋め込みスクリプトの改造① • SharePoint OnlineのURLはこんな感じ https://yoursite.sharepoint.com/_layouts/15/start.aspx#/Demo/Forms/ AllItems.aspx • Googleアナリティクスの既定のスクリプトではハッシュ (#)以降が無視される https://yoursite.sharepoint.com/_layouts/15/start.aspx リストなどの重要な情報がなくなってしまう • ハッシュ(#)以降も記録するためには少し変更 ga('send', 'pageview'); ↓ ga('send', 'pageview', { 'page': location.pathname + location.search + location.hash});
  7. 7. 埋め込みスクリプトの改造② • 標準ではどのユーザーのアクセスかは分析できない (注意)Googleアナリティクスでは個人情報を収集することは禁 止している。今回は内部的なIDを利用することで回避してい るはず • カスタムディメンションを使うと特別な情報を追加 できる • SharePoint内部のIDをカスタムディメンションに設定 var uid = currentUser.get_userId().get_nameId(); ga('set', 'dimension1', uid);
  8. 8. 最終的な埋め込みコード (function () { this.send = function () { if (!SP.ClientContext) { setTimeout(this.send, 100); return; } (function (i, s, o, g, r, a, m) { i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () { (i[r].q = i[r].q || []).push(arguments) }, i[r].l = 1 * new Date(); a = s.createElement(o), m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m) })(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga'); var ctx = new SP.ClientContext.get_current(); var website = ctx.get_web(); var currentUser = website.get_currentUser(); ctx.load(currentUser); ctx.executeQueryAsync(function () { var uid = currentUser.get_userId().get_nameId(); ga('create', 'UA-XXXXXXX-5', { 'userId': uid }); ga('set', 'dimension1', uid); ga('send', 'pageview', { 'page': location.pathname + location.search + location.hash }); }, function () { ga('create', 'UA-XXXXXXX-5', 'auto'); ga('send', 'pageview', { 'page': location.pathname + location.search + location.hash }); }); } setTimeout(this.send, 0); })(); ちょっと長いが SP.ClientContextはすぐに 利用可能にならないよう なのでsetTimeoutで調整
  9. 9. Googleアナリティクスで収集されたデータ URLとユーザの情報は収集できている ただ直接ダウンロードされるドキュメントのログは収集できない
  10. 10. 社内の情報がGoogleに送信されるのは… • 社内の情報がGoogleに送信されるのが抵抗のある場 合の選択肢 • Piwik (オープンソース) AzureのMarketplaceにもイメージがあるので簡単に利用可能 • 独自に作成 Azure Storageなどを使えば収集は簡単 PowerBIで表示するなども考えられる • Publicサイトはともかく、そもそもGoogleアナリティ クスをイントラのシステムで利用してよいのか?
  11. 11. まとめ • SharePoint Onlineの利用状況をGoogleアナリティクス やPiwikで分析することは可能 • 利用概要を見るレベルであれば十分利用可能 • Public以外の社内サイトでも技術的には利用可能 • UserCustomActionsの仕組みを利用してトラッキング 用のJavascriptを埋め込む • Javascriptベースの仕組みでは直接ダウンロードするロ グは収集できない課題が残る
  12. 12. http://www.proaxia-consulting.co.jp Azure&SharePointアプリケーション開発についてのお問合せ [担当] akihiro.ehara@proaxia-consulting.co.jp SharePoint Onlineとファイルサーバーを統合するCloud Storage Light https://www.cloudstoragelight.com SharePoint 上のファイルをエクスプローラ感覚でサクサク操作するSharePointエクスプローラ https://www.cloudstoragelight.com/sharepointexplorer/

×